3 #include <grass/dbmi.h>
16 table = (dbTable *)
db_malloc(
sizeof(dbTable));
18 return (table =
NULL);
22 table->columns = (dbColumn *)
db_calloc(
sizeof(dbColumn), ncols);
23 if (table->columns ==
NULL) {
25 return (table =
NULL);
27 table->numColumns = ncols;
28 for (i = 0; i < ncols; i++)
42 db_zero((
void *)table,
sizeof(dbTable));
59 for (i = 0; i < table->numColumns; i++)
118 return table->numColumns;
127 static void set_all_column_privs(dbTable * table,
void (*set_column_priv) ())
133 for (col = 0; col < ncols; col++) {
135 set_column_priv(column);
145 static int get_all_column_privs(dbTable * table,
int (*get_column_priv) ())
147 int priv, col, ncols;
151 for (col = 0; col < ncols; col++) {
153 priv = get_column_priv(column);
154 if (priv != DB_GRANTED)
234 table->priv_insert = DB_GRANTED;
245 table->priv_insert = DB_NOT_GRANTED;
256 return table->priv_insert;
267 table->priv_delete = DB_GRANTED;
278 table->priv_delete = DB_NOT_GRANTED;
289 return table->priv_delete;
311 for (col = 0; col < ncols; col++) {
331 case DB_SQL_TYPE_CHARACTER:
335 case DB_SQL_TYPE_TEXT:
336 G_warning(
"Type TEXT converted to 'VARCHAR(250)'");
339 case DB_SQL_TYPE_SMALLINT:
340 case DB_SQL_TYPE_INTEGER:
343 case DB_SQL_TYPE_REAL:
344 case DB_SQL_TYPE_DOUBLE_PRECISION:
345 case DB_SQL_TYPE_DECIMAL:
346 case DB_SQL_TYPE_NUMERIC:
347 case DB_SQL_TYPE_INTERVAL:
350 case DB_SQL_TYPE_DATE:
353 case DB_SQL_TYPE_TIME:
356 case DB_SQL_TYPE_TIMESTAMP:
360 G_warning(
"Unknown column type (%s)", colname);