GRASS GIS 7 Programmer's Manual  7.5.svn(2017)-r71769
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dbmi_base/table.c File Reference

DBMI Library (base) - table management. More...

#include <stdlib.h>
#include <string.h>
#include <grass/gis.h>
#include <grass/dbmi.h>
Include dependency graph for dbmi_base/table.c:

Go to the source code of this file.

Functions

dbTabledb_alloc_table (int ncols)
 Allocate a table with a specific number of columns. More...
 
void db_init_table (dbTable *table)
 Initialize the table to zero. More...
 
void db_free_table (dbTable *table)
 Free the table. More...
 
int db_set_table_name (dbTable *table, const char *name)
 Set the name of the table. More...
 
const char * db_get_table_name (dbTable *table)
 Get the name of the table. More...
 
int db_set_table_description (dbTable *table, const char *description)
 Set the description of the table. More...
 
const char * db_get_table_description (dbTable *table)
 Get the description of the table. More...
 
int db_get_table_number_of_columns (dbTable *table)
 Return the number of columns of the table. More...
 
void db_set_table_select_priv_granted (dbTable *table)
 Grant selection privileges for all columns. More...
 
void db_set_table_select_priv_not_granted (dbTable *table)
 Set selection privileges not granted for all columns. More...
 
int db_get_table_select_priv (dbTable *table)
 Get table select privileges. More...
 
void db_set_table_update_priv_granted (dbTable *table)
 Grant update privileges for all columns. More...
 
void db_set_table_update_priv_not_granted (dbTable *table)
 Set update privileges not granted for all columns. More...
 
int db_get_table_update_priv (dbTable *table)
 Get table update privileges. More...
 
void db_set_table_insert_priv_granted (dbTable *table)
 Grant insert privileges for table. More...
 
void db_set_table_insert_priv_not_granted (dbTable *table)
 Set insert privileges not granted for table. More...
 
int db_get_table_insert_priv (dbTable *table)
 Get table insert privileges. More...
 
void db_set_table_delete_priv_granted (dbTable *table)
 Grant delete privileges for table. More...
 
void db_set_table_delete_priv_not_granted (dbTable *table)
 Set delete privileges not granted for table. More...
 
int db_get_table_delete_priv (dbTable *table)
 Get table delete privileges. More...
 
dbColumndb_get_table_column (dbTable *table, int idx)
 Returns column structure for given table and column number. More...
 
dbColumndb_get_table_column_by_name (dbTable *table, const char *name)
 Returns column structure for given table and column name. More...
 
int db_set_table_column (dbTable *table, int idx, dbColumn *column)
 Set a specific column for given table and column number. More...
 
int db_append_table_column (dbTable *table, dbColumn *column)
 Append a specific column to given table. More...
 
dbTabledb_clone_table (dbTable *src)
 Make a new exact copy of an existing table. More...
 
int db_table_to_sql (dbTable *table, dbString *sql)
 Create SQL CREATE sring from table definition. More...
 

Detailed Description

DBMI Library (base) - table management.

(C) 1999-2009, 2011 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
Joel Jones (CERL/UIUC), Radim Blazek
Doxygenized by Martin Landa <landa.martin gmail.com> (2011)

Definition in file dbmi_base/table.c.

Function Documentation

dbTable* db_alloc_table ( int  ncols)

Allocate a table with a specific number of columns.

Parameters
ncolsnumber of columns which should be allocated
Returns
allocated dbTable
NULL in case of an error

Definition at line 28 of file dbmi_base/table.c.

References _db_table::columns, db_calloc(), db_free(), db_init_column(), db_init_table(), db_malloc(), NULL, and _db_table::numColumns.

Referenced by db__recv_table_definition(), db_alloc_cursor_table(), db_clone_table(), P_Create_Aux2_Table(), and P_Create_Aux4_Table().

int db_append_table_column ( dbTable table,
dbColumn column 
)

Append a specific column to given table.

Parameters
tablePointer to dbTable
columnPointer to a dbColumn to append. A copy of the column is stored, so the original column can be deleted.
Returns
DB_OK on success
DB_FAILURE on error

Definition at line 372 of file dbmi_base/table.c.

References _db_table::columns, db_copy_column(), DB_FAILED, DB_OK, db_realloc(), NULL, and _db_table::numColumns.

dbTable* db_clone_table ( dbTable src)

Make a new exact copy of an existing table.

New memory is allocated for the clone, the columns-content will be copied too.

Parameters
srcPointer to dbTable
Returns
A new alloacted clone of the given table on success
NULL on error

Definition at line 392 of file dbmi_base/table.c.

References _db_table::columns, db_alloc_table(), db_copy_column(), db_copy_string(), db_get_table_number_of_columns(), _db_table::description, NULL, _db_table::priv_delete, _db_table::priv_insert, and _db_table::tableName.

void db_free_table ( dbTable table)
dbColumn* db_get_table_column ( dbTable table,
int  idx 
)
dbColumn* db_get_table_column_by_name ( dbTable table,
const char *  name 
)

Returns column structure for given table and column name.

Parameters
tablepointer to dbTable
namethe name of the column
Returns
pointer to dbColumn
NULL if not found

Definition at line 323 of file dbmi_base/table.c.

References _db_column::columnName, columns, db_get_string(), db_get_table_column(), NULL, and _db_table::numColumns.

int db_get_table_delete_priv ( dbTable table)

Get table delete privileges.

Parameters
tablepointer to dbTable
Returns
privileges

