]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Disallow access to the rowid column on WITHOUT ROWID virtual tables.
authordrh <drh@noemail.net>
Fri, 3 Jun 2016 17:27:14 +0000 (17:27 +0000)
committerdrh <drh@noemail.net>
Fri, 3 Jun 2016 17:27:14 +0000 (17:27 +0000)
FossilOrigin-Name: d31c25972bfb6d04caad05534505698776e7e6d5

manifest
manifest.uuid
src/vtab.c
test/csv01.test

index 21eb765e24b4885128a65f518f78ea4abf34b9f6..14b0bedf9c4b28eb6828a181bd776e39fe6bcb97 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Performance\soptimizations\son\sthe\sCSV\svirtual\stable.\s\sDisallow\sWITHOUT\sROWID\nvirtual\stables\sthat\shave\san\sxUpdate\smethod,\sfor\snow.
-D 2016-06-03T01:01:57.592
+C Disallow\saccess\sto\sthe\srowid\scolumn\son\sWITHOUT\sROWID\svirtual\stables.
+D 2016-06-03T17:27:14.741
 F Makefile.in 7321ef0b584224781ec7731408857fa8962c32cc
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 831503fc4e988f571590af1405645fff121b5f1e
@@ -456,7 +456,7 @@ F src/vdbeblob.c c9f2f494b911c6fa34efd9803f0a10807da80f77
 F src/vdbemem.c 5cfef60e60e19cab6275d1b975bf4c791d575beb
 F src/vdbesort.c 91fda3909326860382b0ca8aa251e609c6a9d62c
 F src/vdbetrace.c f75c5455d8cf389ef86a8bfdfd3177e0e3692484
-F src/vtab.c a9e8175477539660814a4704e8eaba6df3678651
+F src/vtab.c 7a143175f5586d99f78f61b43a563caa03eb4d63
 F src/vxworks.h d2988f4e5a61a4dfe82c6524dd3d6e4f2ce3cdb9
 F src/wal.c 02eeecc265f6ffd0597378f5d8ae9070b62a406a
 F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c
@@ -612,7 +612,7 @@ F test/crashM.test d95f59046fa749b0d0822edf18a717788c8f318d
 F test/crashtest1.c 09c1c7d728ccf4feb9e481671e29dda5669bbcc2
 F test/createtab.test b5de160630b209c4b8925bdcbbaf48cc90b67fe8
 F test/cse.test 277350a26264495e86b1785f34d2d0c8600e021c
-F test/csv01.test 69aecc17f11f597390b47700aec8d748b8364140
+F test/csv01.test 0929a9ce47021519512be92861f29e32d2538e5f
 F test/ctime.test 7bd009071e242aac4f18521581536b652b789a47
 F test/cursorhint.test 7bc346788390475e77a345da2b92270d04d35856
 F test/date.test 984ac1e3e5e031386866f034006148d3972b4a65
@@ -1498,7 +1498,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 95f483e86e30ae68108904400e18ed41d389446b
-R 110a9ed97c9cb7052ae396116c46b04d
+P 3134b3266c36c9d018e8d365ef46ef638c0792f4
+R 6bd90244b320ac429cd2120cdab002d9
 U drh
-Z 863bf523824cd922d795a07ca8451a6d
+Z 5fa00a97540dd1b5ac1a6e73a3f78ebc
index 935a081c067f8dadb02b7aafe8d0bb79a9ccb886..0f61bc85867f243c764a2f5d53a33ad4bf5c92fe 100644 (file)
@@ -1 +1 @@
-3134b3266c36c9d018e8d365ef46ef638c0792f4
\ No newline at end of file
+d31c25972bfb6d04caad05534505698776e7e6d5
\ No newline at end of file
index 30cdd43e4bf678a0c54fbd72dbcd498a4f09bdc3..eeef64c67abea494db34e12761f60a757cef5036 100644 (file)
@@ -758,7 +758,7 @@ int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){
         Index *pIdx;
         pTab->aCol = pNew->aCol;
         pTab->nCol = pNew->nCol;
-        pTab->tabFlags |= pNew->tabFlags & TF_WithoutRowid;
+        pTab->tabFlags |= pNew->tabFlags & (TF_WithoutRowid|TF_NoVisibleRowid);
         pNew->nCol = 0;
         pNew->aCol = 0;
         assert( pTab->pIndex==0 );
index ba3a947dfcb46b385a0f6b0532a1d6d8fc7edd99..a6fff81c3f64ffffbd1f9f399a6a007d442fa992 100644 (file)
@@ -88,6 +88,11 @@ do_execsql_test 3.1 {
   SELECT a FROM t3 WHERE +b=6 OR c=7 OR d=12 ORDER BY +a;
 } {5 9}
 
+# The rowid column is not visible on a WITHOUT ROWID virtual table
+do_catchsql_test 3.2 {
+  SELECT rowid, a FROM t3;
+} {1 {no such column: rowid}}
+
 do_catchsql_test 4.0 {
   DROP TABLE t3;
   CREATE VIRTUAL TABLE temp.t4 USING csv_wr(