xref: /sqlite-3.40.0/test/func4.test (revision 32be00a5)
169f3d048Smistachkin# 2013 March 10
269f3d048Smistachkin#
369f3d048Smistachkin# The author disclaims copyright to this source code.  In place of
469f3d048Smistachkin# a legal notice, here is a blessing:
569f3d048Smistachkin#
669f3d048Smistachkin#    May you do good and not evil.
769f3d048Smistachkin#    May you find forgiveness for yourself and forgive others.
869f3d048Smistachkin#    May you share freely, never taking more than you give.
969f3d048Smistachkin#
1069f3d048Smistachkin#***********************************************************************
1169f3d048Smistachkin# This file implements regression tests for SQLite library. The
1269f3d048Smistachkin# focus of this file is testing the TOINTEGER() and TODOUBLE()
1369f3d048Smistachkin# functions.
1469f3d048Smistachkin#
1569f3d048Smistachkinset testdir [file dirname $argv0]
1669f3d048Smistachkinsource $testdir/tester.tcl
1769f3d048Smistachkin
1869f3d048Smistachkinset i 0
1969f3d048Smistachkindo_execsql_test func4-1.[incr i] {
2069f3d048Smistachkin  SELECT tointeger(NULL);
2169f3d048Smistachkin} {{}}
2269f3d048Smistachkindo_execsql_test func4-1.[incr i] {
2369f3d048Smistachkin  SELECT tointeger('');
2469f3d048Smistachkin} {{}}
2569f3d048Smistachkindo_execsql_test func4-1.[incr i] {
2669f3d048Smistachkin  SELECT tointeger('   ');
2769f3d048Smistachkin} {{}}
2869f3d048Smistachkindo_execsql_test func4-1.[incr i] {
2969f3d048Smistachkin  SELECT tointeger('1234');
3069f3d048Smistachkin} {1234}
3169f3d048Smistachkindo_execsql_test func4-1.[incr i] {
3269f3d048Smistachkin  SELECT tointeger('   1234');
3369f3d048Smistachkin} {1234}
3469f3d048Smistachkindo_execsql_test func4-1.[incr i] {
3569f3d048Smistachkin  SELECT tointeger('bad');
3669f3d048Smistachkin} {{}}
3769f3d048Smistachkindo_execsql_test func4-1.[incr i] {
3869f3d048Smistachkin  SELECT tointeger('0xBAD');
3969f3d048Smistachkin} {{}}
4069f3d048Smistachkindo_execsql_test func4-1.[incr i] {
4169f3d048Smistachkin  SELECT tointeger('123BAD');
4269f3d048Smistachkin} {{}}
4369f3d048Smistachkindo_execsql_test func4-1.[incr i] {
4469f3d048Smistachkin  SELECT tointeger('0x123BAD');
4569f3d048Smistachkin} {{}}
4669f3d048Smistachkindo_execsql_test func4-1.[incr i] {
4769f3d048Smistachkin  SELECT tointeger('123NO');
4869f3d048Smistachkin} {{}}
4969f3d048Smistachkindo_execsql_test func4-1.[incr i] {
5069f3d048Smistachkin  SELECT tointeger('0x123NO');
5169f3d048Smistachkin} {{}}
5269f3d048Smistachkindo_execsql_test func4-1.[incr i] {
5369f3d048Smistachkin  SELECT tointeger('-0x1');
5469f3d048Smistachkin} {{}}
5569f3d048Smistachkindo_execsql_test func4-1.[incr i] {
5669f3d048Smistachkin  SELECT tointeger('-0x0');
5769f3d048Smistachkin} {{}}
5869f3d048Smistachkindo_execsql_test func4-1.[incr i] {
5969f3d048Smistachkin  SELECT tointeger('0x0');
6069f3d048Smistachkin} {{}}
6169f3d048Smistachkindo_execsql_test func4-1.[incr i] {
6269f3d048Smistachkin  SELECT tointeger('0x1');
6369f3d048Smistachkin} {{}}
6469f3d048Smistachkindo_execsql_test func4-1.[incr i] {
6569f3d048Smistachkin  SELECT tointeger(-1);
6669f3d048Smistachkin} {-1}
6769f3d048Smistachkindo_execsql_test func4-1.[incr i] {
6869f3d048Smistachkin  SELECT tointeger(-0);
6969f3d048Smistachkin} {0}
7069f3d048Smistachkindo_execsql_test func4-1.[incr i] {
7169f3d048Smistachkin  SELECT tointeger(0);
7269f3d048Smistachkin} {0}
7369f3d048Smistachkindo_execsql_test func4-1.[incr i] {
7469f3d048Smistachkin  SELECT tointeger(1);
7569f3d048Smistachkin} {1}
7669f3d048Smistachkindo_execsql_test func4-1.[incr i] {
7769f3d048Smistachkin  SELECT tointeger(-1.79769313486232e308 - 1);
7869f3d048Smistachkin} {-9223372036854775808}
7969f3d048Smistachkindo_execsql_test func4-1.[incr i] {
8069f3d048Smistachkin  SELECT tointeger(-1.79769313486232e308);
8169f3d048Smistachkin} {-9223372036854775808}
8269f3d048Smistachkindo_execsql_test func4-1.[incr i] {
8369f3d048Smistachkin  SELECT tointeger(-1.79769313486232e308 + 1);
8469f3d048Smistachkin} {-9223372036854775808}
8569f3d048Smistachkindo_execsql_test func4-1.[incr i] {
8669f3d048Smistachkin  SELECT tointeger(-9223372036854775808 - 1);
8769f3d048Smistachkin} {-9223372036854775808}
8869f3d048Smistachkindo_execsql_test func4-1.[incr i] {
8969f3d048Smistachkin  SELECT tointeger(-9223372036854775808);
9069f3d048Smistachkin} {-9223372036854775808}
9169f3d048Smistachkindo_execsql_test func4-1.[incr i] {
9269f3d048Smistachkin  SELECT tointeger(-9223372036854775808 + 1);
9369f3d048Smistachkin} {-9223372036854775807}
9469f3d048Smistachkindo_execsql_test func4-1.[incr i] {
9569f3d048Smistachkin  SELECT tointeger(-2147483648 - 1);
9669f3d048Smistachkin} {-2147483649}
9769f3d048Smistachkindo_execsql_test func4-1.[incr i] {
9869f3d048Smistachkin  SELECT tointeger(-2147483648);
9969f3d048Smistachkin} {-2147483648}
10069f3d048Smistachkindo_execsql_test func4-1.[incr i] {
10169f3d048Smistachkin  SELECT tointeger(-2147483648 + 1);
10269f3d048Smistachkin} {-2147483647}
10369f3d048Smistachkindo_execsql_test func4-1.[incr i] {
10469f3d048Smistachkin  SELECT tointeger(2147483647 - 1);
10569f3d048Smistachkin} {2147483646}
10669f3d048Smistachkindo_execsql_test func4-1.[incr i] {
10769f3d048Smistachkin  SELECT tointeger(2147483647);
10869f3d048Smistachkin} {2147483647}
10969f3d048Smistachkindo_execsql_test func4-1.[incr i] {
11069f3d048Smistachkin  SELECT tointeger(2147483647 + 1);
11169f3d048Smistachkin} {2147483648}
11269f3d048Smistachkindo_execsql_test func4-1.[incr i] {
11369f3d048Smistachkin  SELECT tointeger(9223372036854775807 - 1);
11469f3d048Smistachkin} {9223372036854775806}
11569f3d048Smistachkindo_execsql_test func4-1.[incr i] {
11669f3d048Smistachkin  SELECT tointeger(9223372036854775807);
11769f3d048Smistachkin} {9223372036854775807}
11869f3d048Smistachkindo_execsql_test func4-1.[incr i] {
11969f3d048Smistachkin  SELECT tointeger(9223372036854775807 + 1);
12069f3d048Smistachkin} {-9223372036854775808}
12169f3d048Smistachkindo_execsql_test func4-1.[incr i] {
12269f3d048Smistachkin  SELECT tointeger(1.79769313486232e308 - 1);
12369f3d048Smistachkin} {-9223372036854775808}
12469f3d048Smistachkindo_execsql_test func4-1.[incr i] {
12569f3d048Smistachkin  SELECT tointeger(1.79769313486232e308);
12669f3d048Smistachkin} {-9223372036854775808}
12769f3d048Smistachkindo_execsql_test func4-1.[incr i] {
12869f3d048Smistachkin  SELECT tointeger(1.79769313486232e308 + 1);
12969f3d048Smistachkin} {-9223372036854775808}
13069f3d048Smistachkindo_execsql_test func4-1.[incr i] {
13169f3d048Smistachkin  SELECT tointeger(4503599627370496 - 1);
13269f3d048Smistachkin} {4503599627370495}
13369f3d048Smistachkindo_execsql_test func4-1.[incr i] {
13469f3d048Smistachkin  SELECT tointeger(4503599627370496);
13569f3d048Smistachkin} {4503599627370496}
13669f3d048Smistachkindo_execsql_test func4-1.[incr i] {
13769f3d048Smistachkin  SELECT tointeger(4503599627370496 + 1);
13869f3d048Smistachkin} {4503599627370497}
13969f3d048Smistachkindo_execsql_test func4-1.[incr i] {
14069f3d048Smistachkin  SELECT tointeger(9007199254740992 - 1);
14169f3d048Smistachkin} {9007199254740991}
14269f3d048Smistachkindo_execsql_test func4-1.[incr i] {
14369f3d048Smistachkin  SELECT tointeger(9007199254740992);
14469f3d048Smistachkin} {9007199254740992}
14569f3d048Smistachkindo_execsql_test func4-1.[incr i] {
14669f3d048Smistachkin  SELECT tointeger(9007199254740992 + 1);
14769f3d048Smistachkin} {9007199254740993}
14869f3d048Smistachkindo_execsql_test func4-1.[incr i] {
14969f3d048Smistachkin  SELECT tointeger(9223372036854775808 - 1);
15069f3d048Smistachkin} {-9223372036854775808}
15169f3d048Smistachkindo_execsql_test func4-1.[incr i] {
15269f3d048Smistachkin  SELECT tointeger(9223372036854775808);
15369f3d048Smistachkin} {-9223372036854775808}
15469f3d048Smistachkindo_execsql_test func4-1.[incr i] {
15569f3d048Smistachkin  SELECT tointeger(9223372036854775808 + 1);
15669f3d048Smistachkin} {-9223372036854775808}
15769f3d048Smistachkindo_execsql_test func4-1.[incr i] {
15869f3d048Smistachkin  SELECT tointeger(18446744073709551616 - 1);
15969f3d048Smistachkin} {-9223372036854775808}
16069f3d048Smistachkindo_execsql_test func4-1.[incr i] {
16169f3d048Smistachkin  SELECT tointeger(18446744073709551616);
16269f3d048Smistachkin} {-9223372036854775808}
16369f3d048Smistachkindo_execsql_test func4-1.[incr i] {
16469f3d048Smistachkin  SELECT tointeger(18446744073709551616 + 1);
16569f3d048Smistachkin} {-9223372036854775808}
16669f3d048Smistachkin
16769f3d048Smistachkinifcapable floatingpoint {
16869f3d048Smistachkin  set i 0
16969f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
17069f3d048Smistachkin    SELECT todouble(NULL);
17169f3d048Smistachkin  } {{}}
17269f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
17369f3d048Smistachkin    SELECT todouble('');
17469f3d048Smistachkin  } {{}}
17569f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
17669f3d048Smistachkin    SELECT todouble('   ');
17769f3d048Smistachkin  } {{}}
17869f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
17969f3d048Smistachkin    SELECT todouble('1234');
18069f3d048Smistachkin  } {1234.0}
18169f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
18269f3d048Smistachkin    SELECT todouble('   1234');
18369f3d048Smistachkin  } {1234.0}
18469f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
18569f3d048Smistachkin    SELECT todouble('bad');
18669f3d048Smistachkin  } {{}}
18769f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
18869f3d048Smistachkin    SELECT todouble('0xBAD');
18969f3d048Smistachkin  } {{}}
19069f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
19169f3d048Smistachkin    SELECT todouble('123BAD');
19269f3d048Smistachkin  } {{}}
19369f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
19469f3d048Smistachkin    SELECT todouble('0x123BAD');
19569f3d048Smistachkin  } {{}}
19669f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
19769f3d048Smistachkin    SELECT todouble('123NO');
19869f3d048Smistachkin  } {{}}
19969f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
20069f3d048Smistachkin    SELECT todouble('0x123NO');
20169f3d048Smistachkin  } {{}}
20269f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
20369f3d048Smistachkin    SELECT todouble('-0x1');
20469f3d048Smistachkin  } {{}}
20569f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
20669f3d048Smistachkin    SELECT todouble('-0x0');
20769f3d048Smistachkin  } {{}}
20869f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
20969f3d048Smistachkin    SELECT todouble('0x0');
21069f3d048Smistachkin  } {{}}
21169f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
21269f3d048Smistachkin    SELECT todouble('0x1');
21369f3d048Smistachkin  } {{}}
21469f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
21569f3d048Smistachkin    SELECT todouble(-1);
21669f3d048Smistachkin  } {-1.0}
21769f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
21869f3d048Smistachkin    SELECT todouble(-0);
21969f3d048Smistachkin  } {0.0}
22069f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
22169f3d048Smistachkin    SELECT todouble(0);
22269f3d048Smistachkin  } {0.0}
22369f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
22469f3d048Smistachkin    SELECT todouble(1);
22569f3d048Smistachkin  } {1.0}
22669f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
22769f3d048Smistachkin    SELECT todouble(-1.79769313486232e308 - 1);
22869f3d048Smistachkin  } {-Inf}
22969f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
23069f3d048Smistachkin    SELECT todouble(-1.79769313486232e308);
23169f3d048Smistachkin  } {-Inf}
23269f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
23369f3d048Smistachkin    SELECT todouble(-1.79769313486232e308 + 1);
23469f3d048Smistachkin  } {-Inf}
23569f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
23669f3d048Smistachkin    SELECT todouble(-9223372036854775808 - 1);
23769f3d048Smistachkin  } {-9.22337203685478e+18}
23869f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
23969f3d048Smistachkin    SELECT todouble(-9223372036854775808);
24069f3d048Smistachkin  } {-9.22337203685478e+18}
24169f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
24269f3d048Smistachkin    SELECT todouble(-9223372036854775808 + 1);
24369f3d048Smistachkin  } {-9.22337203685478e+18}
24469f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
24569f3d048Smistachkin    SELECT todouble(-2147483648 - 1);
24669f3d048Smistachkin  } {-2147483649.0}
24769f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
24869f3d048Smistachkin    SELECT todouble(-2147483648);
24969f3d048Smistachkin  } {-2147483648.0}
25069f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
25169f3d048Smistachkin    SELECT todouble(-2147483648 + 1);
25269f3d048Smistachkin  } {-2147483647.0}
25369f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
25469f3d048Smistachkin    SELECT todouble(2147483647 - 1);
25569f3d048Smistachkin  } {2147483646.0}
25669f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
25769f3d048Smistachkin    SELECT todouble(2147483647);
25869f3d048Smistachkin  } {2147483647.0}
25969f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
26069f3d048Smistachkin    SELECT todouble(2147483647 + 1);
26169f3d048Smistachkin  } {2147483648.0}
26269f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
26369f3d048Smistachkin    SELECT todouble(9223372036854775807 - 1);
26469f3d048Smistachkin  } {9.22337203685478e+18}
26569f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
26669f3d048Smistachkin    SELECT todouble(9223372036854775807);
26769f3d048Smistachkin  } {9.22337203685478e+18}
26869f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
26969f3d048Smistachkin    SELECT todouble(9223372036854775807 + 1);
27069f3d048Smistachkin  } {9.22337203685478e+18}
27169f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
27269f3d048Smistachkin    SELECT todouble(1.79769313486232e308 - 1);
27369f3d048Smistachkin  } {Inf}
27469f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
27569f3d048Smistachkin    SELECT todouble(1.79769313486232e308);
27669f3d048Smistachkin  } {Inf}
27769f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
27869f3d048Smistachkin    SELECT todouble(1.79769313486232e308 + 1);
27969f3d048Smistachkin  } {Inf}
28069f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
28169f3d048Smistachkin    SELECT todouble(4503599627370496 - 1);
28269f3d048Smistachkin  } {4503599627370500.0}
28369f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
28469f3d048Smistachkin    SELECT todouble(4503599627370496);
28569f3d048Smistachkin  } {4503599627370500.0}
28669f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
28769f3d048Smistachkin    SELECT todouble(4503599627370496 + 1);
28869f3d048Smistachkin  } {4503599627370500.0}
28969f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
29069f3d048Smistachkin    SELECT todouble(9007199254740992 - 1);
29169f3d048Smistachkin  } {9007199254740990.0}
29269f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
29369f3d048Smistachkin    SELECT todouble(9007199254740992);
29469f3d048Smistachkin  } {9007199254740990.0}
29569f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
29669f3d048Smistachkin    SELECT todouble(9007199254740992 + 1);
29769f3d048Smistachkin  } {9007199254740990.0}
29869f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
29969f3d048Smistachkin    SELECT todouble(9223372036854775808 - 1);
30069f3d048Smistachkin  } {9.22337203685478e+18}
30169f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
30269f3d048Smistachkin    SELECT todouble(9223372036854775808);
30369f3d048Smistachkin  } {9.22337203685478e+18}
30469f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
30569f3d048Smistachkin    SELECT todouble(9223372036854775808 + 1);
30669f3d048Smistachkin  } {9.22337203685478e+18}
30769f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
30869f3d048Smistachkin    SELECT todouble(18446744073709551616 - 1);
30969f3d048Smistachkin  } {1.84467440737096e+19}
31069f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
31169f3d048Smistachkin    SELECT todouble(18446744073709551616);
31269f3d048Smistachkin  } {1.84467440737096e+19}
31369f3d048Smistachkin  do_execsql_test func4-2.[incr i] {
31469f3d048Smistachkin    SELECT todouble(18446744073709551616 + 1);
31569f3d048Smistachkin  } {1.84467440737096e+19}
31669f3d048Smistachkin}
31769f3d048Smistachkin
318*32be00a5Smistachkinifcapable check {
319*32be00a5Smistachkin  set i 0
320*32be00a5Smistachkin  do_execsql_test func4-3.[incr i] {
321*32be00a5Smistachkin    CREATE TABLE t1(
322*32be00a5Smistachkin      x INTEGER CHECK(tointeger(x) IS NOT NULL AND x = CAST(x AS INTEGER))
323*32be00a5Smistachkin    );
324*32be00a5Smistachkin  } {}
325*32be00a5Smistachkin  do_test func4-3.[incr i] {
326*32be00a5Smistachkin    catchsql {
327*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (NULL);
328*32be00a5Smistachkin    }
329*32be00a5Smistachkin  } {1 {constraint failed}}
330*32be00a5Smistachkin  do_test func4-3.[incr i] {
331*32be00a5Smistachkin    catchsql {
332*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (NULL);
333*32be00a5Smistachkin    }
334*32be00a5Smistachkin  } {1 {constraint failed}}
335*32be00a5Smistachkin  do_test func4-3.[incr i] {
336*32be00a5Smistachkin    catchsql {
337*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES ('');
338*32be00a5Smistachkin    }
339*32be00a5Smistachkin  } {1 {constraint failed}}
340*32be00a5Smistachkin  do_test func4-3.[incr i] {
341*32be00a5Smistachkin    catchsql {
342*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES ('bad');
343*32be00a5Smistachkin    }
344*32be00a5Smistachkin  } {1 {constraint failed}}
345*32be00a5Smistachkin  do_test func4-3.[incr i] {
346*32be00a5Smistachkin    catchsql {
347*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES ('1234bad');
348*32be00a5Smistachkin    }
349*32be00a5Smistachkin  } {1 {constraint failed}}
350*32be00a5Smistachkin  do_test func4-3.[incr i] {
351*32be00a5Smistachkin    catchsql {
352*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (1234);
353*32be00a5Smistachkin    }
354*32be00a5Smistachkin  } {0 {}}
355*32be00a5Smistachkin  do_test func4-3.[incr i] {
356*32be00a5Smistachkin    catchsql {
357*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (1234.56);
358*32be00a5Smistachkin    }
359*32be00a5Smistachkin  } {1 {constraint failed}}
360*32be00a5Smistachkin  do_test func4-3.[incr i] {
361*32be00a5Smistachkin    catchsql {
362*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES ('1234');
363*32be00a5Smistachkin    }
364*32be00a5Smistachkin  } {0 {}}
365*32be00a5Smistachkin  do_test func4-3.[incr i] {
366*32be00a5Smistachkin    catchsql {
367*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES ('1234.56');
368*32be00a5Smistachkin    }
369*32be00a5Smistachkin  } {1 {constraint failed}}
370*32be00a5Smistachkin  do_test func4-3.[incr i] {
371*32be00a5Smistachkin    catchsql {
372*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (ZEROBLOB(4));
373*32be00a5Smistachkin    }
374*32be00a5Smistachkin  } {1 {constraint failed}}
375*32be00a5Smistachkin  do_test func4-3.[incr i] {
376*32be00a5Smistachkin    catchsql {
377*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (X'');
378*32be00a5Smistachkin    }
379*32be00a5Smistachkin  } {1 {constraint failed}}
380*32be00a5Smistachkin  do_test func4-3.[incr i] {
381*32be00a5Smistachkin    catchsql {
382*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (X'1234');
383*32be00a5Smistachkin    }
384*32be00a5Smistachkin  } {1 {constraint failed}}
385*32be00a5Smistachkin  do_test func4-3.[incr i] {
386*32be00a5Smistachkin    catchsql {
387*32be00a5Smistachkin      INSERT INTO t1 (x) VALUES (X'12345678');
388*32be00a5Smistachkin    }
389*32be00a5Smistachkin  } {1 {constraint failed}}
390*32be00a5Smistachkin  do_execsql_test func4-3.[incr i] {
391*32be00a5Smistachkin    SELECT x FROM t1 ORDER BY x;
392*32be00a5Smistachkin  } {1234 1234}
393*32be00a5Smistachkin}
394*32be00a5Smistachkin
39569f3d048Smistachkinfinish_test
396