gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/subtype1.test (about) 1 # 2015-09-10 2 # 3 # The author disclaims copyright to this source code. In place of 4 # a legal notice, here is a blessing: 5 # 6 # May you do good and not evil. 7 # May you find forgiveness for yourself and forgive others. 8 # May you share freely, never taking more than you give. 9 # 10 #*********************************************************************** 11 # This file implements tests for sqlite3_value_subtype() and 12 # sqlite3_result_subtype() interfaces. 13 # 14 15 set testdir [file dirname $argv0] 16 source $testdir/tester.tcl 17 18 do_execsql_test subtype1-100 { 19 SELECT test_getsubtype('hello'); 20 } {0} 21 do_execsql_test subtype1-110 { 22 SELECT test_getsubtype(test_setsubtype('hello',123)); 23 } {123} 24 do_execsql_test subtype1-120 { 25 SELECT typeof(test_setsubtype('hello',123)); 26 } {text} 27 do_execsql_test subtype1-130 { 28 SELECT test_setsubtype('hello',123); 29 } {hello} 30 31 # 2022-06-09 32 # https://sqlite.org/forum/forumpost/3d9caa45cbe38c78 33 # 34 # Avoid carrying subtypes through into a subquery that has been flattened 35 # or to which the outer WHERE clause has been pushed down. 36 # 37 reset_db 38 do_execsql_test subtype1-200 { 39 CREATE TABLE t1(a); INSERT INTO t1 VALUES ('x'); 40 CREATE VIEW t2(b) AS SELECT json(TRUE); 41 CREATE TABLE t3(b); INSERT INTO t3 VALUES(json(TRUE)); 42 } 43 do_execsql_test subtype1-210 { 44 SELECT * FROM t3, t1 WHERE NOT json_quote(b); 45 } {1 x} 46 do_execsql_test subtype1-220 { 47 SELECT * FROM t2, t1 WHERE NOT json_quote(b); 48 } {1 x} 49 do_execsql_test subtype1-230 { 50 WITH t4(a) AS MATERIALIZED (SELECT json(1)) SELECT subtype(a) FROM t4; 51 } {0} 52 do_execsql_test subtype1-231 { 53 WITH t4(a) AS NOT MATERIALIZED (SELECT json(1)) SELECT subtype(a) FROM t4; 54 } {0} 55 56 57 58 59 finish_test