From 859bc542c6ea1cbca600da863bce8c0207319611 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 13 Jan 2014 20:32:18 +0000 Subject: [PATCH 1/4] For statements of just an unadorned VALUES clause, assign column names as "columnN" for increasing whole numbers N. FossilOrigin-Name: 260587d2727f66d7fd65ef672ee46c92024f1d30 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/select.c | 5 +++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 03003dd0c5..f27dba4a8e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C In\sLEMON,\slimit\sthe\ssize\sof\sthe\sgrammar\sfile\sto\s100MB.\s\sThis\sensures\sthat\nthe\sprogram\swill\snever\sexperience\sinteger\soverflow.\s\sTo\sbe\sdoubly\ssure,\nuse\scalloc()\sinstead\sof\smalloc()\swhen\sallocating\sarrays. -D 2014-01-11T12:52:25.201 +C For\sstatements\sof\sjust\san\sunadorned\sVALUES\sclause,\sassign\scolumn\snames\nas\s"columnN"\sfor\sincreasing\swhole\snumbers\sN. +D 2014-01-13T20:32:18.451 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -219,7 +219,7 @@ F src/printf.c 85d07756e45d7496d19439dcae3e6e9e0090f269 F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece F src/resolve.c 7eda9097b29fcf3d2b42fdc17d1de672134e09b6 F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0 -F src/select.c 819bb090c9a348d17f69f136cad2bfa9ee9cbb41 +F src/select.c 996d8b88603edbd478aaa70b75d535a3ddea933d F src/shell.c a3541193d5fce37e91dad8ef46a9505aa7c9b344 F src/sqlite.h.in d94a8b89522f526ba711182ee161e06f8669bcc9 F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e @@ -1148,7 +1148,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff -P cb5d1f83e0a33d546d4c0cb817ef1f8440d1f738 -R 28679f157b50c114aa03e50f74a7a104 +P 29ba458d849ad8864711cbe59fb10447a947e06a +R cfc0f0611de592f2675967818ec833a9 U drh -Z 608e7b6009060d93ac39bb2434b3c874 +Z 9bc6839af49500894d0d88a693460511 diff --git a/manifest.uuid b/manifest.uuid index d8b23d3f34..169cbd691e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -29ba458d849ad8864711cbe59fb10447a947e06a \ No newline at end of file +260587d2727f66d7fd65ef672ee46c92024f1d30 \ No newline at end of file diff --git a/src/select.c b/src/select.c index d075116749..5845897409 100644 --- a/src/select.c +++ b/src/select.c @@ -1363,8 +1363,9 @@ static void generateColumnNames( sqlite3VdbeSetColName(v, i, COLNAME_NAME, zCol, SQLITE_TRANSIENT); } }else{ - sqlite3VdbeSetColName(v, i, COLNAME_NAME, - sqlite3DbStrDup(db, pEList->a[i].zSpan), SQLITE_DYNAMIC); + const char *z = pEList->a[i].zSpan; + z = z==0 ? sqlite3MPrintf(db, "column%d", i+1) : sqlite3DbStrDup(db, z); + sqlite3VdbeSetColName(v, i, COLNAME_NAME, z, SQLITE_DYNAMIC); } } generateColumnTypes(pParse, pTabList, pEList); From c3d6ba49c6b78ca807a68ee6d0e403c073793540 Mon Sep 17 00:00:00 2001 From: drh Date: Mon, 13 Jan 2014 20:38:35 +0000 Subject: [PATCH 2/4] In the command-line shell, defend against a NULL-pointer dereference in the case where sqlite3_column_name() returns NULL (as might happen following an OOM error). FossilOrigin-Name: ac15455abcb9bdb88b53129348668a1442f6899f --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/shell.c | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index f27dba4a8e..e68fe680fc 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C For\sstatements\sof\sjust\san\sunadorned\sVALUES\sclause,\sassign\scolumn\snames\nas\s"columnN"\sfor\sincreasing\swhole\snumbers\sN. -D 2014-01-13T20:32:18.451 +C In\sthe\scommand-line\sshell,\sdefend\sagainst\sa\sNULL-pointer\sdereference\sin\sthe\ncase\swhere\ssqlite3_column_name()\sreturns\sNULL\s(as\smight\shappen\sfollowing\san\nOOM\serror). +D 2014-01-13T20:38:35.227 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -220,7 +220,7 @@ F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece F src/resolve.c 7eda9097b29fcf3d2b42fdc17d1de672134e09b6 F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0 F src/select.c 996d8b88603edbd478aaa70b75d535a3ddea933d -F src/shell.c a3541193d5fce37e91dad8ef46a9505aa7c9b344 +F src/shell.c 9f3bc02a658b8f61d2cbe60cfc482f660c1c6c48 F src/sqlite.h.in d94a8b89522f526ba711182ee161e06f8669bcc9 F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc @@ -1148,7 +1148,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff -P 29ba458d849ad8864711cbe59fb10447a947e06a -R cfc0f0611de592f2675967818ec833a9 +P 260587d2727f66d7fd65ef672ee46c92024f1d30 +R 10a3b37371baf3bb8cfb66250579708d U drh -Z 9bc6839af49500894d0d88a693460511 +Z b723d9f207dc3deb542b9214e1e7a09c diff --git a/manifest.uuid b/manifest.uuid index 169cbd691e..ffa41c2bbd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -260587d2727f66d7fd65ef672ee46c92024f1d30 \ No newline at end of file +ac15455abcb9bdb88b53129348668a1442f6899f \ No newline at end of file diff --git a/src/shell.c b/src/shell.c index 00cff6a8e5..b5ce90208c 100644 --- a/src/shell.c +++ b/src/shell.c @@ -597,6 +597,7 @@ static void output_c_string(FILE *out, const char *z){ */ static void output_html_string(FILE *out, const char *z){ int i; + if( z==0 ) z = ""; while( *z ){ for(i=0; z[i] && z[i]!='<' From 866b53eb5a4efabf6a958cbf541bb949b4439b1e Mon Sep 17 00:00:00 2001 From: mistachkin Date: Tue, 14 Jan 2014 10:17:02 +0000 Subject: [PATCH 3/4] For the Win32 VFS, defining winShmMutexHeld should be controlled by NDEBUG, not SQLITE_DEBUG. FossilOrigin-Name: 1e131094b522103a0829f72193b067b04e42ce82 --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/os_win.c | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index e68fe680fc..9bf7f9b689 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C In\sthe\scommand-line\sshell,\sdefend\sagainst\sa\sNULL-pointer\sdereference\sin\sthe\ncase\swhere\ssqlite3_column_name()\sreturns\sNULL\s(as\smight\shappen\sfollowing\san\nOOM\serror). -D 2014-01-13T20:38:35.227 +C For\sthe\sWin32\sVFS,\sdefining\swinShmMutexHeld\sshould\sbe\scontrolled\sby\sNDEBUG,\snot\sSQLITE_DEBUG. +D 2014-01-14T10:17:02.428 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -206,7 +206,7 @@ F src/os.c 1b147e4cf7cc39e618115c14a086aed44bc91ace F src/os.h 4a46270a64e9193af4a0aaa3bc2c66dc07c29b3f F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04 F src/os_unix.c 3a4dcb554d3c915075766162f28c3fd4cdb75968 -F src/os_win.c 16eac0961603182ffc10c02b39fe830126538e07 +F src/os_win.c 1b21af72c5fa6f9e519a5fcab33e80d182b1aedb F src/pager.c efa923693e958696eee69b205a20bfbc402c8480 F src/pager.h ffd5607f7b3e4590b415b007a4382f693334d428 F src/parse.y 3c5384533a8bfce5abd256cc9cb2c38bec05ad61 @@ -1148,7 +1148,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff -P 260587d2727f66d7fd65ef672ee46c92024f1d30 -R 10a3b37371baf3bb8cfb66250579708d -U drh -Z b723d9f207dc3deb542b9214e1e7a09c +P ac15455abcb9bdb88b53129348668a1442f6899f +R 455bba3b3836db70e207929cfbe74107 +U mistachkin +Z 3f9ab398a4d1da777d1daf83b531e5c4 diff --git a/manifest.uuid b/manifest.uuid index ffa41c2bbd..727b07185c 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -ac15455abcb9bdb88b53129348668a1442f6899f \ No newline at end of file +1e131094b522103a0829f72193b067b04e42ce82 \ No newline at end of file diff --git a/src/os_win.c b/src/os_win.c index faa60569c9..4fb4f02703 100644 --- a/src/os_win.c +++ b/src/os_win.c @@ -3224,7 +3224,7 @@ static void winShmEnterMutex(void){ static void winShmLeaveMutex(void){ sqlite3_mutex_leave(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER)); } -#ifdef SQLITE_DEBUG +#ifndef NDEBUG static int winShmMutexHeld(void) { return sqlite3_mutex_held(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_MASTER)); } From 7a429658d7e38e0ff52a9f0591a17fd9cb71929d Mon Sep 17 00:00:00 2001 From: mistachkin Date: Tue, 14 Jan 2014 10:17:21 +0000 Subject: [PATCH 4/4] Fix harmless compiler warning in LEMON. FossilOrigin-Name: f61a70589ac7e05008a362bd9d5b7bde5d07a758 --- manifest | 12 ++++++------ manifest.uuid | 2 +- tool/lemon.c | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/manifest b/manifest index 9bf7f9b689..b7d3993e06 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C For\sthe\sWin32\sVFS,\sdefining\swinShmMutexHeld\sshould\sbe\scontrolled\sby\sNDEBUG,\snot\sSQLITE_DEBUG. -D 2014-01-14T10:17:02.428 +C Fix\sharmless\scompiler\swarning\sin\sLEMON. +D 2014-01-14T10:17:21.693 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -1109,7 +1109,7 @@ F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439 F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4 F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5 F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce -F tool/lemon.c 6842b2e7af12835f9f6e55808a0b1861cd0696fe +F tool/lemon.c 07aba6270d5a5016ba8107b09e431eea4ecdc123 F tool/lempar.c 01ca97f87610d1dac6d8cd96ab109ab1130e76dc F tool/logest.c 7ad625cac3d54012b27d468b7af6612f78b9ba75 F tool/mkautoconfamal.sh f8d8dbf7d62f409ebed5134998bf5b51d7266383 @@ -1148,7 +1148,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff -P ac15455abcb9bdb88b53129348668a1442f6899f -R 455bba3b3836db70e207929cfbe74107 +P 1e131094b522103a0829f72193b067b04e42ce82 +R fe4a4148cfbc4d588ee2679597656da4 U mistachkin -Z 3f9ab398a4d1da777d1daf83b531e5c4 +Z d589f5ec7c09b4ac8c97497c20166016 diff --git a/manifest.uuid b/manifest.uuid index 727b07185c..d14b8afba5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -1e131094b522103a0829f72193b067b04e42ce82 \ No newline at end of file +f61a70589ac7e05008a362bd9d5b7bde5d07a758 \ No newline at end of file diff --git a/tool/lemon.c b/tool/lemon.c index 8dca20c451..d7179ad423 100644 --- a/tool/lemon.c +++ b/tool/lemon.c @@ -83,7 +83,7 @@ static void lemon_addtext( zBuf[*pnUsed] = 0; } static int lemon_vsprintf(char *str, const char *zFormat, va_list ap){ - int i, j, k, c, size; + int i, j, k, c; int nUsed = 0; const char *z; char zTemp[50];