/ Hex Artifact Content
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Artifact cf09a622b456d3e2f33a3fb1a2be8eec7a8e35e2:


0000: 23 20 32 30 31 33 20 4d 61 72 63 68 20 31 30 0a  # 2013 March 10.
0010: 23 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20 64  #.# The author d
0020: 69 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67  isclaims copyrig
0030: 68 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63  ht to this sourc
0040: 65 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63  e code.  In plac
0050: 65 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e  e of.# a legal n
0060: 6f 74 69 63 65 2c 20 68 65 72 65 20 69 73 20 61  otice, here is a
0070: 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20   blessing:.#.#  
0080: 20 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f    May you do goo
0090: 64 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a  d and not evil..
00a0: 23 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e  #    May you fin
00b0: 64 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f  d forgiveness fo
00c0: 72 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66  r yourself and f
00d0: 6f 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23  orgive others..#
00e0: 20 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72      May you shar
00f0: 65 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20  e freely, never 
0100: 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e  taking more than
0110: 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a   you give..#.#**
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 0a 23 20 54 68 69 73 20 66 69 6c  *****.# This fil
0170: 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67  e implements reg
0180: 72 65 73 73 69 6f 6e 20 74 65 73 74 73 20 66 6f  ression tests fo
0190: 72 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79  r SQLite library
01a0: 2e 20 54 68 65 0a 23 20 66 6f 63 75 73 20 6f 66  . The.# focus of
01b0: 20 74 68 69 73 20 66 69 6c 65 20 69 73 20 74 65   this file is te
01c0: 73 74 69 6e 67 20 74 68 65 20 74 6f 69 6e 74 65  sting the tointe
01d0: 67 65 72 28 29 20 61 6e 64 20 74 6f 72 65 61 6c  ger() and toreal
01e0: 28 29 0a 23 20 66 75 6e 63 74 69 6f 6e 73 2e 0a  ().# functions..
01f0: 23 0a 73 65 74 20 74 65 73 74 64 69 72 20 5b 66  #.set testdir [f
0200: 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 61 72 67  ile dirname $arg
0210: 76 30 5d 0a 73 6f 75 72 63 65 20 24 74 65 73 74  v0].source $test
0220: 64 69 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a  dir/tester.tcl..
0230: 73 65 74 20 69 20 30 0a 64 6f 5f 65 78 65 63 73  set i 0.do_execs
0240: 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 31 2e  ql_test func4-1.
0250: 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c  [incr i] {.  SEL
0260: 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28 4e 55  ECT tointeger(NU
0270: 4c 4c 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65  LL);.} {{}}.do_e
0280: 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63  xecsql_test func
0290: 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20  4-1.[incr i] {. 
02a0: 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65   SELECT tointege
02b0: 72 28 27 27 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f  r('');.} {{}}.do
02c0: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75  _execsql_test fu
02d0: 6e 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b  nc4-1.[incr i] {
02e0: 0a 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65  .  SELECT tointe
02f0: 67 65 72 28 27 20 20 20 27 29 3b 0a 7d 20 7b 7b  ger('   ');.} {{
0300: 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  }}.do_execsql_te
0310: 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63 72  st func4-1.[incr
0320: 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20 74   i] {.  SELECT t
0330: 6f 69 6e 74 65 67 65 72 28 27 31 32 33 34 27 29  ointeger('1234')
0340: 3b 0a 7d 20 7b 31 32 33 34 7d 0a 64 6f 5f 65 78  ;.} {1234}.do_ex
0350: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
0360: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
0370: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
0380: 28 27 20 20 20 31 32 33 34 27 29 3b 0a 7d 20 7b  ('   1234');.} {
0390: 31 32 33 34 7d 0a 64 6f 5f 65 78 65 63 73 71 6c  1234}.do_execsql
03a0: 5f 74 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69  _test func4-1.[i
03b0: 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43  ncr i] {.  SELEC
03c0: 54 20 74 6f 69 6e 74 65 67 65 72 28 27 62 61 64  T tointeger('bad
03d0: 27 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78  ');.} {{}}.do_ex
03e0: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
03f0: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
0400: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
0410: 28 27 30 78 42 41 44 27 29 3b 0a 7d 20 7b 7b 7d  ('0xBAD');.} {{}
0420: 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  }.do_execsql_tes
0430: 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63 72 20  t func4-1.[incr 
0440: 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20 74 6f  i] {.  SELECT to
0450: 69 6e 74 65 67 65 72 28 27 31 32 33 42 41 44 27  integer('123BAD'
0460: 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  );.} {{}}.do_exe
0470: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
0480: 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53  1.[incr i] {.  S
0490: 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28  ELECT tointeger(
04a0: 27 30 78 31 32 33 42 41 44 27 29 3b 0a 7d 20 7b  '0x123BAD');.} {
04b0: 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  {}}.do_execsql_t
04c0: 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63  est func4-1.[inc
04d0: 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20  r i] {.  SELECT 
04e0: 74 6f 69 6e 74 65 67 65 72 28 27 31 32 33 4e 4f  tointeger('123NO
04f0: 27 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78  ');.} {{}}.do_ex
0500: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
0510: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
0520: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
0530: 28 27 30 78 31 32 33 4e 4f 27 29 3b 0a 7d 20 7b  ('0x123NO');.} {
0540: 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  {}}.do_execsql_t
0550: 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63  est func4-1.[inc
0560: 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20  r i] {.  SELECT 
0570: 74 6f 69 6e 74 65 67 65 72 28 27 2d 30 78 31 27  tointeger('-0x1'
0580: 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  );.} {{}}.do_exe
0590: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
05a0: 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53  1.[incr i] {.  S
05b0: 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28  ELECT tointeger(
05c0: 27 2d 30 78 30 27 29 3b 0a 7d 20 7b 7b 7d 7d 0a  '-0x0');.} {{}}.
05d0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
05e0: 66 75 6e 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d  func4-1.[incr i]
05f0: 20 7b 0a 20 20 53 45 4c 45 43 54 20 74 6f 69 6e   {.  SELECT toin
0600: 74 65 67 65 72 28 27 30 78 30 27 29 3b 0a 7d 20  teger('0x0');.} 
0610: 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  {{}}.do_execsql_
0620: 74 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e  test func4-1.[in
0630: 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54  cr i] {.  SELECT
0640: 20 74 6f 69 6e 74 65 67 65 72 28 27 30 78 31 27   tointeger('0x1'
0650: 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  );.} {{}}.do_exe
0660: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
0670: 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53  1.[incr i] {.  S
0680: 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28  ELECT tointeger(
0690: 2d 31 29 3b 0a 7d 20 7b 2d 31 7d 0a 64 6f 5f 65  -1);.} {-1}.do_e
06a0: 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63  xecsql_test func
06b0: 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20  4-1.[incr i] {. 
06c0: 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65   SELECT tointege
06d0: 72 28 2d 30 29 3b 0a 7d 20 7b 30 7d 0a 64 6f 5f  r(-0);.} {0}.do_
06e0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
06f0: 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-1.[incr i] {.
0700: 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67    SELECT tointeg
0710: 65 72 28 30 29 3b 0a 7d 20 7b 30 7d 0a 64 6f 5f  er(0);.} {0}.do_
0720: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
0730: 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-1.[incr i] {.
0740: 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67    SELECT tointeg
0750: 65 72 28 31 29 3b 0a 7d 20 7b 31 7d 0a 64 6f 5f  er(1);.} {1}.do_
0760: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
0770: 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-1.[incr i] {.
0780: 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67    SELECT tointeg
0790: 65 72 28 2d 31 2e 37 39 37 36 39 33 31 33 34 38  er(-1.7976931348
07a0: 36 32 33 32 65 33 30 38 20 2d 20 31 29 3b 0a 7d  6232e308 - 1);.}
07b0: 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c   {{}}.do_execsql
07c0: 5f 74 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69  _test func4-1.[i
07d0: 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43  ncr i] {.  SELEC
07e0: 54 20 74 6f 69 6e 74 65 67 65 72 28 2d 31 2e 37  T tointeger(-1.7
07f0: 39 37 36 39 33 31 33 34 38 36 32 33 32 65 33 30  9769313486232e30
0800: 38 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78  8);.} {{}}.do_ex
0810: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
0820: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
0830: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
0840: 28 2d 31 2e 37 39 37 36 39 33 31 33 34 38 36 32  (-1.797693134862
0850: 33 32 65 33 30 38 20 2b 20 31 29 3b 0a 7d 20 7b  32e308 + 1);.} {
0860: 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  {}}.do_execsql_t
0870: 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63  est func4-1.[inc
0880: 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20  r i] {.  SELECT 
0890: 74 6f 69 6e 74 65 67 65 72 28 2d 39 32 32 33 33  tointeger(-92233
08a0: 37 32 30 33 36 38 35 34 37 37 35 38 30 38 20 2d  72036854775808 -
08b0: 20 31 29 3b 0a 7d 20 7b 2d 39 32 32 33 33 37 32   1);.} {-9223372
08c0: 30 33 36 38 35 34 37 37 35 38 30 38 7d 0a 64 6f  036854775808}.do
08d0: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75  _execsql_test fu
08e0: 6e 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b  nc4-1.[incr i] {
08f0: 0a 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65  .  SELECT tointe
0900: 67 65 72 28 2d 39 32 32 33 33 37 32 30 33 36 38  ger(-92233720368
0910: 35 34 37 37 35 38 30 38 29 3b 0a 7d 20 7b 2d 39  54775808);.} {-9
0920: 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35 38  2233720368547758
0930: 30 38 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  08}.do_execsql_t
0940: 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63  est func4-1.[inc
0950: 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20  r i] {.  SELECT 
0960: 74 6f 69 6e 74 65 67 65 72 28 2d 39 32 32 33 33  tointeger(-92233
0970: 37 32 30 33 36 38 35 34 37 37 35 38 30 38 20 2b  72036854775808 +
0980: 20 31 29 3b 0a 7d 20 7b 2d 39 32 32 33 33 37 32   1);.} {-9223372
0990: 30 33 36 38 35 34 37 37 35 38 30 37 7d 0a 64 6f  036854775807}.do
09a0: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75  _execsql_test fu
09b0: 6e 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b  nc4-1.[incr i] {
09c0: 0a 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65  .  SELECT tointe
09d0: 67 65 72 28 2d 32 31 34 37 34 38 33 36 34 38 20  ger(-2147483648 
09e0: 2d 20 31 29 3b 0a 7d 20 7b 2d 32 31 34 37 34 38  - 1);.} {-214748
09f0: 33 36 34 39 7d 0a 64 6f 5f 65 78 65 63 73 71 6c  3649}.do_execsql
0a00: 5f 74 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69  _test func4-1.[i
0a10: 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43  ncr i] {.  SELEC
0a20: 54 20 74 6f 69 6e 74 65 67 65 72 28 2d 32 31 34  T tointeger(-214
0a30: 37 34 38 33 36 34 38 29 3b 0a 7d 20 7b 2d 32 31  7483648);.} {-21
0a40: 34 37 34 38 33 36 34 38 7d 0a 64 6f 5f 65 78 65  47483648}.do_exe
0a50: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
0a60: 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53  1.[incr i] {.  S
0a70: 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28  ELECT tointeger(
0a80: 2d 32 31 34 37 34 38 33 36 34 38 20 2b 20 31 29  -2147483648 + 1)
0a90: 3b 0a 7d 20 7b 2d 32 31 34 37 34 38 33 36 34 37  ;.} {-2147483647
0aa0: 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  }.do_execsql_tes
0ab0: 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63 72 20  t func4-1.[incr 
0ac0: 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20 74 6f  i] {.  SELECT to
0ad0: 69 6e 74 65 67 65 72 28 32 31 34 37 34 38 33 36  integer(21474836
0ae0: 34 37 20 2d 20 31 29 3b 0a 7d 20 7b 32 31 34 37  47 - 1);.} {2147
0af0: 34 38 33 36 34 36 7d 0a 64 6f 5f 65 78 65 63 73  483646}.do_execs
0b00: 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 31 2e  ql_test func4-1.
0b10: 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c  [incr i] {.  SEL
0b20: 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28 32 31  ECT tointeger(21
0b30: 34 37 34 38 33 36 34 37 29 3b 0a 7d 20 7b 32 31  47483647);.} {21
0b40: 34 37 34 38 33 36 34 37 7d 0a 64 6f 5f 65 78 65  47483647}.do_exe
0b50: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
0b60: 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53  1.[incr i] {.  S
0b70: 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28  ELECT tointeger(
0b80: 32 31 34 37 34 38 33 36 34 37 20 2b 20 31 29 3b  2147483647 + 1);
0b90: 0a 7d 20 7b 32 31 34 37 34 38 33 36 34 38 7d 0a  .} {2147483648}.
0ba0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
0bb0: 66 75 6e 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d  func4-1.[incr i]
0bc0: 20 7b 0a 20 20 53 45 4c 45 43 54 20 74 6f 69 6e   {.  SELECT toin
0bd0: 74 65 67 65 72 28 39 32 32 33 33 37 32 30 33 36  teger(9223372036
0be0: 38 35 34 37 37 35 38 30 37 20 2d 20 31 29 3b 0a  854775807 - 1);.
0bf0: 7d 20 7b 39 32 32 33 33 37 32 30 33 36 38 35 34  } {9223372036854
0c00: 37 37 35 38 30 36 7d 0a 64 6f 5f 65 78 65 63 73  775806}.do_execs
0c10: 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 31 2e  ql_test func4-1.
0c20: 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c  [incr i] {.  SEL
0c30: 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28 39 32  ECT tointeger(92
0c40: 32 33 33 37 32 30 33 36 38 35 34 37 37 35 38 30  2337203685477580
0c50: 37 29 3b 0a 7d 20 7b 39 32 32 33 33 37 32 30 33  7);.} {922337203
0c60: 36 38 35 34 37 37 35 38 30 37 7d 0a 64 6f 5f 65  6854775807}.do_e
0c70: 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63  xecsql_test func
0c80: 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20  4-1.[incr i] {. 
0c90: 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65   SELECT tointege
0ca0: 72 28 39 32 32 33 33 37 32 30 33 36 38 35 34 37  r(92233720368547
0cb0: 37 35 38 30 37 20 2b 20 31 29 3b 0a 7d 20 7b 2d  75807 + 1);.} {-
0cc0: 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35  9223372036854775
0cd0: 38 30 38 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  808}.do_execsql_
0ce0: 74 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e  test func4-1.[in
0cf0: 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54  cr i] {.  SELECT
0d00: 20 74 6f 69 6e 74 65 67 65 72 28 31 2e 37 39 37   tointeger(1.797
0d10: 36 39 33 31 33 34 38 36 32 33 32 65 33 30 38 20  69313486232e308 
0d20: 2d 20 31 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f  - 1);.} {{}}.do_
0d30: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
0d40: 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-1.[incr i] {.
0d50: 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67    SELECT tointeg
0d60: 65 72 28 31 2e 37 39 37 36 39 33 31 33 34 38 36  er(1.79769313486
0d70: 32 33 32 65 33 30 38 29 3b 0a 7d 20 7b 7b 7d 7d  232e308);.} {{}}
0d80: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
0d90: 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63 72 20 69   func4-1.[incr i
0da0: 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20 74 6f 69  ] {.  SELECT toi
0db0: 6e 74 65 67 65 72 28 31 2e 37 39 37 36 39 33 31  nteger(1.7976931
0dc0: 33 34 38 36 32 33 32 65 33 30 38 20 2b 20 31 29  3486232e308 + 1)
0dd0: 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63  ;.} {{}}.do_exec
0de0: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 31  sql_test func4-1
0df0: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45  .[incr i] {.  SE
0e00: 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28 34  LECT tointeger(4
0e10: 35 30 33 35 39 39 36 32 37 33 37 30 34 39 36 20  503599627370496 
0e20: 2d 20 31 29 3b 0a 7d 20 7b 34 35 30 33 35 39 39  - 1);.} {4503599
0e30: 36 32 37 33 37 30 34 39 35 7d 0a 64 6f 5f 65 78  627370495}.do_ex
0e40: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
0e50: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
0e60: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
0e70: 28 34 35 30 33 35 39 39 36 32 37 33 37 30 34 39  (450359962737049
0e80: 36 29 3b 0a 7d 20 7b 34 35 30 33 35 39 39 36 32  6);.} {450359962
0e90: 37 33 37 30 34 39 36 7d 0a 64 6f 5f 65 78 65 63  7370496}.do_exec
0ea0: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 31  sql_test func4-1
0eb0: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45  .[incr i] {.  SE
0ec0: 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72 28 34  LECT tointeger(4
0ed0: 35 30 33 35 39 39 36 32 37 33 37 30 34 39 36 20  503599627370496 
0ee0: 2b 20 31 29 3b 0a 7d 20 7b 34 35 30 33 35 39 39  + 1);.} {4503599
0ef0: 36 32 37 33 37 30 34 39 37 7d 0a 64 6f 5f 65 78  627370497}.do_ex
0f00: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
0f10: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
0f20: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
0f30: 28 39 30 30 37 31 39 39 32 35 34 37 34 30 39 39  (900719925474099
0f40: 32 20 2d 20 31 29 3b 0a 7d 20 7b 39 30 30 37 31  2 - 1);.} {90071
0f50: 39 39 32 35 34 37 34 30 39 39 31 7d 0a 64 6f 5f  99254740991}.do_
0f60: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
0f70: 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-1.[incr i] {.
0f80: 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67    SELECT tointeg
0f90: 65 72 28 39 30 30 37 31 39 39 32 35 34 37 34 30  er(9007199254740
0fa0: 39 39 32 29 3b 0a 7d 20 7b 39 30 30 37 31 39 39  992);.} {9007199
0fb0: 32 35 34 37 34 30 39 39 32 7d 0a 64 6f 5f 65 78  254740992}.do_ex
0fc0: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
0fd0: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
0fe0: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
0ff0: 28 39 30 30 37 31 39 39 32 35 34 37 34 30 39 39  (900719925474099
1000: 32 20 2b 20 31 29 3b 0a 7d 20 7b 39 30 30 37 31  2 + 1);.} {90071
1010: 39 39 32 35 34 37 34 30 39 39 33 7d 0a 64 6f 5f  99254740993}.do_
1020: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
1030: 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-1.[incr i] {.
1040: 20 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67    SELECT tointeg
1050: 65 72 28 39 32 32 33 33 37 32 30 33 36 38 35 34  er(9223372036854
1060: 37 37 35 38 30 38 20 2d 20 31 29 3b 0a 7d 20 7b  775808 - 1);.} {
1070: 2d 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37  -922337203685477
1080: 35 38 30 38 7d 0a 64 6f 5f 65 78 65 63 73 71 6c  5808}.do_execsql
1090: 5f 74 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69  _test func4-1.[i
10a0: 6e 63 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43  ncr i] {.  SELEC
10b0: 54 20 74 6f 69 6e 74 65 67 65 72 28 39 32 32 33  T tointeger(9223
10c0: 33 37 32 30 33 36 38 35 34 37 37 35 38 30 38 29  372036854775808)
10d0: 3b 0a 7d 20 7b 2d 39 32 32 33 33 37 32 30 33 36  ;.} {-9223372036
10e0: 38 35 34 37 37 35 38 30 38 7d 0a 64 6f 5f 65 78  854775808}.do_ex
10f0: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
1100: 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -1.[incr i] {.  
1110: 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65 72  SELECT tointeger
1120: 28 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37  (922337203685477
1130: 35 38 30 38 20 2b 20 31 29 3b 0a 7d 20 7b 2d 39  5808 + 1);.} {-9
1140: 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35 38  2233720368547758
1150: 30 38 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  08}.do_execsql_t
1160: 65 73 74 20 66 75 6e 63 34 2d 31 2e 5b 69 6e 63  est func4-1.[inc
1170: 72 20 69 5d 20 7b 0a 20 20 53 45 4c 45 43 54 20  r i] {.  SELECT 
1180: 74 6f 69 6e 74 65 67 65 72 28 31 38 34 34 36 37  tointeger(184467
1190: 34 34 30 37 33 37 30 39 35 35 31 36 31 36 20 2d  44073709551616 -
11a0: 20 31 29 3b 0a 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65   1);.} {{}}.do_e
11b0: 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63  xecsql_test func
11c0: 34 2d 31 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20  4-1.[incr i] {. 
11d0: 20 53 45 4c 45 43 54 20 74 6f 69 6e 74 65 67 65   SELECT tointege
11e0: 72 28 31 38 34 34 36 37 34 34 30 37 33 37 30 39  r(18446744073709
11f0: 35 35 31 36 31 36 29 3b 0a 7d 20 7b 7b 7d 7d 0a  551616);.} {{}}.
1200: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
1210: 66 75 6e 63 34 2d 31 2e 5b 69 6e 63 72 20 69 5d  func4-1.[incr i]
1220: 20 7b 0a 20 20 53 45 4c 45 43 54 20 74 6f 69 6e   {.  SELECT toin
1230: 74 65 67 65 72 28 31 38 34 34 36 37 34 34 30 37  teger(1844674407
1240: 33 37 30 39 35 35 31 36 31 36 20 2b 20 31 29 3b  3709551616 + 1);
1250: 0a 7d 20 7b 7b 7d 7d 0a 0a 69 66 63 61 70 61 62  .} {{}}..ifcapab
1260: 6c 65 20 66 6c 6f 61 74 69 6e 67 70 6f 69 6e 74  le floatingpoint
1270: 20 7b 0a 20 20 73 65 74 20 69 20 30 0a 20 20 64   {.  set i 0.  d
1280: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66  o_execsql_test f
1290: 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20  unc4-2.[incr i] 
12a0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72  {.    SELECT tor
12b0: 65 61 6c 28 4e 55 4c 4c 29 3b 0a 20 20 7d 20 7b  eal(NULL);.  } {
12c0: 7b 7d 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c  {}}.  do_execsql
12d0: 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69  _test func4-2.[i
12e0: 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c  ncr i] {.    SEL
12f0: 45 43 54 20 74 6f 72 65 61 6c 28 27 27 29 3b 0a  ECT toreal('');.
1300: 20 20 7d 20 7b 7b 7d 7d 0a 20 20 64 6f 5f 65 78    } {{}}.  do_ex
1310: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
1320: 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -2.[incr i] {.  
1330: 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28    SELECT toreal(
1340: 27 20 20 20 27 29 3b 0a 20 20 7d 20 7b 7b 7d 7d  '   ');.  } {{}}
1350: 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  .  do_execsql_te
1360: 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72  st func4-2.[incr
1370: 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54   i] {.    SELECT
1380: 20 74 6f 72 65 61 6c 28 27 31 32 33 34 27 29 3b   toreal('1234');
1390: 0a 20 20 7d 20 7b 31 32 33 34 2e 30 7d 0a 20 20  .  } {1234.0}.  
13a0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
13b0: 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d  func4-2.[incr i]
13c0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f   {.    SELECT to
13d0: 72 65 61 6c 28 27 20 20 20 31 32 33 34 27 29 3b  real('   1234');
13e0: 0a 20 20 7d 20 7b 31 32 33 34 2e 30 7d 0a 20 20  .  } {1234.0}.  
13f0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
1400: 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d  func4-2.[incr i]
1410: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f   {.    SELECT to
1420: 72 65 61 6c 28 27 62 61 64 27 29 3b 0a 20 20 7d  real('bad');.  }
1430: 20 7b 7b 7d 7d 0a 20 20 64 6f 5f 65 78 65 63 73   {{}}.  do_execs
1440: 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e  ql_test func4-2.
1450: 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53  [incr i] {.    S
1460: 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 27 30 78  ELECT toreal('0x
1470: 42 41 44 27 29 3b 0a 20 20 7d 20 7b 7b 7d 7d 0a  BAD');.  } {{}}.
1480: 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73    do_execsql_tes
1490: 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20  t func4-2.[incr 
14a0: 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  i] {.    SELECT 
14b0: 74 6f 72 65 61 6c 28 27 31 32 33 42 41 44 27 29  toreal('123BAD')
14c0: 3b 0a 20 20 7d 20 7b 7b 7d 7d 0a 20 20 64 6f 5f  ;.  } {{}}.  do_
14d0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
14e0: 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-2.[incr i] {.
14f0: 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61      SELECT torea
1500: 6c 28 27 30 78 31 32 33 42 41 44 27 29 3b 0a 20  l('0x123BAD');. 
1510: 20 7d 20 7b 7b 7d 7d 0a 20 20 64 6f 5f 65 78 65   } {{}}.  do_exe
1520: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
1530: 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20  2.[incr i] {.   
1540: 20 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 27   SELECT toreal('
1550: 31 32 33 4e 4f 27 29 3b 0a 20 20 7d 20 7b 7b 7d  123NO');.  } {{}
1560: 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74  }.  do_execsql_t
1570: 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63  est func4-2.[inc
1580: 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43  r i] {.    SELEC
1590: 54 20 74 6f 72 65 61 6c 28 27 30 78 31 32 33 4e  T toreal('0x123N
15a0: 4f 27 29 3b 0a 20 20 7d 20 7b 7b 7d 7d 0a 20 20  O');.  } {{}}.  
15b0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
15c0: 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d  func4-2.[incr i]
15d0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f   {.    SELECT to
15e0: 72 65 61 6c 28 27 2d 30 78 31 27 29 3b 0a 20 20  real('-0x1');.  
15f0: 7d 20 7b 7b 7d 7d 0a 20 20 64 6f 5f 65 78 65 63  } {{}}.  do_exec
1600: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32  sql_test func4-2
1610: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
1620: 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 27 2d  SELECT toreal('-
1630: 30 78 30 27 29 3b 0a 20 20 7d 20 7b 7b 7d 7d 0a  0x0');.  } {{}}.
1640: 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73    do_execsql_tes
1650: 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20  t func4-2.[incr 
1660: 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  i] {.    SELECT 
1670: 74 6f 72 65 61 6c 28 27 30 78 30 27 29 3b 0a 20  toreal('0x0');. 
1680: 20 7d 20 7b 7b 7d 7d 0a 20 20 64 6f 5f 65 78 65   } {{}}.  do_exe
1690: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
16a0: 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20  2.[incr i] {.   
16b0: 20 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 27   SELECT toreal('
16c0: 30 78 31 27 29 3b 0a 20 20 7d 20 7b 7b 7d 7d 0a  0x1');.  } {{}}.
16d0: 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73    do_execsql_tes
16e0: 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20  t func4-2.[incr 
16f0: 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  i] {.    SELECT 
1700: 74 6f 72 65 61 6c 28 2d 31 29 3b 0a 20 20 7d 20  toreal(-1);.  } 
1710: 7b 2d 31 2e 30 7d 0a 20 20 64 6f 5f 65 78 65 63  {-1.0}.  do_exec
1720: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32  sql_test func4-2
1730: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
1740: 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 2d 30  SELECT toreal(-0
1750: 29 3b 0a 20 20 7d 20 7b 30 2e 30 7d 0a 20 20 64  );.  } {0.0}.  d
1760: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66  o_execsql_test f
1770: 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20  unc4-2.[incr i] 
1780: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72  {.    SELECT tor
1790: 65 61 6c 28 30 29 3b 0a 20 20 7d 20 7b 30 2e 30  eal(0);.  } {0.0
17a0: 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74  }.  do_execsql_t
17b0: 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63  est func4-2.[inc
17c0: 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43  r i] {.    SELEC
17d0: 54 20 74 6f 72 65 61 6c 28 31 29 3b 0a 20 20 7d  T toreal(1);.  }
17e0: 20 7b 31 2e 30 7d 0a 20 20 64 6f 5f 65 78 65 63   {1.0}.  do_exec
17f0: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32  sql_test func4-2
1800: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
1810: 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 2d 31  SELECT toreal(-1
1820: 2e 37 39 37 36 39 33 31 33 34 38 36 32 33 32 65  .79769313486232e
1830: 33 30 38 20 2d 20 31 29 3b 0a 20 20 7d 20 7b 2d  308 - 1);.  } {-
1840: 49 6e 66 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71  Inf}.  do_execsq
1850: 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b  l_test func4-2.[
1860: 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45  incr i] {.    SE
1870: 4c 45 43 54 20 74 6f 72 65 61 6c 28 2d 31 2e 37  LECT toreal(-1.7
1880: 39 37 36 39 33 31 33 34 38 36 32 33 32 65 33 30  9769313486232e30
1890: 38 29 3b 0a 20 20 7d 20 7b 2d 49 6e 66 7d 0a 20  8);.  } {-Inf}. 
18a0: 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74   do_execsql_test
18b0: 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69   func4-2.[incr i
18c0: 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  ] {.    SELECT t
18d0: 6f 72 65 61 6c 28 2d 31 2e 37 39 37 36 39 33 31  oreal(-1.7976931
18e0: 33 34 38 36 32 33 32 65 33 30 38 20 2b 20 31 29  3486232e308 + 1)
18f0: 3b 0a 20 20 7d 20 7b 2d 49 6e 66 7d 0a 20 20 64  ;.  } {-Inf}.  d
1900: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66  o_execsql_test f
1910: 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20  unc4-2.[incr i] 
1920: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72  {.    SELECT tor
1930: 65 61 6c 28 2d 39 32 32 33 33 37 32 30 33 36 38  eal(-92233720368
1940: 35 34 37 37 35 38 30 38 20 2d 20 31 29 3b 0a 20  54775808 - 1);. 
1950: 20 7d 20 7b 2d 39 2e 32 32 33 33 37 32 30 33 36   } {-9.223372036
1960: 38 35 34 37 38 65 2b 31 38 7d 0a 20 20 64 6f 5f  85478e+18}.  do_
1970: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
1980: 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-2.[incr i] {.
1990: 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61      SELECT torea
19a0: 6c 28 2d 39 32 32 33 33 37 32 30 33 36 38 35 34  l(-9223372036854
19b0: 37 37 35 38 30 38 29 3b 0a 20 20 7d 20 7b 2d 39  775808);.  } {-9
19c0: 2e 32 32 33 33 37 32 30 33 36 38 35 34 37 38 65  .22337203685478e
19d0: 2b 31 38 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71  +18}.  do_execsq
19e0: 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b  l_test func4-2.[
19f0: 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45  incr i] {.    SE
1a00: 4c 45 43 54 20 74 6f 72 65 61 6c 28 2d 39 32 32  LECT toreal(-922
1a10: 33 33 37 32 30 33 36 38 35 34 37 37 35 38 30 38  3372036854775808
1a20: 20 2b 20 31 29 3b 0a 20 20 7d 20 7b 2d 39 2e 32   + 1);.  } {-9.2
1a30: 32 33 33 37 32 30 33 36 38 35 34 37 38 65 2b 31  2337203685478e+1
1a40: 38 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f  8}.  do_execsql_
1a50: 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e  test func4-2.[in
1a60: 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45  cr i] {.    SELE
1a70: 43 54 20 74 6f 72 65 61 6c 28 2d 32 31 34 37 34  CT toreal(-21474
1a80: 38 33 36 34 38 20 2d 20 31 29 3b 0a 20 20 7d 20  83648 - 1);.  } 
1a90: 7b 2d 32 31 34 37 34 38 33 36 34 39 2e 30 7d 0a  {-2147483649.0}.
1aa0: 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73    do_execsql_tes
1ab0: 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20  t func4-2.[incr 
1ac0: 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  i] {.    SELECT 
1ad0: 74 6f 72 65 61 6c 28 2d 32 31 34 37 34 38 33 36  toreal(-21474836
1ae0: 34 38 29 3b 0a 20 20 7d 20 7b 2d 32 31 34 37 34  48);.  } {-21474
1af0: 38 33 36 34 38 2e 30 7d 0a 20 20 64 6f 5f 65 78  83648.0}.  do_ex
1b00: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
1b10: 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -2.[incr i] {.  
1b20: 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28    SELECT toreal(
1b30: 2d 32 31 34 37 34 38 33 36 34 38 20 2b 20 31 29  -2147483648 + 1)
1b40: 3b 0a 20 20 7d 20 7b 2d 32 31 34 37 34 38 33 36  ;.  } {-21474836
1b50: 34 37 2e 30 7d 0a 20 20 64 6f 5f 65 78 65 63 73  47.0}.  do_execs
1b60: 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e  ql_test func4-2.
1b70: 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53  [incr i] {.    S
1b80: 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 32 31 34  ELECT toreal(214
1b90: 37 34 38 33 36 34 37 20 2d 20 31 29 3b 0a 20 20  7483647 - 1);.  
1ba0: 7d 20 7b 32 31 34 37 34 38 33 36 34 36 2e 30 7d  } {2147483646.0}
1bb0: 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  .  do_execsql_te
1bc0: 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72  st func4-2.[incr
1bd0: 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54   i] {.    SELECT
1be0: 20 74 6f 72 65 61 6c 28 32 31 34 37 34 38 33 36   toreal(21474836
1bf0: 34 37 29 3b 0a 20 20 7d 20 7b 32 31 34 37 34 38  47);.  } {214748
1c00: 33 36 34 37 2e 30 7d 0a 20 20 64 6f 5f 65 78 65  3647.0}.  do_exe
1c10: 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d  csql_test func4-
1c20: 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20  2.[incr i] {.   
1c30: 20 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 32   SELECT toreal(2
1c40: 31 34 37 34 38 33 36 34 37 20 2b 20 31 29 3b 0a  147483647 + 1);.
1c50: 20 20 7d 20 7b 32 31 34 37 34 38 33 36 34 38 2e    } {2147483648.
1c60: 30 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f  0}.  do_execsql_
1c70: 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e  test func4-2.[in
1c80: 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45  cr i] {.    SELE
1c90: 43 54 20 74 6f 72 65 61 6c 28 39 32 32 33 33 37  CT toreal(922337
1ca0: 32 30 33 36 38 35 34 37 37 35 38 30 37 20 2d 20  2036854775807 - 
1cb0: 31 29 3b 0a 20 20 7d 20 7b 39 2e 32 32 33 33 37  1);.  } {9.22337
1cc0: 32 30 33 36 38 35 34 37 38 65 2b 31 38 7d 0a 20  203685478e+18}. 
1cd0: 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74   do_execsql_test
1ce0: 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69   func4-2.[incr i
1cf0: 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  ] {.    SELECT t
1d00: 6f 72 65 61 6c 28 39 32 32 33 33 37 32 30 33 36  oreal(9223372036
1d10: 38 35 34 37 37 35 38 30 37 29 3b 0a 20 20 7d 20  854775807);.  } 
1d20: 7b 39 2e 32 32 33 33 37 32 30 33 36 38 35 34 37  {9.2233720368547
1d30: 38 65 2b 31 38 7d 0a 20 20 64 6f 5f 65 78 65 63  8e+18}.  do_exec
1d40: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32  sql_test func4-2
1d50: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
1d60: 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 39 32  SELECT toreal(92
1d70: 32 33 33 37 32 30 33 36 38 35 34 37 37 35 38 30  2337203685477580
1d80: 37 20 2b 20 31 29 3b 0a 20 20 7d 20 7b 39 2e 32  7 + 1);.  } {9.2
1d90: 32 33 33 37 32 30 33 36 38 35 34 37 38 65 2b 31  2337203685478e+1
1da0: 38 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f  8}.  do_execsql_
1db0: 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e  test func4-2.[in
1dc0: 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45  cr i] {.    SELE
1dd0: 43 54 20 74 6f 72 65 61 6c 28 31 2e 37 39 37 36  CT toreal(1.7976
1de0: 39 33 31 33 34 38 36 32 33 32 65 33 30 38 20 2d  9313486232e308 -
1df0: 20 31 29 3b 0a 20 20 7d 20 7b 49 6e 66 7d 0a 20   1);.  } {Inf}. 
1e00: 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74   do_execsql_test
1e10: 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69   func4-2.[incr i
1e20: 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  ] {.    SELECT t
1e30: 6f 72 65 61 6c 28 31 2e 37 39 37 36 39 33 31 33  oreal(1.79769313
1e40: 34 38 36 32 33 32 65 33 30 38 29 3b 0a 20 20 7d  486232e308);.  }
1e50: 20 7b 49 6e 66 7d 0a 20 20 64 6f 5f 65 78 65 63   {Inf}.  do_exec
1e60: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32  sql_test func4-2
1e70: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
1e80: 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28 31 2e  SELECT toreal(1.
1e90: 37 39 37 36 39 33 31 33 34 38 36 32 33 32 65 33  79769313486232e3
1ea0: 30 38 20 2b 20 31 29 3b 0a 20 20 7d 20 7b 49 6e  08 + 1);.  } {In
1eb0: 66 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f  f}.  do_execsql_
1ec0: 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e  test func4-2.[in
1ed0: 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45  cr i] {.    SELE
1ee0: 43 54 20 74 6f 72 65 61 6c 28 34 35 30 33 35 39  CT toreal(450359
1ef0: 39 36 32 37 33 37 30 34 39 36 20 2d 20 31 29 3b  9627370496 - 1);
1f00: 0a 20 20 7d 20 7b 34 35 30 33 35 39 39 36 32 37  .  } {4503599627
1f10: 33 37 30 35 30 30 2e 30 7d 0a 20 20 64 6f 5f 65  370500.0}.  do_e
1f20: 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63  xecsql_test func
1f30: 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20  4-2.[incr i] {. 
1f40: 20 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61 6c     SELECT toreal
1f50: 28 34 35 30 33 35 39 39 36 32 37 33 37 30 34 39  (450359962737049
1f60: 36 29 3b 0a 20 20 7d 20 7b 34 35 30 33 35 39 39  6);.  } {4503599
1f70: 36 32 37 33 37 30 35 30 30 2e 30 7d 0a 20 20 64  627370500.0}.  d
1f80: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66  o_execsql_test f
1f90: 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20  unc4-2.[incr i] 
1fa0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72  {.    SELECT tor
1fb0: 65 61 6c 28 34 35 30 33 35 39 39 36 32 37 33 37  eal(450359962737
1fc0: 30 34 39 36 20 2b 20 31 29 3b 0a 20 20 7d 20 7b  0496 + 1);.  } {
1fd0: 34 35 30 33 35 39 39 36 32 37 33 37 30 35 30 30  4503599627370500
1fe0: 2e 30 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c  .0}.  do_execsql
1ff0: 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69  _test func4-2.[i
2000: 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c  ncr i] {.    SEL
2010: 45 43 54 20 74 6f 72 65 61 6c 28 39 30 30 37 31  ECT toreal(90071
2020: 39 39 32 35 34 37 34 30 39 39 32 20 2d 20 31 29  99254740992 - 1)
2030: 3b 0a 20 20 7d 20 7b 39 30 30 37 31 39 39 32 35  ;.  } {900719925
2040: 34 37 34 30 39 39 30 2e 30 7d 0a 20 20 64 6f 5f  4740990.0}.  do_
2050: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
2060: 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-2.[incr i] {.
2070: 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61      SELECT torea
2080: 6c 28 39 30 30 37 31 39 39 32 35 34 37 34 30 39  l(90071992547409
2090: 39 32 29 3b 0a 20 20 7d 20 7b 39 30 30 37 31 39  92);.  } {900719
20a0: 39 32 35 34 37 34 30 39 39 30 2e 30 7d 0a 20 20  9254740990.0}.  
20b0: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
20c0: 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d  func4-2.[incr i]
20d0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 6f   {.    SELECT to
20e0: 72 65 61 6c 28 39 30 30 37 31 39 39 32 35 34 37  real(90071992547
20f0: 34 30 39 39 32 20 2b 20 31 29 3b 0a 20 20 7d 20  40992 + 1);.  } 
2100: 7b 39 30 30 37 31 39 39 32 35 34 37 34 30 39 39  {900719925474099
2110: 30 2e 30 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71  0.0}.  do_execsq
2120: 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b  l_test func4-2.[
2130: 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45  incr i] {.    SE
2140: 4c 45 43 54 20 74 6f 72 65 61 6c 28 39 32 32 33  LECT toreal(9223
2150: 33 37 32 30 33 36 38 35 34 37 37 35 38 30 38 20  372036854775808 
2160: 2d 20 31 29 3b 0a 20 20 7d 20 7b 39 2e 32 32 33  - 1);.  } {9.223
2170: 33 37 32 30 33 36 38 35 34 37 38 65 2b 31 38 7d  37203685478e+18}
2180: 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  .  do_execsql_te
2190: 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63 72  st func4-2.[incr
21a0: 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43 54   i] {.    SELECT
21b0: 20 74 6f 72 65 61 6c 28 39 32 32 33 33 37 32 30   toreal(92233720
21c0: 33 36 38 35 34 37 37 35 38 30 38 29 3b 0a 20 20  36854775808);.  
21d0: 7d 20 7b 39 2e 32 32 33 33 37 32 30 33 36 38 35  } {9.22337203685
21e0: 34 37 38 65 2b 31 38 7d 0a 20 20 64 6f 5f 65 78  478e+18}.  do_ex
21f0: 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34  ecsql_test func4
2200: 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -2.[incr i] {.  
2210: 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61 6c 28    SELECT toreal(
2220: 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35  9223372036854775
2230: 38 30 38 20 2b 20 31 29 3b 0a 20 20 7d 20 7b 39  808 + 1);.  } {9
2240: 2e 32 32 33 33 37 32 30 33 36 38 35 34 37 38 65  .22337203685478e
2250: 2b 31 38 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71  +18}.  do_execsq
2260: 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b  l_test func4-2.[
2270: 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 53 45  incr i] {.    SE
2280: 4c 45 43 54 20 74 6f 72 65 61 6c 28 31 38 34 34  LECT toreal(1844
2290: 36 37 34 34 30 37 33 37 30 39 35 35 31 36 31 36  6744073709551616
22a0: 20 2d 20 31 29 3b 0a 20 20 7d 20 7b 31 2e 38 34   - 1);.  } {1.84
22b0: 34 36 37 34 34 30 37 33 37 30 39 36 65 2b 31 39  467440737096e+19
22c0: 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74  }.  do_execsql_t
22d0: 65 73 74 20 66 75 6e 63 34 2d 32 2e 5b 69 6e 63  est func4-2.[inc
22e0: 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43  r i] {.    SELEC
22f0: 54 20 74 6f 72 65 61 6c 28 31 38 34 34 36 37 34  T toreal(1844674
2300: 34 30 37 33 37 30 39 35 35 31 36 31 36 29 3b 0a  4073709551616);.
2310: 20 20 7d 20 7b 31 2e 38 34 34 36 37 34 34 30 37    } {1.844674407
2320: 33 37 30 39 36 65 2b 31 39 7d 0a 20 20 64 6f 5f  37096e+19}.  do_
2330: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 66 75 6e  execsql_test fun
2340: 63 34 2d 32 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-2.[incr i] {.
2350: 20 20 20 20 53 45 4c 45 43 54 20 74 6f 72 65 61      SELECT torea
2360: 6c 28 31 38 34 34 36 37 34 34 30 37 33 37 30 39  l(18446744073709
2370: 35 35 31 36 31 36 20 2b 20 31 29 3b 0a 20 20 7d  551616 + 1);.  }
2380: 20 7b 31 2e 38 34 34 36 37 34 34 30 37 33 37 30   {1.844674407370
2390: 39 36 65 2b 31 39 7d 0a 7d 0a 0a 69 66 63 61 70  96e+19}.}..ifcap
23a0: 61 62 6c 65 20 63 68 65 63 6b 20 7b 0a 20 20 73  able check {.  s
23b0: 65 74 20 69 20 30 0a 20 20 64 6f 5f 65 78 65 63  et i 0.  do_exec
23c0: 73 71 6c 5f 74 65 73 74 20 66 75 6e 63 34 2d 33  sql_test func4-3
23d0: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
23e0: 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31 28  CREATE TABLE t1(
23f0: 0a 20 20 20 20 20 20 78 20 49 4e 54 45 47 45 52  .      x INTEGER
2400: 20 43 48 45 43 4b 28 74 6f 69 6e 74 65 67 65 72   CHECK(tointeger
2410: 28 78 29 20 49 53 20 4e 4f 54 20 4e 55 4c 4c 20  (x) IS NOT NULL 
2420: 41 4e 44 20 78 20 3d 20 43 41 53 54 28 78 20 41  AND x = CAST(x A
2430: 53 20 49 4e 54 45 47 45 52 29 29 0a 20 20 20 20  S INTEGER)).    
2440: 29 3b 0a 20 20 7d 20 7b 7d 0a 20 20 64 6f 5f 74  );.  } {}.  do_t
2450: 65 73 74 20 66 75 6e 63 34 2d 33 2e 5b 69 6e 63  est func4-3.[inc
2460: 72 20 69 5d 20 7b 0a 20 20 20 20 63 61 74 63 68  r i] {.    catch
2470: 73 71 6c 20 7b 0a 20 20 20 20 20 20 49 4e 53 45  sql {.      INSE
2480: 52 54 20 49 4e 54 4f 20 74 31 20 28 78 29 20 56  RT INTO t1 (x) V
2490: 41 4c 55 45 53 20 28 4e 55 4c 4c 29 3b 0a 20 20  ALUES (NULL);.  
24a0: 20 20 7d 0a 20 20 7d 20 7b 31 20 7b 63 6f 6e 73    }.  } {1 {cons
24b0: 74 72 61 69 6e 74 20 66 61 69 6c 65 64 7d 7d 0a  traint failed}}.
24c0: 20 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d    do_test func4-
24d0: 33 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20  3.[incr i] {.   
24e0: 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20   catchsql {.    
24f0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
2500: 20 28 78 29 20 56 41 4c 55 45 53 20 28 4e 55 4c   (x) VALUES (NUL
2510: 4c 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 20 7b 31  L);.    }.  } {1
2520: 20 7b 63 6f 6e 73 74 72 61 69 6e 74 20 66 61 69   {constraint fai
2530: 6c 65 64 7d 7d 0a 20 20 64 6f 5f 74 65 73 74 20  led}}.  do_test 
2540: 66 75 6e 63 34 2d 33 2e 5b 69 6e 63 72 20 69 5d  func4-3.[incr i]
2550: 20 7b 0a 20 20 20 20 63 61 74 63 68 73 71 6c 20   {.    catchsql 
2560: 7b 0a 20 20 20 20 20 20 49 4e 53 45 52 54 20 49  {.      INSERT I
2570: 4e 54 4f 20 74 31 20 28 78 29 20 56 41 4c 55 45  NTO t1 (x) VALUE
2580: 53 20 28 27 27 29 3b 0a 20 20 20 20 7d 0a 20 20  S ('');.    }.  
2590: 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69 6e 74  } {1 {constraint
25a0: 20 66 61 69 6c 65 64 7d 7d 0a 20 20 64 6f 5f 74   failed}}.  do_t
25b0: 65 73 74 20 66 75 6e 63 34 2d 33 2e 5b 69 6e 63  est func4-3.[inc
25c0: 72 20 69 5d 20 7b 0a 20 20 20 20 63 61 74 63 68  r i] {.    catch
25d0: 73 71 6c 20 7b 0a 20 20 20 20 20 20 49 4e 53 45  sql {.      INSE
25e0: 52 54 20 49 4e 54 4f 20 74 31 20 28 78 29 20 56  RT INTO t1 (x) V
25f0: 41 4c 55 45 53 20 28 27 62 61 64 27 29 3b 0a 20  ALUES ('bad');. 
2600: 20 20 20 7d 0a 20 20 7d 20 7b 31 20 7b 63 6f 6e     }.  } {1 {con
2610: 73 74 72 61 69 6e 74 20 66 61 69 6c 65 64 7d 7d  straint failed}}
2620: 0a 20 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34  .  do_test func4
2630: 2d 33 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -3.[incr i] {.  
2640: 20 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20    catchsql {.   
2650: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2660: 31 20 28 78 29 20 56 41 4c 55 45 53 20 28 27 31  1 (x) VALUES ('1
2670: 32 33 34 62 61 64 27 29 3b 0a 20 20 20 20 7d 0a  234bad');.    }.
2680: 20 20 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69    } {1 {constrai
2690: 6e 74 20 66 61 69 6c 65 64 7d 7d 0a 20 20 64 6f  nt failed}}.  do
26a0: 5f 74 65 73 74 20 66 75 6e 63 34 2d 33 2e 5b 69  _test func4-3.[i
26b0: 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 63 61 74  ncr i] {.    cat
26c0: 63 68 73 71 6c 20 7b 0a 20 20 20 20 20 20 49 4e  chsql {.      IN
26d0: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28 78 29  SERT INTO t1 (x)
26e0: 20 56 41 4c 55 45 53 20 28 27 31 32 33 34 2e 35   VALUES ('1234.5
26f0: 36 62 61 64 27 29 3b 0a 20 20 20 20 7d 0a 20 20  6bad');.    }.  
2700: 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69 6e 74  } {1 {constraint
2710: 20 66 61 69 6c 65 64 7d 7d 0a 20 20 64 6f 5f 74   failed}}.  do_t
2720: 65 73 74 20 66 75 6e 63 34 2d 33 2e 5b 69 6e 63  est func4-3.[inc
2730: 72 20 69 5d 20 7b 0a 20 20 20 20 63 61 74 63 68  r i] {.    catch
2740: 73 71 6c 20 7b 0a 20 20 20 20 20 20 49 4e 53 45  sql {.      INSE
2750: 52 54 20 49 4e 54 4f 20 74 31 20 28 78 29 20 56  RT INTO t1 (x) V
2760: 41 4c 55 45 53 20 28 31 32 33 34 29 3b 0a 20 20  ALUES (1234);.  
2770: 20 20 7d 0a 20 20 7d 20 7b 30 20 7b 7d 7d 0a 20    }.  } {0 {}}. 
2780: 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 33   do_test func4-3
2790: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
27a0: 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 20  catchsql {.     
27b0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20   INSERT INTO t1 
27c0: 28 78 29 20 56 41 4c 55 45 53 20 28 31 32 33 34  (x) VALUES (1234
27d0: 2e 35 36 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 20  .56);.    }.  } 
27e0: 7b 31 20 7b 63 6f 6e 73 74 72 61 69 6e 74 20 66  {1 {constraint f
27f0: 61 69 6c 65 64 7d 7d 0a 20 20 64 6f 5f 74 65 73  ailed}}.  do_tes
2800: 74 20 66 75 6e 63 34 2d 33 2e 5b 69 6e 63 72 20  t func4-3.[incr 
2810: 69 5d 20 7b 0a 20 20 20 20 63 61 74 63 68 73 71  i] {.    catchsq
2820: 6c 20 7b 0a 20 20 20 20 20 20 49 4e 53 45 52 54  l {.      INSERT
2830: 20 49 4e 54 4f 20 74 31 20 28 78 29 20 56 41 4c   INTO t1 (x) VAL
2840: 55 45 53 20 28 27 31 32 33 34 27 29 3b 0a 20 20  UES ('1234');.  
2850: 20 20 7d 0a 20 20 7d 20 7b 30 20 7b 7d 7d 0a 20    }.  } {0 {}}. 
2860: 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 33   do_test func4-3
2870: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
2880: 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 20  catchsql {.     
2890: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 20   INSERT INTO t1 
28a0: 28 78 29 20 56 41 4c 55 45 53 20 28 27 31 32 33  (x) VALUES ('123
28b0: 34 2e 35 36 27 29 3b 0a 20 20 20 20 7d 0a 20 20  4.56');.    }.  
28c0: 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69 6e 74  } {1 {constraint
28d0: 20 66 61 69 6c 65 64 7d 7d 0a 20 20 64 6f 5f 74   failed}}.  do_t
28e0: 65 73 74 20 66 75 6e 63 34 2d 33 2e 5b 69 6e 63  est func4-3.[inc
28f0: 72 20 69 5d 20 7b 0a 20 20 20 20 63 61 74 63 68  r i] {.    catch
2900: 73 71 6c 20 7b 0a 20 20 20 20 20 20 49 4e 53 45  sql {.      INSE
2910: 52 54 20 49 4e 54 4f 20 74 31 20 28 78 29 20 56  RT INTO t1 (x) V
2920: 41 4c 55 45 53 20 28 5a 45 52 4f 42 4c 4f 42 28  ALUES (ZEROBLOB(
2930: 34 29 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 20 7b  4));.    }.  } {
2940: 31 20 7b 63 6f 6e 73 74 72 61 69 6e 74 20 66 61  1 {constraint fa
2950: 69 6c 65 64 7d 7d 0a 20 20 64 6f 5f 74 65 73 74  iled}}.  do_test
2960: 20 66 75 6e 63 34 2d 33 2e 5b 69 6e 63 72 20 69   func4-3.[incr i
2970: 5d 20 7b 0a 20 20 20 20 63 61 74 63 68 73 71 6c  ] {.    catchsql
2980: 20 7b 0a 20 20 20 20 20 20 49 4e 53 45 52 54 20   {.      INSERT 
2990: 49 4e 54 4f 20 74 31 20 28 78 29 20 56 41 4c 55  INTO t1 (x) VALU
29a0: 45 53 20 28 58 27 27 29 3b 0a 20 20 20 20 7d 0a  ES (X'');.    }.
29b0: 20 20 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69    } {1 {constrai
29c0: 6e 74 20 66 61 69 6c 65 64 7d 7d 0a 20 20 64 6f  nt failed}}.  do
29d0: 5f 74 65 73 74 20 66 75 6e 63 34 2d 33 2e 5b 69  _test func4-3.[i
29e0: 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 63 61 74  ncr i] {.    cat
29f0: 63 68 73 71 6c 20 7b 0a 20 20 20 20 20 20 49 4e  chsql {.      IN
2a00: 53 45 52 54 20 49 4e 54 4f 20 74 31 20 28 78 29  SERT INTO t1 (x)
2a10: 20 56 41 4c 55 45 53 20 28 58 27 31 32 33 34 27   VALUES (X'1234'
2a20: 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 20 7b 31 20  );.    }.  } {1 
2a30: 7b 63 6f 6e 73 74 72 61 69 6e 74 20 66 61 69 6c  {constraint fail
2a40: 65 64 7d 7d 0a 20 20 64 6f 5f 74 65 73 74 20 66  ed}}.  do_test f
2a50: 75 6e 63 34 2d 33 2e 5b 69 6e 63 72 20 69 5d 20  unc4-3.[incr i] 
2a60: 7b 0a 20 20 20 20 63 61 74 63 68 73 71 6c 20 7b  {.    catchsql {
2a70: 0a 20 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e  .      INSERT IN
2a80: 54 4f 20 74 31 20 28 78 29 20 56 41 4c 55 45 53  TO t1 (x) VALUES
2a90: 20 28 58 27 31 32 33 34 35 36 37 38 27 29 3b 0a   (X'12345678');.
2aa0: 20 20 20 20 7d 0a 20 20 7d 20 7b 31 20 7b 63 6f      }.  } {1 {co
2ab0: 6e 73 74 72 61 69 6e 74 20 66 61 69 6c 65 64 7d  nstraint failed}
2ac0: 7d 0a 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74  }.  do_execsql_t
2ad0: 65 73 74 20 66 75 6e 63 34 2d 33 2e 5b 69 6e 63  est func4-3.[inc
2ae0: 72 20 69 5d 20 7b 0a 20 20 20 20 53 45 4c 45 43  r i] {.    SELEC
2af0: 54 20 78 20 46 52 4f 4d 20 74 31 20 4f 52 44 45  T x FROM t1 ORDE
2b00: 52 20 42 59 20 78 3b 0a 20 20 7d 20 7b 31 32 33  R BY x;.  } {123
2b10: 34 20 31 32 33 34 7d 0a 0a 20 20 69 66 63 61 70  4 1234}..  ifcap
2b20: 61 62 6c 65 20 66 6c 6f 61 74 69 6e 67 70 6f 69  able floatingpoi
2b30: 6e 74 20 7b 0a 20 20 20 20 73 65 74 20 69 20 30  nt {.    set i 0
2b40: 0a 20 20 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f  .    do_execsql_
2b50: 74 65 73 74 20 66 75 6e 63 34 2d 34 2e 5b 69 6e  test func4-4.[in
2b60: 63 72 20 69 5d 20 7b 0a 20 20 20 20 20 20 43 52  cr i] {.      CR
2b70: 45 41 54 45 20 54 41 42 4c 45 20 74 32 28 0a 20  EATE TABLE t2(. 
2b80: 20 20 20 20 20 20 20 78 20 52 45 41 4c 20 43 48         x REAL CH
2b90: 45 43 4b 28 74 6f 72 65 61 6c 28 78 29 20 49 53  ECK(toreal(x) IS
2ba0: 20 4e 4f 54 20 4e 55 4c 4c 29 0a 20 20 20 20 20   NOT NULL).     
2bb0: 20 29 3b 0a 20 20 20 20 7d 20 7b 7d 0a 20 20 20   );.    } {}.   
2bc0: 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 34   do_test func4-4
2bd0: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
2be0: 20 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20    catchsql {.   
2bf0: 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f       INSERT INTO
2c00: 20 74 32 20 28 78 29 20 56 41 4c 55 45 53 20 28   t2 (x) VALUES (
2c10: 4e 55 4c 4c 29 3b 0a 20 20 20 20 20 20 7d 0a 20  NULL);.      }. 
2c20: 20 20 20 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61     } {1 {constra
2c30: 69 6e 74 20 66 61 69 6c 65 64 7d 7d 0a 20 20 20  int failed}}.   
2c40: 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 34   do_test func4-4
2c50: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
2c60: 20 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20    catchsql {.   
2c70: 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f       INSERT INTO
2c80: 20 74 32 20 28 78 29 20 56 41 4c 55 45 53 20 28   t2 (x) VALUES (
2c90: 4e 55 4c 4c 29 3b 0a 20 20 20 20 20 20 7d 0a 20  NULL);.      }. 
2ca0: 20 20 20 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61     } {1 {constra
2cb0: 69 6e 74 20 66 61 69 6c 65 64 7d 7d 0a 20 20 20  int failed}}.   
2cc0: 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 34   do_test func4-4
2cd0: 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20  .[incr i] {.    
2ce0: 20 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20    catchsql {.   
2cf0: 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f       INSERT INTO
2d00: 20 74 32 20 28 78 29 20 56 41 4c 55 45 53 20 28   t2 (x) VALUES (
2d10: 27 27 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20  '');.      }.   
2d20: 20 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69 6e   } {1 {constrain
2d30: 74 20 66 61 69 6c 65 64 7d 7d 0a 20 20 20 20 64  t failed}}.    d
2d40: 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 34 2e 5b  o_test func4-4.[
2d50: 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 20 20  incr i] {.      
2d60: 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 20  catchsql {.     
2d70: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
2d80: 32 20 28 78 29 20 56 41 4c 55 45 53 20 28 27 62  2 (x) VALUES ('b
2d90: 61 64 27 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20  ad');.      }.  
2da0: 20 20 7d 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69    } {1 {constrai
2db0: 6e 74 20 66 61 69 6c 65 64 7d 7d 0a 20 20 20 20  nt failed}}.    
2dc0: 64 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 34 2e  do_test func4-4.
2dd0: 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 20  [incr i] {.     
2de0: 20 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20   catchsql {.    
2df0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
2e00: 74 32 20 28 78 29 20 56 41 4c 55 45 53 20 28 27  t2 (x) VALUES ('
2e10: 31 32 33 34 62 61 64 27 29 3b 0a 20 20 20 20 20  1234bad');.     
2e20: 20 7d 0a 20 20 20 20 7d 20 7b 31 20 7b 63 6f 6e   }.    } {1 {con
2e30: 73 74 72 61 69 6e 74 20 66 61 69 6c 65 64 7d 7d  straint failed}}
2e40: 0a 20 20 20 20 64 6f 5f 74 65 73 74 20 66 75 6e  .    do_test fun
2e50: 63 34 2d 34 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a  c4-4.[incr i] {.
2e60: 20 20 20 20 20 20 63 61 74 63 68 73 71 6c 20 7b        catchsql {
2e70: 0a 20 20 20 20 20 20 20 20 49 4e 53 45 52 54 20  .        INSERT 
2e80: 49 4e 54 4f 20 74 32 20 28 78 29 20 56 41 4c 55  INTO t2 (x) VALU
2e90: 45 53 20 28 27 31 32 33 34 2e 35 36 62 61 64 27  ES ('1234.56bad'
2ea0: 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d  );.      }.    }
2eb0: 20 7b 31 20 7b 63 6f 6e 73 74 72 61 69 6e 74 20   {1 {constraint 
2ec0: 66 61 69 6c 65 64 7d 7d 0a 20 20 20 20 64 6f 5f  failed}}.    do_
2ed0: 74 65 73 74 20 66 75 6e 63 34 2d 34 2e 5b 69 6e  test func4-4.[in
2ee0: 63 72 20 69 5d 20 7b 0a 20 20 20 20 20 20 63 61  cr i] {.      ca
2ef0: 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 20 20 20  tchsql {.       
2f00: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20   INSERT INTO t2 
2f10: 28 78 29 20 56 41 4c 55 45 53 20 28 31 32 33 34  (x) VALUES (1234
2f20: 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d  );.      }.    }
2f30: 20 7b 30 20 7b 7d 7d 0a 20 20 20 20 64 6f 5f 74   {0 {}}.    do_t
2f40: 65 73 74 20 66 75 6e 63 34 2d 34 2e 5b 69 6e 63  est func4-4.[inc
2f50: 72 20 69 5d 20 7b 0a 20 20 20 20 20 20 63 61 74  r i] {.      cat
2f60: 63 68 73 71 6c 20 7b 0a 20 20 20 20 20 20 20 20  chsql {.        
2f70: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 28  INSERT INTO t2 (
2f80: 78 29 20 56 41 4c 55 45 53 20 28 31 32 33 34 2e  x) VALUES (1234.
2f90: 35 36 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20  56);.      }.   
2fa0: 20 7d 20 7b 30 20 7b 7d 7d 0a 20 20 20 20 64 6f   } {0 {}}.    do
2fb0: 5f 74 65 73 74 20 66 75 6e 63 34 2d 34 2e 5b 69  _test func4-4.[i
2fc0: 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 20 20 63  ncr i] {.      c
2fd0: 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 20 20  atchsql {.      
2fe0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32    INSERT INTO t2
2ff0: 20 28 78 29 20 56 41 4c 55 45 53 20 28 27 31 32   (x) VALUES ('12
3000: 33 34 27 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20  34');.      }.  
3010: 20 20 7d 20 7b 30 20 7b 7d 7d 0a 20 20 20 20 64    } {0 {}}.    d
3020: 6f 5f 74 65 73 74 20 66 75 6e 63 34 2d 34 2e 5b  o_test func4-4.[
3030: 69 6e 63 72 20 69 5d 20 7b 0a 20 20 20 20 20 20  incr i] {.      
3040: 63 61 74 63 68 73 71 6c 20 7b 0a 20 20 20 20 20  catchsql {.     
3050: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
3060: 32 20 28 78 29 20 56 41 4c 55 45 53 20 28 27 31  2 (x) VALUES ('1
3070: 32 33 34 2e 35 36 27 29 3b 0a 20 20 20 20 20 20  234.56');.      
3080: 7d 0a 20 20 20 20 7d 20 7b 30 20 7b 7d 7d 0a 20  }.    } {0 {}}. 
3090: 20 20 20 64 6f 5f 74 65 73 74 20 66 75 6e 63 34     do_test func4
30a0: 2d 34 2e 5b 69 6e 63 72 20 69 5d 20 7b 0a 20 20  -4.[incr i] {.  
30b0: 20 20 20 20 63 61 74 63 68 73 71 6c 20 7b 0a 20      catchsql {. 
30c0: 20 20 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e         INSERT IN
30d0: 54 4f 20 74 32 20 28 78 29 20 56 41 4c 55 45 53  TO t2 (x) VALUES
30e0: 20 28 5a 45 52 4f 42 4c 4f 42 28 34 29 29 3b 0a   (ZEROBLOB(4));.
30f0: 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 7b 31        }.    } {1
3100: 20 7b 63 6f 6e 73 74 72 61 69 6e 74 20 66 61 69   {constraint fai
3110: 6c 65 64 7d 7d 0a 20 20 20 20 64 6f 5f 74 65 73  led}}.    do_tes
3120: 74 20 66 75 6e 63 34 2d 34 2e 5b 69 6e 63 72 20  t func4-4.[incr 
3130: 69 5d 20 7b 0a 20 20 20 20 20 20 63 61 74 63 68  i] {.      catch
3140: 73 71 6c 20 7b 0a 20 20 20 20 20 20 20 20 49 4e  sql {.        IN
3150: 53 45 52 54 20 49 4e 54 4f 20 74 32 20 28 78 29  SERT INTO t2 (x)
3160: 20 56 41 4c 55 45 53 20 28 58 27 27 29 3b 0a 20   VALUES (X'');. 
3170: 20 20 20 20 20 7d 0a 20 20 20 20 7d 20 7b 31 20       }.    } {1 
3180: 7b 63 6f 6e 73 74 72 61 69 6e 74 20 66 61 69 6c  {constraint fail
3190: 65 64 7d 7d 0a 20 20 20 20 64 6f 5f 74 65 73 74  ed}}.    do_test
31a0: 20 66 75 6e 63 34 2d 34 2e 5b 69 6e 63 72 20 69   func4-4.[incr i
31b0: 5d 20 7b 0a 20 20 20 20 20 20 63 61 74 63 68 73  ] {.      catchs
31c0: 71 6c 20 7b 0a 20 20 20 20 20 20 20 20 49 4e 53  ql {.        INS
31d0: 45 52 54 20 49 4e 54 4f 20 74 32 20 28 78 29 20  ERT INTO t2 (x) 
31e0: 56 41 4c 55 45 53 20 28 58 27 31 32 33 34 27 29  VALUES (X'1234')
31f0: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 20  ;.      }.    } 
3200: 7b 31 20 7b 63 6f 6e 73 74 72 61 69 6e 74 20 66  {1 {constraint f
3210: 61 69 6c 65 64 7d 7d 0a 20 20 20 20 64 6f 5f 74  ailed}}.    do_t
3220: 65 73 74 20 66 75 6e 63 34 2d 34 2e 5b 69 6e 63  est func4-4.[inc
3230: 72 20 69 5d 20 7b 0a 20 20 20 20 20 20 63 61 74  r i] {.      cat
3240: 63 68 73 71 6c 20 7b 0a 20 20 20 20 20 20 20 20  chsql {.        
3250: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 32 20 28  INSERT INTO t2 (
3260: 78 29 20 56 41 4c 55 45 53 20 28 58 27 31 32 33  x) VALUES (X'123
3270: 34 35 36 37 38 27 29 3b 0a 20 20 20 20 20 20 7d  45678');.      }
3280: 0a 20 20 20 20 7d 20 7b 31 20 7b 63 6f 6e 73 74  .    } {1 {const
3290: 72 61 69 6e 74 20 66 61 69 6c 65 64 7d 7d 0a 20  raint failed}}. 
32a0: 20 20 20 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65     do_execsql_te
32b0: 73 74 20 66 75 6e 63 34 2d 34 2e 5b 69 6e 63 72  st func4-4.[incr
32c0: 20 69 5d 20 7b 0a 20 20 20 20 20 20 53 45 4c 45   i] {.      SELE
32d0: 43 54 20 78 20 46 52 4f 4d 20 74 32 20 4f 52 44  CT x FROM t2 ORD
32e0: 45 52 20 42 59 20 78 3b 0a 20 20 20 20 7d 20 7b  ER BY x;.    } {
32f0: 31 32 33 34 2e 30 20 31 32 33 34 2e 30 20 31 32  1234.0 1234.0 12
3300: 33 34 2e 35 36 20 31 32 33 34 2e 35 36 7d 0a 20  34.56 1234.56}. 
3310: 20 7d 0a 7d 0a 0a 66 69 6e 69 73 68 5f 74 65 73   }.}..finish_tes
3320: 74 0a                                            t.