SQLite

Check-in [c26f236da6]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:More tests pursuant to ticket [36fae083b450e3af857a459e20].
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c26f236da61aef7c7a8fe38f1c7f33eea894c8fae38de6a085d4cce933a70502
User & Date: mistachkin 2018-02-26 17:03:03.328
Context
2018-02-27
15:40
Add support for TRUE and FALSE keywords and for operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE. If there is are columns named TRUE or FALSE, then the keywords resolve to the column names, for compatibility. The behavior of the "DEFAULT true" phrase is changed to mean what it says, rather than being an alias for "DEFAULT 'true'". (check-in: 9a7f02c50e user: drh tags: trunk)
2018-02-26
17:03
More tests pursuant to ticket [36fae083b450e3af857a459e20]. (check-in: c26f236da6 user: mistachkin tags: trunk)
16:49
Fix heap issue in the shell on Win32 caused by allocator mismatch. (check-in: 7b3a75519a user: mistachkin tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to test/expr.test.
996
997
998
999
1000
1001
1002



































1003
1004
} {0}
do_execsql_test expr-14.4 {
  SELECT sum(CASE WHEN x THEN 0 ELSE 1 END) FROM t1
   WHERE x
} {0}






































finish_test







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
} {0}
do_execsql_test expr-14.4 {
  SELECT sum(CASE WHEN x THEN 0 ELSE 1 END) FROM t1
   WHERE x
} {0}


foreach {tn val} [list 1 NaN 2 -NaN 3 NaN0 4 -NaN0 5 Inf 6 -Inf] {
  do_execsql_test expr-15.$tn.1 {
    DROP TABLE IF EXISTS t1;
    CREATE TABLE t1(x);
    INSERT INTO t1 VALUES(0),(1),(NULL),(0.5),('1x'),('0x');
  }

  do_test expr-15.$tn.2 {
    set ::STMT [sqlite3_prepare db "INSERT INTO t1 VALUES(?)" -1 TAIL]
    sqlite3_bind_double $::STMT 1 $val
    sqlite3_step $::STMT
    sqlite3_reset $::STMT
    sqlite3_finalize $::STMT
  } {SQLITE_OK}

  do_execsql_test expr-15.$tn.3 {
    SELECT count(*) FROM t1
     WHERE (x OR (8==9)) != (CASE WHEN x THEN 1 ELSE 0 END);
  } {0}

  do_execsql_test expr-15.$tn.4 {
    SELECT count(*) FROM t1
     WHERE (x OR (8==9)) != (NOT NOT x);
  } {0}

  do_execsql_test expr-15.$tn.5 {
    SELECT sum(NOT x) FROM t1
     WHERE x
  } {0}

  do_execsql_test expr-15.$tn.6 {
    SELECT sum(CASE WHEN x THEN 0 ELSE 1 END) FROM t1
     WHERE x
  } {0}
}

finish_test