]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
When comparing names during name resolution, make sure the names match
authordrh <drh@noemail.net>
Tue, 26 Feb 2013 12:57:42 +0000 (12:57 +0000)
committerdrh <drh@noemail.net>
Tue, 26 Feb 2013 12:57:42 +0000 (12:57 +0000)
exactly and that one name isn't merely a prefix of the other.
Fix for ticket [7a31705a7e6c95d51].

FossilOrigin-Name: c2d5a23b1ab39918e97c596cf75c42f86a5fe2b7

manifest
manifest.uuid
src/resolve.c
test/tkt-7a31705a7e6.test [new file with mode: 0644]

index 4aae897e11caaacdbd80b1553f6640b0621b09b8..1f2fb128abb44d6e81884af7132ed2e3139297a8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Change\sthe\sway\stest\sscript\sincrvacuum3.test\scopies\sdatabase\sfiles\sin\sorder\sto\savoid\strying\sto\sread\sthe\s(locked)\s512\sbyte\s'pending-byte'\sregion.
-D 2013-02-26T06:14:27.544
+C When\scomparing\snames\sduring\sname\sresolution,\smake\ssure\sthe\snames\smatch\nexactly\sand\sthat\sone\sname\sisn't\smerely\sa\sprefix\sof\sthe\sother.\nFix\sfor\sticket\s[7a31705a7e6c95d51].
+D 2013-02-26T12:57:42.514
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in a48faa9e7dd7d556d84f5456eabe5825dd8a6282
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -172,7 +172,7 @@ F src/pragma.c bdb484d0283965c431d4153f28c30f836a1f16b1
 F src/prepare.c 931ad0d852a0df48f79adcba6ce79ca5f475625c
 F src/printf.c 4a9f882f1c1787a8b494a2987765acf9d97ac21f
 F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
-F src/resolve.c 652ae6dc0f185b01b4536bb2fa7d878f13f0f1df
+F src/resolve.c 9079da7d59aed2bb14ec8315bc7f720dd85b5b65
 F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
 F src/select.c e1c6f6abdf9f359f4e735cb8ae11d2f359bf52a9
 F src/shell.c 7c41bfcd9e5bf9d96b9215f79b03a5b2b44a3bca
@@ -784,6 +784,7 @@ F test/tkt-5e10420e8d.test 904d1687b3c06d43e5b3555bbcf6802e7c0ffd84
 F test/tkt-5ee23731f.test 9db6e1d7209dc0794948b260d6f82b2b1de83a9f
 F test/tkt-752e1646fc.test ea78d88d14fe9866bdd991c634483334639e13bf
 F test/tkt-78e04e52ea.test 703e0bfb23d543edf0426a97e3bbd0ca346508ec
+F test/tkt-7a31705a7e6.test 5a7889fdb095ffbe1622413e0145de1637d421bd
 F test/tkt-7bbfb7d442.test dfa5c8097a8c353ae40705d6cddeb1f99c18b81a
 F test/tkt-80ba201079.test 105a721e6aad0ae3c5946d7615d1e4d03f6145b8
 F test/tkt-80e031a00f.test 9a154173461a4dbe2de49cda73963e04842d52f7
@@ -1035,7 +1036,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P 6d7973524a7d3bf3158fdac58975945da7f51740
-R 538583335e104793ae2aa040823d6e4d
-U dan
-Z 05d687700aaf72f6488f6d2b4316e01c
+P fa1842e462049b1366909fe36d6d81b634be3953
+R f34c00396e68edbafc7e03b1d894fd28
+U drh
+Z a7d367b0a7c33935bece18346d0a84c6
index e6aa0cf57e19fca99e2af88fab7c5f7442d39ead..d756f270b9c0d657a1d98ad18a3dbfe27ec692b1 100644 (file)
@@ -1 +1 @@
-fa1842e462049b1366909fe36d6d81b634be3953
\ No newline at end of file
+c2d5a23b1ab39918e97c596cf75c42f86a5fe2b7
\ No newline at end of file
index f8cd9e5ab2cbd7f03e0831b7caeb709251c128fb..0380138678992844c89ac9985020d8c5ee83f93c 100644 (file)
@@ -165,12 +165,12 @@ int sqlite3MatchSpanName(
 ){
   int n;
   for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}
-  if( zDb && sqlite3StrNICmp(zSpan, zDb, n)!=0 ){
+  if( zDb && (sqlite3StrNICmp(zSpan, zDb, n)!=0 || zDb[n]!=0) ){
     return 0;
   }
   zSpan += n+1;
   for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){}
-  if( zTab && sqlite3StrNICmp(zSpan, zTab, n)!=0 ){
+  if( zTab && (sqlite3StrNICmp(zSpan, zTab, n)!=0 || zTab[n]!=0) ){
     return 0;
   }
   zSpan += n+1;
diff --git a/test/tkt-7a31705a7e6.test b/test/tkt-7a31705a7e6.test
new file mode 100644 (file)
index 0000000..6470122
--- /dev/null
@@ -0,0 +1,26 @@
+# 2013 February 26
+#
+# The author disclaims copyright to this source code.  In place of
+# a legal notice, here is a blessing:
+#
+#    May you do good and not evil.
+#    May you find forgiveness for yourself and forgive others.
+#    May you share freely, never taking more than you give.
+#
+#***********************************************************************
+#
+# This file implements regression tests for SQLite library. Specifically,
+# it tests that ticket [7a31705a7e6c95d514e6f20a6900f436bbc9fed8] in the
+# name resolver has been fixed.
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+
+do_execsql_test tkt-7a31705a7e6-1.1 {
+  CREATE TABLE t1 (a INTEGER PRIMARY KEY);
+  CREATE TABLE t2 (a INTEGER PRIMARY KEY, b INTEGER);
+  CREATE TABLE t2x (b INTEGER PRIMARY KEY);
+  SELECT t1.a FROM ((t1 JOIN t2 ON t1.a=t2.a) AS x JOIN t2x ON x.b=t2x.b) as y;
+} {}
+