Definition at line 293 of file dbmi_base/table.c.

References _db_table::priv_delete.

Referenced by db_print_table_definition().

const char* db_get_table_description ( dbTable table)

Get the description of the table.

Parameters
tablepointer to dbTable
Returns
description of the table

Definition at line 126 of file dbmi_base/table.c.

References db_get_string(), and _db_table::description.

Referenced by db_print_table_definition().

int db_get_table_insert_priv ( dbTable table)

Get table insert privileges.

Parameters
tablepointer to dbTable
Returns
prilileges

Definition at line 261 of file dbmi_base/table.c.

References _db_table::priv_insert.

Referenced by db_print_table_definition().

const char* db_get_table_name ( dbTable table)

Get the name of the table.

Parameters
tablepointer to dbTable
Returns
name of the table

Definition at line 101 of file dbmi_base/table.c.

References db_get_string(), and _db_table::tableName.

Referenced by db_print_table_definition(), and db_table_to_sql().

int db_get_table_number_of_columns ( dbTable table)

Return the number of columns of the table.

Parameters
tablepointer to dbTable
Returns
number of columns

Definition at line 138 of file dbmi_base/table.c.

References _db_table::numColumns.

Referenced by db_clone_table(), db_column_sqltype(), db_get_column(), db_get_cursor_number_of_columns(), db_print_table_definition(), db_table_to_sql(), Vect_get_column_names(), Vect_get_column_names_types(), Vect_get_column_types(), and Vect_write_ascii().

int db_get_table_select_priv ( dbTable table)

Get table select privileges.

Parameters
tablepointer to dbTable
Returns
privilages

Definition at line 197 of file dbmi_base/table.c.

References db_get_column_select_priv().

int db_get_table_update_priv ( dbTable table)

Get table update privileges.

Parameters
tablepointer to dbTable
Returns
privilages

Definition at line 229 of file dbmi_base/table.c.

References db_get_column_update_priv().

void db_init_table ( dbTable table)

Initialize the table to zero.

Parameters
tablepointer to dbTable

Definition at line 56 of file dbmi_base/table.c.

References db_init_string(), db_zero(), _db_table::description, and _db_table::tableName.

Referenced by db_alloc_table().

int db_set_table_column ( dbTable table,
int  idx,
dbColumn column 
)

Set a specific column for given table and column number.

Parameters
tablePointer to dbTable
idxColumn index (starting with '0'). The index must be in range.
columnPointer to a dbColumn to insert. A copy of the column stored, so the original column can be deleted.
Returns
DB_OK on success
DB_FAILURE on error

Definition at line 354 of file dbmi_base/table.c.

References _db_table::columns, db_copy_column(), DB_FAILED, DB_OK, and _db_table::numColumns.

void db_set_table_delete_priv_granted ( dbTable table)

Grant delete privileges for table.

Parameters
tablepointer to dbTable

Definition at line 271 of file dbmi_base/table.c.

References DB_GRANTED, and _db_table::priv_delete.

void db_set_table_delete_priv_not_granted ( dbTable table)

Set delete privileges not granted for table.

Parameters
tablepointer to dbTable

Definition at line 281 of file dbmi_base/table.c.

References DB_NOT_GRANTED, and _db_table::priv_delete.

int db_set_table_description ( dbTable table,
const char *  description 
)

Set the description of the table.

Parameters
tablepointer to dbTable
namedescription of the table
Returns
DB_OK

Definition at line 114 of file dbmi_base/table.c.

References db_set_string(), and _db_table::description.

Referenced by P_Create_Aux2_Table(), and P_Create_Aux4_Table().

void db_set_table_insert_priv_granted ( dbTable table)

Grant insert privileges for table.

Parameters
tablepointer to dbTable

Definition at line 239 of file dbmi_base/table.c.

References DB_GRANTED, and _db_table::priv_insert.

void db_set_table_insert_priv_not_granted ( dbTable table)

Set insert privileges not granted for table.

Parameters
tablepointer to dbTable

Definition at line 249 of file dbmi_base/table.c.

References DB_NOT_GRANTED, and _db_table::priv_insert.

int db_set_table_name ( dbTable table,
const char *  name 
)

Set the name of the table.

Parameters
tablepointer to dbTable
nameThe name of the table
Returns
DB_OK on success

Definition at line 89 of file dbmi_base/table.c.

References db_set_string(), and _db_table::tableName.

Referenced by db_d_describe_table(), P_Create_Aux2_Table(), and P_Create_Aux4_Table().

void db_set_table_select_priv_granted ( dbTable table)

Grant selection privileges for all columns.

Parameters
tablepointer to dbTable

Definition at line 175 of file dbmi_base/table.c.

References db_set_column_select_priv_granted().

void db_set_table_select_priv_not_granted ( dbTable table)

Set selection privileges not granted for all columns.

Parameters
tablepointer to dbTable

Definition at line 185 of file dbmi_base/table.c.

References db_set_column_select_priv_not_granted().

void db_set_table_update_priv_granted ( dbTable table)

Grant update privileges for all columns.

Parameters
tablepointer to dbTable

Definition at line 207 of file dbmi_base/table.c.

References db_set_column_update_priv_granted().

void db_set_table_update_priv_not_granted ( dbTable table)

Set update privileges not granted for all columns.

Parameters
tablepointer to dbTable

Definition at line 217 of file dbmi_base/table.c.

References db_set_column_update_priv_not_granted().