Browse Source

case order fixed (cosmetics); docs added

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@31654 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Neteler 17 years ago
parent
commit
dfcbe1eb14
1 changed files with 35 additions and 9 deletions
  1. 35 9
      db/drivers/sqlite/describe.c

+ 35 - 9
db/drivers/sqlite/describe.c

@@ -168,14 +168,16 @@ int describe_table( sqlite3_stmt *statement,
 	    fsize = 20;
 	    break;
 
-	case SQLITE_TEXT:
-	    fsize = 255;
-	    break;
-	    
 	case SQLITE_FLOAT:
 	    fsize = 20;
 	    break;
-	    
+
+	case SQLITE_TEXT:
+	    fsize = 255;
+	    break;
+	
+	/* SQLITE_BLOB, SQLITE_NULL needed here? */
+	
 	default:
 	    fsize = 99999; /* sqlite doesn't care, it must be long enough to
                           satisfy tests in GRASS */
@@ -253,19 +255,43 @@ void get_column_info ( sqlite3_stmt *statement, int col,
 
     G_debug ( 3, "litetype = %d", *litetype );
 
+    /* http://www.sqlite.org/capi3ref.html#sqlite3_column_type
+           SQLITE_INTEGER  1
+           SQLITE_FLOAT    2
+           SQLITE_TEXT     3
+           SQLITE_BLOB     4
+           SQLITE_NULL     5
+
+       lib/db/dbmi_base/sqltype.c:
+           DB_SQL_TYPE_CHARACTER:        0 "CHARACTER"
+           DB_SQL_TYPE_NUMERIC:          1 "NUMERIC"
+           DB_SQL_TYPE_DECIMAL:          2 "DECIMAL"
+           DB_SQL_TYPE_SMALLINT:         3 "SMALLINT"
+           DB_SQL_TYPE_INTEGER:          4 "INTEGER"
+           DB_SQL_TYPE_REAL:             5 "REAL"
+           DB_SQL_TYPE_DOUBLE_PRECISION: 6 "DOUBLE PRECISION"
+           DB_SQL_TYPE_DATE:             7 "DATE"
+           DB_SQL_TYPE_TIME:             8 "TIME"
+           DB_SQL_TYPE_SERIAL:           9 "SERIAL"
+           DB_SQL_TYPE_TEXT:             10 "TEXT"
+           DB_SQL_TYPE_TIMESTAMP:        11 "TIMESTAMP"
+           DB_SQL_TYPE_INTERVAL:         12 "INTERVAL"
+           default                       13 "unknown"
+    */
+
     switch ( *litetype) {
 	case SQLITE_INTEGER:
 	    *sqltype = DB_SQL_TYPE_INTEGER;
 	    break;
 
-	case SQLITE_TEXT:
-	    *sqltype = DB_SQL_TYPE_TEXT;
-	    break;
-	    
 	case SQLITE_FLOAT:
 	    *sqltype = DB_SQL_TYPE_DOUBLE_PRECISION;
 	    break;
 
+	case SQLITE_TEXT:
+	    *sqltype = DB_SQL_TYPE_TEXT;
+	    break;
+	    
 	case SQLITE_NULL:
 	    *sqltype = DB_SQL_TYPE_TEXT; /* good choice? */
 	    break;