From: drh Date: Tue, 20 Jul 2004 00:20:46 +0000 (+0000) Subject: Correct handling of views on tables with quoted column names. Ticket #756. (CVS... X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0e934424944d11f2c333de559e1edee3808becc5;p=thirdparty%2Fsqlite.git Correct handling of views on tables with quoted column names. Ticket #756. (CVS 1827) FossilOrigin-Name: ef0d5ebe96b9babe275d62ed6abe95652838de5f --- diff --git a/manifest b/manifest index 747aba6ebd..12ce254370 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Limit\soccurs\safter\sDISTINCT.\s\sTicket\s#749.\s(CVS\s1824) -D 2004-07-19T23:33:03 +C Correct\shandling\sof\sviews\son\stables\swith\squoted\scolumn\snames.\s\sTicket\s#756.\s(CVS\s1827) +D 2004-07-20T00:20:47 F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd @@ -46,7 +46,7 @@ F src/parse.y 023720cb8c3bef74e51738bca78335d0dc6d2cfd F src/pragma.c f9c157b0591419d2d3407dac90222020d2a6d822 F src/printf.c 378ec63d9303993eef24814a56a9fc7260aacbea F src/random.c 775913e0b7fbd6295d21f12a7bd35b46387c44b2 -F src/select.c 894bdac9404d1a42097e0c9717b644f762bf9b5e +F src/select.c 05218c258f15efe3671cc5580277e4166239dd54 F src/shell.c 920af040d3a33ea8919c82cee45b424ad841cee0 F src/sqlite.h.in 35bec264dfb4965bbfeb7e75221f8658f210c30d F src/sqliteInt.h 3e9203f16d12baf3a364fae9d64903d813651abd @@ -146,7 +146,7 @@ F test/unique.test 0e38d4cc7affeef2527720d1dafd1f6870f02f2b F test/update.test b29bd9061a1150426dab6959806fcc73a41b1217 F test/vacuum.test a2a44544df719666efb51afbfeb6062fd59a672a F test/version.test 92adee5d98cf6e3eb0d1cf5186952e8114931bf6 -F test/view.test 1ee12c6f8f4791a2c0655120d5562a49400cfe53 +F test/view.test ac151928890d17716d5c1f7acc5924af61a7dacf F test/where.test cb3a2ed062ce4b5f08aff2d08027c6a46d68c47b F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b F tool/lemon.c db6a3bfaf3388c0f7aea3adb5e05acddcd427016 @@ -189,7 +189,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4 -P 0cc612f8aa458034d3dc246861c529c57ac5b2b1 -R ac26673074971ea42a1c00adb7738364 +P db5ae13db3edec82dd2ead3b76fc9f89f33b2dc2 +R e16d653d018602be1f19944b4f6597e0 U drh -Z 92f099eb6b982fdc1c22acb201e5fa38 +Z 9b8e15d2f6d27acf7fe448eb52d58528 diff --git a/manifest.uuid b/manifest.uuid index 90db777a2f..2285542a16 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -db5ae13db3edec82dd2ead3b76fc9f89f33b2dc2 \ No newline at end of file +ef0d5ebe96b9babe275d62ed6abe95652838de5f \ No newline at end of file diff --git a/src/select.c b/src/select.c index 5e48d714ae..38135035b3 100644 --- a/src/select.c +++ b/src/select.c @@ -12,7 +12,7 @@ ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** -** $Id: select.c,v 1.161.2.2 2004/07/19 23:33:03 drh Exp $ +** $Id: select.c,v 1.161.2.3 2004/07/20 00:20:47 drh Exp $ */ #include "sqliteInt.h" @@ -825,8 +825,9 @@ Table *sqliteResultSetOfSelect(Parse *pParse, char *zTabName, Select *pSelect){ }else{ char zBuf[30]; sprintf(zBuf, "column%d", i+1); - pTab->aCol[i].zName = sqliteStrDup(zBuf); + aCol[i].zName = sqliteStrDup(zBuf); } + sqliteDequote(aCol[i].zName); } pTab->iPKey = -1; return pTab; diff --git a/test/view.test b/test/view.test index 539a737ecb..fc15a62099 100644 --- a/test/view.test +++ b/test/view.test @@ -11,7 +11,7 @@ # This file implements regression tests for SQLite library. The # focus of this file is testing VIEW statements. # -# $Id: view.test,v 1.16 2003/05/31 16:21:13 drh Exp $ +# $Id: view.test,v 1.16.2.1 2004/07/20 00:20:47 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl @@ -385,5 +385,23 @@ do_test view-9.6 { } } {3 4 4 2 5 1} +# Tables with columns having peculiar quoted names used in views +# Ticket #756. +# +do_test view-10.1 { + execsql { + CREATE TABLE t3("9" integer, [4] text); + INSERT INTO t3 VALUES(1,2); + CREATE VIEW v_t3_a AS SELECT a.[9] FROM t3 AS a; + CREATE VIEW v_t3_b AS SELECT "4" FROM t3; + SELECT * FROM v_t3_a; + } +} {1} +do_test view-10.2 { + execsql { + SELECT * FROM v_t3_b; + } +} {2} + finish_test