Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Side by Side Diff: third_party/sqlite/src/test/e_insert.test

Issue 1610963002: Import SQLite 3.10.2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/sqlite/src/test/e_expr.test ('k') | third_party/sqlite/src/test/e_reindex.test » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # 2010 September 18 1 # 2010 September 18
2 # 2 #
3 # The author disclaims copyright to this source code. In place of 3 # The author disclaims copyright to this source code. In place of
4 # a legal notice, here is a blessing: 4 # a legal notice, here is a blessing:
5 # 5 #
6 # May you do good and not evil. 6 # May you do good and not evil.
7 # May you find forgiveness for yourself and forgive others. 7 # May you find forgiveness for yourself and forgive others.
8 # May you share freely, never taking more than you give. 8 # May you share freely, never taking more than you give.
9 # 9 #
10 #*********************************************************************** 10 #***********************************************************************
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 1a "INSERT INTO a2 VALUES(1, 2, 3)" {} 150 1a "INSERT INTO a2 VALUES(1, 2, 3)" {}
151 1b "SELECT count(*) FROM a2" {1} 151 1b "SELECT count(*) FROM a2" {1}
152 152
153 2a "INSERT INTO a2(a, b) VALUES(1, 2)" {} 153 2a "INSERT INTO a2(a, b) VALUES(1, 2)" {}
154 2b "SELECT count(*) FROM a2" {2} 154 2b "SELECT count(*) FROM a2" {2}
155 155
156 3a "INSERT INTO a2(a) VALUES(3),(4)" {} 156 3a "INSERT INTO a2(a) VALUES(3),(4)" {}
157 3b "SELECT count(*) FROM a2" {4} 157 3b "SELECT count(*) FROM a2" {4}
158 } 158 }
159 159
160 # EVIDENCE-OF: R-53616-44976 If no column-list is specified then the 160 # EVIDENCE-OF: R-19218-01018 If the column-name list after table-name is
161 # number of values inserted into each row must be the same as the number 161 # omitted then the number of values inserted into each row must be the
162 # of columns in the table. 162 # same as the number of columns in the table.
163 # 163 #
164 # A test in the block above verifies that if the VALUES list has the 164 # A test in the block above verifies that if the VALUES list has the
165 # correct number of columns (for table a2, 3 columns) works. So these 165 # correct number of columns (for table a2, 3 columns) works. So these
166 # tests just show that other values cause an error. 166 # tests just show that other values cause an error.
167 # 167 #
168 do_insert_tests e_insert-1.2 -error { 168 do_insert_tests e_insert-1.2 -error {
169 table %s has %d columns but %d values were supplied 169 table %s has %d columns but %d values were supplied
170 } { 170 } {
171 1 "INSERT INTO a2 VALUES(1)" {a2 3 1} 171 1 "INSERT INTO a2 VALUES(1)" {a2 3 1}
172 2 "INSERT INTO a2 VALUES(1,2)" {a2 3 2} 172 2 "INSERT INTO a2 VALUES(1,2)" {a2 3 2}
(...skipping 11 matching lines...) Expand all
184 1a "INSERT INTO a2 VALUES(1, 2, 3)" {} 184 1a "INSERT INTO a2 VALUES(1, 2, 3)" {}
185 1b "SELECT * FROM a2 WHERE oid=last_insert_rowid()" {1 2 3} 185 1b "SELECT * FROM a2 WHERE oid=last_insert_rowid()" {1 2 3}
186 186
187 2a "INSERT INTO a2 VALUES('abc', NULL, 3*3+1)" {} 187 2a "INSERT INTO a2 VALUES('abc', NULL, 3*3+1)" {}
188 2b "SELECT * FROM a2 WHERE oid=last_insert_rowid()" {abc {} 10} 188 2b "SELECT * FROM a2 WHERE oid=last_insert_rowid()" {abc {} 10}
189 189
190 3a "INSERT INTO a2 VALUES((SELECT count(*) FROM a2), 'x', 'y')" {} 190 3a "INSERT INTO a2 VALUES((SELECT count(*) FROM a2), 'x', 'y')" {}
191 3b "SELECT * FROM a2 WHERE oid=last_insert_rowid()" {2 x y} 191 3b "SELECT * FROM a2 WHERE oid=last_insert_rowid()" {2 x y}
192 } 192 }
193 193
194 # EVIDENCE-OF: R-09234-17933 If a column-list is specified, then the 194 # EVIDENCE-OF: R-21115-58321 If a column-name list is specified, then
195 # number of values in each term of the VALUE list must match the number 195 # the number of values in each term of the VALUE list must match the
196 # of specified columns. 196 # number of specified columns.
197 # 197 #
198 do_insert_tests e_insert-1.4 -error { 198 do_insert_tests e_insert-1.4 -error {
199 %d values for %d columns 199 %d values for %d columns
200 } { 200 } {
201 1 "INSERT INTO a2(a, b, c) VALUES(1)" {1 3} 201 1 "INSERT INTO a2(a, b, c) VALUES(1)" {1 3}
202 2 "INSERT INTO a2(a, b, c) VALUES(1,2)" {2 3} 202 2 "INSERT INTO a2(a, b, c) VALUES(1,2)" {2 3}
203 3 "INSERT INTO a2(a, b, c) VALUES(1,2,3,4)" {4 3} 203 3 "INSERT INTO a2(a, b, c) VALUES(1,2,3,4)" {4 3}
204 4 "INSERT INTO a2(a, b, c) VALUES(1,2,3,4,5)" {5 3} 204 4 "INSERT INTO a2(a, b, c) VALUES(1,2,3,4,5)" {5 3}
205 205
206 5 "INSERT INTO a2(c, a) VALUES(1)" {1 2} 206 5 "INSERT INTO a2(c, a) VALUES(1)" {1 2}
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 4.1 "INSERT INTO a2 DEFAULT VALUES" {} 341 4.1 "INSERT INTO a2 DEFAULT VALUES" {}
342 4.2 "SELECT * FROM a2" {{} {} xyz {} {} xyz} 342 4.2 "SELECT * FROM a2" {{} {} xyz {} {} xyz}
343 343
344 5.1 "INSERT INTO a1 DEFAULT VALUES" {} 344 5.1 "INSERT INTO a1 DEFAULT VALUES" {}
345 5.2 "SELECT * FROM a1" {{} {}} 345 5.2 "SELECT * FROM a1" {{} {}}
346 346
347 6.1 "INSERT INTO a1 DEFAULT VALUES" {} 347 6.1 "INSERT INTO a1 DEFAULT VALUES" {}
348 6.2 "SELECT * FROM a1" {{} {} {} {}} 348 6.2 "SELECT * FROM a1" {{} {} {} {}}
349 } 349 }
350 350
351 # EVIDENCE-OF: R-46928-50290 The optional conflict-clause allows the 351 # EVIDENCE-OF: R-03235-45250 The "REPLACE" and "INSERT OR action" forms
352 # specification of an alternative constraint conflict resolution 352 # specify an alternative constraint conflict resolution algorithm to use
353 # algorithm to use during this one INSERT command. 353 # during this one INSERT command.
354 # 354 #
355 # EVIDENCE-OF: R-23110-47146 the parser allows the use of the single 355 # EVIDENCE-OF: R-23110-47146 the parser allows the use of the single
356 # keyword REPLACE as an alias for "INSERT OR REPLACE". 356 # keyword REPLACE as an alias for "INSERT OR REPLACE".
357 # 357 #
358 # The two requirements above are tested by e_select-4.1.* and 358 # The two requirements above are tested by e_select-4.1.* and
359 # e_select-4.2.*, respectively. 359 # e_select-4.2.*, respectively.
360 # 360 #
361 # EVIDENCE-OF: R-03421-22330 The REPLACE command is an alias for the 361 # EVIDENCE-OF: R-03421-22330 The REPLACE command is an alias for the
362 # "INSERT OR REPLACE" variant of the INSERT command. 362 # "INSERT OR REPLACE" variant of the INSERT command.
363 # 363 #
(...skipping 23 matching lines...) Expand all
387 387
388 2.1 "INSERT INTO a4 VALUES(2,'f')" 388 2.1 "INSERT INTO a4 VALUES(2,'f')"
389 {UNIQUE constraint failed: a4.c} 1 {1 a 3 a 2 b 4 e} 389 {UNIQUE constraint failed: a4.c} 1 {1 a 3 a 2 b 4 e}
390 2.2 "REPLACE INTO a4 VALUES(2, 'f')" {} 1 {1 a 3 a 4 e 2 f} 390 2.2 "REPLACE INTO a4 VALUES(2, 'f')" {} 1 {1 a 3 a 4 e 2 f}
391 } { 391 } {
392 do_catchsql_test e_insert-4.1.$tn.1 $sql [list [expr {$error!=""}] $error] 392 do_catchsql_test e_insert-4.1.$tn.1 $sql [list [expr {$error!=""}] $error]
393 do_execsql_test e_insert-4.1.$tn.2 {SELECT * FROM a4} [list {*}$data] 393 do_execsql_test e_insert-4.1.$tn.2 {SELECT * FROM a4} [list {*}$data]
394 do_test e_insert-4.1.$tn.3 {sqlite3_get_autocommit db} $ac 394 do_test e_insert-4.1.$tn.3 {sqlite3_get_autocommit db} $ac
395 } 395 }
396 396
397 # EVIDENCE-OF: R-64196-02418 The optional "database-name." prefix on the 397 # EVIDENCE-OF: R-59829-49719 The optional "schema-name." prefix on the
398 # table-name is support for top-level INSERT statements only. 398 # table-name is supported for top-level INSERT statements only.
399 # 399 #
400 # EVIDENCE-OF: R-05731-00924 The table name must be unqualified for 400 # EVIDENCE-OF: R-05731-00924 The table name must be unqualified for
401 # INSERT statements that occur within CREATE TRIGGER statements. 401 # INSERT statements that occur within CREATE TRIGGER statements.
402 # 402 #
403 set err {1 {qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers}} 403 set err {1 {qualified table names are not allowed on INSERT, UPDATE, and DELETE statements within triggers}}
404 404
405 do_catchsql_test e_insert-5.1.1 { 405 do_catchsql_test e_insert-5.1.1 {
406 CREATE TRIGGER AFTER UPDATE ON a1 BEGIN 406 CREATE TRIGGER AFTER UPDATE ON a1 BEGIN
407 INSERT INTO main.a4 VALUES(new.a, new.b); 407 INSERT INTO main.a4 VALUES(new.a, new.b);
408 END; 408 END;
(...skipping 12 matching lines...) Expand all
421 do_catchsql_test e_insert-5.2.1 { 421 do_catchsql_test e_insert-5.2.1 {
422 CREATE TRIGGER AFTER UPDATE ON a1 BEGIN 422 CREATE TRIGGER AFTER UPDATE ON a1 BEGIN
423 INSERT INTO a4 DEFAULT VALUES; 423 INSERT INTO a4 DEFAULT VALUES;
424 END; 424 END;
425 } {1 {near "DEFAULT": syntax error}} 425 } {1 {near "DEFAULT": syntax error}}
426 426
427 427
428 delete_all_data 428 delete_all_data
429 429
430 finish_test 430 finish_test
OLDNEW
« no previous file with comments | « third_party/sqlite/src/test/e_expr.test ('k') | third_party/sqlite/src/test/e_reindex.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698