Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Respect default collation sequences assigned to virtual table columns. (CVS 3272) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d9b205acac34ba9703bc35dfb101aedd |
User & Date: | danielk1977 2006-06-19 05:33:45.000 |
Context
2006-06-19
| ||
06:32 | Add tests to ensure triggers cannot be created on virtual tables. (CVS 3273) (check-in: 9470e27962 user: danielk1977 tags: trunk) | |
05:33 | Respect default collation sequences assigned to virtual table columns. (CVS 3272) (check-in: d9b205acac user: danielk1977 tags: trunk) | |
04:49 | Fix memory leak in where.c. (CVS 3271) (check-in: 3d10e8f361 user: danielk1977 tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
18 19 20 21 22 23 24 | ** CREATE INDEX ** DROP INDEX ** creating ID lists ** BEGIN TRANSACTION ** COMMIT ** ROLLBACK ** | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ** CREATE INDEX ** DROP INDEX ** creating ID lists ** BEGIN TRANSACTION ** COMMIT ** ROLLBACK ** ** $Id: build.c,v 1.404 2006/06/19 05:33:45 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** This routine is called when a new SQL statement is beginning to ** be parsed. Initialize the pParse structure as needed. |
︙ | ︙ | |||
1175 1176 1177 1178 1179 1180 1181 | ** Set the collation function of the most recently parsed table column ** to the CollSeq given. */ void sqlite3AddCollateType(Parse *pParse, const char *zType, int nType){ Table *p; int i; | | | 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 | ** Set the collation function of the most recently parsed table column ** to the CollSeq given. */ void sqlite3AddCollateType(Parse *pParse, const char *zType, int nType){ Table *p; int i; if( (p = pParse->pNewTable)==0 ) return; i = p->nCol-1; if( sqlite3LocateCollSeq(pParse, zType, nType) ){ Index *pIdx; p->aCol[i].zColl = sqliteStrNDup(zType, nType); /* If the column is declared as "<name> PRIMARY KEY COLLATE <type>", |
︙ | ︙ |
Changes to test/vtab5.test.
1 2 3 4 5 6 7 8 9 10 11 12 | # 2006 June 10 # # 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. # | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | # 2006 June 10 # # 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. # # $Id: vtab5.test,v 1.3 2006/06/19 05:33:45 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl ifcapable !vtab { finish_test return } # The following tests - vtab5-1.* - ensure that an INSERT, DELETE or UPDATE # 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 { CREATE TABLE treal(a VARCHAR(16), b INTEGER, c FLOAT); INSERT INTO treal VALUES('a', 'b', 'c'); CREATE VIRTUAL TABLE techo USING echo(treal); } |
︙ | ︙ | |||
63 64 65 66 67 68 69 | sqlite3 db test.db register_echo_module [sqlite3_connection_pointer db] execsql { DELETE FROM techo WHERE b > 'c'; SELECT * FROM techo; } } {10 b c} | > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | sqlite3 db test.db register_echo_module [sqlite3_connection_pointer db] execsql { DELETE FROM techo WHERE b > 'c'; 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 |