From f7ee8965a5f36fd6dbd9469784ab6e539cea950d Mon Sep 17 00:00:00 2001 From: drh Date: Sun, 15 Nov 2015 11:13:49 +0000 Subject: [PATCH] Fix the column name uniquifier so that it works with zero-length column names. FossilOrigin-Name: 791761ebac26c82ab67bdf867117ec5b5d8b20b0 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/select.c | 6 ++++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/manifest b/manifest index 8371747542..7784ab59fa 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Code\ssimplification\sin\ssqlite3ColumnsFromExprList().\s\sUpdate\sthe\s%z\sformat\ncode\sso\sthat\sit\sworks\swith\sbuffers\sobtained\sfrom\ssqlite3DbMalloc().\s\sAdd\sa\ntestcase\sfor\sthe\sslow\scolumn\sname\suniquifier. -D 2015-11-14T22:04:22.826 +C Fix\sthe\scolumn\sname\suniquifier\sso\sthat\sit\sworks\swith\szero-length\scolumn\snames. +D 2015-11-15T11:13:49.647 F Makefile.in d828db6afa6c1fa060d01e33e4674408df1942a1 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc e928e68168df69b353300ac87c10105206653a03 @@ -339,7 +339,7 @@ F src/printf.c f8fc8f04e75b1e983ef2793c27ec7a43b287e94a F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c 1954a0f01bf65d78d7d559aea3d5c67f33376d91 F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e -F src/select.c 1854c85ba100a9f76bf8cf47d4ae59a2ae799ef0 +F src/select.c 4c58ae319df6862e5ea237e757b5d317c4491798 F src/shell.c acefb4593a9bf0338a757c968f1f1bb05690d830 F src/sqlite.h.in fa62718f73553f06b2f2e362fd09ccb4e1cbb626 F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad @@ -1403,7 +1403,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 5b08f29f458c600401860c7d70d8174cf61e69f8 -R 4914cc3a8ed45c6aa86aea7a39b8ba36 +P 9272426057b6cb2d913519ff4c97aa6e211f7d51 +R a974c67769be53d36ddc37d671cc0607 U drh -Z 01b4ba6f26cc34a60c8e736ca788d377 +Z f40155003991429935f69f917db4e724 diff --git a/manifest.uuid b/manifest.uuid index 2212eca514..571a15823a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9272426057b6cb2d913519ff4c97aa6e211f7d51 \ No newline at end of file +791761ebac26c82ab67bdf867117ec5b5d8b20b0 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 2265d4c9f9..126d4cc282 100644 --- a/src/select.c +++ b/src/select.c @@ -1651,8 +1651,10 @@ int sqlite3ColumnsFromExprList( cnt = 0; while( zName && sqlite3HashFind(&ht, zName)!=0 ){ nName = sqlite3Strlen30(zName); - for(j=nName-1; j>0 && sqlite3Isdigit(zName[j]); j--){} - if( zName[j]==':' ) nName = j; + if( nName>0 ){ + for(j=nName-1; j>0 && sqlite3Isdigit(zName[j]); j--){} + if( zName[j]==':' ) nName = j; + } zName = sqlite3MPrintf(db, "%.*z:%u", nName, zName, ++cnt); if( cnt>3 ) sqlite3_randomness(sizeof(cnt), &cnt); } -- 2.47.2