Changeset 10708
- Timestamp:
- Dec 13, 2006, 7:13:58 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/db/psDB.c (modified) (24 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/db/psDB.c
r10703 r10708 12 12 * @author Joshua Hoblitt 13 13 * 14 * @version $Revision: 1.12 1$ $Name: not supported by cvs2svn $15 * @date $Date: 2006-12-14 0 1:37:55$14 * @version $Revision: 1.122 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2006-12-14 05:13:58 $ 16 16 * 17 17 * Copyright (C) 2005-2006 Joshua Hoblitt, University of Hawaii … … 38 38 #include "psString.h" 39 39 #include "psTrace.h" 40 #include "psMetadataConfig.h" 40 41 41 42 … … 467 468 // conversion functions are a portability issue 468 469 switch (type) { 469 case PS_ TYPE_S8:470 PS_STR_ARRAY_TO_PTYPE(column->data.S8, stringColumn, atoi, psS8, PS_ TYPE_S8);471 break; 472 case PS_ TYPE_S16:473 PS_STR_ARRAY_TO_PTYPE(column->data.S16, stringColumn, atoi, psS16, PS_ TYPE_S16);474 break; 475 case PS_ TYPE_S32:476 PS_STR_ARRAY_TO_PTYPE(column->data.S32, stringColumn, atoi, psS32, PS_ TYPE_S32);477 break; 478 case PS_ TYPE_S64:479 PS_STR_ARRAY_TO_PTYPE(column->data.S64, stringColumn, atoll, psS64, PS_ TYPE_S64);480 break; 481 case PS_ TYPE_U8:482 PS_STR_ARRAY_TO_PTYPE(column->data.U8, stringColumn, atoi, psU8, PS_ TYPE_U8);483 break; 484 case PS_ TYPE_U16:485 PS_STR_ARRAY_TO_PTYPE(column->data.U16, stringColumn, atoi, psU16, PS_ TYPE_U16);486 break; 487 case PS_ TYPE_U32:488 PS_STR_ARRAY_TO_PTYPE(column->data.U32, stringColumn, atoi, psU32, PS_ TYPE_U32);489 break; 490 case PS_ TYPE_U64:491 PS_STR_ARRAY_TO_PTYPE(column->data.U64, stringColumn, atoll, psU64, PS_ TYPE_U64);492 break; 493 case PS_ TYPE_F32:494 PS_STR_ARRAY_TO_PTYPE(column->data.F32, stringColumn, atof, psF32, PS_ TYPE_F32);495 break; 496 case PS_ TYPE_F64:497 PS_STR_ARRAY_TO_PTYPE(column->data.F64, stringColumn, atof, psF64, PS_ TYPE_F64);470 case PS_DATA_S8: 471 PS_STR_ARRAY_TO_PTYPE(column->data.S8, stringColumn, atoi, psS8, PS_DATA_S8); 472 break; 473 case PS_DATA_S16: 474 PS_STR_ARRAY_TO_PTYPE(column->data.S16, stringColumn, atoi, psS16, PS_DATA_S16); 475 break; 476 case PS_DATA_S32: 477 PS_STR_ARRAY_TO_PTYPE(column->data.S32, stringColumn, atoi, psS32, PS_DATA_S32); 478 break; 479 case PS_DATA_S64: 480 PS_STR_ARRAY_TO_PTYPE(column->data.S64, stringColumn, atoll, psS64, PS_DATA_S64); 481 break; 482 case PS_DATA_U8: 483 PS_STR_ARRAY_TO_PTYPE(column->data.U8, stringColumn, atoi, psU8, PS_DATA_U8); 484 break; 485 case PS_DATA_U16: 486 PS_STR_ARRAY_TO_PTYPE(column->data.U16, stringColumn, atoi, psU16, PS_DATA_U16); 487 break; 488 case PS_DATA_U32: 489 PS_STR_ARRAY_TO_PTYPE(column->data.U32, stringColumn, atoi, psU32, PS_DATA_U32); 490 break; 491 case PS_DATA_U64: 492 PS_STR_ARRAY_TO_PTYPE(column->data.U64, stringColumn, atoll, psU64, PS_DATA_U64); 493 break; 494 case PS_DATA_F32: 495 PS_STR_ARRAY_TO_PTYPE(column->data.F32, stringColumn, atof, psF32, PS_DATA_F32); 496 break; 497 case PS_DATA_F64: 498 PS_STR_ARRAY_TO_PTYPE(column->data.F64, stringColumn, atof, psF64, PS_DATA_F64); 498 499 break; 499 500 case PS_TYPE_C32: … … 505 506 PS_STR_ARRAY_TO_PTYPE(column->data.C64, stringColumn, atof, psC64, PS_TYPE_C64); 506 507 break; 507 case PS_ TYPE_BOOL:508 case PS_DATA_BOOL: 508 509 // valid for psVector? 509 PS_STR_ARRAY_TO_PTYPE(column->data.U8, stringColumn, atoi, psU8, PS_ TYPE_U8);510 PS_STR_ARRAY_TO_PTYPE(column->data.U8, stringColumn, atoi, psU8, PS_DATA_U8); 510 511 break; 511 512 default: … … 650 651 //psLogMsg( __func__, PS_LOG_INFO, "pType=[%ld]\n", pType ); 651 652 652 // if the ptype is PS_ TYPE_PTR assume that it's a string and fetch the653 // if the ptype is PS_DATA_PTR assume that it's a string and fetch the 653 654 // column as an psArray of strings; otherwise fetch the column as a 654 655 // psVector. … … 990 991 len = fieldLength[i]; 991 992 if (len) { 992 data = psAlloc(len+1); 993 // copy the data out of the result set struct 994 data = psAlloc(len + 1); 993 995 memcpy(data, row[i], len); 994 996 ((char*)data)[len] = '\0'; 995 997 } else { 998 // if len is zero then the value is NULL 999 psTrace("psLib.db", PS_LOG_INFO, "database field name %s contains a NULL", field[i].name); 996 1000 data = psDBGetPTypeNaN(pType); 997 psMetadataAddStr(md, PS_LIST_TAIL, field[i].name, 0, "", data); 1001 if (!psMetadataAdd(md, PS_LIST_TAIL, field[i].name, pType, "", data)) { 1002 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1003 psFree(data); 1004 psFree(md); 1005 mysql_free_result(result); 1006 psFree(resultSet); 1007 return NULL; 1008 } 998 1009 psFree(data); 999 1010 continue; 1000 1011 } 1001 1012 1002 // copy field data and convert NULLs to the appropriate NaN value1003 1013 switch (pType) { 1004 1014 case PS_DATA_STRING: 1005 psMetadataAddStr(md, PS_LIST_TAIL, field[i].name, 0, "", data); 1015 if (!psMetadataAddStr(md, PS_LIST_TAIL, field[i].name, 0, "", data)) { 1016 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1017 psFree(data); 1018 psFree(md); 1019 mysql_free_result(result); 1020 psFree(resultSet); 1021 return NULL; 1022 } 1023 break; 1024 case PS_DATA_U8: 1025 if (!psMetadataAddU8(md, PS_LIST_TAIL, field[i].name, 0, "",(psU8)atoll(data))) { 1026 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1027 psFree(data); 1028 psFree(md); 1029 mysql_free_result(result); 1030 psFree(resultSet); 1031 return NULL; 1032 } 1033 break; 1034 case PS_DATA_U16: 1035 if (!psMetadataAddU16(md, PS_LIST_TAIL, field[i].name, 0, "",(psU16)atoll(data))) { 1036 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1037 psFree(data); 1038 psFree(md); 1039 mysql_free_result(result); 1040 psFree(resultSet); 1041 return NULL; 1042 } 1043 break; 1044 case PS_DATA_U32: 1045 if (!psMetadataAddU32(md, PS_LIST_TAIL, field[i].name, 0, "",(psU32)atoll(data))) { 1046 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1047 psFree(data); 1048 psFree(md); 1049 mysql_free_result(result); 1050 psFree(resultSet); 1051 return NULL; 1052 } 1053 break; 1054 case PS_DATA_U64: 1055 if (!psMetadataAddU64(md, PS_LIST_TAIL, field[i].name, 0, "",(psU64)atoll(data))) { 1056 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1057 psFree(data); 1058 psFree(md); 1059 mysql_free_result(result); 1060 psFree(resultSet); 1061 return NULL; 1062 } 1063 break; 1064 case PS_DATA_S8: 1065 if (!psMetadataAddS8(md, PS_LIST_TAIL, field[i].name, 0, "", (psS8)atoll(data))) { 1066 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1067 psFree(data); 1068 psFree(md); 1069 mysql_free_result(result); 1070 psFree(resultSet); 1071 return NULL; 1072 } 1073 break; 1074 case PS_DATA_S16: 1075 if (!psMetadataAddS16(md, PS_LIST_TAIL, field[i].name, 0, "", (psS16)atoll(data))) { 1076 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1077 psFree(data); 1078 psFree(md); 1079 mysql_free_result(result); 1080 psFree(resultSet); 1081 return NULL; 1082 } 1006 1083 break; 1007 1084 case PS_DATA_S32: 1008 psMetadataAddS32(md, PS_LIST_TAIL, field[i].name, 0, "", atoll(data)); 1085 if (!psMetadataAddS32(md, PS_LIST_TAIL, field[i].name, 0, "", (psS32)atoll(data))) { 1086 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1087 psFree(data); 1088 psFree(md); 1089 mysql_free_result(result); 1090 psFree(resultSet); 1091 return NULL; 1092 } 1093 break; 1094 case PS_DATA_S64: 1095 if (!psMetadataAddS64(md, PS_LIST_TAIL, field[i].name, 0, "", (psS64)atoll(data))) { 1096 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1097 psFree(data); 1098 psFree(md); 1099 mysql_free_result(result); 1100 psFree(resultSet); 1101 return NULL; 1102 } 1009 1103 break; 1010 1104 case PS_DATA_F32: 1011 psMetadataAddF32(md, PS_LIST_TAIL, field[i].name, 0, "", atof(data)); 1105 if (!psMetadataAddF32(md, PS_LIST_TAIL, field[i].name, 0, "", atof(data))) { 1106 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1107 psFree(data); 1108 psFree(md); 1109 mysql_free_result(result); 1110 psFree(resultSet); 1111 return NULL; 1112 } 1012 1113 break; 1013 1114 case PS_DATA_F64: 1014 psMetadataAddF64(md, PS_LIST_TAIL, field[i].name, 0, "", atof(data)); 1115 if (!psMetadataAddF64(md, PS_LIST_TAIL, field[i].name, 0, "", atof(data))) { 1116 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1117 psFree(data); 1118 psFree(md); 1119 mysql_free_result(result); 1120 psFree(resultSet); 1121 return NULL; 1122 } 1015 1123 break; 1016 1124 case PS_DATA_BOOL: 1017 psMetadataAdd(md, PS_LIST_TAIL, field[i].name, pType, "", atoi(data)); 1125 if (!psMetadataAdd(md, PS_LIST_TAIL, field[i].name, pType, "", atoi(data))) { 1126 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1127 psFree(data); 1128 psFree(md); 1129 mysql_free_result(result); 1130 psFree(resultSet); 1131 return NULL; 1132 } 1018 1133 break; 1019 1134 case PS_DATA_TIME: … … 1021 1136 // concept of a psTime with a NULL value 1022 1137 if (!(char *)data) { 1023 psMetadataAddTime(md, PS_LIST_TAIL, field[i].name, 0, "", NULL); 1138 if (!psMetadataAddTime(md, PS_LIST_TAIL, field[i].name, 0, "", NULL)) { 1139 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1140 psFree(data); 1141 psFree(md); 1142 mysql_free_result(result); 1143 psFree(resultSet); 1144 return NULL; 1145 } 1024 1146 } else { 1025 1147 psTime *time = psTimeStrptime((char *)data, "%EY-%m-%d%t%T"); … … 1031 1153 return NULL; 1032 1154 } 1033 psMetadataAddTime(md, PS_LIST_TAIL, field[i].name, 0, "", time); 1155 if (!psMetadataAddTime(md, PS_LIST_TAIL, field[i].name, 0, "", time)) { 1156 psError(PS_ERR_UNKNOWN, false, "Failed to add item %s", field[i].name); 1157 psFree(data); 1158 psFree(md); 1159 mysql_free_result(result); 1160 psFree(resultSet); 1161 return NULL; 1162 } 1034 1163 psFree(time); 1035 1164 } 1165 break; 1036 1166 #if 0 1037 1167 // this is the procedure needed for stmt … … 1056 1186 1057 1187 default: 1058 // XXX: assume binary string ... 1059 psMetadataAddStr(md, PS_LIST_TAIL, field[i].name, 0, "", data); 1188 psError(PS_ERR_BAD_PARAMETER_TYPE , true, 1189 "field name: %s FIXME: Only type of " 1190 "PS_DATA_U8 (PS_DATA_U8), " 1191 "PS_DATA_U16 (PS_DATA_U16), " 1192 "PS_DATA_U32 (PS_DATA_U32), " 1193 "PS_DATA_U64 (PS_DATA_U64), " 1194 "PS_DATA_S8 (PS_DATA_S8), " 1195 "PS_DATA_S16 (PS_DATA_S16), " 1196 "PS_DATA_S32 (PS_DATA_S32), " 1197 "PS_DATA_S64 (PS_DATA_S64), " 1198 "PS_DATA_F32 (PS_DATA_F32), " 1199 "PS_DATA_F64 (PS_DATA_F64), " 1200 "PS_DATA_BOOL (PS_DATA_BOOL), " 1201 "PS_DATA_STRING " 1202 "and PS_DATA_TIME are supported.", field[i].name); 1203 psFree(data); 1204 psFree(md); 1205 mysql_free_result(result); 1206 psFree(resultSet); 1207 return NULL; 1060 1208 } 1061 1209 1062 1210 psFree(data); 1211 } 1212 1213 if (psTraceGetLevel("psLib.db") >= PS_LOG_INFO) { 1214 psString rowString = psMetadataConfigFormat(md); 1215 psTrace("psLib.db", PS_LOG_INFO, "adding row to result set: %s", rowString); 1216 psFree(rowString); 1063 1217 } 1064 1218 … … 1069 1223 1070 1224 mysql_free_result(result); 1225 1071 1226 1072 1227 return resultSet; … … 1102 1257 // string 1103 1258 switch (item->type) { 1104 case PS_ TYPE_U32: {1259 case PS_DATA_U32: { 1105 1260 bind[i].length = 0; 1106 1261 bind[i].buffer = &item->data.U32; … … 1110 1265 break; 1111 1266 } 1112 case PS_ TYPE_U64: {1267 case PS_DATA_U64: { 1113 1268 bind[i].length = 0; 1114 1269 bind[i].buffer = &item->data.U64; … … 1118 1273 break; 1119 1274 } 1120 case PS_ TYPE_S32: {1275 case PS_DATA_S32: { 1121 1276 bind[i].length = 0; 1122 1277 bind[i].buffer = &item->data.S32; … … 1126 1281 break; 1127 1282 } 1128 case PS_ TYPE_S64: {1283 case PS_DATA_S64: { 1129 1284 bind[i].length = 0; 1130 1285 bind[i].buffer = &item->data.S64; … … 1134 1289 break; 1135 1290 } 1136 case PS_ TYPE_F32: {1291 case PS_DATA_F32: { 1137 1292 bind[i].length = 0; 1138 1293 bind[i].buffer = &item->data.F32; … … 1142 1297 break; 1143 1298 } 1144 case PS_ TYPE_F64: {1299 case PS_DATA_F64: { 1145 1300 bind[i].length = 0; 1146 1301 bind[i].buffer = &item->data.F64; … … 1150 1305 break; 1151 1306 } 1152 case PS_ TYPE_BOOL: {1307 case PS_DATA_BOOL: { 1153 1308 // XXX: ASC HACK NOTE (2005/06/03): set extreme bytes to the 1154 1309 // boolean character value. sizeof(psBool)==4 which triggers … … 1233 1388 psError(PS_ERR_BAD_PARAMETER_TYPE , true, 1234 1389 "FIXME: Only type of " 1235 "PS_ TYPE_U32 (PS_DATA_S32), "1236 "PS_ TYPE_U64 (PS_DATA_S64), "1237 "PS_ TYPE_S32 (PS_DATA_S32), "1238 "PS_ TYPE_S64 (PS_DATA_S64), "1239 "PS_ TYPE_F32 (PS_DATA_F32), "1240 "PS_ TYPE_F64 (PS_DATA_F64), "1241 "PS_ TYPE_BOOL (PS_DATA_BOOL), "1390 "PS_DATA_U32 (PS_DATA_S32), " 1391 "PS_DATA_U64 (PS_DATA_S64), " 1392 "PS_DATA_S32 (PS_DATA_S32), " 1393 "PS_DATA_S64 (PS_DATA_S64), " 1394 "PS_DATA_F32 (PS_DATA_F32), " 1395 "PS_DATA_F64 (PS_DATA_F64), " 1396 "PS_DATA_BOOL (PS_DATA_BOOL), " 1242 1397 "PS_DATA_STRING " 1243 1398 "and PS_DATA_TIME are supported."); … … 1916 2071 1917 2072 // no support for CHAR, TEXT or GLOB 1918 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_S8, "TINYINT");1919 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_S16, "SMALLINT");1920 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_S32, "INT");1921 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_S64, "BIGINT");1922 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_U8, "TINYINT UNSIGNED");1923 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_U16, "SMALLINT UNSIGNED");1924 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_U32, "INT UNSIGNED" );1925 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_U64, "BIGINT UNSIGNED");1926 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_F32, "FLOAT");1927 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_F64, "DOUBLE");2073 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_S8, "TINYINT"); 2074 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_S16, "SMALLINT"); 2075 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_S32, "INT"); 2076 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_S64, "BIGINT"); 2077 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_U8, "TINYINT UNSIGNED"); 2078 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_U16, "SMALLINT UNSIGNED"); 2079 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_U32, "INT UNSIGNED" ); 2080 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_U64, "BIGINT UNSIGNED"); 2081 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_F32, "FLOAT"); 2082 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_F64, "DOUBLE"); 1928 2083 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_C32, "PS_TYPE_C32 is not supported"); 1929 2084 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_C64, "PS_TYPE_C64 is not supported"); 1930 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_ TYPE_BOOL,"TINYINT");2085 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_BOOL,"TINYINT"); 1931 2086 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_STRING, "VARCHAR"); 1932 2087 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_TIME, "DATETIME"); … … 2060 2215 pTypeToMysqlLookupTable = psHashAlloc(14); 2061 2216 2062 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_S8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, false));2063 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_S16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, false));2064 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_S32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, false));2065 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_S64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, false));2066 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_U8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true));2067 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_U16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, true));2068 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_U32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, true));2069 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_U64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, true));2070 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_F32, psDBMySQLTypeAlloc(MYSQL_TYPE_FLOAT, false));2071 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_F64, psDBMySQLTypeAlloc(MYSQL_TYPE_DOUBLE, false));2217 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_S8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, false)); 2218 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_S16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, false)); 2219 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_S32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, false)); 2220 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_S64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, false)); 2221 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_U8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true)); 2222 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_U16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, true)); 2223 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_U32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, true)); 2224 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_U64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, true)); 2225 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_F32, psDBMySQLTypeAlloc(MYSQL_TYPE_FLOAT, false)); 2226 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_F64, psDBMySQLTypeAlloc(MYSQL_TYPE_DOUBLE, false)); 2072 2227 // bogus type 2073 2228 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_C32, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 2074 2229 // bogus type 2075 2230 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_C64, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 2076 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_BOOL, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true));2077 // XXX: removed PS_ TYPE_PTR, can this be removed too?2078 // psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_ TYPE_PTR, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));2231 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_BOOL, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true)); 2232 // XXX: removed PS_DATA_PTR, can this be removed too? 2233 // psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_PTR, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 2079 2234 2080 2235 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_STRING, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); … … 2160 2315 2161 2316 switch (pType) { 2162 case PS_ TYPE_S8:2317 case PS_DATA_S8: 2163 2318 PS_NAN_ALLOC(myNaN, psS8, PS_MAX_S8); 2164 2319 break; 2165 case PS_ TYPE_S16:2320 case PS_DATA_S16: 2166 2321 PS_NAN_ALLOC(myNaN, psS16, PS_MAX_S16); 2167 2322 break; 2168 case PS_ TYPE_S32:2323 case PS_DATA_S32: 2169 2324 PS_NAN_ALLOC(myNaN, psS32, PS_MAX_S32); 2170 2325 break; 2171 case PS_ TYPE_S64:2326 case PS_DATA_S64: 2172 2327 PS_NAN_ALLOC(myNaN, psS64, PS_MAX_S64); 2173 2328 break; 2174 case PS_ TYPE_U8:2329 case PS_DATA_U8: 2175 2330 PS_NAN_ALLOC(myNaN, psU8, PS_MAX_U8); 2176 2331 break; 2177 case PS_ TYPE_U16:2332 case PS_DATA_U16: 2178 2333 PS_NAN_ALLOC(myNaN, psU16, PS_MAX_U16); 2179 2334 break; 2180 case PS_ TYPE_U32:2335 case PS_DATA_U32: 2181 2336 PS_NAN_ALLOC(myNaN, psU32, PS_MAX_U32); 2182 2337 break; 2183 case PS_ TYPE_U64:2338 case PS_DATA_U64: 2184 2339 PS_NAN_ALLOC(myNaN, psU64, PS_MAX_U64); 2185 2340 break; 2186 case PS_ TYPE_F32:2341 case PS_DATA_F32: 2187 2342 PS_NAN_ALLOC(myNaN, psF32, NAN); 2188 2343 break; 2189 case PS_ TYPE_F64:2344 case PS_DATA_F64: 2190 2345 PS_NAN_ALLOC(myNaN, psF64, NAN); 2191 2346 break; … … 2198 2353 PS_NAN_ALLOC(myNaN, psC64, NAN); 2199 2354 break; 2200 case PS_ TYPE_BOOL:2355 case PS_DATA_BOOL: 2201 2356 // XXX: what is NaN for a bool? 2202 2357 PS_NAN_ALLOC(myNaN, psU8, PS_MAX_U8); … … 2215 2370 2216 2371 switch (pType) { 2217 case PS_ TYPE_S8:2372 case PS_DATA_S8: 2218 2373 isNaN = PS_IS_NAN(psS8, data, PS_MAX_S8); 2219 2374 break; 2220 case PS_ TYPE_S16:2375 case PS_DATA_S16: 2221 2376 isNaN = PS_IS_NAN(psS16, data, PS_MAX_S16); 2222 2377 break; 2223 case PS_ TYPE_S32:2378 case PS_DATA_S32: 2224 2379 isNaN = PS_IS_NAN(psS32, data, PS_MAX_S32); 2225 2380 break; 2226 case PS_ TYPE_S64:2381 case PS_DATA_S64: 2227 2382 isNaN = PS_IS_NAN(psS64, data, PS_MAX_S64); 2228 2383 break; 2229 case PS_ TYPE_U8:2384 case PS_DATA_U8: 2230 2385 isNaN = PS_IS_NAN(psU8, data, PS_MAX_U8); 2231 2386 break; 2232 case PS_ TYPE_U16:2387 case PS_DATA_U16: 2233 2388 isNaN = PS_IS_NAN(psU16, data, PS_MAX_U16); 2234 2389 break; 2235 case PS_ TYPE_U32:2390 case PS_DATA_U32: 2236 2391 isNaN = PS_IS_NAN(psU32, data, PS_MAX_U32); 2237 2392 break; 2238 case PS_ TYPE_U64:2393 case PS_DATA_U64: 2239 2394 isNaN = PS_IS_NAN(psU64, data, PS_MAX_U64); 2240 2395 break; 2241 case PS_ TYPE_F32:2396 case PS_DATA_F32: 2242 2397 isNaN = PS_IS_NAN(psF32, data, NAN); 2243 2398 break; 2244 case PS_ TYPE_F64:2399 case PS_DATA_F64: 2245 2400 isNaN = PS_IS_NAN(psF64, data, NAN); 2246 2401 break; … … 2253 2408 isNaN = PS_IS_NAN(psC64, data, NAN); 2254 2409 break; 2255 case PS_ TYPE_BOOL:2410 case PS_DATA_BOOL: 2256 2411 // XXX: what is NaN for a bool? 2257 2412 isNaN = PS_IS_NAN(psU8, data, PS_MAX_U8);
Note:
See TracChangeset
for help on using the changeset viewer.
