]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Respect default collation sequences assigned to virtual table columns. (CVS 3272)
authordanielk1977 <danielk1977@noemail.net>
Mon, 19 Jun 2006 05:33:45 +0000 (05:33 +0000)
committerdanielk1977 <danielk1977@noemail.net>
Mon, 19 Jun 2006 05:33:45 +0000 (05:33 +0000)
FossilOrigin-Name: d9b205acac34ba9703bc35dfb101aedd95cb5a16

manifest
manifest.uuid
src/build.c
test/vtab5.test

index f7eeb44e3a551ee9d624833ac9bbfab81253f47a..7fa493edee94886a7746ff661bb811088993aa79 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\smemory\sleak\sin\swhere.c.\s(CVS\s3271)
-D 2006-06-19T04:49:35
+C Respect\sdefault\scollation\ssequences\sassigned\sto\svirtual\stable\scolumns.\s(CVS\s3272)
+D 2006-06-19T05:33:45
 F Makefile.in f839b470345d3cb4b0644068474623fe2464b5d3
 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -36,7 +36,7 @@ F src/attach.c 27a31d3b89d7ebb5b358847607b1ec795384123c
 F src/auth.c 902f4722661c796b97f007d9606bd7529c02597f
 F src/btree.c ed343b3dbcbc7da9ac481ef2b98c4239fe6d9629
 F src/btree.h 40055cfc09defd1146bc5b922399c035f969e56d
-F src/build.c 3eb63f61249fd0fcd7075456b522a1ceb5f912bd
+F src/build.c 0152e858f9688e482d3608632edb1a48fde67bf3
 F src/callback.c fd9bb39f7ff6b52bad8365617abc61c720640429
 F src/complete.c 7d1a44be8f37de125fcafd3d3a018690b3799675
 F src/date.c cd2bd5d1ebc6fa12d6312f69789ae5b0a2766f2e
@@ -295,7 +295,7 @@ F test/vtab1.test 97d68ca03f18ed14ffec6420363a13b486fd66bb
 F test/vtab2.test b8daa5d9989c3096a294bce0f614ff6f37db0f99
 F test/vtab3.test b3ea5dfdc36ba23ba5136928b6c307c5125ababc
 F test/vtab4.test 4b4293341443839ef6dc02f8d9e614702a6c67ff
-F test/vtab5.test a2dc67f499256aa1656ee693c2157ba8c7fc01bb
+F test/vtab5.test 367019fbbaf60991273277c8e132e4f2f2930edc
 F test/where.test ee7c9a6659b07e1ee61177f6e7ff71565ee2c9df
 F test/where2.test a16476a5913e75cf65b38f2daa6157a6b7791394
 F test/where3.test 3b5ad2c58069e12be2bd86bc5e211a82810521aa
@@ -371,7 +371,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513
-P 144d0eb13aed4507e93edec781b1819a068f4a70
-R a120b8d6587e73f986b4b3f1c6fadbd5
+P 3d10e8f36113a189aa19ecd99007cd0a926b2f8a
+R 3686b7d5151dd1e0ec15c63f3d0caed7
 U danielk1977
-Z edb5bd8fa3b46fcad539c9bb0dac2b2a
+Z 349996879b693696c81b0ab00849dfc2
index 9872c605e89febe4b1fbafacdbf60f085d28ad4f..dfd0cf32071a4de3f2d232231fd43c3bd125c5dc 100644 (file)
@@ -1 +1 @@
-3d10e8f36113a189aa19ecd99007cd0a926b2f8a
\ No newline at end of file
+d9b205acac34ba9703bc35dfb101aedd95cb5a16
\ No newline at end of file
index 517c27dafb9ce370a677cf6b2f8c498fe0a88840..caead4b4717f3dad5a79d01a8b64612a70ffb709 100644 (file)
@@ -22,7 +22,7 @@
 **     COMMIT
 **     ROLLBACK
 **
-** $Id: build.c,v 1.403 2006/06/16 16:08:54 danielk1977 Exp $
+** $Id: build.c,v 1.404 2006/06/19 05:33:45 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include <ctype.h>
@@ -1179,7 +1179,7 @@ void sqlite3AddCollateType(Parse *pParse, const char *zType, int nType){
   Table *p;
   int i;
 
-  if( (p = pParse->pNewTable)==0 || IN_DECLARE_VTAB ) return;
+  if( (p = pParse->pNewTable)==0 ) return;
   i = p->nCol-1;
 
   if( sqlite3LocateCollSeq(pParse, zType, nType) ){
index f2b5cc29f2853f785ada00fb5bb7991da5fe2bf6..07aa4fbec4319b556bb3f38154de84ec0a75488f 100644 (file)
@@ -10,7 +10,7 @@
 #***********************************************************************
 # This file implements regression tests for SQLite library.
 #
-# $Id: vtab5.test,v 1.2 2006/06/19 04:49:35 danielk1977 Exp $
+# $Id: vtab5.test,v 1.3 2006/06/19 05:33:45 danielk1977 Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -24,7 +24,7 @@ ifcapable !vtab {
 # statement can be executed immediately after a CREATE or schema reload. The
 # point here is testing that the parser always calls xConnect() before the
 # schema of a virtual table is used.
-
+#
 register_echo_module [sqlite3_connection_pointer db]
 do_test vtab5-1.1 {
   execsql {
@@ -67,6 +67,38 @@ do_test vtab5.1.5 {
     SELECT * FROM techo;
   }
 } {10 b c}
+do_test vtab5.1.X {
+  execsql {
+    DROP TABLE techo;
+    DROP TABLE treal;
+  }
+} {}
+
+# The following tests - vtab5-2.* - ensure that collation sequences
+# assigned to virtual table columns via the "CREATE TABLE" statement 
+# passed to sqlite3_declare_vtab() are used correctly.
+#
+do_test vtab5.2.1 {
+  execsql {
+    CREATE TABLE strings(str COLLATE NOCASE);
+    INSERT INTO strings VALUES('abc1');
+    INSERT INTO strings VALUES('Abc3');
+    INSERT INTO strings VALUES('ABc2');
+    INSERT INTO strings VALUES('aBc4');
+    SELECT str FROM strings ORDER BY 1;
+  }
+} {abc1 ABc2 Abc3 aBc4}
+do_test vtab5.2.2 {
+  execsql {
+    CREATE VIRTUAL TABLE echo_strings USING echo(strings);
+    SELECT str FROM echo_strings ORDER BY 1;
+  }
+} {abc1 ABc2 Abc3 aBc4}
+do_test vtab5.2.3 {
+  execsql {
+    SELECT str||'' FROM echo_strings ORDER BY 1;
+  }
+} {ABc2 Abc3 aBc4 abc1}
 
 finish_test