More compact implementation of the typeof() SQL function.

FossilOrigin-Name: efb4aab0caa4145732a5438cc2a193bc12c455b4007220564d240e75900ea8ad
This commit is contained in:
drh
2017-07-06 13:51:50 +00:00
parent ebaaa67db2
commit 9d8e401c2d
3 changed files with 16 additions and 16 deletions
+9 -9
View File
@@ -76,16 +76,16 @@ static void typeofFunc(
int NotUsed,
sqlite3_value **argv
){
const char *z = 0;
static const char *azType[] = { "integer", "real", "text", "blob", "null" };
int i = sqlite3_value_type(argv[0]) - 1;
UNUSED_PARAMETER(NotUsed);
switch( sqlite3_value_type(argv[0]) ){
case SQLITE_INTEGER: z = "integer"; break;
case SQLITE_TEXT: z = "text"; break;
case SQLITE_FLOAT: z = "real"; break;
case SQLITE_BLOB: z = "blob"; break;
default: z = "null"; break;
}
sqlite3_result_text(context, z, -1, SQLITE_STATIC);
assert( i>=0 && i<ArraySize(azType) );
assert( SQLITE_INTEGER==1 );
assert( SQLITE_FLOAT==2 );
assert( SQLITE_TEXT==3 );
assert( SQLITE_BLOB==4 );
assert( SQLITE_NULL==5 );
sqlite3_result_text(context, azType[i], -1, SQLITE_STATIC);
}