/ Hex Artifact Content
Login

Artifact 1bbf36d7ea03b638c15804251287c2391f5c1f6b:


0000: 23 20 32 30 30 38 20 4f 63 74 6f 62 65 72 20 30  # 2008 October 0
0010: 36 0a 23 0a 23 20 54 68 65 20 61 75 74 68 6f 72  6.#.# The author
0020: 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70 79 72   disclaims copyr
0030: 69 67 68 74 20 74 6f 20 74 68 69 73 20 73 6f 75  ight to this sou
0040: 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c  rce code.  In pl
0050: 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c  ace of.# a legal
0060: 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20 69 73   notice, here is
0070: 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23   a blessing:.#.#
0080: 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f 20 67      May you do g
0090: 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c  ood and not evil
00a0: 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 66  ..#    May you f
00b0: 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73 73 20  ind forgiveness 
00c0: 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61 6e 64  for yourself and
00d0: 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72 73 2e   forgive others.
00e0: 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 73 68  .#    May you sh
00f0: 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65 76 65  are freely, neve
0100: 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68  r taking more th
0110: 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23  an 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 2a 2a 0a 23 0a 23 20 54 68 69 73  *******.#.# This
0170: 20 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73   file implements
0180: 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74   regression test
0190: 73 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62  s for SQLite lib
01a0: 72 61 72 79 2e 20 20 54 68 65 0a 23 20 66 6f 63  rary.  The.# foc
01b0: 75 73 20 6f 66 20 74 68 69 73 20 66 69 6c 65 20  us of this file 
01c0: 69 73 20 74 65 73 74 69 6e 67 20 74 68 65 20 66  is testing the f
01d0: 69 78 20 66 6f 72 20 74 69 63 6b 65 74 20 23 33  ix for ticket #3
01e0: 34 31 39 2e 0a 23 20 54 69 63 6b 65 74 20 23 33  419..# Ticket #3
01f0: 34 31 39 20 69 73 20 72 65 61 6c 6c 79 20 61 20  419 is really a 
0200: 64 75 70 6c 69 63 61 74 69 6f 6e 20 6f 66 20 23  duplication of #
0210: 33 34 30 38 20 61 6e 64 20 68 61 64 20 61 6c 72  3408 and had alr
0220: 65 61 64 79 0a 23 20 62 65 65 6e 20 66 69 78 65  eady.# been fixe
0230: 64 20 62 79 20 74 68 65 20 74 69 6d 65 20 69 74  d by the time it
0240: 20 77 61 73 20 72 65 70 6f 72 74 65 64 2e 20 20   was reported.  
0250: 42 75 74 20 69 74 20 6e 65 76 65 72 20 68 75 72  But it never hur
0260: 74 73 20 74 6f 0a 23 20 61 64 64 20 6e 65 77 20  ts to.# add new 
0270: 74 65 73 74 20 63 61 73 65 73 2e 0a 23 0a 23 20  test cases..#.# 
0280: 24 49 64 3a 20 74 6b 74 33 34 31 39 2e 74 65 73  $Id: tkt3419.tes
0290: 74 2c 76 20 31 2e 31 20 32 30 30 38 2f 31 30 2f  t,v 1.1 2008/10/
02a0: 30 36 20 31 35 3a 33 31 3a 31 33 20 64 72 68 20  06 15:31:13 drh 
02b0: 45 78 70 20 24 0a 0a 73 65 74 20 74 65 73 74 64  Exp $..set testd
02c0: 69 72 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65  ir [file dirname
02d0: 20 24 61 72 67 76 30 5d 0a 73 6f 75 72 63 65 20   $argv0].source 
02e0: 24 74 65 73 74 64 69 72 2f 74 65 73 74 65 72 2e  $testdir/tester.
02f0: 74 63 6c 0a 0a 64 6f 5f 74 65 73 74 20 74 6b 74  tcl..do_test tkt
0300: 33 34 31 39 2d 31 2e 31 20 7b 0a 20 20 65 78 65  3419-1.1 {.  exe
0310: 63 73 71 6c 20 7b 0a 20 20 20 20 63 72 65 61 74  csql {.    creat
0320: 65 20 74 61 62 6c 65 20 61 28 69 64 20 69 6e 74  e table a(id int
0330: 65 67 65 72 20 70 72 69 6d 61 72 79 20 6b 65 79  eger primary key
0340: 29 3b 0a 20 20 20 20 63 72 65 61 74 65 20 74 61  );.    create ta
0350: 62 6c 65 20 62 28 69 64 20 69 6e 74 65 67 65 72  ble b(id integer
0360: 20 70 72 69 6d 61 72 79 20 6b 65 79 2c 20 61 5f   primary key, a_
0370: 69 64 20 69 6e 74 65 67 65 72 29 3b 0a 20 20 20  id integer);.   
0380: 20 63 72 65 61 74 65 20 74 61 62 6c 65 20 63 28   create table c(
0390: 69 64 20 69 6e 74 65 67 65 72 20 70 72 69 6d 61  id integer prima
03a0: 72 79 20 6b 65 79 2c 20 62 5f 69 64 20 69 6e 74  ry key, b_id int
03b0: 65 67 65 72 29 3b 0a 20 20 0a 20 20 20 20 69 6e  eger);.  .    in
03c0: 73 65 72 74 20 69 6e 74 6f 20 61 20 76 61 6c 75  sert into a valu
03d0: 65 73 20 28 31 29 3b 0a 20 20 20 20 69 6e 73 65  es (1);.    inse
03e0: 72 74 20 69 6e 74 6f 20 61 20 76 61 6c 75 65 73  rt into a values
03f0: 20 28 32 29 3b 0a 20 20 0a 20 20 20 20 69 6e 73   (2);.  .    ins
0400: 65 72 74 20 69 6e 74 6f 20 62 20 76 61 6c 75 65  ert into b value
0410: 73 20 28 33 2c 20 31 29 3b 0a 20 20 20 20 69 6e  s (3, 1);.    in
0420: 73 65 72 74 20 69 6e 74 6f 20 62 20 76 61 6c 75  sert into b valu
0430: 65 73 20 28 34 2c 20 31 29 3b 0a 20 20 20 20 69  es (4, 1);.    i
0440: 6e 73 65 72 74 20 69 6e 74 6f 20 62 20 76 61 6c  nsert into b val
0450: 75 65 73 20 28 35 2c 20 31 29 3b 0a 20 20 20 20  ues (5, 1);.    
0460: 69 6e 73 65 72 74 20 69 6e 74 6f 20 62 20 76 61  insert into b va
0470: 6c 75 65 73 20 28 36 2c 20 31 29 3b 0a 20 20 20  lues (6, 1);.   
0480: 20 69 6e 73 65 72 74 20 69 6e 74 6f 20 62 20 76   insert into b v
0490: 61 6c 75 65 73 20 28 39 2c 20 32 29 3b 0a 20 20  alues (9, 2);.  
04a0: 0a 20 20 20 20 69 6e 73 65 72 74 20 69 6e 74 6f  .    insert into
04b0: 20 63 20 76 61 6c 75 65 73 20 28 34 2c 20 33 29   c values (4, 3)
04c0: 3b 0a 20 20 20 20 69 6e 73 65 72 74 20 69 6e 74  ;.    insert int
04d0: 6f 20 63 20 76 61 6c 75 65 73 20 28 35 2c 20 35  o c values (5, 5
04e0: 29 3b 0a 20 20 20 20 69 6e 73 65 72 74 20 69 6e  );.    insert in
04f0: 74 6f 20 63 20 76 61 6c 75 65 73 20 28 36 2c 20  to c values (6, 
0500: 34 29 3b 0a 20 20 20 20 69 6e 73 65 72 74 20 69  4);.    insert i
0510: 6e 74 6f 20 63 20 76 61 6c 75 65 73 20 28 37 2c  nto c values (7,
0520: 20 36 29 3b 0a 20 20 20 20 69 6e 73 65 72 74 20   6);.    insert 
0530: 69 6e 74 6f 20 63 20 76 61 6c 75 65 73 20 28 38  into c values (8
0540: 2c 20 39 29 3b 0a 20 20 0a 20 20 20 20 73 65 6c  , 9);.  .    sel
0550: 65 63 74 20 2a 20 46 52 4f 4d 20 61 2c 20 62 2c  ect * FROM a, b,
0560: 20 63 20 57 48 45 52 45 20 61 2e 69 64 3d 32 20   c WHERE a.id=2 
0570: 41 4e 44 20 62 2e 61 5f 69 64 20 3d 20 61 2e 69  AND b.a_id = a.i
0580: 64 20 41 4e 44 20 62 2e 69 64 3d 63 2e 62 5f 69  d AND b.id=c.b_i
0590: 64 3b 0a 20 20 7d 0a 7d 20 7b 32 20 39 20 32 20  d;.  }.} {2 9 2 
05a0: 38 20 39 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74  8 9}.do_test tkt
05b0: 33 34 31 39 2d 31 2e 32 20 7b 0a 20 20 65 78 65  3419-1.2 {.  exe
05c0: 63 73 71 6c 20 7b 0a 20 20 20 20 73 65 6c 65 63  csql {.    selec
05d0: 74 20 2a 20 46 52 4f 4d 20 61 2c 20 63 2c 20 62  t * FROM a, c, b
05e0: 20 57 48 45 52 45 20 61 2e 69 64 3d 32 20 41 4e   WHERE a.id=2 AN
05f0: 44 20 62 2e 61 5f 69 64 20 3d 20 61 2e 69 64 20  D b.a_id = a.id 
0600: 41 4e 44 20 62 2e 69 64 3d 63 2e 62 5f 69 64 3b  AND b.id=c.b_id;
0610: 0a 20 20 7d 0a 7d 20 7b 32 20 38 20 39 20 39 20  .  }.} {2 8 9 9 
0620: 32 7d 0a 64 6f 5f 74 65 73 74 20 74 6b 74 33 34  2}.do_test tkt34
0630: 31 39 2d 31 2e 33 20 7b 0a 20 20 65 78 65 63 73  19-1.3 {.  execs
0640: 71 6c 20 7b 0a 20 20 20 20 73 65 6c 65 63 74 20  ql {.    select 
0650: 2a 20 46 52 4f 4d 20 62 2c 20 61 2c 20 63 20 57  * FROM b, a, c W
0660: 48 45 52 45 20 61 2e 69 64 3d 32 20 41 4e 44 20  HERE a.id=2 AND 
0670: 62 2e 61 5f 69 64 20 3d 20 61 2e 69 64 20 41 4e  b.a_id = a.id AN
0680: 44 20 62 2e 69 64 3d 63 2e 62 5f 69 64 3b 0a 20  D b.id=c.b_id;. 
0690: 20 7d 0a 7d 20 7b 39 20 32 20 32 20 38 20 39 7d   }.} {9 2 2 8 9}
06a0: 0a 64 6f 5f 74 65 73 74 20 74 6b 74 33 34 31 39  .do_test tkt3419
06b0: 2d 31 2e 34 20 7b 0a 20 20 65 78 65 63 73 71 6c  -1.4 {.  execsql
06c0: 20 7b 0a 20 20 20 20 73 65 6c 65 63 74 20 2a 20   {.    select * 
06d0: 46 52 4f 4d 20 62 2c 20 63 2c 20 61 20 57 48 45  FROM b, c, a WHE
06e0: 52 45 20 61 2e 69 64 3d 32 20 41 4e 44 20 62 2e  RE a.id=2 AND b.
06f0: 61 5f 69 64 20 3d 20 61 2e 69 64 20 41 4e 44 20  a_id = a.id AND 
0700: 62 2e 69 64 3d 63 2e 62 5f 69 64 3b 0a 20 20 7d  b.id=c.b_id;.  }
0710: 0a 7d 20 7b 39 20 32 20 38 20 39 20 32 7d 0a 64  .} {9 2 8 9 2}.d
0720: 6f 5f 74 65 73 74 20 74 6b 74 33 34 31 39 2d 31  o_test tkt3419-1
0730: 2e 35 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b  .5 {.  execsql {
0740: 0a 20 20 20 20 73 65 6c 65 63 74 20 2a 20 46 52  .    select * FR
0750: 4f 4d 20 63 2c 20 61 2c 20 62 20 57 48 45 52 45  OM c, a, b WHERE
0760: 20 61 2e 69 64 3d 32 20 41 4e 44 20 62 2e 61 5f   a.id=2 AND b.a_
0770: 69 64 20 3d 20 61 2e 69 64 20 41 4e 44 20 62 2e  id = a.id AND b.
0780: 69 64 3d 63 2e 62 5f 69 64 3b 0a 20 20 7d 0a 7d  id=c.b_id;.  }.}
0790: 20 7b 38 20 39 20 32 20 39 20 32 7d 0a 64 6f 5f   {8 9 2 9 2}.do_
07a0: 74 65 73 74 20 74 6b 74 33 34 31 39 2d 31 2e 36  test tkt3419-1.6
07b0: 20 7b 0a 20 20 65 78 65 63 73 71 6c 20 7b 0a 20   {.  execsql {. 
07c0: 20 20 20 73 65 6c 65 63 74 20 2a 20 46 52 4f 4d     select * FROM
07d0: 20 63 2c 20 62 2c 20 61 20 57 48 45 52 45 20 61   c, b, a WHERE a
07e0: 2e 69 64 3d 32 20 41 4e 44 20 62 2e 61 5f 69 64  .id=2 AND b.a_id
07f0: 20 3d 20 61 2e 69 64 20 41 4e 44 20 62 2e 69 64   = a.id AND b.id
0800: 3d 63 2e 62 5f 69 64 3b 0a 20 20 7d 0a 7d 20 7b  =c.b_id;.  }.} {
0810: 38 20 39 20 39 20 32 20 32 7d 0a 0a 66 69 6e 69  8 9 9 2 2}..fini
0820: 73 68 5f 74 65 73 74 0a                          sh_test.