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 }