sqltype.c

Go to the documentation of this file.
00001 #include <string.h>
00002 #include <grass/dbmi.h>
00003 
00009 const char *db_sqltype_name(int sqltype)
00010 {
00011     static char buf[256];
00012     int from, to;
00013 
00014     switch (sqltype) {
00015     case DB_SQL_TYPE_CHARACTER:
00016         return "CHARACTER";
00017     case DB_SQL_TYPE_NUMERIC:
00018         return "NUMERIC";
00019     case DB_SQL_TYPE_DECIMAL:
00020         return "DECIMAL";
00021     case DB_SQL_TYPE_SMALLINT:
00022         return "SMALLINT";
00023     case DB_SQL_TYPE_INTEGER:
00024         return "INTEGER";
00025     case DB_SQL_TYPE_REAL:
00026         return "REAL";
00027     case DB_SQL_TYPE_DOUBLE_PRECISION:
00028         return "DOUBLE PRECISION";
00029     case DB_SQL_TYPE_DATE:
00030         return "DATE";
00031     case DB_SQL_TYPE_TIME:
00032         return "TIME";
00033     case DB_SQL_TYPE_SERIAL:
00034         return "SERIAL";
00035     case DB_SQL_TYPE_TEXT:
00036         return "TEXT";
00037     }
00038     switch (sqltype & ~DB_DATETIME_MASK) {
00039     case DB_SQL_TYPE_TIMESTAMP:
00040         strcpy(buf, "TIMESTAMP ");
00041         break;
00042     case DB_SQL_TYPE_INTERVAL:
00043         strcpy(buf, "INTERVAL ");
00044         break;
00045     default:
00046         return "UNKNOWN";
00047     }
00048 
00049     db_interval_range(sqltype, &from, &to);
00050 
00051     switch (from) {
00052     case DB_YEAR:
00053         strcat(buf, "YEAR");
00054         break;
00055     case DB_MONTH:
00056         strcat(buf, "MONTH");
00057         break;
00058     case DB_DAY:
00059         strcat(buf, "DAY");
00060         break;
00061     case DB_HOUR:
00062         strcat(buf, "HOUR");
00063         break;
00064     case DB_MINUTE:
00065         strcat(buf, "MINUTE");
00066         break;
00067     case DB_SECOND:
00068         strcat(buf, "SECOND");
00069         break;
00070     case DB_FRACTION:
00071         strcat(buf, "FRACTION");
00072         break;
00073     }
00074 
00075     if (from)
00076         strcat(buf, " to");
00077     if (to)
00078         strcat(buf, " ");
00079 
00080     switch (to) {
00081     case DB_YEAR:
00082         strcat(buf, "YEAR");
00083         break;
00084     case DB_MONTH:
00085         strcat(buf, "MONTH");
00086         break;
00087     case DB_DAY:
00088         strcat(buf, "DAY");
00089         break;
00090     case DB_HOUR:
00091         strcat(buf, "HOUR");
00092         break;
00093     case DB_MINUTE:
00094         strcat(buf, "MINUTE");
00095         break;
00096     case DB_SECOND:
00097         strcat(buf, "SECOND");
00098         break;
00099     case DB_FRACTION:
00100         strcat(buf, "FRACTION");
00101         break;
00102     }
00103 
00104     return buf;
00105 }

Generated on Thu Jul 16 13:20:15 2009 for GRASS Programmer's Manual by  doxygen 1.5.6