]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make sure that NULL results from OP_Column are fully and completely NULL and do not...
authordrh <drh@noemail.net>
Wed, 12 Nov 2014 14:07:28 +0000 (14:07 +0000)
committerdrh <drh@noemail.net>
Wed, 12 Nov 2014 14:07:28 +0000 (14:07 +0000)
FossilOrigin-Name: e1017745e183f5d7429ce787ec2feef946a24f0f

manifest
manifest.uuid
src/vdbe.c
test/table.test

index 0e3e6a9ff4d09dd43fad31a9011de98ff8cca3f0..e65236197506ea51baaee0b5d2d9dbaf00c72b94 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C This\sis\sa\scherry-pick\sof\sversion\s[b5df5ac052].
-D 2014-11-11T22:55:26.891
+C Make\ssure\sthat\sNULL\sresults\sfrom\sOP_Column\sare\sfully\sand\scompletely\sNULL\sand\sdo\snot\shave\sthe\sMEM_Ephem\sbit\sset.\sFix\sfor\sticket\s[094d39a4c95ee4].
+D 2014-11-12T14:07:28.525
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in cf57f673d77606ab0f2d9627ca52a9ba1464146a
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -289,7 +289,7 @@ F src/update.c 3c4ecc282accf12d39edb8d524cf089645e55a13
 F src/utf.c fc6b889ba0779b7722634cdeaa25f1930d93820c
 F src/util.c 4006c01772bd8d8ac4306d523bbcee41d3e392d8
 F src/vacuum.c 59f03f92bcff57faa6a8ca256eb29ccddfb0614a
-F src/vdbe.c 4c77cdf16be330bd5227691919332b42d557e211
+F src/vdbe.c 0b4ffa1aeeb7a10fefc6497dd0159bf5d9828464
 F src/vdbe.h 09f5b4e3719fa454f252322b1cdab5cf1f361327
 F src/vdbeInt.h e2a060a55ee18a6ab973353a5e2ec7ee569bf787
 F src/vdbeapi.c 37a6c6ae284a97bcace365f2f0a225680c0499d9
@@ -873,7 +873,7 @@ F test/superlock.test 1cde669f68d2dd37d6c9bd35eee1d95491ae3fc2
 F test/sync.test a34cd43e98b7fb84eabbf38f7ed8f7349b3f3d85
 F test/syscall.test d2fdaad713f103ac611fe7ef9b724c7b69f8149c
 F test/sysfault.test fa776e60bf46bdd3ae69f0b73e46ee3977a58ae6
-F test/table.test 2a1d2fa52c531de5915f28023747d9a8c27b6f31
+F test/table.test 06271d61eb13871490d38168433c1ef3dd82bb2a
 F test/tableapi.test 2674633fa95d80da917571ebdd759a14d9819126
 F test/tableopts.test dba698ba97251017b7c80d738c198d39ab747930
 F test/tclsqlite.test 37a61c2da7e3bfe3b8c1a2867199f6b860df5d43
@@ -1204,8 +1204,8 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P 3b7b72c4685aa5cf5e675c2c47ebec10d9704221
-Q +b5df5ac0529f7b0d1e880a7f4a307e7d77b7fa6c
-R 27a95de33658c36b59b93f043d249813
+P d4b2d5d066891e06f2bf4337902b44b000fa9fd2
+Q +42705fd7d892c4fdfb95fbbb468c99569beece25
+R 55a6f98cd186254776492ca00fba4393
 U drh
-Z ea313ee60fabf91291f912ad6dcdc285
+Z efc3d14840732f527ab6a674cff641f8
index 983840bd0efc9ea99a6b79372058eda5e57b1ce9..cfac283fb9099ad740548ed3dfb3e9255977bf82 100644 (file)
@@ -1 +1 @@
-d4b2d5d066891e06f2bf4337902b44b000fa9fd2
\ No newline at end of file
+e1017745e183f5d7429ce787ec2feef946a24f0f
\ No newline at end of file
index 6e152cd27e8049ac85bc92af464013cd5b615be0..9462bd71f8f24dc3b9713915a6e58ea8909c58c9 100644 (file)
@@ -2298,7 +2298,7 @@ case OP_Column: {
         pC->payloadSize = pC->szRow = avail = pReg->n;
         pC->aRow = (u8*)pReg->z;
       }else{
-        MemSetTypeFlag(pDest, MEM_Null);
+        sqlite3VdbeMemSetNull(pDest);
         goto op_column_out;
       }
     }else{
index 656884ca7325de116f8a48dde8c3dfb805ea7b0c..69f105aa6ce1fa4fcec3a70cd715d9bcf7baac55 100644 (file)
@@ -11,7 +11,6 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the CREATE TABLE statement.
 #
-# $Id: table.test,v 1.53 2009/06/05 17:09:12 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -773,4 +772,21 @@ do_catchsql_test table-16.7 {
   INSERT INTO t16 DEFAULT VALUES;
 } {1 {unknown function: group_concat()}}
 
+# Ticket [https://www.sqlite.org/src/info/094d39a4c95ee4abbc417f04214617675ba15c63]
+# describes a assertion fault that occurs on a CREATE TABLE .. AS SELECT statement.
+# the following test verifies that the problem has been fixed.
+#
+do_execsql_test table-17.1 {
+  DROP TABLE IF EXISTS t1;
+  CREATE TABLE t1(a TEXT);
+  INSERT INTO t1(a) VALUES(1),(2);
+  DROP TABLE IF EXISTS t2;
+  CREATE TABLE t2(x TEXT, y TEXT);
+  INSERT INTO t2(x,y) VALUES(3,4);
+  DROP TABLE IF EXISTS t3;
+  CREATE TABLE t3 AS
+    SELECT a AS p, coalesce(y,a) AS q FROM t1 LEFT JOIN t2 ON a=x;
+  SELECT p, q, '|' FROM t3 ORDER BY p;
+} {1 1 | 2 2 |}
+
 finish_test