diff options
author | drh <drh@noemail.net> | 2017-07-06 13:51:50 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2017-07-06 13:51:50 +0000 |
commit | 9d8e401c2dbfeb3b8e841afb534d3098f5cc09d3 (patch) | |
tree | 33a0f58f8fbf7589200da9b881ae3110509c23ec /src/func.c | |
parent | ebaaa67db22cc4831b988ed609649a9e5fd4f8ad (diff) | |
download | sqlite-9d8e401c2dbfeb3b8e841afb534d3098f5cc09d3.tar.gz sqlite-9d8e401c2dbfeb3b8e841afb534d3098f5cc09d3.zip |
More compact implementation of the typeof() SQL function.
FossilOrigin-Name: efb4aab0caa4145732a5438cc2a193bc12c455b4007220564d240e75900ea8ad
Diffstat (limited to 'src/func.c')
-rw-r--r-- | src/func.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/func.c b/src/func.c index 3d5a059a9..e59432e37 100644 --- a/src/func.c +++ b/src/func.c @@ -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); } |