aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pragma.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/pragma.c b/src/pragma.c
index 2c127ed5a..9c292e163 100644
--- a/src/pragma.c
+++ b/src/pragma.c
@@ -307,7 +307,6 @@ static void pragmaFunclistLine(
){
for(; p; p=p->pNext){
const char *zType;
- const char *zEnc;
static const u32 mask =
SQLITE_DETERMINISTIC |
SQLITE_DIRECTONLY |
@@ -315,6 +314,12 @@ static void pragmaFunclistLine(
SQLITE_INNOCUOUS |
SQLITE_FUNC_INTERNAL
;
+ static const char *azEnc[] = { 0, "utf8", "utf16le", "utf16be" };
+
+ assert( SQLITE_FUNC_ENCMASK==0x3 );
+ assert( strcmp(azEnc[SQLITE_UTF8],"utf8")==0 );
+ assert( strcmp(azEnc[SQLITE_UTF16LE],"utf16le")==0 );
+ assert( strcmp(azEnc[SQLITE_UTF16BE],"utf16be")==0 );
if( p->xSFunc==0 ) continue;
if( (p->funcFlags & SQLITE_FUNC_INTERNAL)!=0
@@ -329,16 +334,9 @@ static void pragmaFunclistLine(
}else{
zType = "s";
}
- if( p->funcFlags & SQLITE_UTF8 ){
- zEnc = "utf8";
- }else if( p->funcFlags & SQLITE_UTF16BE ){
- zEnc = "utf16be";
- }else{
- zEnc = "utf16le";
- }
sqlite3VdbeMultiLoad(v, 1, "sissii",
p->zName, isBuiltin,
- zType, zEnc,
+ zType, azEnc[p->funcFlags&SQLITE_FUNC_ENCMASK],
p->nArg,
(p->funcFlags & mask) ^ SQLITE_INNOCUOUS
);