/ Hex Artifact Content
Login

Artifact f26be40ab4fe6c00795629bd2006d96e270d9b1a:


0000: 23 20 32 30 30 39 20 4a 75 6e 65 20 31 37 0a 23  # 2009 June 17.#
0010: 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69  .# The author di
0020: 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68  sclaims copyrigh
0030: 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65  t to this source
0040: 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65   code.  In place
0050: 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f   of.# a legal no
0060: 74 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20  tice, here is a 
0070: 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20  blessing:.#.#   
0080: 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64   May you do good
0090: 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23   and not evil..#
00a0: 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64      May you find
00b0: 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72   forgiveness for
00c0: 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f   yourself and fo
00d0: 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20  rgive others..# 
00e0: 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65     May you share
00f0: 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74   freely, never t
0100: 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20  aking more than 
0110: 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 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 0a 23 0a 23 20 24 49 64 3a 20 74 6b  ****.#.# $Id: tk
0170: 74 33 39 32 32 2e 74 65 73 74 2c 76 20 31 2e 32  t3922.test,v 1.2
0180: 20 32 30 30 39 2f 30 36 2f 32 36 20 31 34 3a 31   2009/06/26 14:1
0190: 37 3a 34 37 20 73 68 61 6e 65 20 45 78 70 20 24  7:47 shane Exp $
01a0: 0a 0a 73 65 74 20 74 65 73 74 64 69 72 20 5b 66  ..set testdir [f
01b0: 69 6c 65 20 64 69 72 6e 61 6d 65 20 24 61 72 67  ile dirname $arg
01c0: 76 30 5d 0a 73 6f 75 72 63 65 20 24 74 65 73 74  v0].source $test
01d0: 64 69 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a  dir/tester.tcl..
01e0: 69 66 20 7b 5b 77 6f 72 6b 69 6e 67 5f 36 34 62  if {[working_64b
01f0: 69 74 5f 69 6e 74 5d 7d 20 7b 0a 20 20 64 6f 5f  it_int]} {.  do_
0200: 74 65 73 74 20 74 6b 74 33 39 32 32 2e 31 20 7b  test tkt3922.1 {
0210: 0a 20 20 20 20 65 78 65 63 73 71 6c 20 7b 0a 20  .    execsql {. 
0220: 20 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c       CREATE TABL
0230: 45 20 74 31 28 61 20 4e 55 4d 42 45 52 29 3b 0a  E t1(a NUMBER);.
0240: 20 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54        INSERT INT
0250: 4f 20 74 31 20 56 41 4c 55 45 53 28 27 2d 39 32  O t1 VALUES('-92
0260: 32 33 33 37 32 30 33 36 38 35 34 37 37 35 38 30  2337203685477580
0270: 38 27 29 3b 0a 20 20 20 20 20 20 53 45 4c 45 43  8');.      SELEC
0280: 54 20 61 2c 20 74 79 70 65 6f 66 28 61 29 20 46  T a, typeof(a) F
0290: 52 4f 4d 20 74 31 3b 0a 20 20 20 20 7d 0a 20 20  ROM t1;.    }.  
02a0: 7d 20 7b 2d 39 32 32 33 33 37 32 30 33 36 38 35  } {-922337203685
02b0: 34 37 37 35 38 30 38 20 69 6e 74 65 67 65 72 7d  4775808 integer}
02c0: 0a 7d 20 65 6c 73 65 20 7b 0a 20 20 23 20 74 68  .} else {.  # th
02d0: 69 73 20 61 6c 74 65 72 6e 61 74 65 20 76 65 72  is alternate ver
02e0: 73 69 6f 6e 20 6f 66 20 74 6b 74 33 39 32 32 2e  sion of tkt3922.
02f0: 31 20 64 6f 65 73 6e 27 74 0a 20 20 23 20 72 65  1 doesn't.  # re
0300: 61 6c 6c 79 20 74 65 73 74 20 74 68 65 20 73 61  ally test the sa
0310: 6d 65 20 74 68 69 6e 67 20 61 73 20 74 68 65 20  me thing as the 
0320: 6f 72 69 67 69 6e 61 6c 2c 20 0a 20 20 23 20 62  original, .  # b
0330: 75 74 20 69 73 20 6e 65 65 64 65 64 20 74 6f 20  ut is needed to 
0340: 63 72 65 61 74 65 20 74 68 65 20 74 61 62 6c 65  create the table
0350: 20 61 6e 64 20 0a 20 20 23 20 70 72 6f 76 69 64   and .  # provid
0360: 65 64 20 73 69 6d 70 6c 79 20 61 73 20 61 20 70  ed simply as a p
0370: 6c 61 63 65 20 68 6f 6c 64 65 72 20 66 6f 72 20  lace holder for 
0380: 0a 20 20 23 20 70 6c 61 74 66 6f 72 6d 73 20 77  .  # platforms w
0390: 69 74 68 6f 75 74 20 77 6f 72 6b 69 6e 67 20 36  ithout working 6
03a0: 34 62 69 74 20 73 75 70 70 6f 72 74 2e 0a 20 20  4bit support..  
03b0: 64 6f 5f 74 65 73 74 20 74 6b 74 33 39 32 32 2e  do_test tkt3922.
03c0: 31 20 7b 0a 20 20 20 20 65 78 65 63 73 71 6c 20  1 {.    execsql 
03d0: 7b 0a 20 20 20 20 20 20 43 52 45 41 54 45 20 54  {.      CREATE T
03e0: 41 42 4c 45 20 74 31 28 61 20 4e 55 4d 42 45 52  ABLE t1(a NUMBER
03f0: 29 3b 0a 20 20 20 20 20 20 49 4e 53 45 52 54 20  );.      INSERT 
0400: 49 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28 27  INTO t1 VALUES('
0410: 2d 31 27 29 3b 0a 20 20 20 20 20 20 53 45 4c 45  -1');.      SELE
0420: 43 54 20 61 2c 20 74 79 70 65 6f 66 28 61 29 20  CT a, typeof(a) 
0430: 46 52 4f 4d 20 74 31 3b 0a 20 20 20 20 7d 0a 20  FROM t1;.    }. 
0440: 20 7d 20 7b 2d 31 20 69 6e 74 65 67 65 72 7d 0a   } {-1 integer}.
0450: 7d 0a 64 6f 5f 72 65 61 6c 6e 75 6d 5f 74 65 73  }.do_realnum_tes
0460: 74 20 74 6b 74 33 39 32 32 2e 32 20 7b 0a 20 20  t tkt3922.2 {.  
0470: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 44 45  execsql {.    DE
0480: 4c 45 54 45 20 46 52 4f 4d 20 74 31 3b 0a 20 20  LETE FROM t1;.  
0490: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
04a0: 20 56 41 4c 55 45 53 28 27 2d 39 32 32 33 33 37   VALUES('-922337
04b0: 32 30 33 36 38 35 34 37 37 35 38 30 39 27 29 3b  2036854775809');
04c0: 0a 20 20 20 20 53 45 4c 45 43 54 20 61 2c 20 74  .    SELECT a, t
04d0: 79 70 65 6f 66 28 61 29 20 46 52 4f 4d 20 74 31  ypeof(a) FROM t1
04e0: 3b 0a 20 20 7d 0a 7d 20 7b 2d 39 2e 32 32 33 33  ;.  }.} {-9.2233
04f0: 37 32 30 33 36 38 35 34 37 38 65 2b 31 38 20 72  7203685478e+18 r
0500: 65 61 6c 7d 0a 64 6f 5f 72 65 61 6c 6e 75 6d 5f  eal}.do_realnum_
0510: 74 65 73 74 20 74 6b 74 33 39 32 32 2e 33 20 7b  test tkt3922.3 {
0520: 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20 20 20  .  execsql {.   
0530: 20 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 31 3b   DELETE FROM t1;
0540: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0550: 20 74 31 20 56 41 4c 55 45 53 28 27 2d 39 32 32   t1 VALUES('-922
0560: 33 33 37 32 30 33 36 38 35 34 37 37 36 38 33 32  3372036854776832
0570: 27 29 3b 0a 20 20 20 20 53 45 4c 45 43 54 20 61  ');.    SELECT a
0580: 2c 20 74 79 70 65 6f 66 28 61 29 20 46 52 4f 4d  , typeof(a) FROM
0590: 20 74 31 3b 0a 20 20 7d 0a 7d 20 7b 2d 39 2e 32   t1;.  }.} {-9.2
05a0: 32 33 33 37 32 30 33 36 38 35 34 37 38 65 2b 31  2337203685478e+1
05b0: 38 20 72 65 61 6c 7d 0a 64 6f 5f 72 65 61 6c 6e  8 real}.do_realn
05c0: 75 6d 5f 74 65 73 74 20 74 6b 74 33 39 32 32 2e  um_test tkt3922.
05d0: 34 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a  4 {.  execsql {.
05e0: 20 20 20 20 44 45 4c 45 54 45 20 46 52 4f 4d 20      DELETE FROM 
05f0: 74 31 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  t1;.    INSERT I
0600: 4e 54 4f 20 74 31 20 56 41 4c 55 45 53 28 27 2d  NTO t1 VALUES('-
0610: 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 36  9223372036854776
0620: 38 33 33 27 29 3b 0a 20 20 20 20 53 45 4c 45 43  833');.    SELEC
0630: 54 20 61 2c 20 74 79 70 65 6f 66 28 61 29 20 46  T a, typeof(a) F
0640: 52 4f 4d 20 74 31 3b 0a 20 20 7d 0a 7d 20 7b 2d  ROM t1;.  }.} {-
0650: 39 2e 32 32 33 33 37 32 30 33 36 38 35 34 37 38  9.22337203685478
0660: 65 2b 31 38 20 72 65 61 6c 7d 0a 69 66 20 7b 5b  e+18 real}.if {[
0670: 77 6f 72 6b 69 6e 67 5f 36 34 62 69 74 5f 69 6e  working_64bit_in
0680: 74 5d 7d 20 7b 0a 20 20 64 6f 5f 74 65 73 74 20  t]} {.  do_test 
0690: 74 6b 74 33 39 32 32 2e 35 20 7b 0a 20 20 20 20  tkt3922.5 {.    
06a0: 65 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 20 20  execsql {.      
06b0: 44 45 4c 45 54 45 20 46 52 4f 4d 20 74 31 3b 0a  DELETE FROM t1;.
06c0: 20 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54        INSERT INT
06d0: 4f 20 74 31 20 56 41 4c 55 45 53 28 27 39 32 32  O t1 VALUES('922
06e0: 33 33 37 32 30 33 36 38 35 34 37 37 35 38 30 37  3372036854775807
06f0: 27 29 3b 0a 20 20 20 20 20 20 53 45 4c 45 43 54  ');.      SELECT
0700: 20 61 2c 20 74 79 70 65 6f 66 28 61 29 20 46 52   a, typeof(a) FR
0710: 4f 4d 20 74 31 3b 0a 20 20 20 20 7d 0a 20 20 7d  OM t1;.    }.  }
0720: 20 7b 39 32 32 33 33 37 32 30 33 36 38 35 34 37   {92233720368547
0730: 37 35 38 30 37 20 69 6e 74 65 67 65 72 7d 0a 7d  75807 integer}.}
0740: 20 65 6c 73 65 20 7b 0a 20 20 23 20 74 68 69 73   else {.  # this
0750: 20 61 6c 74 65 72 6e 61 74 65 20 76 65 72 73 69   alternate versi
0760: 6f 6e 20 6f 66 20 74 6b 74 33 39 32 32 2e 35 20  on of tkt3922.5 
0770: 64 6f 65 73 6e 27 74 0a 20 20 23 20 72 65 61 6c  doesn't.  # real
0780: 6c 79 20 74 65 73 74 20 74 68 65 20 73 61 6d 65  ly test the same
0790: 20 74 68 69 6e 67 20 61 73 20 74 68 65 20 6f 72   thing as the or
07a0: 69 67 69 6e 61 6c 2c 20 0a 20 20 23 20 62 75 74  iginal, .  # but
07b0: 20 70 72 6f 76 69 64 65 64 20 73 69 6d 70 6c 79   provided simply
07c0: 20 61 73 20 61 20 70 6c 61 63 65 20 68 6f 6c 64   as a place hold
07d0: 65 72 20 66 6f 72 20 0a 20 20 23 20 70 6c 61 74  er for .  # plat
07e0: 66 6f 72 6d 73 20 77 69 74 68 6f 75 74 20 77 6f  forms without wo
07f0: 72 6b 69 6e 67 20 36 34 62 69 74 20 73 75 70 70  rking 64bit supp
0800: 6f 72 74 2e 0a 20 20 64 6f 5f 74 65 73 74 20 74  ort..  do_test t
0810: 6b 74 33 39 32 32 2e 35 20 7b 0a 20 20 20 20 65  kt3922.5 {.    e
0820: 78 65 63 73 71 6c 20 7b 0a 20 20 20 20 20 20 44  xecsql {.      D
0830: 45 4c 45 54 45 20 46 52 4f 4d 20 74 31 3b 0a 20  ELETE FROM t1;. 
0840: 20 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f       INSERT INTO
0850: 20 74 31 20 56 41 4c 55 45 53 28 27 31 27 29 3b   t1 VALUES('1');
0860: 0a 20 20 20 20 20 20 53 45 4c 45 43 54 20 61 2c  .      SELECT a,
0870: 20 74 79 70 65 6f 66 28 61 29 20 46 52 4f 4d 20   typeof(a) FROM 
0880: 74 31 3b 0a 20 20 20 20 7d 0a 20 20 7d 20 7b 31  t1;.    }.  } {1
0890: 20 69 6e 74 65 67 65 72 7d 0a 7d 0a 64 6f 5f 72   integer}.}.do_r
08a0: 65 61 6c 6e 75 6d 5f 74 65 73 74 20 74 6b 74 33  ealnum_test tkt3
08b0: 39 32 32 2e 36 20 7b 0a 20 20 65 78 65 63 73 71  922.6 {.  execsq
08c0: 6c 20 7b 0a 20 20 20 20 44 45 4c 45 54 45 20 46  l {.    DELETE F
08d0: 52 4f 4d 20 74 31 3b 0a 20 20 20 20 49 4e 53 45  ROM t1;.    INSE
08e0: 52 54 20 49 4e 54 4f 20 74 31 20 56 41 4c 55 45  RT INTO t1 VALUE
08f0: 53 28 27 39 32 32 33 33 37 32 30 33 36 38 35 34  S('9223372036854
0900: 37 37 35 38 30 38 27 29 3b 0a 20 20 20 20 53 45  775808');.    SE
0910: 4c 45 43 54 20 61 2c 20 74 79 70 65 6f 66 28 61  LECT a, typeof(a
0920: 29 20 46 52 4f 4d 20 74 31 3b 0a 20 20 7d 0a 7d  ) FROM t1;.  }.}
0930: 20 7b 39 2e 32 32 33 33 37 32 30 33 36 38 35 34   {9.223372036854
0940: 37 38 65 2b 31 38 20 72 65 61 6c 7d 0a 0a 66 69  78e+18 real}..fi
0950: 6e 69 73 68 5f 74 65 73 74 0a                    nish_test.