/ Hex Artifact Content
Login

Artifact 56ef82096b4329aca2be74fa1e2b0f762ea0eb45:


0000: 23 20 32 30 30 38 20 44 65 63 65 6d 62 65 72 20  # 2008 December 
0010: 31 31 0a 23 0a 23 20 54 68 65 20 61 75 74 68 6f  11.#.# The autho
0020: 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70 79  r disclaims copy
0030: 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73 6f  right to this so
0040: 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20 70  urce code.  In p
0050: 6c 61 63 65 20 6f 66 0a 23 20 61 20 6c 65 67 61  lace of.# a lega
0060: 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65 20 69  l notice, here i
0070: 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a 23 0a  s a blessing:.#.
0080: 23 20 20 20 20 4d 61 79 20 79 6f 75 20 64 6f 20  #    May you do 
0090: 67 6f 6f 64 20 61 6e 64 20 6e 6f 74 20 65 76 69  good and not evi
00a0: 6c 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20  l..#    May you 
00b0: 66 69 6e 64 20 66 6f 72 67 69 76 65 6e 65 73 73  find forgiveness
00c0: 20 66 6f 72 20 79 6f 75 72 73 65 6c 66 20 61 6e   for yourself an
00d0: 64 20 66 6f 72 67 69 76 65 20 6f 74 68 65 72 73  d forgive others
00e0: 2e 0a 23 20 20 20 20 4d 61 79 20 79 6f 75 20 73  ..#    May you s
00f0: 68 61 72 65 20 66 72 65 65 6c 79 2c 20 6e 65 76  hare freely, nev
0100: 65 72 20 74 61 6b 69 6e 67 20 6d 6f 72 65 20 74  er taking more t
0110: 68 61 6e 20 79 6f 75 20 67 69 76 65 2e 0a 23 0a  han you give..#.
0120: 23 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 2a 0a 23 20 54 68 69 73 20  ********.# This 
0170: 66 69 6c 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20  file implements 
0180: 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 73  regression tests
0190: 20 66 6f 72 20 53 51 4c 69 74 65 20 6c 69 62 72   for SQLite libr
01a0: 61 72 79 2e 0a 23 0a 23 20 54 68 69 73 20 66 69  ary..#.# This fi
01b0: 6c 65 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61  le is automatica
01c0: 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20 66 72  lly generated fr
01d0: 6f 6d 20 61 20 73 65 70 61 72 61 74 65 20 54 43  om a separate TC
01e0: 4c 20 73 63 72 69 70 74 2e 0a 23 20 54 68 69 73  L script..# This
01f0: 20 66 69 6c 65 20 73 65 65 6b 73 20 74 6f 20 65   file seeks to e
0200: 78 65 72 63 69 73 65 20 69 6e 74 65 67 65 72 20  xercise integer 
0210: 62 6f 75 6e 64 61 72 79 20 76 61 6c 75 65 73 2e  boundary values.
0220: 0a 23 0a 23 20 24 49 64 3a 20 62 6f 75 6e 64 61  .#.# $Id: bounda
0230: 72 79 33 2e 74 65 73 74 2c 76 20 31 2e 32 20 32  ry3.test,v 1.2 2
0240: 30 30 39 2f 30 31 2f 30 32 20 31 35 3a 34 35 3a  009/01/02 15:45:
0250: 34 38 20 73 68 61 6e 65 20 45 78 70 20 24 0a 0a  48 shane Exp $..
0260: 73 65 74 20 74 65 73 74 64 69 72 20 5b 66 69 6c  set testdir [fil
0270: 65 20 64 69 72 6e 61 6d 65 20 24 61 72 67 76 30  e dirname $argv0
0280: 5d 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64 69  ].source $testdi
0290: 72 2f 74 65 73 74 65 72 2e 74 63 6c 0a 0a 23 20  r/tester.tcl..# 
02a0: 4d 61 6e 79 20 6f 66 20 74 68 65 20 62 6f 75 6e  Many of the boun
02b0: 64 61 72 79 20 74 65 73 74 73 20 64 65 70 65 6e  dary tests depen
02c0: 64 20 6f 6e 20 61 20 77 6f 72 6b 69 6e 67 20 36  d on a working 6
02d0: 34 2d 62 69 74 20 69 6d 70 6c 65 6d 65 6e 74 61  4-bit implementa
02e0: 74 69 6f 6e 2e 0a 69 66 20 7b 21 5b 77 6f 72 6b  tion..if {![work
02f0: 69 6e 67 5f 36 34 62 69 74 5f 69 6e 74 5d 7d 20  ing_64bit_int]} 
0300: 7b 20 66 69 6e 69 73 68 5f 74 65 73 74 3b 20 72  { finish_test; r
0310: 65 74 75 72 6e 20 7d 0a 0a 64 6f 5f 74 65 73 74  eturn }..do_test
0320: 20 62 6f 75 6e 64 61 72 79 33 2d 31 2e 31 20 7b   boundary3-1.1 {
0330: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
0340: 20 43 52 45 41 54 45 20 54 41 42 4c 45 20 74 31   CREATE TABLE t1
0350: 28 61 2c 78 29 3b 0a 20 20 20 20 49 4e 53 45 52  (a,x);.    INSER
0360: 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c  T INTO t1(oid,a,
0370: 78 29 20 56 41 4c 55 45 53 28 2d 38 33 38 38 36  x) VALUES(-83886
0380: 30 39 2c 31 2c 27 66 66 66 66 66 66 66 66 66 66  09,1,'ffffffffff
0390: 37 66 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e  7fffff');.    IN
03a0: 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64  SERT INTO t1(oid
03b0: 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 2d 33 36  ,a,x) VALUES(-36
03c0: 30 32 38 37 39 37 30 31 38 39 36 33 39 36 39 2c  028797018963969,
03d0: 32 2c 27 66 66 37 66 66 66 66 66 66 66 66 66 66  2,'ff7ffffffffff
03e0: 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  fff');.    INSER
03f0: 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c  T INTO t1(oid,a,
0400: 78 29 20 56 41 4c 55 45 53 28 39 32 32 33 33 37  x) VALUES(922337
0410: 32 30 33 36 38 35 34 37 37 35 38 30 37 2c 33 2c  2036854775807,3,
0420: 27 37 66 66 66 66 66 66 66 66 66 66 66 66 66 66  '7ffffffffffffff
0430: 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  f');.    INSERT 
0440: 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29  INTO t1(oid,a,x)
0450: 20 56 41 4c 55 45 53 28 31 32 37 2c 34 2c 27 30   VALUES(127,4,'0
0460: 30 30 30 30 30 30 30 30 30 30 30 30 30 37 66 27  00000000000007f'
0470: 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e  );.    INSERT IN
0480: 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56  TO t1(oid,a,x) V
0490: 41 4c 55 45 53 28 33 2c 35 2c 27 30 30 30 30 30  ALUES(3,5,'00000
04a0: 30 30 30 30 30 30 30 30 30 30 33 27 29 3b 0a 20  00000000003');. 
04b0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
04c0: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
04d0: 53 28 31 36 37 37 37 32 31 36 2c 36 2c 27 30 30  S(16777216,6,'00
04e0: 30 30 30 30 30 30 30 31 30 30 30 30 30 30 27 29  00000001000000')
04f0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0500: 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41  O t1(oid,a,x) VA
0510: 4c 55 45 53 28 34 33 39 38 30 34 36 35 31 31 31  LUES(43980465111
0520: 30 33 2c 37 2c 27 30 30 30 30 30 33 66 66 66 66  03,7,'000003ffff
0530: 66 66 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e  ffffff');.    IN
0540: 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64  SERT INTO t1(oid
0550: 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 31 36 33  ,a,x) VALUES(163
0560: 38 33 2c 38 2c 27 30 30 30 30 30 30 30 30 30 30  83,8,'0000000000
0570: 30 30 33 66 66 66 27 29 3b 0a 20 20 20 20 49 4e  003fff');.    IN
0580: 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64  SERT INTO t1(oid
0590: 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 31 36 37  ,a,x) VALUES(167
05a0: 37 37 32 31 35 2c 39 2c 27 30 30 30 30 30 30 30  77215,9,'0000000
05b0: 30 30 30 66 66 66 66 66 66 27 29 3b 0a 20 20 20  000ffffff');.   
05c0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28   INSERT INTO t1(
05d0: 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28  oid,a,x) VALUES(
05e0: 32 38 31 34 37 34 39 37 36 37 31 30 36 35 35 2c  281474976710655,
05f0: 31 30 2c 27 30 30 30 30 66 66 66 66 66 66 66 66  10,'0000ffffffff
0600: 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45  ffff');.    INSE
0610: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
0620: 2c 78 29 20 56 41 4c 55 45 53 28 2d 32 31 34 37  ,x) VALUES(-2147
0630: 34 38 33 36 34 38 2c 31 31 2c 27 66 66 66 66 66  483648,11,'fffff
0640: 66 66 66 38 30 30 30 30 30 30 30 27 29 3b 0a 20  fff80000000');. 
0650: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0660: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
0670: 53 28 32 36 38 34 33 35 34 35 35 2c 31 32 2c 27  S(268435455,12,'
0680: 30 30 30 30 30 30 30 30 30 66 66 66 66 66 66 66  000000000fffffff
0690: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
06a0: 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20  NTO t1(oid,a,x) 
06b0: 56 41 4c 55 45 53 28 35 36 32 39 34 39 39 35 33  VALUES(562949953
06c0: 34 32 31 33 31 31 2c 31 33 2c 27 30 30 30 31 66  421311,13,'0001f
06d0: 66 66 66 66 66 66 66 66 66 66 66 27 29 3b 0a 20  fffffffffff');. 
06e0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
06f0: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
0700: 53 28 34 32 39 34 39 36 37 32 39 35 2c 31 34 2c  S(4294967295,14,
0710: 27 30 30 30 30 30 30 30 30 66 66 66 66 66 66 66  '00000000fffffff
0720: 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  f');.    INSERT 
0730: 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29  INTO t1(oid,a,x)
0740: 20 56 41 4c 55 45 53 28 32 30 39 37 31 35 31 2c   VALUES(2097151,
0750: 31 35 2c 27 30 30 30 30 30 30 30 30 30 30 31 66  15,'00000000001f
0760: 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45  ffff');.    INSE
0770: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
0780: 2c 78 29 20 56 41 4c 55 45 53 28 31 36 33 38 34  ,x) VALUES(16384
0790: 2c 31 36 2c 27 30 30 30 30 30 30 30 30 30 30 30  ,16,'00000000000
07a0: 30 34 30 30 30 27 29 3b 0a 20 20 20 20 49 4e 53  04000');.    INS
07b0: 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c  ERT INTO t1(oid,
07c0: 61 2c 78 29 20 56 41 4c 55 45 53 28 37 32 30 35  a,x) VALUES(7205
07d0: 37 35 39 34 30 33 37 39 32 37 39 33 35 2c 31 37  7594037927935,17
07e0: 2c 27 30 30 66 66 66 66 66 66 66 66 66 66 66 66  ,'00ffffffffffff
07f0: 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  ff');.    INSERT
0800: 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78   INTO t1(oid,a,x
0810: 29 20 56 41 4c 55 45 53 28 38 33 38 38 36 30 37  ) VALUES(8388607
0820: 2c 31 38 2c 27 30 30 30 30 30 30 30 30 30 30 37  ,18,'00000000007
0830: 66 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53  fffff');.    INS
0840: 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c  ERT INTO t1(oid,
0850: 61 2c 78 29 20 56 41 4c 55 45 53 28 31 30 39 39  a,x) VALUES(1099
0860: 35 31 31 36 32 37 37 37 36 2c 31 39 2c 27 30 30  511627776,19,'00
0870: 30 30 30 31 30 30 30 30 30 30 30 30 30 30 27 29  00010000000000')
0880: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0890: 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41  O t1(oid,a,x) VA
08a0: 4c 55 45 53 28 32 31 34 37 34 38 33 36 34 37 2c  LUES(2147483647,
08b0: 32 30 2c 27 30 30 30 30 30 30 30 30 37 66 66 66  20,'000000007fff
08c0: 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45  ffff');.    INSE
08d0: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
08e0: 2c 78 29 20 56 41 4c 55 45 53 28 2d 31 34 30 37  ,x) VALUES(-1407
08f0: 33 37 34 38 38 33 35 35 33 32 39 2c 32 31 2c 27  37488355329,21,'
0900: 66 66 66 66 37 66 66 66 66 66 66 66 66 66 66 66  ffff7fffffffffff
0910: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
0920: 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20  NTO t1(oid,a,x) 
0930: 56 41 4c 55 45 53 28 33 34 33 35 39 37 33 38 33  VALUES(343597383
0940: 36 38 2c 32 32 2c 27 30 30 30 30 30 30 30 38 30  68,22,'000000080
0950: 30 30 30 30 30 30 30 27 29 3b 0a 20 20 20 20 49  0000000');.    I
0960: 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69  NSERT INTO t1(oi
0970: 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 33 32  d,a,x) VALUES(32
0980: 37 36 37 2c 32 33 2c 27 30 30 30 30 30 30 30 30  767,23,'00000000
0990: 30 30 30 30 37 66 66 66 27 29 3b 0a 20 20 20 20  00007fff');.    
09a0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f  INSERT INTO t1(o
09b0: 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 38  id,a,x) VALUES(8
09c0: 33 38 38 36 30 38 2c 32 34 2c 27 30 30 30 30 30  388608,24,'00000
09d0: 30 30 30 30 30 38 30 30 30 30 30 27 29 3b 0a 20  00000800000');. 
09e0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
09f0: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
0a00: 53 28 31 34 30 37 33 37 34 38 38 33 35 35 33 32  S(14073748835532
0a10: 37 2c 32 35 2c 27 30 30 30 30 37 66 66 66 66 66  7,25,'00007fffff
0a20: 66 66 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e  ffffff');.    IN
0a30: 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64  SERT INTO t1(oid
0a40: 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 32 38 31  ,a,x) VALUES(281
0a50: 34 37 34 39 37 36 37 31 30 36 35 36 2c 32 36 2c  474976710656,26,
0a60: 27 30 30 30 31 30 30 30 30 30 30 30 30 30 30 30  '000100000000000
0a70: 30 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  0');.    INSERT 
0a80: 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29  INTO t1(oid,a,x)
0a90: 20 56 41 4c 55 45 53 28 33 36 30 32 38 37 39 37   VALUES(36028797
0aa0: 30 31 38 39 36 33 39 36 37 2c 32 37 2c 27 30 30  018963967,27,'00
0ab0: 37 66 66 66 66 66 66 66 66 66 66 66 66 66 27 29  7fffffffffffff')
0ac0: 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54  ;.    INSERT INT
0ad0: 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41  O t1(oid,a,x) VA
0ae0: 4c 55 45 53 28 37 32 30 35 37 35 39 34 30 33 37  LUES(72057594037
0af0: 39 32 37 39 33 36 2c 32 38 2c 27 30 31 30 30 30  927936,28,'01000
0b00: 30 30 30 30 30 30 30 30 30 30 30 27 29 3b 0a 20  00000000000');. 
0b10: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0b20: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
0b30: 53 28 2d 33 32 37 36 39 2c 32 39 2c 27 66 66 66  S(-32769,29,'fff
0b40: 66 66 66 66 66 66 66 66 66 37 66 66 66 27 29 3b  fffffffff7fff');
0b50: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0b60: 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c   t1(oid,a,x) VAL
0b70: 55 45 53 28 32 35 35 2c 33 30 2c 27 30 30 30 30  UES(255,30,'0000
0b80: 30 30 30 30 30 30 30 30 30 30 66 66 27 29 3b 0a  0000000000ff');.
0b90: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
0ba0: 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55  t1(oid,a,x) VALU
0bb0: 45 53 28 34 2c 33 31 2c 27 30 30 30 30 30 30 30  ES(4,31,'0000000
0bc0: 30 30 30 30 30 30 30 30 34 27 29 3b 0a 20 20 20  000000004');.   
0bd0: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28   INSERT INTO t1(
0be0: 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28  oid,a,x) VALUES(
0bf0: 2d 33 32 37 36 38 2c 33 32 2c 27 66 66 66 66 66  -32768,32,'fffff
0c00: 66 66 66 66 66 66 66 38 30 30 30 27 29 3b 0a 20  fffffff8000');. 
0c10: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0c20: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
0c30: 53 28 2d 32 2c 33 33 2c 27 66 66 66 66 66 66 66  S(-2,33,'fffffff
0c40: 66 66 66 66 66 66 66 66 65 27 29 3b 0a 20 20 20  ffffffffe');.   
0c50: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28   INSERT INTO t1(
0c60: 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28  oid,a,x) VALUES(
0c70: 31 34 30 37 33 37 34 38 38 33 35 35 33 32 38 2c  140737488355328,
0c80: 33 34 2c 27 30 30 30 30 38 30 30 30 30 30 30 30  34,'000080000000
0c90: 30 30 30 30 27 29 3b 0a 20 20 20 20 49 4e 53 45  0000');.    INSE
0ca0: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
0cb0: 2c 78 29 20 56 41 4c 55 45 53 28 35 34 39 37 35  ,x) VALUES(54975
0cc0: 35 38 31 33 38 38 38 2c 33 35 2c 27 30 30 30 30  5813888,35,'0000
0cd0: 30 30 38 30 30 30 30 30 30 30 30 30 27 29 3b 0a  008000000000');.
0ce0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
0cf0: 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55  t1(oid,a,x) VALU
0d00: 45 53 28 34 32 39 34 39 36 37 32 39 36 2c 33 36  ES(4294967296,36
0d10: 2c 27 30 30 30 30 30 30 30 31 30 30 30 30 30 30  ,'00000001000000
0d20: 30 30 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  00');.    INSERT
0d30: 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78   INTO t1(oid,a,x
0d40: 29 20 56 41 4c 55 45 53 28 2d 38 33 38 38 36 30  ) VALUES(-838860
0d50: 38 2c 33 37 2c 27 66 66 66 66 66 66 66 66 66 66  8,37,'ffffffffff
0d60: 38 30 30 30 30 30 27 29 3b 0a 20 20 20 20 49 4e  800000');.    IN
0d70: 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64  SERT INTO t1(oid
0d80: 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 2d 31 2c  ,a,x) VALUES(-1,
0d90: 33 38 2c 27 66 66 66 66 66 66 66 66 66 66 66 66  38,'ffffffffffff
0da0: 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45  ffff');.    INSE
0db0: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
0dc0: 2c 78 29 20 56 41 4c 55 45 53 28 33 34 33 35 39  ,x) VALUES(34359
0dd0: 37 33 38 33 36 37 2c 33 39 2c 27 30 30 30 30 30  738367,39,'00000
0de0: 30 30 37 66 66 66 66 66 66 66 66 27 29 3b 0a 20  007ffffffff');. 
0df0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0e00: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
0e10: 53 28 32 36 38 34 33 35 34 35 36 2c 34 30 2c 27  S(268435456,40,'
0e20: 30 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30  0000000010000000
0e30: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
0e40: 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20  NTO t1(oid,a,x) 
0e50: 56 41 4c 55 45 53 28 32 2c 34 31 2c 27 30 30 30  VALUES(2,41,'000
0e60: 30 30 30 30 30 30 30 30 30 30 30 30 32 27 29 3b  0000000000002');
0e70: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
0e80: 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c   t1(oid,a,x) VAL
0e90: 55 45 53 28 32 30 39 37 31 35 32 2c 34 32 2c 27  UES(2097152,42,'
0ea0: 30 30 30 30 30 30 30 30 30 30 32 30 30 30 30 30  0000000000200000
0eb0: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
0ec0: 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20  NTO t1(oid,a,x) 
0ed0: 56 41 4c 55 45 53 28 35 36 32 39 34 39 39 35 33  VALUES(562949953
0ee0: 34 32 31 33 31 32 2c 34 33 2c 27 30 30 30 32 30  421312,43,'00020
0ef0: 30 30 30 30 30 30 30 30 30 30 30 27 29 3b 0a 20  00000000000');. 
0f00: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
0f10: 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45  1(oid,a,x) VALUE
0f20: 53 28 2d 31 34 30 37 33 37 34 38 38 33 35 35 33  S(-1407374883553
0f30: 32 38 2c 34 34 2c 27 66 66 66 66 38 30 30 30 30  28,44,'ffff80000
0f40: 30 30 30 30 30 30 30 27 29 3b 0a 20 20 20 20 49  0000000');.    I
0f50: 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69  NSERT INTO t1(oi
0f60: 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 33 36  d,a,x) VALUES(36
0f70: 30 32 38 37 39 37 30 31 38 39 36 33 39 36 38 2c  028797018963968,
0f80: 34 35 2c 27 30 30 38 30 30 30 30 30 30 30 30 30  45,'008000000000
0f90: 30 30 30 30 27 29 3b 0a 20 20 20 20 49 4e 53 45  0000');.    INSE
0fa0: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
0fb0: 2c 78 29 20 56 41 4c 55 45 53 28 35 34 39 37 35  ,x) VALUES(54975
0fc0: 35 38 31 33 38 38 37 2c 34 36 2c 27 30 30 30 30  5813887,46,'0000
0fd0: 30 30 37 66 66 66 66 66 66 66 66 66 27 29 3b 0a  007fffffffff');.
0fe0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
0ff0: 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55  t1(oid,a,x) VALU
1000: 45 53 28 2d 32 31 34 37 34 38 33 36 34 39 2c 34  ES(-2147483649,4
1010: 37 2c 27 66 66 66 66 66 66 66 66 37 66 66 66 66  7,'ffffffff7ffff
1020: 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  fff');.    INSER
1030: 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c  T INTO t1(oid,a,
1040: 78 29 20 56 41 4c 55 45 53 28 36 35 35 33 35 2c  x) VALUES(65535,
1050: 34 38 2c 27 30 30 30 30 30 30 30 30 30 30 30 30  48,'000000000000
1060: 66 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45  ffff');.    INSE
1070: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
1080: 2c 78 29 20 56 41 4c 55 45 53 28 31 32 38 2c 34  ,x) VALUES(128,4
1090: 39 2c 27 30 30 30 30 30 30 30 30 30 30 30 30 30  9,'0000000000000
10a0: 30 38 30 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  080');.    INSER
10b0: 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c  T INTO t1(oid,a,
10c0: 78 29 20 56 41 4c 55 45 53 28 33 32 37 36 38 2c  x) VALUES(32768,
10d0: 35 30 2c 27 30 30 30 30 30 30 30 30 30 30 30 30  50,'000000000000
10e0: 38 30 30 30 27 29 3b 0a 20 20 20 20 49 4e 53 45  8000');.    INSE
10f0: 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61  RT INTO t1(oid,a
1100: 2c 78 29 20 56 41 4c 55 45 53 28 32 31 34 37 34  ,x) VALUES(21474
1110: 38 33 36 34 38 2c 35 31 2c 27 30 30 30 30 30 30  83648,51,'000000
1120: 30 30 38 30 30 30 30 30 30 30 27 29 3b 0a 20 20  0080000000');.  
1130: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
1140: 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53  (oid,a,x) VALUES
1150: 28 2d 33 2c 35 32 2c 27 66 66 66 66 66 66 66 66  (-3,52,'ffffffff
1160: 66 66 66 66 66 66 66 64 27 29 3b 0a 20 20 20 20  fffffffd');.    
1170: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f  INSERT INTO t1(o
1180: 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 2d  id,a,x) VALUES(-
1190: 31 32 38 2c 35 33 2c 27 66 66 66 66 66 66 66 66  128,53,'ffffffff
11a0: 66 66 66 66 66 66 38 30 27 29 3b 0a 20 20 20 20  ffffff80');.    
11b0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f  INSERT INTO t1(o
11c0: 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 2d  id,a,x) VALUES(-
11d0: 31 32 39 2c 35 34 2c 27 66 66 66 66 66 66 66 66  129,54,'ffffffff
11e0: 66 66 66 66 66 66 37 66 27 29 3b 0a 20 20 20 20  ffffff7f');.    
11f0: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f  INSERT INTO t1(o
1200: 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 2d  id,a,x) VALUES(-
1210: 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35  9223372036854775
1220: 38 30 38 2c 35 35 2c 27 38 30 30 30 30 30 30 30  808,55,'80000000
1230: 30 30 30 30 30 30 30 30 27 29 3b 0a 20 20 20 20  00000000');.    
1240: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f  INSERT INTO t1(o
1250: 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 34  id,a,x) VALUES(4
1260: 33 39 38 30 34 36 35 31 31 31 30 34 2c 35 36 2c  398046511104,56,
1270: 27 30 30 30 30 30 34 30 30 30 30 30 30 30 30 30  '000004000000000
1280: 30 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20  0');.    INSERT 
1290: 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29  INTO t1(oid,a,x)
12a0: 20 56 41 4c 55 45 53 28 31 30 39 39 35 31 31 36   VALUES(10995116
12b0: 32 37 37 37 35 2c 35 37 2c 27 30 30 30 30 30 30  27775,57,'000000
12c0: 66 66 66 66 66 66 66 66 66 66 27 29 3b 0a 20 20  ffffffffff');.  
12d0: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 31    INSERT INTO t1
12e0: 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55 45 53  (oid,a,x) VALUES
12f0: 28 2d 35 34 39 37 35 35 38 31 33 38 38 39 2c 35  (-549755813889,5
1300: 38 2c 27 66 66 66 66 66 66 37 66 66 66 66 66 66  8,'ffffff7ffffff
1310: 66 66 66 27 29 3b 0a 20 20 20 20 49 4e 53 45 52  fff');.    INSER
1320: 54 20 49 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c  T INTO t1(oid,a,
1330: 78 29 20 56 41 4c 55 45 53 28 30 2c 35 39 2c 27  x) VALUES(0,59,'
1340: 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30  0000000000000000
1350: 27 29 3b 0a 20 20 20 20 49 4e 53 45 52 54 20 49  ');.    INSERT I
1360: 4e 54 4f 20 74 31 28 6f 69 64 2c 61 2c 78 29 20  NTO t1(oid,a,x) 
1370: 56 41 4c 55 45 53 28 31 2c 36 30 2c 27 30 30 30  VALUES(1,60,'000
1380: 30 30 30 30 30 30 30 30 30 30 30 30 31 27 29 3b  0000000000001');
1390: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
13a0: 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c   t1(oid,a,x) VAL
13b0: 55 45 53 28 32 35 36 2c 36 31 2c 27 30 30 30 30  UES(256,61,'0000
13c0: 30 30 30 30 30 30 30 30 30 31 30 30 27 29 3b 0a  000000000100');.
13d0: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
13e0: 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c 55  t1(oid,a,x) VALU
13f0: 45 53 28 36 35 35 33 36 2c 36 32 2c 27 30 30 30  ES(65536,62,'000
1400: 30 30 30 30 30 30 30 30 31 30 30 30 30 27 29 3b  0000000010000');
1410: 0a 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f  .    INSERT INTO
1420: 20 74 31 28 6f 69 64 2c 61 2c 78 29 20 56 41 4c   t1(oid,a,x) VAL
1430: 55 45 53 28 2d 35 34 39 37 35 35 38 31 33 38 38  UES(-54975581388
1440: 38 2c 36 33 2c 27 66 66 66 66 66 66 38 30 30 30  8,63,'ffffff8000
1450: 30 30 30 30 30 30 27 29 3b 0a 20 20 20 20 49 4e  000000');.    IN
1460: 53 45 52 54 20 49 4e 54 4f 20 74 31 28 6f 69 64  SERT INTO t1(oid
1470: 2c 61 2c 78 29 20 56 41 4c 55 45 53 28 2d 33 36  ,a,x) VALUES(-36
1480: 30 32 38 37 39 37 30 31 38 39 36 33 39 36 38 2c  028797018963968,
1490: 36 34 2c 27 66 66 38 30 30 30 30 30 30 30 30 30  64,'ff8000000000
14a0: 30 30 30 30 27 29 3b 0a 20 20 20 20 43 52 45 41  0000');.    CREA
14b0: 54 45 20 49 4e 44 45 58 20 74 31 69 31 20 4f 4e  TE INDEX t1i1 ON
14c0: 20 74 31 28 61 29 3b 0a 20 20 20 20 43 52 45 41   t1(a);.    CREA
14d0: 54 45 20 49 4e 44 45 58 20 74 31 69 32 20 4f 4e  TE INDEX t1i2 ON
14e0: 20 74 31 28 78 29 3b 0a 20 20 7d 0a 7d 20 7b 7d   t1(x);.  }.} {}
14f0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1500: 79 33 2d 31 2e 32 20 7b 0a 20 20 64 62 20 65 76  y3-1.2 {.  db ev
1510: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1520: 63 6f 75 6e 74 28 2a 29 20 46 52 4f 4d 20 74 31  count(*) FROM t1
1530: 0a 20 20 7d 0a 7d 20 7b 36 34 7d 0a 64 6f 5f 74  .  }.} {64}.do_t
1540: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 31 2e  est boundary3-1.
1550: 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
1560: 20 20 20 20 43 52 45 41 54 45 20 54 41 42 4c 45      CREATE TABLE
1570: 20 74 32 28 72 2c 61 29 3b 0a 20 20 20 20 49 4e   t2(r,a);.    IN
1580: 53 45 52 54 20 49 4e 54 4f 20 74 32 20 53 45 4c  SERT INTO t2 SEL
1590: 45 43 54 20 72 6f 77 69 64 2c 20 61 20 46 52 4f  ECT rowid, a FRO
15a0: 4d 20 74 31 3b 0a 20 20 20 20 43 52 45 41 54 45  M t1;.    CREATE
15b0: 20 49 4e 44 45 58 20 74 32 69 31 20 4f 4e 20 74   INDEX t2i1 ON t
15c0: 32 28 72 29 3b 0a 20 20 20 20 43 52 45 41 54 45  2(r);.    CREATE
15d0: 20 49 4e 44 45 58 20 74 32 69 32 20 4f 4e 20 74   INDEX t2i2 ON t
15e0: 32 28 61 29 3b 0a 20 20 20 20 49 4e 53 45 52 54  2(a);.    INSERT
15f0: 20 49 4e 54 4f 20 74 32 20 56 41 4c 55 45 53 28   INTO t2 VALUES(
1600: 39 2e 32 32 33 33 37 33 30 33 36 38 35 34 37 37  9.22337303685477
1610: 35 38 30 38 30 30 65 2b 31 38 2c 36 35 29 3b 0a  580800e+18,65);.
1620: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
1630: 74 32 20 56 41 4c 55 45 53 28 2d 39 2e 32 32 33  t2 VALUES(-9.223
1640: 33 37 33 30 33 36 38 35 34 37 37 35 38 30 38 30  3730368547758080
1650: 30 65 2b 31 38 2c 36 36 29 3b 0a 20 20 20 20 53  0e+18,66);.    S
1660: 45 4c 45 43 54 20 63 6f 75 6e 74 28 2a 29 20 46  ELECT count(*) F
1670: 52 4f 4d 20 74 32 3b 0a 20 20 7d 0a 7d 20 7b 36  ROM t2;.  }.} {6
1680: 36 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  6}.do_test bound
1690: 61 72 79 33 2d 32 2e 31 2e 31 20 7b 0a 20 20 64  ary3-2.1.1 {.  d
16a0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
16b0: 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d 20 74 31  ECT t1.* FROM t1
16c0: 2c 20 74 32 20 57 48 45 52 45 20 74 31 2e 72 6f  , t2 WHERE t1.ro
16d0: 77 69 64 3d 37 32 30 35 37 35 39 34 30 33 37 39  wid=720575940379
16e0: 32 37 39 33 35 20 41 4e 44 20 74 32 2e 61 3d 74  27935 AND t2.a=t
16f0: 31 2e 61 0a 20 20 7d 0a 7d 20 7b 31 37 20 30 30  1.a.  }.} {17 00
1700: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 7d 0a  ffffffffffffff}.
1710: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1720: 33 2d 32 2e 31 2e 32 20 7b 0a 20 20 64 62 20 65  3-2.1.2 {.  db e
1730: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1740: 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.* FROM t1 JO
1750: 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 20 57  IN t2 USING(a) W
1760: 48 45 52 45 20 78 3d 27 30 30 66 66 66 66 66 66  HERE x='00ffffff
1770: 66 66 66 66 66 66 66 66 27 0a 20 20 7d 0a 7d 20  ffffffff'.  }.} 
1780: 7b 37 32 30 35 37 35 39 34 30 33 37 39 32 37 39  {720575940379279
1790: 33 35 20 31 37 7d 0a 64 6f 5f 74 65 73 74 20 62  35 17}.do_test b
17a0: 6f 75 6e 64 61 72 79 33 2d 32 2e 31 2e 33 20 7b  oundary3-2.1.3 {
17b0: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
17c0: 20 53 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64   SELECT t1.rowid
17d0: 2c 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  , x FROM t1 JOIN
17e0: 20 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72   t2 ON t2.r=t1.r
17f0: 6f 77 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d  owid WHERE t2.a=
1800: 31 37 0a 20 20 7d 0a 7d 20 7b 37 32 30 35 37 35  17.  }.} {720575
1810: 39 34 30 33 37 39 32 37 39 33 35 20 30 30 66 66  94037927935 00ff
1820: 66 66 66 66 66 66 66 66 66 66 66 66 7d 0a 64 6f  ffffffffffff}.do
1830: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
1840: 32 2e 31 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20  2.1.gt.1 {.  db 
1850: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1860: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
1870: 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
1880: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
1890: 77 69 64 20 3e 20 37 32 30 35 37 35 39 34 30 33  wid > 7205759403
18a0: 37 39 32 37 39 33 35 20 4f 52 44 45 52 20 42 59  7927935 ORDER BY
18b0: 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 32   t2.a.  }.} {3 2
18c0: 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  8}.do_test bound
18d0: 61 72 79 33 2d 32 2e 31 2e 67 74 2e 32 20 7b 0a  ary3-2.1.gt.2 {.
18e0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
18f0: 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
1900: 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e   t2 NATURAL JOIN
1910: 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74   t1.     WHERE t
1920: 31 2e 72 6f 77 69 64 20 3e 20 37 32 30 35 37 35  1.rowid > 720575
1930: 39 34 30 33 37 39 32 37 39 33 35 20 4f 52 44 45  94037927935 ORDE
1940: 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
1950: 20 7d 0a 7d 20 7b 32 38 20 33 7d 0a 64 6f 5f 74   }.} {28 3}.do_t
1960: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1970: 31 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76  1.gt.3 {.  db ev
1980: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1990: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
19a0: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
19b0: 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
19c0: 52 45 20 74 32 2e 61 3d 31 37 0a 20 20 20 20 20  RE t2.a=17.     
19d0: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
19e0: 64 0a 20 20 7d 0a 7d 20 7b 32 38 20 33 7d 0a 64  d.  }.} {28 3}.d
19f0: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1a00: 2d 32 2e 31 2e 67 74 2e 34 20 7b 0a 20 20 64 62  -2.1.gt.4 {.  db
1a10: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1a20: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
1a30: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
1a40: 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20  wid > t2.r.     
1a50: 57 48 45 52 45 20 74 32 2e 61 3d 31 37 0a 20 20  WHERE t2.a=17.  
1a60: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
1a70: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
1a80: 7b 33 20 32 38 7d 0a 64 6f 5f 74 65 73 74 20 62  {3 28}.do_test b
1a90: 6f 75 6e 64 61 72 79 33 2d 32 2e 31 2e 67 74 2e  oundary3-2.1.gt.
1aa0: 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
1ab0: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1ac0: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1ad0: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32  ON t1.rowid > t2
1ae0: 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
1af0: 2e 61 3d 31 37 0a 20 20 20 20 20 4f 52 44 45 52  .a=17.     ORDER
1b00: 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 32 38 20   BY x.  }.} {28 
1b10: 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
1b20: 61 72 79 33 2d 32 2e 31 2e 67 65 2e 31 20 7b 0a  ary3-2.1.ge.1 {.
1b30: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
1b40: 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
1b50: 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
1b60: 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
1b70: 74 31 2e 72 6f 77 69 64 20 3e 3d 20 37 32 30 35  t1.rowid >= 7205
1b80: 37 35 39 34 30 33 37 39 32 37 39 33 35 20 4f 52  7594037927935 OR
1b90: 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
1ba0: 7d 20 7b 33 20 31 37 20 32 38 7d 0a 64 6f 5f 74  } {3 17 28}.do_t
1bb0: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1bc0: 31 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20 65 76  1.ge.2 {.  db ev
1bd0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1be0: 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
1bf0: 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
1c00: 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
1c10: 20 3e 3d 20 37 32 30 35 37 35 39 34 30 33 37 39   >= 720575940379
1c20: 32 37 39 33 35 20 4f 52 44 45 52 20 42 59 20 74  27935 ORDER BY t
1c30: 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
1c40: 32 38 20 31 37 20 33 7d 0a 64 6f 5f 74 65 73 74  28 17 3}.do_test
1c50: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 2e 67   boundary3-2.1.g
1c60: 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
1c70: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1c80: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1c90: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
1ca0: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1cb0: 20 74 32 2e 61 3d 31 37 0a 20 20 20 20 20 4f 52   t2.a=17.     OR
1cc0: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
1cd0: 20 20 7d 0a 7d 20 7b 31 37 20 32 38 20 33 7d 0a    }.} {17 28 3}.
1ce0: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1cf0: 33 2d 32 2e 31 2e 67 65 2e 34 20 7b 0a 20 20 64  3-2.1.ge.4 {.  d
1d00: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1d10: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
1d20: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
1d30: 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
1d40: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 37 0a    WHERE t2.a=17.
1d50: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
1d60: 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
1d70: 7d 20 7b 33 20 32 38 20 31 37 7d 0a 64 6f 5f 74  } {3 28 17}.do_t
1d80: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1d90: 31 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20 65 76  1.ge.5 {.  db ev
1da0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1db0: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
1dc0: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
1dd0: 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
1de0: 45 52 45 20 74 32 2e 61 3d 31 37 0a 20 20 20 20  ERE t2.a=17.    
1df0: 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a   ORDER BY x.  }.
1e00: 7d 20 7b 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  } {17 28 3}.do_t
1e10: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1e20: 31 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20 65 76  1.lt.1 {.  db ev
1e30: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1e40: 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
1e50: 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
1e60: 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
1e70: 64 20 3c 20 37 32 30 35 37 35 39 34 30 33 37 39  d < 720575940379
1e80: 32 37 39 33 35 20 4f 52 44 45 52 20 42 59 20 74  27935 ORDER BY t
1e90: 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 34  2.a.  }.} {1 2 4
1ea0: 20 35 20 36 20 37 20 38 20 39 20 31 30 20 31 31   5 6 7 8 9 10 11
1eb0: 20 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20   12 13 14 15 16 
1ec0: 31 38 20 31 39 20 32 30 20 32 31 20 32 32 20 32  18 19 20 21 22 2
1ed0: 33 20 32 34 20 32 35 20 32 36 20 32 37 20 32 39  3 24 25 26 27 29
1ee0: 20 33 30 20 33 31 20 33 32 20 33 33 20 33 34 20   30 31 32 33 34 
1ef0: 33 35 20 33 36 20 33 37 20 33 38 20 33 39 20 34  35 36 37 38 39 4
1f00: 30 20 34 31 20 34 32 20 34 33 20 34 34 20 34 35  0 41 42 43 44 45
1f10: 20 34 36 20 34 37 20 34 38 20 34 39 20 35 30 20   46 47 48 49 50 
1f20: 35 31 20 35 32 20 35 33 20 35 34 20 35 35 20 35  51 52 53 54 55 5
1f30: 36 20 35 37 20 35 38 20 35 39 20 36 30 20 36 31  6 57 58 59 60 61
1f40: 20 36 32 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65   62 63 64}.do_te
1f50: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1f60: 2e 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .lt.2 {.  db eva
1f70: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
1f80: 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
1f90: 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
1fa0: 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
1fb0: 3c 20 37 32 30 35 37 35 39 34 30 33 37 39 32 37  < 72057594037927
1fc0: 39 33 35 20 4f 52 44 45 52 20 42 59 20 74 31 2e  935 ORDER BY t1.
1fd0: 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34  a DESC.  }.} {64
1fe0: 20 36 33 20 36 32 20 36 31 20 36 30 20 35 39 20   63 62 61 60 59 
1ff0: 35 38 20 35 37 20 35 36 20 35 35 20 35 34 20 35  58 57 56 55 54 5
2000: 33 20 35 32 20 35 31 20 35 30 20 34 39 20 34 38  3 52 51 50 49 48
2010: 20 34 37 20 34 36 20 34 35 20 34 34 20 34 33 20   47 46 45 44 43 
2020: 34 32 20 34 31 20 34 30 20 33 39 20 33 38 20 33  42 41 40 39 38 3
2030: 37 20 33 36 20 33 35 20 33 34 20 33 33 20 33 32  7 36 35 34 33 32
2040: 20 33 31 20 33 30 20 32 39 20 32 37 20 32 36 20   31 30 29 27 26 
2050: 32 35 20 32 34 20 32 33 20 32 32 20 32 31 20 32  25 24 23 22 21 2
2060: 30 20 31 39 20 31 38 20 31 36 20 31 35 20 31 34  0 19 18 16 15 14
2070: 20 31 33 20 31 32 20 31 31 20 31 30 20 39 20 38   13 12 11 10 9 8
2080: 20 37 20 36 20 35 20 34 20 32 20 31 7d 0a 64 6f   7 6 5 4 2 1}.do
2090: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
20a0: 32 2e 31 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20  2.1.lt.3 {.  db 
20b0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
20c0: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
20d0: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
20e0: 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57  id < t2.r.     W
20f0: 48 45 52 45 20 74 32 2e 61 3d 31 37 0a 20 20 20  HERE t2.a=17.   
2100: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
2110: 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20  wid.  }.} {55 2 
2120: 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34  64 21 44 58 63 4
2130: 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20  7 11 1 37 29 32 
2140: 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35  54 53 52 33 38 5
2150: 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
2160: 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
2170: 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
2180: 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
2190: 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
21a0: 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
21b0: 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
21c0: 20 34 33 20 32 37 20 34 35 7d 0a 64 6f 5f 74 65   43 27 45}.do_te
21d0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
21e0: 2e 6c 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61  .lt.4 {.  db eva
21f0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2200: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2210: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2220: 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  < t2.r.     WHER
2230: 45 20 74 32 2e 61 3d 31 37 0a 20 20 20 20 20 4f  E t2.a=17.     O
2240: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
2250: 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34 35 20   DESC.  }.} {45 
2260: 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
2270: 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
2280: 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
2290: 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
22a0: 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
22b0: 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
22c0: 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
22d0: 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
22e0: 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
22f0: 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
2300: 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
2310: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2320: 2e 31 2e 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65  .1.lt.5 {.  db e
2330: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2340: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2350: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2360: 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48  d < t2.r.     WH
2370: 45 52 45 20 74 32 2e 61 3d 31 37 0a 20 20 20 20  ERE t2.a=17.    
2380: 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a   ORDER BY x.  }.
2390: 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31  } {59 60 41 5 31
23a0: 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
23b0: 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
23c0: 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
23d0: 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
23e0: 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
23f0: 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
2400: 36 20 31 33 20 34 33 20 32 37 20 34 35 20 35 35  6 13 43 27 45 55
2410: 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
2420: 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
2430: 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
2440: 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  8}.do_test bound
2450: 61 72 79 33 2d 32 2e 31 2e 6c 65 2e 31 20 7b 0a  ary3-2.1.le.1 {.
2460: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2470: 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
2480: 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
2490: 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
24a0: 74 31 2e 72 6f 77 69 64 20 3c 3d 20 37 32 30 35  t1.rowid <= 7205
24b0: 37 35 39 34 30 33 37 39 32 37 39 33 35 20 4f 52  7594037927935 OR
24c0: 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
24d0: 7d 20 7b 31 20 32 20 34 20 35 20 36 20 37 20 38  } {1 2 4 5 6 7 8
24e0: 20 39 20 31 30 20 31 31 20 31 32 20 31 33 20 31   9 10 11 12 13 1
24f0: 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
2500: 20 32 30 20 32 31 20 32 32 20 32 33 20 32 34 20   20 21 22 23 24 
2510: 32 35 20 32 36 20 32 37 20 32 39 20 33 30 20 33  25 26 27 29 30 3
2520: 31 20 33 32 20 33 33 20 33 34 20 33 35 20 33 36  1 32 33 34 35 36
2530: 20 33 37 20 33 38 20 33 39 20 34 30 20 34 31 20   37 38 39 40 41 
2540: 34 32 20 34 33 20 34 34 20 34 35 20 34 36 20 34  42 43 44 45 46 4
2550: 37 20 34 38 20 34 39 20 35 30 20 35 31 20 35 32  7 48 49 50 51 52
2560: 20 35 33 20 35 34 20 35 35 20 35 36 20 35 37 20   53 54 55 56 57 
2570: 35 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36  58 59 60 61 62 6
2580: 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 64}.do_test bo
2590: 75 6e 64 61 72 79 33 2d 32 2e 31 2e 6c 65 2e 32  undary3-2.1.le.2
25a0: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
25b0: 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
25c0: 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
25d0: 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
25e0: 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 37 32  E t1.rowid <= 72
25f0: 30 35 37 35 39 34 30 33 37 39 32 37 39 33 35 20  057594037927935 
2600: 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45  ORDER BY t1.a DE
2610: 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20  SC.  }.} {64 63 
2620: 36 32 20 36 31 20 36 30 20 35 39 20 35 38 20 35  62 61 60 59 58 5
2630: 37 20 35 36 20 35 35 20 35 34 20 35 33 20 35 32  7 56 55 54 53 52
2640: 20 35 31 20 35 30 20 34 39 20 34 38 20 34 37 20   51 50 49 48 47 
2650: 34 36 20 34 35 20 34 34 20 34 33 20 34 32 20 34  46 45 44 43 42 4
2660: 31 20 34 30 20 33 39 20 33 38 20 33 37 20 33 36  1 40 39 38 37 36
2670: 20 33 35 20 33 34 20 33 33 20 33 32 20 33 31 20   35 34 33 32 31 
2680: 33 30 20 32 39 20 32 37 20 32 36 20 32 35 20 32  30 29 27 26 25 2
2690: 34 20 32 33 20 32 32 20 32 31 20 32 30 20 31 39  4 23 22 21 20 19
26a0: 20 31 38 20 31 37 20 31 36 20 31 35 20 31 34 20   18 17 16 15 14 
26b0: 31 33 20 31 32 20 31 31 20 31 30 20 39 20 38 20  13 12 11 10 9 8 
26c0: 37 20 36 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f  7 6 5 4 2 1}.do_
26d0: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
26e0: 2e 31 2e 6c 65 2e 33 20 7b 0a 20 20 64 62 20 65  .1.le.3 {.  db e
26f0: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2700: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2710: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2720: 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d <= t2.r.     W
2730: 48 45 52 45 20 74 32 2e 61 3d 31 37 0a 20 20 20  HERE t2.a=17.   
2740: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
2750: 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20  wid.  }.} {55 2 
2760: 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34  64 21 44 58 63 4
2770: 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20  7 11 1 37 29 32 
2780: 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35  54 53 52 33 38 5
2790: 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
27a0: 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
27b0: 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
27c0: 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
27d0: 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
27e0: 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
27f0: 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
2800: 20 34 33 20 32 37 20 34 35 20 31 37 7d 0a 64 6f   43 27 45 17}.do
2810: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2820: 32 2e 31 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20  2.1.le.4 {.  db 
2830: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2840: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
2850: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
2860: 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20  id <= t2.r.     
2870: 57 48 45 52 45 20 74 32 2e 61 3d 31 37 0a 20 20  WHERE t2.a=17.  
2880: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
2890: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
28a0: 7b 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20  {17 45 27 43 13 
28b0: 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
28c0: 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20   19 57 35 46 22 
28d0: 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
28e0: 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
28f0: 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
2900: 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
2910: 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
2920: 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
2930: 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
2940: 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
2950: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
2960: 64 61 72 79 33 2d 32 2e 31 2e 6c 65 2e 35 20 7b  dary3-2.1.le.5 {
2970: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
2980: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
2990: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
29a0: 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72  t1.rowid <= t2.r
29b0: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
29c0: 3d 31 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =17.     ORDER B
29d0: 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30  Y x.  }.} {59 60
29e0: 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
29f0: 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
2a00: 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
2a10: 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
2a20: 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
2a30: 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
2a40: 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
2a50: 32 37 20 34 35 20 31 37 20 35 35 20 32 20 36 34  27 45 17 55 2 64
2a60: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
2a70: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
2a80: 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f   53 52 33 38}.do
2a90: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2aa0: 32 2e 32 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  2.2.1 {.  db eva
2ab0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2ac0: 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32 20  1.* FROM t1, t2 
2ad0: 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d 31  WHERE t1.rowid=1
2ae0: 36 33 38 34 20 41 4e 44 20 74 32 2e 61 3d 74 31  6384 AND t2.a=t1
2af0: 2e 61 0a 20 20 7d 0a 7d 20 7b 31 36 20 30 30 30  .a.  }.} {16 000
2b00: 30 30 30 30 30 30 30 30 30 34 30 30 30 7d 0a 64  0000000004000}.d
2b10: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2b20: 2d 32 2e 32 2e 32 20 7b 0a 20 20 64 62 20 65 76  -2.2.2 {.  db ev
2b30: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2b40: 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.* FROM t1 JOI
2b50: 4e 20 74 32 20 55 53 49 4e 47 28 61 29 20 57 48  N t2 USING(a) WH
2b60: 45 52 45 20 78 3d 27 30 30 30 30 30 30 30 30 30  ERE x='000000000
2b70: 30 30 30 34 30 30 30 27 0a 20 20 7d 0a 7d 20 7b  0004000'.  }.} {
2b80: 31 36 33 38 34 20 31 36 7d 0a 64 6f 5f 74 65 73  16384 16}.do_tes
2b90: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 2e  t boundary3-2.2.
2ba0: 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
2bb0: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 72 6f      SELECT t1.ro
2bc0: 77 69 64 2c 20 78 20 46 52 4f 4d 20 74 31 20 4a  wid, x FROM t1 J
2bd0: 4f 49 4e 20 74 32 20 4f 4e 20 74 32 2e 72 3d 74  OIN t2 ON t2.r=t
2be0: 31 2e 72 6f 77 69 64 20 57 48 45 52 45 20 74 32  1.rowid WHERE t2
2bf0: 2e 61 3d 31 36 0a 20 20 7d 0a 7d 20 7b 31 36 33  .a=16.  }.} {163
2c00: 38 34 20 30 30 30 30 30 30 30 30 30 30 30 30 34  84 0000000000004
2c10: 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  000}.do_test bou
2c20: 6e 64 61 72 79 33 2d 32 2e 32 2e 67 74 2e 31 20  ndary3-2.2.gt.1 
2c30: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2c40: 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
2c50: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
2c60: 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
2c70: 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 31 36 33  E t1.rowid > 163
2c80: 38 34 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  84 ORDER BY t2.a
2c90: 0a 20 20 7d 0a 7d 20 7b 33 20 36 20 37 20 39 20  .  }.} {3 6 7 9 
2ca0: 31 30 20 31 32 20 31 33 20 31 34 20 31 35 20 31  10 12 13 14 15 1
2cb0: 37 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33  7 18 19 20 22 23
2cc0: 20 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20   24 25 26 27 28 
2cd0: 33 34 20 33 35 20 33 36 20 33 39 20 34 30 20 34  34 35 36 39 40 4
2ce0: 32 20 34 33 20 34 35 20 34 36 20 34 38 20 35 30  2 43 45 46 48 50
2cf0: 20 35 31 20 35 36 20 35 37 20 36 32 7d 0a 64 6f   51 56 57 62}.do
2d00: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2d10: 32 2e 32 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20  2.2.gt.2 {.  db 
2d20: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2d30: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
2d40: 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
2d50: 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
2d60: 69 64 20 3e 20 31 36 33 38 34 20 4f 52 44 45 52  id > 16384 ORDER
2d70: 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
2d80: 7d 0a 7d 20 7b 36 32 20 35 37 20 35 36 20 35 31  }.} {62 57 56 51
2d90: 20 35 30 20 34 38 20 34 36 20 34 35 20 34 33 20   50 48 46 45 43 
2da0: 34 32 20 34 30 20 33 39 20 33 36 20 33 35 20 33  42 40 39 36 35 3
2db0: 34 20 32 38 20 32 37 20 32 36 20 32 35 20 32 34  4 28 27 26 25 24
2dc0: 20 32 33 20 32 32 20 32 30 20 31 39 20 31 38 20   23 22 20 19 18 
2dd0: 31 37 20 31 35 20 31 34 20 31 33 20 31 32 20 31  17 15 14 13 12 1
2de0: 30 20 39 20 37 20 36 20 33 7d 0a 64 6f 5f 74 65  0 9 7 6 3}.do_te
2df0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2e00: 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .gt.3 {.  db eva
2e10: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2e20: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2e30: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2e40: 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
2e50: 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20 20 4f  E t2.a=16.     O
2e60: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
2e70: 0a 20 20 7d 0a 7d 20 7b 32 33 20 35 30 20 34 38  .  }.} {23 50 48
2e80: 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20   62 15 42 18 24 
2e90: 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
2ea0: 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
2eb0: 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
2ec0: 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
2ed0: 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
2ee0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2ef0: 32 2e 32 2e 67 74 2e 34 20 7b 0a 20 20 64 62 20  2.2.gt.4 {.  db 
2f00: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2f10: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
2f20: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
2f30: 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
2f40: 48 45 52 45 20 74 32 2e 61 3d 31 36 0a 20 20 20  HERE t2.a=16.   
2f50: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
2f60: 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
2f70: 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
2f80: 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
2f90: 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
2fa0: 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
2fb0: 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
2fc0: 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
2fd0: 30 20 32 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  0 23}.do_test bo
2fe0: 75 6e 64 61 72 79 33 2d 32 2e 32 2e 67 74 2e 35  undary3-2.2.gt.5
2ff0: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
3000: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
3010: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
3020: 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e  N t1.rowid > t2.
3030: 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
3040: 61 3d 31 36 0a 20 20 20 20 20 4f 52 44 45 52 20  a=16.     ORDER 
3050: 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 32 33 20 35  BY x.  }.} {23 5
3060: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
3070: 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
3080: 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
3090: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
30a0: 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
30b0: 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
30c0: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
30d0: 72 79 33 2d 32 2e 32 2e 67 74 2e 31 30 20 7b 0a  ry3-2.2.gt.10 {.
30e0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
30f0: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
3100: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
3110: 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74  1.rowid > CAST(t
3120: 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
3130: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 36 0a    WHERE t2.a=16.
3140: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
3150: 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 33  .rowid.  }.} {23
3160: 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
3170: 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
3180: 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
3190: 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
31a0: 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
31b0: 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
31c0: 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
31d0: 64 61 72 79 33 2d 32 2e 32 2e 67 74 2e 31 31 20  dary3-2.2.gt.11 
31e0: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
31f0: 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
3200: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
3210: 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54   t1.rowid > CAST
3220: 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
3230: 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31      WHERE t2.a=1
3240: 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  6.     ORDER BY 
3250: 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
3260: 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
3270: 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
3280: 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
3290: 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
32a0: 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
32b0: 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
32c0: 20 34 38 20 35 30 20 32 33 7d 0a 64 6f 5f 74 65   48 50 23}.do_te
32d0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
32e0: 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .ge.1 {.  db eva
32f0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
3300: 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
3310: 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
3320: 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
3330: 20 3e 3d 20 31 36 33 38 34 20 4f 52 44 45 52 20   >= 16384 ORDER 
3340: 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33  BY t2.a.  }.} {3
3350: 20 36 20 37 20 39 20 31 30 20 31 32 20 31 33 20   6 7 9 10 12 13 
3360: 31 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31  14 15 16 17 18 1
3370: 39 20 32 30 20 32 32 20 32 33 20 32 34 20 32 35  9 20 22 23 24 25
3380: 20 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20   26 27 28 34 35 
3390: 33 36 20 33 39 20 34 30 20 34 32 20 34 33 20 34  36 39 40 42 43 4
33a0: 35 20 34 36 20 34 38 20 35 30 20 35 31 20 35 36  5 46 48 50 51 56
33b0: 20 35 37 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20   57 62}.do_test 
33c0: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 2e 67 65  boundary3-2.2.ge
33d0: 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
33e0: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
33f0: 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
3400: 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
3410: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
3420: 31 36 33 38 34 20 4f 52 44 45 52 20 42 59 20 74  16384 ORDER BY t
3430: 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
3440: 36 32 20 35 37 20 35 36 20 35 31 20 35 30 20 34  62 57 56 51 50 4
3450: 38 20 34 36 20 34 35 20 34 33 20 34 32 20 34 30  8 46 45 43 42 40
3460: 20 33 39 20 33 36 20 33 35 20 33 34 20 32 38 20   39 36 35 34 28 
3470: 32 37 20 32 36 20 32 35 20 32 34 20 32 33 20 32  27 26 25 24 23 2
3480: 32 20 32 30 20 31 39 20 31 38 20 31 37 20 31 36  2 20 19 18 17 16
3490: 20 31 35 20 31 34 20 31 33 20 31 32 20 31 30 20   15 14 13 12 10 
34a0: 39 20 37 20 36 20 33 7d 0a 64 6f 5f 74 65 73 74  9 7 6 3}.do_test
34b0: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 2e 67   boundary3-2.2.g
34c0: 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
34d0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
34e0: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
34f0: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
3500: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
3510: 20 74 32 2e 61 3d 31 36 0a 20 20 20 20 20 4f 52   t2.a=16.     OR
3520: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
3530: 20 20 7d 0a 7d 20 7b 31 36 20 32 33 20 35 30 20    }.} {16 23 50 
3540: 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
3550: 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
3560: 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
3570: 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
3580: 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
3590: 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
35a0: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
35b0: 33 2d 32 2e 32 2e 67 65 2e 34 20 7b 0a 20 20 64  3-2.2.ge.4 {.  d
35c0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
35d0: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
35e0: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
35f0: 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
3600: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 36 0a    WHERE t2.a=16.
3610: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
3620: 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
3630: 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37  } {3 28 17 45 27
3640: 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20   43 13 26 10 34 
3650: 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35  25 56 7 19 57 35
3660: 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
3670: 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
3680: 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
3690: 38 20 35 30 20 32 33 20 31 36 7d 0a 64 6f 5f 74  8 50 23 16}.do_t
36a0: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
36b0: 32 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20 65 76  2.ge.5 {.  db ev
36c0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
36d0: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
36e0: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
36f0: 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
3700: 45 52 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20  ERE t2.a=16.    
3710: 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a   ORDER BY x.  }.
3720: 7d 20 7b 31 36 20 32 33 20 35 30 20 34 38 20 36  } {16 23 50 48 6
3730: 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
3740: 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
3750: 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
3760: 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
3770: 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
3780: 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
3790: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
37a0: 32 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20 65  2.ge.10 {.  db e
37b0: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
37c0: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
37d0: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
37e0: 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d >= CAST(t2.r A
37f0: 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
3800: 52 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20 20  RE t2.a=16.     
3810: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
3820: 64 0a 20 20 7d 0a 7d 20 7b 31 36 20 32 33 20 35  d.  }.} {16 23 5
3830: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
3840: 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
3850: 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
3860: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
3870: 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
3880: 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
3890: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
38a0: 72 79 33 2d 32 2e 32 2e 67 65 2e 31 31 20 7b 0a  ry3-2.2.ge.11 {.
38b0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
38c0: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
38d0: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
38e0: 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
38f0: 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
3900: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 36     WHERE t2.a=16
3910: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
3920: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
3930: 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
3940: 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
3950: 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
3960: 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
3970: 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
3980: 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20   24 18 42 15 62 
3990: 34 38 20 35 30 20 32 33 20 31 36 7d 0a 64 6f 5f  48 50 23 16}.do_
39a0: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
39b0: 2e 32 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20 65  .2.lt.1 {.  db e
39c0: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
39d0: 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.a FROM t1 JO
39e0: 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20  IN t2 USING(a). 
39f0: 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
3a00: 69 64 20 3c 20 31 36 33 38 34 20 4f 52 44 45 52  id < 16384 ORDER
3a10: 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b   BY t2.a.  }.} {
3a20: 31 20 32 20 34 20 35 20 38 20 31 31 20 32 31 20  1 2 4 5 8 11 21 
3a30: 32 39 20 33 30 20 33 31 20 33 32 20 33 33 20 33  29 30 31 32 33 3
3a40: 37 20 33 38 20 34 31 20 34 34 20 34 37 20 34 39  7 38 41 44 47 49
3a50: 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38 20   52 53 54 55 58 
3a60: 35 39 20 36 30 20 36 31 20 36 33 20 36 34 7d 0a  59 60 61 63 64}.
3a70: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
3a80: 33 2d 32 2e 32 2e 6c 74 2e 32 20 7b 0a 20 20 64  3-2.2.lt.2 {.  d
3a90: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
3aa0: 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32  ECT t2.a FROM t2
3ab0: 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31   NATURAL JOIN t1
3ac0: 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
3ad0: 6f 77 69 64 20 3c 20 31 36 33 38 34 20 4f 52 44  owid < 16384 ORD
3ae0: 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
3af0: 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36 31 20    }.} {64 63 61 
3b00: 36 30 20 35 39 20 35 38 20 35 35 20 35 34 20 35  60 59 58 55 54 5
3b10: 33 20 35 32 20 34 39 20 34 37 20 34 34 20 34 31  3 52 49 47 44 41
3b20: 20 33 38 20 33 37 20 33 33 20 33 32 20 33 31 20   38 37 33 32 31 
3b30: 33 30 20 32 39 20 32 31 20 31 31 20 38 20 35 20  30 29 21 11 8 5 
3b40: 34 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62  4 2 1}.do_test b
3b50: 6f 75 6e 64 61 72 79 33 2d 32 2e 32 2e 6c 74 2e  oundary3-2.2.lt.
3b60: 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
3b70: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
3b80: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
3b90: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
3ba0: 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
3bb0: 2e 61 3d 31 36 0a 20 20 20 20 20 4f 52 44 45 52  .a=16.     ORDER
3bc0: 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
3bd0: 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
3be0: 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
3bf0: 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
3c00: 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31  2 33 38 59 60 41
3c10: 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31   5 31 4 49 30 61
3c20: 20 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   8}.do_test boun
3c30: 64 61 72 79 33 2d 32 2e 32 2e 6c 74 2e 34 20 7b  dary3-2.2.lt.4 {
3c40: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
3c50: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
3c60: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
3c70: 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a  t1.rowid < t2.r.
3c80: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
3c90: 31 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  16.     ORDER BY
3ca0: 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
3cb0: 20 7d 0a 7d 20 7b 38 20 36 31 20 33 30 20 34 39   }.} {8 61 30 49
3cc0: 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39   4 31 5 41 60 59
3cd0: 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20   38 33 52 53 54 
3ce0: 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
3cf0: 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
3d00: 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
3d10: 75 6e 64 61 72 79 33 2d 32 2e 32 2e 6c 74 2e 35  undary3-2.2.lt.5
3d20: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
3d30: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
3d40: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
3d50: 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
3d60: 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
3d70: 61 3d 31 36 0a 20 20 20 20 20 4f 52 44 45 52 20  a=16.     ORDER 
3d80: 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  BY x.  }.} {59 6
3d90: 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
3da0: 30 20 36 31 20 38 20 35 35 20 32 20 36 34 20 32  0 61 8 55 2 64 2
3db0: 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
3dc0: 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
3dd0: 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74  3 52 33 38}.do_t
3de0: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
3df0: 32 2e 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20 65  2.lt.10 {.  db e
3e00: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
3e10: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
3e20: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
3e30: 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53  d < CAST(t2.r AS
3e40: 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
3e50: 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20 20 4f  E t2.a=16.     O
3e60: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
3e70: 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
3e80: 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
3e90: 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
3ea0: 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36  53 52 33 38 59 6
3eb0: 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
3ec0: 30 20 36 31 20 38 7d 0a 64 6f 5f 74 65 73 74 20  0 61 8}.do_test 
3ed0: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 2e 6c 74  boundary3-2.2.lt
3ee0: 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .11 {.  db eval 
3ef0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
3f00: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
3f10: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
3f20: 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
3f30: 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
3f40: 2e 61 3d 31 36 0a 20 20 20 20 20 4f 52 44 45 52  .a=16.     ORDER
3f50: 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
3f60: 43 0a 20 20 7d 0a 7d 20 7b 38 20 36 31 20 33 30  C.  }.} {8 61 30
3f70: 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
3f80: 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
3f90: 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
3fa0: 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
3fb0: 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
3fc0: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 2e 6c   boundary3-2.2.l
3fd0: 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.1 {.  db eval 
3fe0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
3ff0: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
4000: 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
4010: 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
4020: 3d 20 31 36 33 38 34 20 4f 52 44 45 52 20 42 59  = 16384 ORDER BY
4030: 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32   t2.a.  }.} {1 2
4040: 20 34 20 35 20 38 20 31 31 20 31 36 20 32 31 20   4 5 8 11 16 21 
4050: 32 39 20 33 30 20 33 31 20 33 32 20 33 33 20 33  29 30 31 32 33 3
4060: 37 20 33 38 20 34 31 20 34 34 20 34 37 20 34 39  7 38 41 44 47 49
4070: 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38 20   52 53 54 55 58 
4080: 35 39 20 36 30 20 36 31 20 36 33 20 36 34 7d 0a  59 60 61 63 64}.
4090: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
40a0: 33 2d 32 2e 32 2e 6c 65 2e 32 20 7b 0a 20 20 64  3-2.2.le.2 {.  d
40b0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
40c0: 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32  ECT t2.a FROM t2
40d0: 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31   NATURAL JOIN t1
40e0: 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
40f0: 6f 77 69 64 20 3c 3d 20 31 36 33 38 34 20 4f 52  owid <= 16384 OR
4100: 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43  DER BY t1.a DESC
4110: 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36 31  .  }.} {64 63 61
4120: 20 36 30 20 35 39 20 35 38 20 35 35 20 35 34 20   60 59 58 55 54 
4130: 35 33 20 35 32 20 34 39 20 34 37 20 34 34 20 34  53 52 49 47 44 4
4140: 31 20 33 38 20 33 37 20 33 33 20 33 32 20 33 31  1 38 37 33 32 31
4150: 20 33 30 20 32 39 20 32 31 20 31 36 20 31 31 20   30 29 21 16 11 
4160: 38 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74 65  8 5 4 2 1}.do_te
4170: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
4180: 2e 6c 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .le.3 {.  db eva
4190: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
41a0: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
41b0: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
41c0: 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  <= t2.r.     WHE
41d0: 52 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20 20  RE t2.a=16.     
41e0: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
41f0: 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
4200: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
4210: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
4220: 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
4230: 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
4240: 33 30 20 36 31 20 38 20 31 36 7d 0a 64 6f 5f 74  30 61 8 16}.do_t
4250: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
4260: 32 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65 76  2.le.4 {.  db ev
4270: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
4280: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
4290: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
42a0: 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
42b0: 45 52 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20  ERE t2.a=16.    
42c0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
42d0: 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 31  id DESC.  }.} {1
42e0: 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33  6 8 61 30 49 4 3
42f0: 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20  1 5 41 60 59 38 
4300: 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
4310: 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20  9 37 1 11 47 63 
4320: 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
4330: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
4340: 72 79 33 2d 32 2e 32 2e 6c 65 2e 35 20 7b 0a 20  ry3-2.2.le.5 {. 
4350: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
4360: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
4370: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
4380: 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
4390: 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31      WHERE t2.a=1
43a0: 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  6.     ORDER BY 
43b0: 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  x.  }.} {59 60 4
43c0: 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
43d0: 31 20 38 20 31 36 20 35 35 20 32 20 36 34 20 32  1 8 16 55 2 64 2
43e0: 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
43f0: 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
4400: 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74  3 52 33 38}.do_t
4410: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
4420: 32 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65  2.le.10 {.  db e
4430: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
4440: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
4450: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
4460: 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d <= CAST(t2.r A
4470: 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
4480: 52 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20 20  RE t2.a=16.     
4490: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
44a0: 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
44b0: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
44c0: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
44d0: 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
44e0: 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
44f0: 33 30 20 36 31 20 38 20 31 36 7d 0a 64 6f 5f 74  30 61 8 16}.do_t
4500: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
4510: 32 2e 6c 65 2e 31 31 20 7b 0a 20 20 64 62 20 65  2.le.11 {.  db e
4520: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
4530: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
4540: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
4550: 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d <= CAST(t2.r A
4560: 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
4570: 52 45 20 74 32 2e 61 3d 31 36 0a 20 20 20 20 20  RE t2.a=16.     
4580: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
4590: 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 31 36  d DESC.  }.} {16
45a0: 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31   8 61 30 49 4 31
45b0: 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33   5 41 60 59 38 3
45c0: 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
45d0: 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
45e0: 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
45f0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
4600: 79 33 2d 32 2e 33 2e 31 20 7b 0a 20 20 64 62 20  y3-2.3.1 {.  db 
4610: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
4620: 54 20 74 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20  T t1.* FROM t1, 
4630: 74 32 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69  t2 WHERE t1.rowi
4640: 64 3d 34 32 39 34 39 36 37 32 39 36 20 41 4e 44  d=4294967296 AND
4650: 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d   t2.a=t1.a.  }.}
4660: 20 7b 33 36 20 30 30 30 30 30 30 30 31 30 30 30   {36 00000001000
4670: 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62  00000}.do_test b
4680: 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 32 20 7b  oundary3-2.3.2 {
4690: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
46a0: 20 53 45 4c 45 43 54 20 74 32 2e 2a 20 46 52 4f   SELECT t2.* FRO
46b0: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
46c0: 4e 47 28 61 29 20 57 48 45 52 45 20 78 3d 27 30  NG(a) WHERE x='0
46d0: 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 27  000000100000000'
46e0: 0a 20 20 7d 0a 7d 20 7b 34 32 39 34 39 36 37 32  .  }.} {42949672
46f0: 39 36 20 33 36 7d 0a 64 6f 5f 74 65 73 74 20 62  96 36}.do_test b
4700: 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 33 20 7b  oundary3-2.3.3 {
4710: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
4720: 20 53 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64   SELECT t1.rowid
4730: 2c 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  , x FROM t1 JOIN
4740: 20 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72   t2 ON t2.r=t1.r
4750: 6f 77 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d  owid WHERE t2.a=
4760: 33 36 0a 20 20 7d 0a 7d 20 7b 34 32 39 34 39 36  36.  }.} {429496
4770: 37 32 39 36 20 30 30 30 30 30 30 30 31 30 30 30  7296 00000001000
4780: 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62  00000}.do_test b
4790: 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 67 74 2e  oundary3-2.3.gt.
47a0: 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
47b0: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
47c0: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
47d0: 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
47e0: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 34  ERE t1.rowid > 4
47f0: 32 39 34 39 36 37 32 39 36 20 4f 52 44 45 52 20  294967296 ORDER 
4800: 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33  BY t2.a.  }.} {3
4810: 20 37 20 31 30 20 31 33 20 31 37 20 31 39 20 32   7 10 13 17 19 2
4820: 32 20 32 35 20 32 36 20 32 37 20 32 38 20 33 34  2 25 26 27 28 34
4830: 20 33 35 20 33 39 20 34 33 20 34 35 20 34 36 20   35 39 43 45 46 
4840: 35 36 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20 62  56 57}.do_test b
4850: 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 67 74 2e  oundary3-2.3.gt.
4860: 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
4870: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
4880: 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20  FROM t2 NATURAL 
4890: 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45  JOIN t1.     WHE
48a0: 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 34 32  RE t1.rowid > 42
48b0: 39 34 39 36 37 32 39 36 20 4f 52 44 45 52 20 42  94967296 ORDER B
48c0: 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
48d0: 7d 20 7b 35 37 20 35 36 20 34 36 20 34 35 20 34  } {57 56 46 45 4
48e0: 33 20 33 39 20 33 35 20 33 34 20 32 38 20 32 37  3 39 35 34 28 27
48f0: 20 32 36 20 32 35 20 32 32 20 31 39 20 31 37 20   26 25 22 19 17 
4900: 31 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f 74 65  13 10 7 3}.do_te
4910: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
4920: 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .gt.3 {.  db eva
4930: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
4940: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
4950: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
4960: 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
4970: 45 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f  E t2.a=36.     O
4980: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
4990: 0a 20 20 7d 0a 7d 20 7b 33 39 20 32 32 20 34 36  .  }.} {39 22 46
49a0: 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
49b0: 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
49c0: 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
49d0: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
49e0: 33 2d 32 2e 33 2e 67 74 2e 34 20 7b 0a 20 20 64  3-2.3.gt.4 {.  d
49f0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
4a00: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
4a10: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
4a20: 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20  owid > t2.r.    
4a30: 20 57 48 45 52 45 20 74 32 2e 61 3d 33 36 0a 20   WHERE t2.a=36. 
4a40: 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
4a50: 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
4a60: 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20   {3 28 17 45 27 
4a70: 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32  43 13 26 10 34 2
4a80: 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20  5 56 7 19 57 35 
4a90: 34 36 20 32 32 20 33 39 7d 0a 64 6f 5f 74 65 73  46 22 39}.do_tes
4aa0: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e  t boundary3-2.3.
4ab0: 67 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  gt.5 {.  db eval
4ac0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
4ad0: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
4ae0: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
4af0: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
4b00: 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52   t2.a=36.     OR
4b10: 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
4b20: 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
4b30: 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
4b40: 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
4b50: 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
4b60: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 67 74  boundary3-2.3.gt
4b70: 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .10 {.  db eval 
4b80: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
4b90: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
4ba0: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
4bb0: 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
4bc0: 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
4bd0: 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52 44 45 52  .a=36.     ORDER
4be0: 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
4bf0: 0a 7d 20 7b 33 39 20 32 32 20 34 36 20 33 35 20  .} {39 22 46 35 
4c00: 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
4c10: 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
4c20: 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
4c30: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
4c40: 33 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62 20 65  3.gt.11 {.  db e
4c50: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
4c60: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
4c70: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
4c80: 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53  d > CAST(t2.r AS
4c90: 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
4ca0: 45 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f  E t2.a=36.     O
4cb0: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
4cc0: 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32   DESC.  }.} {3 2
4cd0: 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33  8 17 45 27 43 13
4ce0: 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20   26 10 34 25 56 
4cf0: 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32  7 19 57 35 46 22
4d00: 20 33 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   39}.do_test bou
4d10: 6e 64 61 72 79 33 2d 32 2e 33 2e 67 65 2e 31 20  ndary3-2.3.ge.1 
4d20: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
4d30: 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
4d40: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
4d50: 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
4d60: 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 34 32  E t1.rowid >= 42
4d70: 39 34 39 36 37 32 39 36 20 4f 52 44 45 52 20 42  94967296 ORDER B
4d80: 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20  Y t2.a.  }.} {3 
4d90: 37 20 31 30 20 31 33 20 31 37 20 31 39 20 32 32  7 10 13 17 19 22
4da0: 20 32 35 20 32 36 20 32 37 20 32 38 20 33 34 20   25 26 27 28 34 
4db0: 33 35 20 33 36 20 33 39 20 34 33 20 34 35 20 34  35 36 39 43 45 4
4dc0: 36 20 35 36 20 35 37 7d 0a 64 6f 5f 74 65 73 74  6 56 57}.do_test
4dd0: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 67   boundary3-2.3.g
4de0: 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.2 {.  db eval 
4df0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
4e00: 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
4e10: 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
4e20: 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d  HERE t1.rowid >=
4e30: 20 34 32 39 34 39 36 37 32 39 36 20 4f 52 44 45   4294967296 ORDE
4e40: 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
4e50: 20 7d 0a 7d 20 7b 35 37 20 35 36 20 34 36 20 34   }.} {57 56 46 4
4e60: 35 20 34 33 20 33 39 20 33 36 20 33 35 20 33 34  5 43 39 36 35 34
4e70: 20 32 38 20 32 37 20 32 36 20 32 35 20 32 32 20   28 27 26 25 22 
4e80: 31 39 20 31 37 20 31 33 20 31 30 20 37 20 33 7d  19 17 13 10 7 3}
4e90: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
4ea0: 79 33 2d 32 2e 33 2e 67 65 2e 33 20 7b 0a 20 20  y3-2.3.ge.3 {.  
4eb0: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
4ec0: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
4ed0: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
4ee0: 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20  rowid >= t2.r.  
4ef0: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 36     WHERE t2.a=36
4f00: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
4f10: 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33  1.rowid.  }.} {3
4f20: 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
4f30: 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
4f40: 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
4f50: 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
4f60: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e  t boundary3-2.3.
4f70: 67 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  ge.4 {.  db eval
4f80: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
4f90: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
4fa0: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
4fb0: 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  = t2.r.     WHER
4fc0: 45 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f  E t2.a=36.     O
4fd0: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
4fe0: 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32   DESC.  }.} {3 2
4ff0: 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33  8 17 45 27 43 13
5000: 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20   26 10 34 25 56 
5010: 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32  7 19 57 35 46 22
5020: 20 33 39 20 33 36 7d 0a 64 6f 5f 74 65 73 74 20   39 36}.do_test 
5030: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 67 65  boundary3-2.3.ge
5040: 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .5 {.  db eval {
5050: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
5060: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
5070: 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
5080: 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
5090: 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52 44  t2.a=36.     ORD
50a0: 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 33  ER BY x.  }.} {3
50b0: 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
50c0: 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
50d0: 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
50e0: 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
50f0: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e  t boundary3-2.3.
5100: 67 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  ge.10 {.  db eva
5110: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
5120: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
5130: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
5140: 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  >= CAST(t2.r AS 
5150: 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
5160: 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52   t2.a=36.     OR
5170: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
5180: 20 20 7d 0a 7d 20 7b 33 36 20 33 39 20 32 32 20    }.} {36 39 22 
5190: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
51a0: 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
51b0: 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
51c0: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
51d0: 72 79 33 2d 32 2e 33 2e 67 65 2e 31 31 20 7b 0a  ry3-2.3.ge.11 {.
51e0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
51f0: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
5200: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
5210: 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
5220: 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
5230: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 36     WHERE t2.a=36
5240: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
5250: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
5260: 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
5270: 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
5280: 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
5290: 35 20 34 36 20 32 32 20 33 39 20 33 36 7d 0a 64  5 46 22 39 36}.d
52a0: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
52b0: 2d 32 2e 33 2e 6c 74 2e 31 20 7b 0a 20 20 64 62  -2.3.lt.1 {.  db
52c0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
52d0: 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
52e0: 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
52f0: 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
5300: 6f 77 69 64 20 3c 20 34 32 39 34 39 36 37 32 39  owid < 429496729
5310: 36 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  6 ORDER BY t2.a.
5320: 20 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 36    }.} {1 2 4 5 6
5330: 20 38 20 39 20 31 31 20 31 32 20 31 34 20 31 35   8 9 11 12 14 15
5340: 20 31 36 20 31 38 20 32 30 20 32 31 20 32 33 20   16 18 20 21 23 
5350: 32 34 20 32 39 20 33 30 20 33 31 20 33 32 20 33  24 29 30 31 32 3
5360: 33 20 33 37 20 33 38 20 34 30 20 34 31 20 34 32  3 37 38 40 41 42
5370: 20 34 34 20 34 37 20 34 38 20 34 39 20 35 30 20   44 47 48 49 50 
5380: 35 31 20 35 32 20 35 33 20 35 34 20 35 35 20 35  51 52 53 54 55 5
5390: 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36 33  8 59 60 61 62 63
53a0: 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
53b0: 6e 64 61 72 79 33 2d 32 2e 33 2e 6c 74 2e 32 20  ndary3-2.3.lt.2 
53c0: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
53d0: 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
53e0: 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f  OM t2 NATURAL JO
53f0: 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45  IN t1.     WHERE
5400: 20 74 31 2e 72 6f 77 69 64 20 3c 20 34 32 39 34   t1.rowid < 4294
5410: 39 36 37 32 39 36 20 4f 52 44 45 52 20 42 59 20  967296 ORDER BY 
5420: 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
5430: 7b 36 34 20 36 33 20 36 32 20 36 31 20 36 30 20  {64 63 62 61 60 
5440: 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20 35  59 58 55 54 53 5
5450: 32 20 35 31 20 35 30 20 34 39 20 34 38 20 34 37  2 51 50 49 48 47
5460: 20 34 34 20 34 32 20 34 31 20 34 30 20 33 38 20   44 42 41 40 38 
5470: 33 37 20 33 33 20 33 32 20 33 31 20 33 30 20 32  37 33 32 31 30 2
5480: 39 20 32 34 20 32 33 20 32 31 20 32 30 20 31 38  9 24 23 21 20 18
5490: 20 31 36 20 31 35 20 31 34 20 31 32 20 31 31 20   16 15 14 12 11 
54a0: 39 20 38 20 36 20 35 20 34 20 32 20 31 7d 0a 64  9 8 6 5 4 2 1}.d
54b0: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
54c0: 2d 32 2e 33 2e 6c 74 2e 33 20 7b 0a 20 20 64 62  -2.3.lt.3 {.  db
54d0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
54e0: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
54f0: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
5500: 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20  wid < t2.r.     
5510: 57 48 45 52 45 20 74 32 2e 61 3d 33 36 0a 20 20  WHERE t2.a=36.  
5520: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
5530: 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32  owid.  }.} {55 2
5540: 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
5550: 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
5560: 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20   54 53 52 33 38 
5570: 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
5580: 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
5590: 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
55a0: 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
55b0: 32 30 20 35 31 20 31 34 7d 0a 64 6f 5f 74 65 73  20 51 14}.do_tes
55c0: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e  t boundary3-2.3.
55d0: 6c 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.4 {.  db eval
55e0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
55f0: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
5600: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
5610: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
5620: 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52   t2.a=36.     OR
5630: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
5640: 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 31 34 20 35  DESC.  }.} {14 5
5650: 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32  1 20 40 12 6 9 2
5660: 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38  4 18 42 15 62 48
5670: 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33   50 23 16 8 61 3
5680: 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36  0 49 4 31 5 41 6
5690: 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33  0 59 38 33 52 53
56a0: 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31   54 32 29 37 1 1
56b0: 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31  1 47 63 58 44 21
56c0: 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73   64 2 55}.do_tes
56d0: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e  t boundary3-2.3.
56e0: 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.5 {.  db eval
56f0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
5700: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
5710: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
5720: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
5730: 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52   t2.a=36.     OR
5740: 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
5750: 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
5760: 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
5770: 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
5780: 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
5790: 32 30 20 35 31 20 31 34 20 35 35 20 32 20 36 34  20 51 14 55 2 64
57a0: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
57b0: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
57c0: 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f   53 52 33 38}.do
57d0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
57e0: 32 2e 33 2e 6c 74 2e 31 30 20 7b 0a 20 20 64 62  2.3.lt.10 {.  db
57f0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
5800: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
5810: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
5820: 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20  wid < CAST(t2.r 
5830: 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
5840: 45 52 45 20 74 32 2e 61 3d 33 36 0a 20 20 20 20  ERE t2.a=36.    
5850: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
5860: 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36  id.  }.} {55 2 6
5870: 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
5880: 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
5890: 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
58a0: 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
58b0: 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
58c0: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
58d0: 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
58e0: 20 35 31 20 31 34 7d 0a 64 6f 5f 74 65 73 74 20   51 14}.do_test 
58f0: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 6c 74  boundary3-2.3.lt
5900: 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .11 {.  db eval 
5910: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
5920: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
5930: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
5940: 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
5950: 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
5960: 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52 44 45 52  .a=36.     ORDER
5970: 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
5980: 43 0a 20 20 7d 0a 7d 20 7b 31 34 20 35 31 20 32  C.  }.} {14 51 2
5990: 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31  0 40 12 6 9 24 1
59a0: 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30  8 42 15 62 48 50
59b0: 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34   23 16 8 61 30 4
59c0: 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35  9 4 31 5 41 60 5
59d0: 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34  9 38 33 52 53 54
59e0: 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34   32 29 37 1 11 4
59f0: 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34  7 63 58 44 21 64
5a00: 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62   2 55}.do_test b
5a10: 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 6c 65 2e  oundary3-2.3.le.
5a20: 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
5a30: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
5a40: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
5a50: 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
5a60: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20  ERE t1.rowid <= 
5a70: 34 32 39 34 39 36 37 32 39 36 20 4f 52 44 45 52  4294967296 ORDER
5a80: 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b   BY t2.a.  }.} {
5a90: 31 20 32 20 34 20 35 20 36 20 38 20 39 20 31 31  1 2 4 5 6 8 9 11
5aa0: 20 31 32 20 31 34 20 31 35 20 31 36 20 31 38 20   12 14 15 16 18 
5ab0: 32 30 20 32 31 20 32 33 20 32 34 20 32 39 20 33  20 21 23 24 29 3
5ac0: 30 20 33 31 20 33 32 20 33 33 20 33 36 20 33 37  0 31 32 33 36 37
5ad0: 20 33 38 20 34 30 20 34 31 20 34 32 20 34 34 20   38 40 41 42 44 
5ae0: 34 37 20 34 38 20 34 39 20 35 30 20 35 31 20 35  47 48 49 50 51 5
5af0: 32 20 35 33 20 35 34 20 35 35 20 35 38 20 35 39  2 53 54 55 58 59
5b00: 20 36 30 20 36 31 20 36 32 20 36 33 20 36 34 7d   60 61 62 63 64}
5b10: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
5b20: 79 33 2d 32 2e 33 2e 6c 65 2e 32 20 7b 0a 20 20  y3-2.3.le.2 {.  
5b30: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
5b40: 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
5b50: 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74  2 NATURAL JOIN t
5b60: 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  1.     WHERE t1.
5b70: 72 6f 77 69 64 20 3c 3d 20 34 32 39 34 39 36 37  rowid <= 4294967
5b80: 32 39 36 20 4f 52 44 45 52 20 42 59 20 74 31 2e  296 ORDER BY t1.
5b90: 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34  a DESC.  }.} {64
5ba0: 20 36 33 20 36 32 20 36 31 20 36 30 20 35 39 20   63 62 61 60 59 
5bb0: 35 38 20 35 35 20 35 34 20 35 33 20 35 32 20 35  58 55 54 53 52 5
5bc0: 31 20 35 30 20 34 39 20 34 38 20 34 37 20 34 34  1 50 49 48 47 44
5bd0: 20 34 32 20 34 31 20 34 30 20 33 38 20 33 37 20   42 41 40 38 37 
5be0: 33 36 20 33 33 20 33 32 20 33 31 20 33 30 20 32  36 33 32 31 30 2
5bf0: 39 20 32 34 20 32 33 20 32 31 20 32 30 20 31 38  9 24 23 21 20 18
5c00: 20 31 36 20 31 35 20 31 34 20 31 32 20 31 31 20   16 15 14 12 11 
5c10: 39 20 38 20 36 20 35 20 34 20 32 20 31 7d 0a 64  9 8 6 5 4 2 1}.d
5c20: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
5c30: 2d 32 2e 33 2e 6c 65 2e 33 20 7b 0a 20 20 64 62  -2.3.le.3 {.  db
5c40: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
5c50: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
5c60: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
5c70: 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20  wid <= t2.r.    
5c80: 20 57 48 45 52 45 20 74 32 2e 61 3d 33 36 0a 20   WHERE t2.a=36. 
5c90: 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
5ca0: 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20  rowid.  }.} {55 
5cb0: 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
5cc0: 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
5cd0: 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
5ce0: 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34   59 60 41 5 31 4
5cf0: 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32   49 30 61 8 16 2
5d00: 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32  3 50 48 62 15 42
5d10: 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30   18 24 9 6 12 40
5d20: 20 32 30 20 35 31 20 31 34 20 33 36 7d 0a 64 6f   20 51 14 36}.do
5d30: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
5d40: 32 2e 33 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20  2.3.le.4 {.  db 
5d50: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
5d60: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
5d70: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
5d80: 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20  id <= t2.r.     
5d90: 57 48 45 52 45 20 74 32 2e 61 3d 33 36 0a 20 20  WHERE t2.a=36.  
5da0: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
5db0: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
5dc0: 7b 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20  {36 14 51 20 40 
5dd0: 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20  12 6 9 24 18 42 
5de0: 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31  15 62 48 50 23 1
5df0: 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33  6 8 61 30 49 4 3
5e00: 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20  1 5 41 60 59 38 
5e10: 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
5e20: 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20  9 37 1 11 47 63 
5e30: 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
5e40: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
5e50: 72 79 33 2d 32 2e 33 2e 6c 65 2e 35 20 7b 0a 20  ry3-2.3.le.5 {. 
5e60: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
5e70: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
5e80: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
5e90: 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
5ea0: 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
5eb0: 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  6.     ORDER BY 
5ec0: 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  x.  }.} {59 60 4
5ed0: 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
5ee0: 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
5ef0: 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
5f00: 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
5f10: 34 20 33 36 20 35 35 20 32 20 36 34 20 32 31 20  4 36 55 2 64 21 
5f20: 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
5f30: 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
5f40: 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73  52 33 38}.do_tes
5f50: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e  t boundary3-2.3.
5f60: 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  le.10 {.  db eva
5f70: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
5f80: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
5f90: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
5fa0: 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  <= CAST(t2.r AS 
5fb0: 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
5fc0: 20 74 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52   t2.a=36.     OR
5fd0: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
5fe0: 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
5ff0: 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
6000: 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
6010: 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36 30  3 52 33 38 59 60
6020: 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
6030: 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
6040: 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
6050: 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
6060: 20 31 34 20 33 36 7d 0a 64 6f 5f 74 65 73 74 20   14 36}.do_test 
6070: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 2e 6c 65  boundary3-2.3.le
6080: 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .11 {.  db eval 
6090: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
60a0: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
60b0: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
60c0: 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
60d0: 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
60e0: 32 2e 61 3d 33 36 0a 20 20 20 20 20 4f 52 44 45  2.a=36.     ORDE
60f0: 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
6100: 53 43 0a 20 20 7d 0a 7d 20 7b 33 36 20 31 34 20  SC.  }.} {36 14 
6110: 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
6120: 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
6130: 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
6140: 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
6150: 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
6160: 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
6170: 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
6180: 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
6190: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34  st boundary3-2.4
61a0: 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .1 {.  db eval {
61b0: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 2a  .    SELECT t1.*
61c0: 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45   FROM t1, t2 WHE
61d0: 52 45 20 74 31 2e 72 6f 77 69 64 3d 31 36 37 37  RE t1.rowid=1677
61e0: 37 32 31 36 20 41 4e 44 20 74 32 2e 61 3d 74 31  7216 AND t2.a=t1
61f0: 2e 61 0a 20 20 7d 0a 7d 20 7b 36 20 30 30 30 30  .a.  }.} {6 0000
6200: 30 30 30 30 30 31 30 30 30 30 30 30 7d 0a 64 6f  000001000000}.do
6210: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
6220: 32 2e 34 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  2.4.2 {.  db eva
6230: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
6240: 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.* FROM t1 JOIN
6250: 20 74 32 20 55 53 49 4e 47 28 61 29 20 57 48 45   t2 USING(a) WHE
6260: 52 45 20 78 3d 27 30 30 30 30 30 30 30 30 30 31  RE x='0000000001
6270: 30 30 30 30 30 30 27 0a 20 20 7d 0a 7d 20 7b 31  000000'.  }.} {1
6280: 36 37 37 37 32 31 36 20 36 7d 0a 64 6f 5f 74 65  6777216 6}.do_te
6290: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34  st boundary3-2.4
62a0: 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
62b0: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 72  .    SELECT t1.r
62c0: 6f 77 69 64 2c 20 78 20 46 52 4f 4d 20 74 31 20  owid, x FROM t1 
62d0: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 32 2e 72 3d  JOIN t2 ON t2.r=
62e0: 74 31 2e 72 6f 77 69 64 20 57 48 45 52 45 20 74  t1.rowid WHERE t
62f0: 32 2e 61 3d 36 0a 20 20 7d 0a 7d 20 7b 31 36 37  2.a=6.  }.} {167
6300: 37 37 32 31 36 20 30 30 30 30 30 30 30 30 30 31  77216 0000000001
6310: 30 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20  000000}.do_test 
6320: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34 2e 67 74  boundary3-2.4.gt
6330: 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .1 {.  db eval {
6340: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
6350: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
6360: 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57   USING(a).     W
6370: 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20  HERE t1.rowid > 
6380: 31 36 37 37 37 32 31 36 20 4f 52 44 45 52 20 42  16777216 ORDER B
6390: 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20  Y t2.a.  }.} {3 
63a0: 37 20 31 30 20 31 32 20 31 33 20 31 34 20 31 37  7 10 12 13 14 17
63b0: 20 31 39 20 32 30 20 32 32 20 32 35 20 32 36 20   19 20 22 25 26 
63c0: 32 37 20 32 38 20 33 34 20 33 35 20 33 36 20 33  27 28 34 35 36 3
63d0: 39 20 34 30 20 34 33 20 34 35 20 34 36 20 35 31  9 40 43 45 46 51
63e0: 20 35 36 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20   56 57}.do_test 
63f0: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34 2e 67 74  boundary3-2.4.gt
6400: 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
6410: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
6420: 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
6430: 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
6440: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 31  ERE t1.rowid > 1
6450: 36 37 37 37 32 31 36 20 4f 52 44 45 52 20 42 59  6777216 ORDER BY
6460: 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
6470: 20 7b 35 37 20 35 36 20 35 31 20 34 36 20 34 35   {57 56 51 46 45
6480: 20 34 33 20 34 30 20 33 39 20 33 36 20 33 35 20   43 40 39 36 35 
6490: 33 34 20 32 38 20 32 37 20 32 36 20 32 35 20 32  34 28 27 26 25 2
64a0: 32 20 32 30 20 31 39 20 31 37 20 31 34 20 31 33  2 20 19 17 14 13
64b0: 20 31 32 20 31 30 20 37 20 33 7d 0a 64 6f 5f 74   12 10 7 3}.do_t
64c0: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
64d0: 34 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76  4.gt.3 {.  db ev
64e0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
64f0: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
6500: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
6510: 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
6520: 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20 4f  RE t2.a=6.     O
6530: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
6540: 0a 20 20 7d 0a 7d 20 7b 31 32 20 34 30 20 32 30  .  }.} {12 40 20
6550: 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
6560: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
6570: 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
6580: 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
6590: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
65a0: 72 79 33 2d 32 2e 34 2e 67 74 2e 34 20 7b 0a 20  ry3-2.4.gt.4 {. 
65b0: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
65c0: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
65d0: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
65e0: 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
65f0: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 0a     WHERE t2.a=6.
6600: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
6610: 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
6620: 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37  } {3 28 17 45 27
6630: 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20   43 13 26 10 34 
6640: 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35  25 56 7 19 57 35
6650: 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
6660: 35 31 20 32 30 20 34 30 20 31 32 7d 0a 64 6f 5f  51 20 40 12}.do_
6670: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
6680: 2e 34 2e 67 74 2e 35 20 7b 0a 20 20 64 62 20 65  .4.gt.5 {.  db e
6690: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
66a0: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
66b0: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
66c0: 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48  d > t2.r.     WH
66d0: 45 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20  ERE t2.a=6.     
66e0: 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
66f0: 20 7b 31 32 20 34 30 20 32 30 20 35 31 20 31 34   {12 40 20 51 14
6700: 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
6710: 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
6720: 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
6730: 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
6740: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
6750: 34 2e 67 74 2e 31 30 20 7b 0a 20 20 64 62 20 65  4.gt.10 {.  db e
6760: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
6770: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
6780: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
6790: 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53  d > CAST(t2.r AS
67a0: 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
67b0: 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20 4f 52  E t2.a=6.     OR
67c0: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
67d0: 20 20 7d 0a 7d 20 7b 31 32 20 34 30 20 32 30 20    }.} {12 40 20 
67e0: 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
67f0: 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
6800: 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
6810: 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
6820: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
6830: 79 33 2d 32 2e 34 2e 67 74 2e 31 31 20 7b 0a 20  y3-2.4.gt.11 {. 
6840: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
6850: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
6860: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
6870: 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32  .rowid > CAST(t2
6880: 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
6890: 20 57 48 45 52 45 20 74 32 2e 61 3d 36 0a 20 20   WHERE t2.a=6.  
68a0: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
68b0: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
68c0: 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
68d0: 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
68e0: 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
68f0: 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
6900: 20 32 30 20 34 30 20 31 32 7d 0a 64 6f 5f 74 65   20 40 12}.do_te
6910: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34  st boundary3-2.4
6920: 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .ge.1 {.  db eva
6930: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
6940: 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
6950: 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
6960: 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
6970: 20 3e 3d 20 31 36 37 37 37 32 31 36 20 4f 52 44   >= 16777216 ORD
6980: 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d  ER BY t2.a.  }.}
6990: 20 7b 33 20 36 20 37 20 31 30 20 31 32 20 31 33   {3 6 7 10 12 13
69a0: 20 31 34 20 31 37 20 31 39 20 32 30 20 32 32 20   14 17 19 20 22 
69b0: 32 35 20 32 36 20 32 37 20 32 38 20 33 34 20 33  25 26 27 28 34 3
69c0: 35 20 33 36 20 33 39 20 34 30 20 34 33 20 34 35  5 36 39 40 43 45
69d0: 20 34 36 20 35 31 20 35 36 20 35 37 7d 0a 64 6f   46 51 56 57}.do
69e0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
69f0: 32 2e 34 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20  2.4.ge.2 {.  db 
6a00: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
6a10: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
6a20: 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
6a30: 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
6a40: 69 64 20 3e 3d 20 31 36 37 37 37 32 31 36 20 4f  id >= 16777216 O
6a50: 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
6a60: 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 35 36 20 35  C.  }.} {57 56 5
6a70: 31 20 34 36 20 34 35 20 34 33 20 34 30 20 33 39  1 46 45 43 40 39
6a80: 20 33 36 20 33 35 20 33 34 20 32 38 20 32 37 20   36 35 34 28 27 
6a90: 32 36 20 32 35 20 32 32 20 32 30 20 31 39 20 31  26 25 22 20 19 1
6aa0: 37 20 31 34 20 31 33 20 31 32 20 31 30 20 37 20  7 14 13 12 10 7 
6ab0: 36 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  6 3}.do_test bou
6ac0: 6e 64 61 72 79 33 2d 32 2e 34 2e 67 65 2e 33 20  ndary3-2.4.ge.3 
6ad0: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
6ae0: 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
6af0: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
6b00: 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e   t1.rowid >= t2.
6b10: 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
6b20: 61 3d 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42  a=6.     ORDER B
6b30: 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
6b40: 20 7b 36 20 31 32 20 34 30 20 32 30 20 35 31 20   {6 12 40 20 51 
6b50: 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
6b60: 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
6b70: 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
6b80: 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
6b90: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
6ba0: 32 2e 34 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20  2.4.ge.4 {.  db 
6bb0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
6bc0: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
6bd0: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
6be0: 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
6bf0: 57 48 45 52 45 20 74 32 2e 61 3d 36 0a 20 20 20  WHERE t2.a=6.   
6c00: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
6c10: 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
6c20: 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
6c30: 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
6c40: 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
6c50: 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
6c60: 32 30 20 34 30 20 31 32 20 36 7d 0a 64 6f 5f 74  20 40 12 6}.do_t
6c70: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
6c80: 34 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20 65 76  4.ge.5 {.  db ev
6c90: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
6ca0: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
6cb0: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
6cc0: 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
6cd0: 45 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20  ERE t2.a=6.     
6ce0: 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
6cf0: 20 7b 36 20 31 32 20 34 30 20 32 30 20 35 31 20   {6 12 40 20 51 
6d00: 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
6d10: 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
6d20: 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
6d30: 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
6d40: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
6d50: 32 2e 34 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62  2.4.ge.10 {.  db
6d60: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
6d70: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
6d80: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
6d90: 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72  wid >= CAST(t2.r
6da0: 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
6db0: 48 45 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20  HERE t2.a=6.    
6dc0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
6dd0: 69 64 0a 20 20 7d 0a 7d 20 7b 36 20 31 32 20 34  id.  }.} {6 12 4
6de0: 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
6df0: 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
6e00: 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
6e10: 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
6e20: 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
6e30: 75 6e 64 61 72 79 33 2d 32 2e 34 2e 67 65 2e 31  undary3-2.4.ge.1
6e40: 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
6e50: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
6e60: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
6e70: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43  ON t1.rowid >= C
6e80: 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
6e90: 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
6ea0: 61 3d 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42  a=6.     ORDER B
6eb0: 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
6ec0: 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
6ed0: 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
6ee0: 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
6ef0: 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36  7 35 46 22 39 36
6f00: 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20   14 51 20 40 12 
6f10: 36 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  6}.do_test bound
6f20: 61 72 79 33 2d 32 2e 34 2e 6c 74 2e 31 20 7b 0a  ary3-2.4.lt.1 {.
6f30: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
6f40: 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
6f50: 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
6f60: 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
6f70: 74 31 2e 72 6f 77 69 64 20 3c 20 31 36 37 37 37  t1.rowid < 16777
6f80: 32 31 36 20 4f 52 44 45 52 20 42 59 20 74 32 2e  216 ORDER BY t2.
6f90: 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35  a.  }.} {1 2 4 5
6fa0: 20 38 20 39 20 31 31 20 31 35 20 31 36 20 31 38   8 9 11 15 16 18
6fb0: 20 32 31 20 32 33 20 32 34 20 32 39 20 33 30 20   21 23 24 29 30 
6fc0: 33 31 20 33 32 20 33 33 20 33 37 20 33 38 20 34  31 32 33 37 38 4
6fd0: 31 20 34 32 20 34 34 20 34 37 20 34 38 20 34 39  1 42 44 47 48 49
6fe0: 20 35 30 20 35 32 20 35 33 20 35 34 20 35 35 20   50 52 53 54 55 
6ff0: 35 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36  58 59 60 61 62 6
7000: 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 64}.do_test bo
7010: 75 6e 64 61 72 79 33 2d 32 2e 34 2e 6c 74 2e 32  undary3-2.4.lt.2
7020: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
7030: 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
7040: 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
7050: 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
7060: 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 31 36 37  E t1.rowid < 167
7070: 37 37 32 31 36 20 4f 52 44 45 52 20 42 59 20 74  77216 ORDER BY t
7080: 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
7090: 36 34 20 36 33 20 36 32 20 36 31 20 36 30 20 35  64 63 62 61 60 5
70a0: 39 20 35 38 20 35 35 20 35 34 20 35 33 20 35 32  9 58 55 54 53 52
70b0: 20 35 30 20 34 39 20 34 38 20 34 37 20 34 34 20   50 49 48 47 44 
70c0: 34 32 20 34 31 20 33 38 20 33 37 20 33 33 20 33  42 41 38 37 33 3
70d0: 32 20 33 31 20 33 30 20 32 39 20 32 34 20 32 33  2 31 30 29 24 23
70e0: 20 32 31 20 31 38 20 31 36 20 31 35 20 31 31 20   21 18 16 15 11 
70f0: 39 20 38 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f  9 8 5 4 2 1}.do_
7100: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
7110: 2e 34 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65  .4.lt.3 {.  db e
7120: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
7130: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
7140: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
7150: 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48  d < t2.r.     WH
7160: 45 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20  ERE t2.a=6.     
7170: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
7180: 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
7190: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
71a0: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
71b0: 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
71c0: 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
71d0: 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
71e0: 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
71f0: 32 34 20 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  24 9}.do_test bo
7200: 75 6e 64 61 72 79 33 2d 32 2e 34 2e 6c 74 2e 34  undary3-2.4.lt.4
7210: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
7220: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
7230: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
7240: 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
7250: 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
7260: 61 3d 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42  a=6.     ORDER B
7270: 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
7280: 20 20 7d 0a 7d 20 7b 39 20 32 34 20 31 38 20 34    }.} {9 24 18 4
7290: 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
72a0: 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
72b0: 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
72c0: 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
72d0: 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
72e0: 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
72f0: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
7300: 64 61 72 79 33 2d 32 2e 34 2e 6c 74 2e 35 20 7b  dary3-2.4.lt.5 {
7310: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
7320: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
7330: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
7340: 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a  t1.rowid < t2.r.
7350: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
7360: 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  6.     ORDER BY 
7370: 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  x.  }.} {59 60 4
7380: 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
7390: 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
73a0: 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
73b0: 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35   55 2 64 21 44 5
73c0: 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
73d0: 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
73e0: 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 38}.do_test bo
73f0: 75 6e 64 61 72 79 33 2d 32 2e 34 2e 6c 74 2e 31  undary3-2.4.lt.1
7400: 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
7410: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
7420: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
7430: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 43 41  ON t1.rowid < CA
7440: 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
7450: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
7460: 3d 36 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  =6.     ORDER BY
7470: 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
7480: 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35  {55 2 64 21 44 5
7490: 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
74a0: 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
74b0: 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20  3 38 59 60 41 5 
74c0: 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
74d0: 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
74e0: 35 20 34 32 20 31 38 20 32 34 20 39 7d 0a 64 6f  5 42 18 24 9}.do
74f0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
7500: 32 2e 34 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62  2.4.lt.11 {.  db
7510: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
7520: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
7530: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
7540: 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20  wid < CAST(t2.r 
7550: 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
7560: 45 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20  ERE t2.a=6.     
7570: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
7580: 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 39 20  d DESC.  }.} {9 
7590: 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
75a0: 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
75b0: 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
75c0: 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
75d0: 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
75e0: 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
75f0: 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
7600: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34  st boundary3-2.4
7610: 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .le.1 {.  db eva
7620: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
7630: 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
7640: 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
7650: 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
7660: 20 3c 3d 20 31 36 37 37 37 32 31 36 20 4f 52 44   <= 16777216 ORD
7670: 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d  ER BY t2.a.  }.}
7680: 20 7b 31 20 32 20 34 20 35 20 36 20 38 20 39 20   {1 2 4 5 6 8 9 
7690: 31 31 20 31 35 20 31 36 20 31 38 20 32 31 20 32  11 15 16 18 21 2
76a0: 33 20 32 34 20 32 39 20 33 30 20 33 31 20 33 32  3 24 29 30 31 32
76b0: 20 33 33 20 33 37 20 33 38 20 34 31 20 34 32 20   33 37 38 41 42 
76c0: 34 34 20 34 37 20 34 38 20 34 39 20 35 30 20 35  44 47 48 49 50 5
76d0: 32 20 35 33 20 35 34 20 35 35 20 35 38 20 35 39  2 53 54 55 58 59
76e0: 20 36 30 20 36 31 20 36 32 20 36 33 20 36 34 7d   60 61 62 63 64}
76f0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
7700: 79 33 2d 32 2e 34 2e 6c 65 2e 32 20 7b 0a 20 20  y3-2.4.le.2 {.  
7710: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
7720: 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
7730: 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74  2 NATURAL JOIN t
7740: 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  1.     WHERE t1.
7750: 72 6f 77 69 64 20 3c 3d 20 31 36 37 37 37 32 31  rowid <= 1677721
7760: 36 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20  6 ORDER BY t1.a 
7770: 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36  DESC.  }.} {64 6
7780: 33 20 36 32 20 36 31 20 36 30 20 35 39 20 35 38  3 62 61 60 59 58
7790: 20 35 35 20 35 34 20 35 33 20 35 32 20 35 30 20   55 54 53 52 50 
77a0: 34 39 20 34 38 20 34 37 20 34 34 20 34 32 20 34  49 48 47 44 42 4
77b0: 31 20 33 38 20 33 37 20 33 33 20 33 32 20 33 31  1 38 37 33 32 31
77c0: 20 33 30 20 32 39 20 32 34 20 32 33 20 32 31 20   30 29 24 23 21 
77d0: 31 38 20 31 36 20 31 35 20 31 31 20 39 20 38 20  18 16 15 11 9 8 
77e0: 36 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74 65  6 5 4 2 1}.do_te
77f0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34  st boundary3-2.4
7800: 2e 6c 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .le.3 {.  db eva
7810: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
7820: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
7830: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
7840: 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  <= t2.r.     WHE
7850: 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20 4f  RE t2.a=6.     O
7860: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
7870: 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
7880: 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
7890: 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
78a0: 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36  53 52 33 38 59 6
78b0: 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
78c0: 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
78d0: 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
78e0: 34 20 39 20 36 7d 0a 64 6f 5f 74 65 73 74 20 62  4 9 6}.do_test b
78f0: 6f 75 6e 64 61 72 79 33 2d 32 2e 34 2e 6c 65 2e  oundary3-2.4.le.
7900: 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
7910: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
7920: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
7930: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74  ON t1.rowid <= t
7940: 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
7950: 32 2e 61 3d 36 0a 20 20 20 20 20 4f 52 44 45 52  2.a=6.     ORDER
7960: 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
7970: 43 0a 20 20 7d 0a 7d 20 7b 36 20 39 20 32 34 20  C.  }.} {6 9 24 
7980: 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
7990: 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
79a0: 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
79b0: 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
79c0: 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
79d0: 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
79e0: 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
79f0: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34 2e 6c 65  boundary3-2.4.le
7a00: 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .5 {.  db eval {
7a10: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
7a20: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
7a30: 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20   ON t1.rowid <= 
7a40: 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
7a50: 74 32 2e 61 3d 36 0a 20 20 20 20 20 4f 52 44 45  t2.a=6.     ORDE
7a60: 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39  R BY x.  }.} {59
7a70: 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
7a80: 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
7a90: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
7aa0: 20 32 34 20 39 20 36 20 35 35 20 32 20 36 34 20   24 9 6 55 2 64 
7ab0: 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
7ac0: 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
7ad0: 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f  53 52 33 38}.do_
7ae0: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
7af0: 2e 34 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20  .4.le.10 {.  db 
7b00: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
7b10: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
7b20: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
7b30: 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20  id <= CAST(t2.r 
7b40: 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
7b50: 45 52 45 20 74 32 2e 61 3d 36 0a 20 20 20 20 20  ERE t2.a=6.     
7b60: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
7b70: 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
7b80: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
7b90: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
7ba0: 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
7bb0: 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
7bc0: 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
7bd0: 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
7be0: 32 34 20 39 20 36 7d 0a 64 6f 5f 74 65 73 74 20  24 9 6}.do_test 
7bf0: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 34 2e 6c 65  boundary3-2.4.le
7c00: 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .11 {.  db eval 
7c10: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
7c20: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
7c30: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
7c40: 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
7c50: 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
7c60: 32 2e 61 3d 36 0a 20 20 20 20 20 4f 52 44 45 52  2.a=6.     ORDER
7c70: 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
7c80: 43 0a 20 20 7d 0a 7d 20 7b 36 20 39 20 32 34 20  C.  }.} {6 9 24 
7c90: 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
7ca0: 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
7cb0: 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
7cc0: 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
7cd0: 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
7ce0: 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
7cf0: 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
7d00: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e 31 20  boundary3-2.5.1 
7d10: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
7d20: 20 20 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52    SELECT t1.* FR
7d30: 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20  OM t1, t2 WHERE 
7d40: 74 31 2e 72 6f 77 69 64 3d 2d 33 32 37 36 39 20  t1.rowid=-32769 
7d50: 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20  AND t2.a=t1.a.  
7d60: 7d 0a 7d 20 7b 32 39 20 66 66 66 66 66 66 66 66  }.} {29 ffffffff
7d70: 66 66 66 66 37 66 66 66 7d 0a 64 6f 5f 74 65 73  ffff7fff}.do_tes
7d80: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e  t boundary3-2.5.
7d90: 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
7da0: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a 20      SELECT t2.* 
7db0: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
7dc0: 55 53 49 4e 47 28 61 29 20 57 48 45 52 45 20 78  USING(a) WHERE x
7dd0: 3d 27 66 66 66 66 66 66 66 66 66 66 66 66 37 66  ='ffffffffffff7f
7de0: 66 66 27 0a 20 20 7d 0a 7d 20 7b 2d 33 32 37 36  ff'.  }.} {-3276
7df0: 39 20 32 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  9 29}.do_test bo
7e00: 75 6e 64 61 72 79 33 2d 32 2e 35 2e 33 20 7b 0a  undary3-2.5.3 {.
7e10: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
7e20: 53 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c  SELECT t1.rowid,
7e30: 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20   x FROM t1 JOIN 
7e40: 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f  t2 ON t2.r=t1.ro
7e50: 77 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d 32  wid WHERE t2.a=2
7e60: 39 0a 20 20 7d 0a 7d 20 7b 2d 33 32 37 36 39 20  9.  }.} {-32769 
7e70: 66 66 66 66 66 66 66 66 66 66 66 66 37 66 66 66  ffffffffffff7fff
7e80: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
7e90: 72 79 33 2d 32 2e 35 2e 67 74 2e 31 20 7b 0a 20  ry3-2.5.gt.1 {. 
7ea0: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
7eb0: 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
7ec0: 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
7ed0: 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
7ee0: 31 2e 72 6f 77 69 64 20 3e 20 2d 33 32 37 36 39  1.rowid > -32769
7ef0: 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
7f00: 20 7d 0a 7d 20 7b 33 20 34 20 35 20 36 20 37 20   }.} {3 4 5 6 7 
7f10: 38 20 39 20 31 30 20 31 32 20 31 33 20 31 34 20  8 9 10 12 13 14 
7f20: 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32  15 16 17 18 19 2
7f30: 30 20 32 32 20 32 33 20 32 34 20 32 35 20 32 36  0 22 23 24 25 26
7f40: 20 32 37 20 32 38 20 33 30 20 33 31 20 33 32 20   27 28 30 31 32 
7f50: 33 33 20 33 34 20 33 35 20 33 36 20 33 38 20 33  33 34 35 36 38 3
7f60: 39 20 34 30 20 34 31 20 34 32 20 34 33 20 34 35  9 40 41 42 43 45
7f70: 20 34 36 20 34 38 20 34 39 20 35 30 20 35 31 20   46 48 49 50 51 
7f80: 35 32 20 35 33 20 35 34 20 35 36 20 35 37 20 35  52 53 54 56 57 5
7f90: 39 20 36 30 20 36 31 20 36 32 7d 0a 64 6f 5f 74  9 60 61 62}.do_t
7fa0: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
7fb0: 35 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20 65 76  5.gt.2 {.  db ev
7fc0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
7fd0: 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
7fe0: 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
7ff0: 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
8000: 20 3e 20 2d 33 32 37 36 39 20 4f 52 44 45 52 20   > -32769 ORDER 
8010: 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
8020: 0a 7d 20 7b 36 32 20 36 31 20 36 30 20 35 39 20  .} {62 61 60 59 
8030: 35 37 20 35 36 20 35 34 20 35 33 20 35 32 20 35  57 56 54 53 52 5
8040: 31 20 35 30 20 34 39 20 34 38 20 34 36 20 34 35  1 50 49 48 46 45
8050: 20 34 33 20 34 32 20 34 31 20 34 30 20 33 39 20   43 42 41 40 39 
8060: 33 38 20 33 36 20 33 35 20 33 34 20 33 33 20 33  38 36 35 34 33 3
8070: 32 20 33 31 20 33 30 20 32 38 20 32 37 20 32 36  2 31 30 28 27 26
8080: 20 32 35 20 32 34 20 32 33 20 32 32 20 32 30 20   25 24 23 22 20 
8090: 31 39 20 31 38 20 31 37 20 31 36 20 31 35 20 31  19 18 17 16 15 1
80a0: 34 20 31 33 20 31 32 20 31 30 20 39 20 38 20 37  4 13 12 10 9 8 7
80b0: 20 36 20 35 20 34 20 33 7d 0a 64 6f 5f 74 65 73   6 5 4 3}.do_tes
80c0: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e  t boundary3-2.5.
80d0: 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  gt.3 {.  db eval
80e0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
80f0: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
8100: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
8110: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
8120: 20 74 32 2e 61 3d 32 39 0a 20 20 20 20 20 4f 52   t2.a=29.     OR
8130: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
8140: 20 20 7d 0a 7d 20 7b 33 32 20 35 34 20 35 33 20    }.} {32 54 53 
8150: 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
8160: 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
8170: 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
8180: 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
8190: 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
81a0: 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
81b0: 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
81c0: 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
81d0: 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
81e0: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
81f0: 2e 35 2e 67 74 2e 34 20 7b 0a 20 20 64 62 20 65  .5.gt.4 {.  db e
8200: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
8210: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
8220: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
8230: 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48  d > t2.r.     WH
8240: 45 52 45 20 74 32 2e 61 3d 32 39 0a 20 20 20 20  ERE t2.a=29.    
8250: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
8260: 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33  id DESC.  }.} {3
8270: 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20   28 17 45 27 43 
8280: 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35  13 26 10 34 25 5
8290: 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20  6 7 19 57 35 46 
82a0: 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32  22 39 36 14 51 2
82b0: 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31  0 40 12 6 9 24 1
82c0: 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30  8 42 15 62 48 50
82d0: 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34   23 16 8 61 30 4
82e0: 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35  9 4 31 5 41 60 5
82f0: 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34  9 38 33 52 53 54
8300: 20 33 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   32}.do_test bou
8310: 6e 64 61 72 79 33 2d 32 2e 35 2e 67 74 2e 35 20  ndary3-2.5.gt.5 
8320: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
8330: 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
8340: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
8350: 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72   t1.rowid > t2.r
8360: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
8370: 3d 32 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =29.     ORDER B
8380: 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30  Y x.  }.} {59 60
8390: 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
83a0: 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
83b0: 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
83c0: 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
83d0: 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
83e0: 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
83f0: 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
8400: 32 37 20 34 35 20 31 37 20 32 38 20 33 20 33 32  27 45 17 28 3 32
8410: 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d   54 53 52 33 38}
8420: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
8430: 79 33 2d 32 2e 35 2e 67 74 2e 31 30 20 7b 0a 20  y3-2.5.gt.10 {. 
8440: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
8450: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
8460: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
8470: 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32  .rowid > CAST(t2
8480: 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
8490: 20 57 48 45 52 45 20 74 32 2e 61 3d 32 39 0a 20   WHERE t2.a=29. 
84a0: 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
84b0: 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 32 20  rowid.  }.} {32 
84c0: 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35  54 53 52 33 38 5
84d0: 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
84e0: 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
84f0: 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
8500: 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
8510: 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
8520: 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
8530: 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
8540: 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
8550: 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
8560: 61 72 79 33 2d 32 2e 35 2e 67 74 2e 31 31 20 7b  ary3-2.5.gt.11 {
8570: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
8580: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
8590: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
85a0: 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28  t1.rowid > CAST(
85b0: 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
85c0: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 39     WHERE t2.a=29
85d0: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
85e0: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
85f0: 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
8600: 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
8610: 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
8620: 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
8630: 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
8640: 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20   24 18 42 15 62 
8650: 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31  48 50 23 16 8 61
8660: 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31   30 49 4 31 5 41
8670: 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20   60 59 38 33 52 
8680: 35 33 20 35 34 20 33 32 7d 0a 64 6f 5f 74 65 73  53 54 32}.do_tes
8690: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e  t boundary3-2.5.
86a0: 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  ge.1 {.  db eval
86b0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
86c0: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
86d0: 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20  t2 USING(a).    
86e0: 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
86f0: 3e 3d 20 2d 33 32 37 36 39 20 4f 52 44 45 52 20  >= -32769 ORDER 
8700: 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33  BY t2.a.  }.} {3
8710: 20 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20   4 5 6 7 8 9 10 
8720: 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31  12 13 14 15 16 1
8730: 37 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33  7 18 19 20 22 23
8740: 20 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20   24 25 26 27 28 
8750: 32 39 20 33 30 20 33 31 20 33 32 20 33 33 20 33  29 30 31 32 33 3
8760: 34 20 33 35 20 33 36 20 33 38 20 33 39 20 34 30  4 35 36 38 39 40
8770: 20 34 31 20 34 32 20 34 33 20 34 35 20 34 36 20   41 42 43 45 46 
8780: 34 38 20 34 39 20 35 30 20 35 31 20 35 32 20 35  48 49 50 51 52 5
8790: 33 20 35 34 20 35 36 20 35 37 20 35 39 20 36 30  3 54 56 57 59 60
87a0: 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20   61 62}.do_test 
87b0: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e 67 65  boundary3-2.5.ge
87c0: 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
87d0: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
87e0: 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
87f0: 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
8800: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
8810: 2d 33 32 37 36 39 20 4f 52 44 45 52 20 42 59 20  -32769 ORDER BY 
8820: 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
8830: 7b 36 32 20 36 31 20 36 30 20 35 39 20 35 37 20  {62 61 60 59 57 
8840: 35 36 20 35 34 20 35 33 20 35 32 20 35 31 20 35  56 54 53 52 51 5
8850: 30 20 34 39 20 34 38 20 34 36 20 34 35 20 34 33  0 49 48 46 45 43
8860: 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38 20   42 41 40 39 38 
8870: 33 36 20 33 35 20 33 34 20 33 33 20 33 32 20 33  36 35 34 33 32 3
8880: 31 20 33 30 20 32 39 20 32 38 20 32 37 20 32 36  1 30 29 28 27 26
8890: 20 32 35 20 32 34 20 32 33 20 32 32 20 32 30 20   25 24 23 22 20 
88a0: 31 39 20 31 38 20 31 37 20 31 36 20 31 35 20 31  19 18 17 16 15 1
88b0: 34 20 31 33 20 31 32 20 31 30 20 39 20 38 20 37  4 13 12 10 9 8 7
88c0: 20 36 20 35 20 34 20 33 7d 0a 64 6f 5f 74 65 73   6 5 4 3}.do_tes
88d0: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e  t boundary3-2.5.
88e0: 67 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  ge.3 {.  db eval
88f0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
8900: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
8910: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
8920: 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  = t2.r.     WHER
8930: 45 20 74 32 2e 61 3d 32 39 0a 20 20 20 20 20 4f  E t2.a=29.     O
8940: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
8950: 0a 20 20 7d 0a 7d 20 7b 32 39 20 33 32 20 35 34  .  }.} {29 32 54
8960: 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
8970: 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
8980: 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
8990: 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
89a0: 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
89b0: 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
89c0: 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
89d0: 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
89e0: 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
89f0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
8a00: 79 33 2d 32 2e 35 2e 67 65 2e 34 20 7b 0a 20 20  y3-2.5.ge.4 {.  
8a10: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
8a20: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
8a30: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
8a40: 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20  rowid >= t2.r.  
8a50: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 39     WHERE t2.a=29
8a60: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
8a70: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
8a80: 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
8a90: 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
8aa0: 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
8ab0: 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
8ac0: 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
8ad0: 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20   24 18 42 15 62 
8ae0: 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31  48 50 23 16 8 61
8af0: 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31   30 49 4 31 5 41
8b00: 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20   60 59 38 33 52 
8b10: 35 33 20 35 34 20 33 32 20 32 39 7d 0a 64 6f 5f  53 54 32 29}.do_
8b20: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
8b30: 2e 35 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20 65  .5.ge.5 {.  db e
8b40: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
8b50: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
8b60: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
8b70: 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
8b80: 48 45 52 45 20 74 32 2e 61 3d 32 39 0a 20 20 20  HERE t2.a=29.   
8b90: 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
8ba0: 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33  .} {59 60 41 5 3
8bb0: 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
8bc0: 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
8bd0: 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32   42 18 24 9 6 12
8be0: 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
8bf0: 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
8c00: 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
8c10: 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
8c20: 37 20 32 38 20 33 20 32 39 20 33 32 20 35 34 20  7 28 3 29 32 54 
8c30: 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f  53 52 33 38}.do_
8c40: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
8c50: 2e 35 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20  .5.ge.10 {.  db 
8c60: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
8c70: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
8c80: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
8c90: 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20  id >= CAST(t2.r 
8ca0: 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
8cb0: 45 52 45 20 74 32 2e 61 3d 32 39 0a 20 20 20 20  ERE t2.a=29.    
8cc0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
8cd0: 69 64 0a 20 20 7d 0a 7d 20 7b 32 39 20 33 32 20  id.  }.} {29 32 
8ce0: 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35  54 53 52 33 38 5
8cf0: 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
8d00: 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
8d10: 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
8d20: 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
8d30: 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
8d40: 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
8d50: 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
8d60: 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
8d70: 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
8d80: 61 72 79 33 2d 32 2e 35 2e 67 65 2e 31 31 20 7b  ary3-2.5.ge.11 {
8d90: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
8da0: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
8db0: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
8dc0: 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54  t1.rowid >= CAST
8dd0: 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
8de0: 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32      WHERE t2.a=2
8df0: 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
8e00: 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
8e10: 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
8e20: 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
8e30: 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
8e40: 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
8e50: 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
8e60: 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
8e70: 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
8e80: 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
8e90: 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
8ea0: 20 35 33 20 35 34 20 33 32 20 32 39 7d 0a 64 6f   53 54 32 29}.do
8eb0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
8ec0: 32 2e 35 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20  2.5.lt.1 {.  db 
8ed0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
8ee0: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
8ef0: 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
8f00: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
8f10: 77 69 64 20 3c 20 2d 33 32 37 36 39 20 4f 52 44  wid < -32769 ORD
8f20: 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d  ER BY t2.a.  }.}
8f30: 20 7b 31 20 32 20 31 31 20 32 31 20 33 37 20 34   {1 2 11 21 37 4
8f40: 34 20 34 37 20 35 35 20 35 38 20 36 33 20 36 34  4 47 55 58 63 64
8f50: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
8f60: 72 79 33 2d 32 2e 35 2e 6c 74 2e 32 20 7b 0a 20  ry3-2.5.lt.2 {. 
8f70: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
8f80: 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
8f90: 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
8fa0: 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
8fb0: 2e 72 6f 77 69 64 20 3c 20 2d 33 32 37 36 39 20  .rowid < -32769 
8fc0: 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45  ORDER BY t1.a DE
8fd0: 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20  SC.  }.} {64 63 
8fe0: 35 38 20 35 35 20 34 37 20 34 34 20 33 37 20 32  58 55 47 44 37 2
8ff0: 31 20 31 31 20 32 20 31 7d 0a 64 6f 5f 74 65 73  1 11 2 1}.do_tes
9000: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e  t boundary3-2.5.
9010: 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.3 {.  db eval
9020: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
9030: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
9040: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
9050: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
9060: 20 74 32 2e 61 3d 32 39 0a 20 20 20 20 20 4f 52   t2.a=29.     OR
9070: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
9080: 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
9090: 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
90a0: 20 31 20 33 37 7d 0a 64 6f 5f 74 65 73 74 20 62   1 37}.do_test b
90b0: 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e 6c 74 2e  oundary3-2.5.lt.
90c0: 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
90d0: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
90e0: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
90f0: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
9100: 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
9110: 2e 61 3d 32 39 0a 20 20 20 20 20 4f 52 44 45 52  .a=29.     ORDER
9120: 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
9130: 43 0a 20 20 7d 0a 7d 20 7b 33 37 20 31 20 31 31  C.  }.} {37 1 11
9140: 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
9150: 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
9160: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e 6c   boundary3-2.5.l
9170: 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.5 {.  db eval 
9180: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
9190: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
91a0: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
91b0: 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
91c0: 74 32 2e 61 3d 32 39 0a 20 20 20 20 20 4f 52 44  t2.a=29.     ORD
91d0: 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35  ER BY x.  }.} {5
91e0: 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
91f0: 36 33 20 34 37 20 31 31 20 31 20 33 37 7d 0a 64  63 47 11 1 37}.d
9200: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
9210: 2d 32 2e 35 2e 6c 74 2e 31 30 20 7b 0a 20 20 64  -2.5.lt.10 {.  d
9220: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
9230: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
9240: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
9250: 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72  owid < CAST(t2.r
9260: 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
9270: 48 45 52 45 20 74 32 2e 61 3d 32 39 0a 20 20 20  HERE t2.a=29.   
9280: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
9290: 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20  wid.  }.} {55 2 
92a0: 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34  64 21 44 58 63 4
92b0: 37 20 31 31 20 31 20 33 37 7d 0a 64 6f 5f 74 65  7 11 1 37}.do_te
92c0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 35  st boundary3-2.5
92d0: 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76  .lt.11 {.  db ev
92e0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
92f0: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
9300: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
9310: 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53 20   < CAST(t2.r AS 
9320: 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
9330: 20 74 32 2e 61 3d 32 39 0a 20 20 20 20 20 4f 52   t2.a=29.     OR
9340: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
9350: 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 37 20 31  DESC.  }.} {37 1
9360: 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20   11 47 63 58 44 
9370: 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74  21 64 2 55}.do_t
9380: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
9390: 35 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76  5.le.1 {.  db ev
93a0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
93b0: 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
93c0: 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
93d0: 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
93e0: 64 20 3c 3d 20 2d 33 32 37 36 39 20 4f 52 44 45  d <= -32769 ORDE
93f0: 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20  R BY t2.a.  }.} 
9400: 7b 31 20 32 20 31 31 20 32 31 20 32 39 20 33 37  {1 2 11 21 29 37
9410: 20 34 34 20 34 37 20 35 35 20 35 38 20 36 33 20   44 47 55 58 63 
9420: 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  64}.do_test boun
9430: 64 61 72 79 33 2d 32 2e 35 2e 6c 65 2e 32 20 7b  dary3-2.5.le.2 {
9440: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
9450: 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
9460: 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
9470: 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
9480: 74 31 2e 72 6f 77 69 64 20 3c 3d 20 2d 33 32 37  t1.rowid <= -327
9490: 36 39 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61  69 ORDER BY t1.a
94a0: 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20   DESC.  }.} {64 
94b0: 36 33 20 35 38 20 35 35 20 34 37 20 34 34 20 33  63 58 55 47 44 3
94c0: 37 20 32 39 20 32 31 20 31 31 20 32 20 31 7d 0a  7 29 21 11 2 1}.
94d0: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
94e0: 33 2d 32 2e 35 2e 6c 65 2e 33 20 7b 0a 20 20 64  3-2.5.le.3 {.  d
94f0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
9500: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
9510: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
9520: 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
9530: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 39 0a    WHERE t2.a=29.
9540: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
9550: 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
9560: 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
9570: 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 7d  3 47 11 1 37 29}
9580: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
9590: 79 33 2d 32 2e 35 2e 6c 65 2e 34 20 7b 0a 20 20  y3-2.5.le.4 {.  
95a0: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
95b0: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
95c0: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
95d0: 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
95e0: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 39     WHERE t2.a=29
95f0: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
9600: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
9610: 0a 7d 20 7b 32 39 20 33 37 20 31 20 31 31 20 34  .} {29 37 1 11 4
9620: 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34  7 63 58 44 21 64
9630: 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62   2 55}.do_test b
9640: 6f 75 6e 64 61 72 79 33 2d 32 2e 35 2e 6c 65 2e  oundary3-2.5.le.
9650: 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
9660: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
9670: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
9680: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74  ON t1.rowid <= t
9690: 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
96a0: 32 2e 61 3d 32 39 0a 20 20 20 20 20 4f 52 44 45  2.a=29.     ORDE
96b0: 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 35  R BY x.  }.} {55
96c0: 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
96d0: 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 7d  3 47 11 1 37 29}
96e0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
96f0: 79 33 2d 32 2e 35 2e 6c 65 2e 31 30 20 7b 0a 20  y3-2.5.le.10 {. 
9700: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
9710: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
9720: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
9730: 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74  .rowid <= CAST(t
9740: 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
9750: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 39 0a    WHERE t2.a=29.
9760: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
9770: 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
9780: 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
9790: 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 7d  3 47 11 1 37 29}
97a0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
97b0: 79 33 2d 32 2e 35 2e 6c 65 2e 31 31 20 7b 0a 20  y3-2.5.le.11 {. 
97c0: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
97d0: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
97e0: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
97f0: 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74  .rowid <= CAST(t
9800: 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
9810: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 39 0a    WHERE t2.a=29.
9820: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
9830: 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
9840: 7d 20 7b 32 39 20 33 37 20 31 20 31 31 20 34 37  } {29 37 1 11 47
9850: 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
9860: 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
9870: 75 6e 64 61 72 79 33 2d 32 2e 36 2e 31 20 7b 0a  undary3-2.6.1 {.
9880: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
9890: 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d  SELECT t1.* FROM
98a0: 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74 31   t1, t2 WHERE t1
98b0: 2e 72 6f 77 69 64 3d 2d 31 34 30 37 33 37 34 38  .rowid=-14073748
98c0: 38 33 35 35 33 32 39 20 41 4e 44 20 74 32 2e 61  8355329 AND t2.a
98d0: 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 32 31 20  =t1.a.  }.} {21 
98e0: 66 66 66 66 37 66 66 66 66 66 66 66 66 66 66 66  ffff7fffffffffff
98f0: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
9900: 72 79 33 2d 32 2e 36 2e 32 20 7b 0a 20 20 64 62  ry3-2.6.2 {.  db
9910: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
9920: 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20  CT t2.* FROM t1 
9930: 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
9940: 20 57 48 45 52 45 20 78 3d 27 66 66 66 66 37 66   WHERE x='ffff7f
9950: 66 66 66 66 66 66 66 66 66 66 27 0a 20 20 7d 0a  ffffffffff'.  }.
9960: 7d 20 7b 2d 31 34 30 37 33 37 34 38 38 33 35 35  } {-140737488355
9970: 33 32 39 20 32 31 7d 0a 64 6f 5f 74 65 73 74 20  329 21}.do_test 
9980: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 36 2e 33 20  boundary3-2.6.3 
9990: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
99a0: 20 20 53 45 4c 45 43 54 20 74 31 2e 72 6f 77 69    SELECT t1.rowi
99b0: 64 2c 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49  d, x FROM t1 JOI
99c0: 4e 20 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e  N t2 ON t2.r=t1.
99d0: 72 6f 77 69 64 20 57 48 45 52 45 20 74 32 2e 61  rowid WHERE t2.a
99e0: 3d 32 31 0a 20 20 7d 0a 7d 20 7b 2d 31 34 30 37  =21.  }.} {-1407
99f0: 33 37 34 38 38 33 35 35 33 32 39 20 66 66 66 66  37488355329 ffff
9a00: 37 66 66 66 66 66 66 66 66 66 66 66 7d 0a 64 6f  7fffffffffff}.do
9a10: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
9a20: 32 2e 36 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20  2.6.gt.1 {.  db 
9a30: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
9a40: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
9a50: 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
9a60: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
9a70: 77 69 64 20 3e 20 2d 31 34 30 37 33 37 34 38 38  wid > -140737488
9a80: 33 35 35 33 32 39 20 4f 52 44 45 52 20 42 59 20  355329 ORDER BY 
9a90: 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 33 20  t2.a.  }.} {1 3 
9aa0: 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20 31  4 5 6 7 8 9 10 1
9ab0: 31 20 31 32 20 31 33 20 31 34 20 31 35 20 31 36  1 12 13 14 15 16
9ac0: 20 31 37 20 31 38 20 31 39 20 32 30 20 32 32 20   17 18 19 20 22 
9ad0: 32 33 20 32 34 20 32 35 20 32 36 20 32 37 20 32  23 24 25 26 27 2
9ae0: 38 20 32 39 20 33 30 20 33 31 20 33 32 20 33 33  8 29 30 31 32 33
9af0: 20 33 34 20 33 35 20 33 36 20 33 37 20 33 38 20   34 35 36 37 38 
9b00: 33 39 20 34 30 20 34 31 20 34 32 20 34 33 20 34  39 40 41 42 43 4
9b10: 34 20 34 35 20 34 36 20 34 37 20 34 38 20 34 39  4 45 46 47 48 49
9b20: 20 35 30 20 35 31 20 35 32 20 35 33 20 35 34 20   50 51 52 53 54 
9b30: 35 36 20 35 37 20 35 38 20 35 39 20 36 30 20 36  56 57 58 59 60 6
9b40: 31 20 36 32 20 36 33 7d 0a 64 6f 5f 74 65 73 74  1 62 63}.do_test
9b50: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 36 2e 67   boundary3-2.6.g
9b60: 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.2 {.  db eval 
9b70: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
9b80: 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
9b90: 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
9ba0: 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20  HERE t1.rowid > 
9bb0: 2d 31 34 30 37 33 37 34 38 38 33 35 35 33 32 39  -140737488355329
9bc0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
9bd0: 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 33 20 36 32  ESC.  }.} {63 62
9be0: 20 36 31 20 36 30 20 35 39 20 35 38 20 35 37 20   61 60 59 58 57 
9bf0: 35 36 20 35 34 20 35 33 20 35 32 20 35 31 20 35  56 54 53 52 51 5
9c00: 30 20 34 39 20 34 38 20 34 37 20 34 36 20 34 35  0 49 48 47 46 45
9c10: 20 34 34 20 34 33 20 34 32 20 34 31 20 34 30 20   44 43 42 41 40 
9c20: 33 39 20 33 38 20 33 37 20 33 36 20 33 35 20 33  39 38 37 36 35 3
9c30: 34 20 33 33 20 33 32 20 33 31 20 33 30 20 32 39  4 33 32 31 30 29
9c40: 20 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20   28 27 26 25 24 
9c50: 32 33 20 32 32 20 32 30 20 31 39 20 31 38 20 31  23 22 20 19 18 1
9c60: 37 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32  7 16 15 14 13 12
9c70: 20 31 31 20 31 30 20 39 20 38 20 37 20 36 20 35   11 10 9 8 7 6 5
9c80: 20 34 20 33 20 31 7d 0a 64 6f 5f 74 65 73 74 20   4 3 1}.do_test 
9c90: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 36 2e 67 74  boundary3-2.6.gt
9ca0: 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
9cb0: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
9cc0: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
9cd0: 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74   ON t1.rowid > t
9ce0: 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
9cf0: 32 2e 61 3d 32 31 0a 20 20 20 20 20 4f 52 44 45  2.a=21.     ORDE
9d00: 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
9d10: 7d 0a 7d 20 7b 34 34 20 35 38 20 36 33 20 34 37  }.} {44 58 63 47
9d20: 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
9d30: 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
9d40: 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
9d50: 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
9d60: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
9d70: 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
9d80: 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
9d90: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
9da0: 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
9db0: 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
9dc0: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
9dd0: 72 79 33 2d 32 2e 36 2e 67 74 2e 34 20 7b 0a 20  ry3-2.6.gt.4 {. 
9de0: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
9df0: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
9e00: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
9e10: 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
9e20: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 31     WHERE t2.a=21
9e30: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
9e40: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
9e50: 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
9e60: 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
9e70: 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
9e80: 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
9e90: 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
9ea0: 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20   24 18 42 15 62 
9eb0: 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31  48 50 23 16 8 61
9ec0: 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31   30 49 4 31 5 41
9ed0: 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20   60 59 38 33 52 
9ee0: 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31  53 54 32 29 37 1
9ef0: 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34 7d   11 47 63 58 44}
9f00: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
9f10: 79 33 2d 32 2e 36 2e 67 74 2e 35 20 7b 0a 20 20  y3-2.6.gt.5 {.  
9f20: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
9f30: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
9f40: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
9f50: 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20  rowid > t2.r.   
9f60: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 31 0a    WHERE t2.a=21.
9f70: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
9f80: 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20    }.} {59 60 41 
9f90: 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
9fa0: 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
9fb0: 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
9fc0: 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
9fd0: 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
9fe0: 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
9ff0: 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
a000: 35 20 31 37 20 32 38 20 33 20 34 34 20 35 38 20  5 17 28 3 44 58 
a010: 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
a020: 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
a030: 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  38}.do_test boun
a040: 64 61 72 79 33 2d 32 2e 36 2e 67 65 2e 31 20 7b  dary3-2.6.ge.1 {
a050: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
a060: 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
a070: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
a080: 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45  NG(a).     WHERE
a090: 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 2d 31 34   t1.rowid >= -14
a0a0: 30 37 33 37 34 38 38 33 35 35 33 32 39 20 4f 52  0737488355329 OR
a0b0: 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
a0c0: 7d 20 7b 31 20 33 20 34 20 35 20 36 20 37 20 38  } {1 3 4 5 6 7 8
a0d0: 20 39 20 31 30 20 31 31 20 31 32 20 31 33 20 31   9 10 11 12 13 1
a0e0: 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
a0f0: 20 32 30 20 32 31 20 32 32 20 32 33 20 32 34 20   20 21 22 23 24 
a100: 32 35 20 32 36 20 32 37 20 32 38 20 32 39 20 33  25 26 27 28 29 3
a110: 30 20 33 31 20 33 32 20 33 33 20 33 34 20 33 35  0 31 32 33 34 35
a120: 20 33 36 20 33 37 20 33 38 20 33 39 20 34 30 20   36 37 38 39 40 
a130: 34 31 20 34 32 20 34 33 20 34 34 20 34 35 20 34  41 42 43 44 45 4
a140: 36 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31  6 47 48 49 50 51
a150: 20 35 32 20 35 33 20 35 34 20 35 36 20 35 37 20   52 53 54 56 57 
a160: 35 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36  58 59 60 61 62 6
a170: 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
a180: 61 72 79 33 2d 32 2e 36 2e 67 65 2e 32 20 7b 0a  ary3-2.6.ge.2 {.
a190: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
a1a0: 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
a1b0: 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e   t2 NATURAL JOIN
a1c0: 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74   t1.     WHERE t
a1d0: 31 2e 72 6f 77 69 64 20 3e 3d 20 2d 31 34 30 37  1.rowid >= -1407
a1e0: 33 37 34 38 38 33 35 35 33 32 39 20 4f 52 44 45  37488355329 ORDE
a1f0: 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
a200: 20 7d 0a 7d 20 7b 36 33 20 36 32 20 36 31 20 36   }.} {63 62 61 6
a210: 30 20 35 39 20 35 38 20 35 37 20 35 36 20 35 34  0 59 58 57 56 54
a220: 20 35 33 20 35 32 20 35 31 20 35 30 20 34 39 20   53 52 51 50 49 
a230: 34 38 20 34 37 20 34 36 20 34 35 20 34 34 20 34  48 47 46 45 44 4
a240: 33 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38  3 42 41 40 39 38
a250: 20 33 37 20 33 36 20 33 35 20 33 34 20 33 33 20   37 36 35 34 33 
a260: 33 32 20 33 31 20 33 30 20 32 39 20 32 38 20 32  32 31 30 29 28 2
a270: 37 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32  7 26 25 24 23 22
a280: 20 32 31 20 32 30 20 31 39 20 31 38 20 31 37 20   21 20 19 18 17 
a290: 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20 31  16 15 14 13 12 1
a2a0: 31 20 31 30 20 39 20 38 20 37 20 36 20 35 20 34  1 10 9 8 7 6 5 4
a2b0: 20 33 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   3 1}.do_test bo
a2c0: 75 6e 64 61 72 79 33 2d 32 2e 36 2e 67 65 2e 33  undary3-2.6.ge.3
a2d0: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
a2e0: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
a2f0: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
a300: 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32  N t1.rowid >= t2
a310: 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
a320: 2e 61 3d 32 31 0a 20 20 20 20 20 4f 52 44 45 52  .a=21.     ORDER
a330: 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
a340: 0a 7d 20 7b 32 31 20 34 34 20 35 38 20 36 33 20  .} {21 44 58 63 
a350: 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
a360: 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20   54 53 52 33 38 
a370: 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
a380: 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
a390: 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
a3a0: 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
a3b0: 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
a3c0: 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
a3d0: 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
a3e0: 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
a3f0: 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
a400: 64 61 72 79 33 2d 32 2e 36 2e 67 65 2e 34 20 7b  dary3-2.6.ge.4 {
a410: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
a420: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
a430: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
a440: 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72  t1.rowid >= t2.r
a450: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
a460: 3d 32 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =21.     ORDER B
a470: 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
a480: 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
a490: 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
a4a0: 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
a4b0: 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36  7 35 46 22 39 36
a4c0: 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20   14 51 20 40 12 
a4d0: 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20  6 9 24 18 42 15 
a4e0: 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38  62 48 50 23 16 8
a4f0: 20 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35   61 30 49 4 31 5
a500: 20 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20   41 60 59 38 33 
a510: 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33  52 53 54 32 29 3
a520: 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20  7 1 11 47 63 58 
a530: 34 34 20 32 31 7d 0a 64 6f 5f 74 65 73 74 20 62  44 21}.do_test b
a540: 6f 75 6e 64 61 72 79 33 2d 32 2e 36 2e 67 65 2e  oundary3-2.6.ge.
a550: 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
a560: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
a570: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
a580: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74  ON t1.rowid >= t
a590: 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
a5a0: 32 2e 61 3d 32 31 0a 20 20 20 20 20 4f 52 44 45  2.a=21.     ORDE
a5b0: 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39  R BY x.  }.} {59
a5c0: 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
a5d0: 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
a5e0: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
a5f0: 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
a600: 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
a610: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
a620: 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
a630: 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
a640: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
a650: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
a660: 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f   53 52 33 38}.do
a670: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
a680: 32 2e 36 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20  2.6.lt.1 {.  db 
a690: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
a6a0: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
a6b0: 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
a6c0: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
a6d0: 77 69 64 20 3c 20 2d 31 34 30 37 33 37 34 38 38  wid < -140737488
a6e0: 33 35 35 33 32 39 20 4f 52 44 45 52 20 42 59 20  355329 ORDER BY 
a6f0: 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 32 20 35 35  t2.a.  }.} {2 55
a700: 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
a710: 6e 64 61 72 79 33 2d 32 2e 36 2e 6c 74 2e 32 20  ndary3-2.6.lt.2 
a720: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
a730: 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
a740: 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f  OM t2 NATURAL JO
a750: 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45  IN t1.     WHERE
a760: 20 74 31 2e 72 6f 77 69 64 20 3c 20 2d 31 34 30   t1.rowid < -140
a770: 37 33 37 34 38 38 33 35 35 33 32 39 20 4f 52 44  737488355329 ORD
a780: 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
a790: 20 20 7d 0a 7d 20 7b 36 34 20 35 35 20 32 7d 0a    }.} {64 55 2}.
a7a0: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
a7b0: 33 2d 32 2e 36 2e 6c 74 2e 33 20 7b 0a 20 20 64  3-2.6.lt.3 {.  d
a7c0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
a7d0: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
a7e0: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
a7f0: 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20  owid < t2.r.    
a800: 20 57 48 45 52 45 20 74 32 2e 61 3d 32 31 0a 20   WHERE t2.a=21. 
a810: 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
a820: 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20  rowid.  }.} {55 
a830: 32 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 64}.do_test bo
a840: 75 6e 64 61 72 79 33 2d 32 2e 36 2e 6c 74 2e 34  undary3-2.6.lt.4
a850: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
a860: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
a870: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
a880: 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
a890: 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
a8a0: 61 3d 32 31 0a 20 20 20 20 20 4f 52 44 45 52 20  a=21.     ORDER 
a8b0: 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43  BY t1.rowid DESC
a8c0: 0a 20 20 7d 0a 7d 20 7b 36 34 20 32 20 35 35 7d  .  }.} {64 2 55}
a8d0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
a8e0: 79 33 2d 32 2e 36 2e 6c 74 2e 35 20 7b 0a 20 20  y3-2.6.lt.5 {.  
a8f0: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
a900: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
a910: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
a920: 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20  rowid < t2.r.   
a930: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 31 0a    WHERE t2.a=21.
a940: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
a950: 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 7d 0a    }.} {55 2 64}.
a960: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
a970: 33 2d 32 2e 36 2e 6c 65 2e 31 20 7b 0a 20 20 64  3-2.6.le.1 {.  d
a980: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
a990: 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31  ECT t2.a FROM t1
a9a0: 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
a9b0: 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  ).     WHERE t1.
a9c0: 72 6f 77 69 64 20 3c 3d 20 2d 31 34 30 37 33 37  rowid <= -140737
a9d0: 34 38 38 33 35 35 33 32 39 20 4f 52 44 45 52 20  488355329 ORDER 
a9e0: 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 32  BY t2.a.  }.} {2
a9f0: 20 32 31 20 35 35 20 36 34 7d 0a 64 6f 5f 74 65   21 55 64}.do_te
aa00: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 36  st boundary3-2.6
aa10: 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .le.2 {.  db eva
aa20: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
aa30: 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
aa40: 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
aa50: 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
aa60: 3c 3d 20 2d 31 34 30 37 33 37 34 38 38 33 35 35  <= -140737488355
aa70: 33 32 39 20 4f 52 44 45 52 20 42 59 20 74 31 2e  329 ORDER BY t1.
aa80: 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34  a DESC.  }.} {64
aa90: 20 35 35 20 32 31 20 32 7d 0a 64 6f 5f 74 65 73   55 21 2}.do_tes
aaa0: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 36 2e  t boundary3-2.6.
aab0: 6c 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  le.3 {.  db eval
aac0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
aad0: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
aae0: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
aaf0: 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  = t2.r.     WHER
ab00: 45 20 74 32 2e 61 3d 32 31 0a 20 20 20 20 20 4f  E t2.a=21.     O
ab10: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
ab20: 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
ab30: 32 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  21}.do_test boun
ab40: 64 61 72 79 33 2d 32 2e 36 2e 6c 65 2e 34 20 7b  dary3-2.6.le.4 {
ab50: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
ab60: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
ab70: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
ab80: 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72  t1.rowid <= t2.r
ab90: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
aba0: 3d 32 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =21.     ORDER B
abb0: 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
abc0: 20 20 7d 0a 7d 20 7b 32 31 20 36 34 20 32 20 35    }.} {21 64 2 5
abd0: 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  5}.do_test bound
abe0: 61 72 79 33 2d 32 2e 36 2e 6c 65 2e 35 20 7b 0a  ary3-2.6.le.5 {.
abf0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
ac00: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
ac10: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
ac20: 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a  1.rowid <= t2.r.
ac30: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
ac40: 32 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  21.     ORDER BY
ac50: 20 78 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36   x.  }.} {55 2 6
ac60: 34 20 32 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  4 21}.do_test bo
ac70: 75 6e 64 61 72 79 33 2d 32 2e 37 2e 31 20 7b 0a  undary3-2.7.1 {.
ac80: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
ac90: 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d  SELECT t1.* FROM
aca0: 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74 31   t1, t2 WHERE t1
acb0: 2e 72 6f 77 69 64 3d 32 20 41 4e 44 20 74 32 2e  .rowid=2 AND t2.
acc0: 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 34 31  a=t1.a.  }.} {41
acd0: 20 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30   000000000000000
ace0: 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  2}.do_test bound
acf0: 61 72 79 33 2d 32 2e 37 2e 32 20 7b 0a 20 20 64  ary3-2.7.2 {.  d
ad00: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
ad10: 45 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31  ECT t2.* FROM t1
ad20: 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
ad30: 29 20 57 48 45 52 45 20 78 3d 27 30 30 30 30 30  ) WHERE x='00000
ad40: 30 30 30 30 30 30 30 30 30 30 32 27 0a 20 20 7d  00000000002'.  }
ad50: 0a 7d 20 7b 32 20 34 31 7d 0a 64 6f 5f 74 65 73  .} {2 41}.do_tes
ad60: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 37 2e  t boundary3-2.7.
ad70: 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
ad80: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 72 6f      SELECT t1.ro
ad90: 77 69 64 2c 20 78 20 46 52 4f 4d 20 74 31 20 4a  wid, x FROM t1 J
ada0: 4f 49 4e 20 74 32 20 4f 4e 20 74 32 2e 72 3d 74  OIN t2 ON t2.r=t
adb0: 31 2e 72 6f 77 69 64 20 57 48 45 52 45 20 74 32  1.rowid WHERE t2
adc0: 2e 61 3d 34 31 0a 20 20 7d 0a 7d 20 7b 32 20 30  .a=41.  }.} {2 0
add0: 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 7d  000000000000002}
ade0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
adf0: 79 33 2d 32 2e 37 2e 67 74 2e 31 20 7b 0a 20 20  y3-2.7.gt.1 {.  
ae00: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
ae10: 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
ae20: 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
ae30: 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
ae40: 2e 72 6f 77 69 64 20 3e 20 32 20 4f 52 44 45 52  .rowid > 2 ORDER
ae50: 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b   BY t2.a.  }.} {
ae60: 33 20 34 20 35 20 36 20 37 20 38 20 39 20 31 30  3 4 5 6 7 8 9 10
ae70: 20 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20   12 13 14 15 16 
ae80: 31 37 20 31 38 20 31 39 20 32 30 20 32 32 20 32  17 18 19 20 22 2
ae90: 33 20 32 34 20 32 35 20 32 36 20 32 37 20 32 38  3 24 25 26 27 28
aea0: 20 33 30 20 33 31 20 33 34 20 33 35 20 33 36 20   30 31 34 35 36 
aeb0: 33 39 20 34 30 20 34 32 20 34 33 20 34 35 20 34  39 40 42 43 45 4
aec0: 36 20 34 38 20 34 39 20 35 30 20 35 31 20 35 36  6 48 49 50 51 56
aed0: 20 35 37 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65   57 61 62}.do_te
aee0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 37  st boundary3-2.7
aef0: 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .gt.2 {.  db eva
af00: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
af10: 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
af20: 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
af30: 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
af40: 3e 20 32 20 4f 52 44 45 52 20 42 59 20 74 31 2e  > 2 ORDER BY t1.
af50: 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32  a DESC.  }.} {62
af60: 20 36 31 20 35 37 20 35 36 20 35 31 20 35 30 20   61 57 56 51 50 
af70: 34 39 20 34 38 20 34 36 20 34 35 20 34 33 20 34  49 48 46 45 43 4
af80: 32 20 34 30 20 33 39 20 33 36 20 33 35 20 33 34  2 40 39 36 35 34
af90: 20 33 31 20 33 30 20 32 38 20 32 37 20 32 36 20   31 30 28 27 26 
afa0: 32 35 20 32 34 20 32 33 20 32 32 20 32 30 20 31  25 24 23 22 20 1
afb0: 39 20 31 38 20 31 37 20 31 36 20 31 35 20 31 34  9 18 17 16 15 14
afc0: 20 31 33 20 31 32 20 31 30 20 39 20 38 20 37 20   13 12 10 9 8 7 
afd0: 36 20 35 20 34 20 33 7d 0a 64 6f 5f 74 65 73 74  6 5 4 3}.do_test
afe0: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 37 2e 67   boundary3-2.7.g
aff0: 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.3 {.  db eval 
b000: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
b010: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
b020: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
b030: 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
b040: 74 32 2e 61 3d 34 31 0a 20 20 20 20 20 4f 52 44  t2.a=41.     ORD
b050: 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20  ER BY t1.rowid. 
b060: 20 7d 0a 7d 20 7b 35 20 33 31 20 34 20 34 39 20   }.} {5 31 4 49 
b070: 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
b080: 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
b090: 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
b0a0: 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
b0b0: 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
b0c0: 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
b0d0: 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
b0e0: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
b0f0: 79 33 2d 32 2e 37 2e 67 74 2e 34 20 7b 0a 20 20  y3-2.7.gt.4 {.  
b100: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
b110: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
b120: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
b130: 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20  rowid > t2.r.   
b140: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 31 0a    WHERE t2.a=41.
b150: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
b160: 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
b170: 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37  } {3 28 17 45 27
b180: 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20   43 13 26 10 34 
b190: 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35  25 56 7 19 57 35
b1a0: 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
b1b0: 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
b1c0: 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
b1d0: 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
b1e0: 33 30 20 34 39 20 34 20 33 31 20 35 7d 0a 64 6f  30 49 4 31 5}.do
b1f0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
b200: 32 2e 37 2e 67 74 2e 35 20 7b 0a 20 20 64 62 20  2.7.gt.5 {.  db 
b210: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
b220: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
b230: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
b240: 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
b250: 48 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20 20  HERE t2.a=41.   
b260: 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
b270: 0a 7d 20 7b 35 20 33 31 20 34 20 34 39 20 33 30  .} {5 31 4 49 30
b280: 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
b290: 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
b2a0: 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
b2b0: 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
b2c0: 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
b2d0: 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
b2e0: 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
b2f0: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
b300: 2d 32 2e 37 2e 67 74 2e 31 30 20 7b 0a 20 20 64  -2.7.gt.10 {.  d
b310: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
b320: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
b330: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
b340: 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72  owid > CAST(t2.r
b350: 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
b360: 48 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20 20  HERE t2.a=41.   
b370: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
b380: 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 20 33 31 20  wid.  }.} {5 31 
b390: 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
b3a0: 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
b3b0: 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
b3c0: 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
b3d0: 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
b3e0: 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
b3f0: 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
b400: 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
b410: 75 6e 64 61 72 79 33 2d 32 2e 37 2e 67 74 2e 31  undary3-2.7.gt.1
b420: 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
b430: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
b440: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
b450: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41  ON t1.rowid > CA
b460: 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
b470: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
b480: 3d 34 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =41.     ORDER B
b490: 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
b4a0: 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
b4b0: 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
b4c0: 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
b4d0: 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36  7 35 46 22 39 36
b4e0: 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20   14 51 20 40 12 
b4f0: 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20  6 9 24 18 42 15 
b500: 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38  62 48 50 23 16 8
b510: 20 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35   61 30 49 4 31 5
b520: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
b530: 72 79 33 2d 32 2e 37 2e 67 65 2e 31 20 7b 0a 20  ry3-2.7.ge.1 {. 
b540: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
b550: 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
b560: 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
b570: 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
b580: 31 2e 72 6f 77 69 64 20 3e 3d 20 32 20 4f 52 44  1.rowid >= 2 ORD
b590: 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d  ER BY t2.a.  }.}
b5a0: 20 7b 33 20 34 20 35 20 36 20 37 20 38 20 39 20   {3 4 5 6 7 8 9 
b5b0: 31 30 20 31 32 20 31 33 20 31 34 20 31 35 20 31  10 12 13 14 15 1
b5c0: 36 20 31 37 20 31 38 20 31 39 20 32 30 20 32 32  6 17 18 19 20 22
b5d0: 20 32 33 20 32 34 20 32 35 20 32 36 20 32 37 20   23 24 25 26 27 
b5e0: 32 38 20 33 30 20 33 31 20 33 34 20 33 35 20 33  28 30 31 34 35 3
b5f0: 36 20 33 39 20 34 30 20 34 31 20 34 32 20 34 33  6 39 40 41 42 43
b600: 20 34 35 20 34 36 20 34 38 20 34 39 20 35 30 20   45 46 48 49 50 
b610: 35 31 20 35 36 20 35 37 20 36 31 20 36 32 7d 0a  51 56 57 61 62}.
b620: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
b630: 33 2d 32 2e 37 2e 67 65 2e 32 20 7b 0a 20 20 64  3-2.7.ge.2 {.  d
b640: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
b650: 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32  ECT t2.a FROM t2
b660: 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31   NATURAL JOIN t1
b670: 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
b680: 6f 77 69 64 20 3e 3d 20 32 20 4f 52 44 45 52 20  owid >= 2 ORDER 
b690: 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
b6a0: 0a 7d 20 7b 36 32 20 36 31 20 35 37 20 35 36 20  .} {62 61 57 56 
b6b0: 35 31 20 35 30 20 34 39 20 34 38 20 34 36 20 34  51 50 49 48 46 4
b6c0: 35 20 34 33 20 34 32 20 34 31 20 34 30 20 33 39  5 43 42 41 40 39
b6d0: 20 33 36 20 33 35 20 33 34 20 33 31 20 33 30 20   36 35 34 31 30 
b6e0: 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20 32  28 27 26 25 24 2
b6f0: 33 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37  3 22 20 19 18 17
b700: 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20   16 15 14 13 12 
b710: 31 30 20 39 20 38 20 37 20 36 20 35 20 34 20 33  10 9 8 7 6 5 4 3
b720: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
b730: 72 79 33 2d 32 2e 37 2e 67 65 2e 33 20 7b 0a 20  ry3-2.7.ge.3 {. 
b740: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
b750: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
b760: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
b770: 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20  .rowid >= t2.r. 
b780: 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34      WHERE t2.a=4
b790: 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  1.     ORDER BY 
b7a0: 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
b7b0: 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
b7c0: 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38  61 8 16 23 50 48
b7d0: 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20   62 15 42 18 24 
b7e0: 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
b7f0: 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
b800: 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
b810: 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
b820: 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
b830: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
b840: 32 2e 37 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20  2.7.ge.4 {.  db 
b850: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
b860: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
b870: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
b880: 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
b890: 57 48 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20  WHERE t2.a=41.  
b8a0: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
b8b0: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
b8c0: 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
b8d0: 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
b8e0: 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
b8f0: 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
b900: 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
b910: 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20   18 42 15 62 48 
b920: 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
b930: 20 34 39 20 34 20 33 31 20 35 20 34 31 7d 0a 64   49 4 31 5 41}.d
b940: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
b950: 2d 32 2e 37 2e 67 65 2e 35 20 7b 0a 20 20 64 62  -2.7.ge.5 {.  db
b960: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
b970: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
b980: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
b990: 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20  wid >= t2.r.    
b9a0: 20 57 48 45 52 45 20 74 32 2e 61 3d 34 31 0a 20   WHERE t2.a=41. 
b9b0: 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
b9c0: 20 7d 0a 7d 20 7b 34 31 20 35 20 33 31 20 34 20   }.} {41 5 31 4 
b9d0: 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
b9e0: 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
b9f0: 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
ba00: 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
ba10: 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
ba20: 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
ba30: 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
ba40: 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
ba50: 64 61 72 79 33 2d 32 2e 37 2e 67 65 2e 31 30 20  dary3-2.7.ge.10 
ba60: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
ba70: 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
ba80: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
ba90: 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53   t1.rowid >= CAS
baa0: 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a  T(t2.r AS real).
bab0: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
bac0: 34 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  41.     ORDER BY
bad0: 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
bae0: 7b 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30  {41 5 31 4 49 30
baf0: 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
bb00: 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
bb10: 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
bb20: 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
bb30: 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
bb40: 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
bb50: 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
bb60: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
bb70: 2d 32 2e 37 2e 67 65 2e 31 31 20 7b 0a 20 20 64  -2.7.ge.11 {.  d
bb80: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
bb90: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
bba0: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
bbb0: 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e  owid >= CAST(t2.
bbc0: 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
bbd0: 57 48 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20  WHERE t2.a=41.  
bbe0: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
bbf0: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
bc00: 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
bc10: 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
bc20: 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
bc30: 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
bc40: 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
bc50: 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20   18 42 15 62 48 
bc60: 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
bc70: 20 34 39 20 34 20 33 31 20 35 20 34 31 7d 0a 64   49 4 31 5 41}.d
bc80: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
bc90: 2d 32 2e 37 2e 6c 74 2e 31 20 7b 0a 20 20 64 62  -2.7.lt.1 {.  db
bca0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
bcb0: 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
bcc0: 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
bcd0: 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
bce0: 6f 77 69 64 20 3c 20 32 20 4f 52 44 45 52 20 42  owid < 2 ORDER B
bcf0: 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20  Y t2.a.  }.} {1 
bd00: 32 20 31 31 20 32 31 20 32 39 20 33 32 20 33 33  2 11 21 29 32 33
bd10: 20 33 37 20 33 38 20 34 34 20 34 37 20 35 32 20   37 38 44 47 52 
bd20: 35 33 20 35 34 20 35 35 20 35 38 20 35 39 20 36  53 54 55 58 59 6
bd30: 30 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74  0 63 64}.do_test
bd40: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 37 2e 6c   boundary3-2.7.l
bd50: 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.2 {.  db eval 
bd60: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
bd70: 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
bd80: 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
bd90: 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20  HERE t1.rowid < 
bda0: 32 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20  2 ORDER BY t1.a 
bdb0: 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36  DESC.  }.} {64 6
bdc0: 33 20 36 30 20 35 39 20 35 38 20 35 35 20 35 34  3 60 59 58 55 54
bdd0: 20 35 33 20 35 32 20 34 37 20 34 34 20 33 38 20   53 52 47 44 38 
bde0: 33 37 20 33 33 20 33 32 20 32 39 20 32 31 20 31  37 33 32 29 21 1
bdf0: 31 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62  1 2 1}.do_test b
be00: 6f 75 6e 64 61 72 79 33 2d 32 2e 37 2e 6c 74 2e  oundary3-2.7.lt.
be10: 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
be20: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
be30: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
be40: 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
be50: 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
be60: 2e 61 3d 34 31 0a 20 20 20 20 20 4f 52 44 45 52  .a=41.     ORDER
be70: 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
be80: 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
be90: 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
bea0: 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
beb0: 32 20 33 33 20 33 38 20 35 39 20 36 30 7d 0a 64  2 33 38 59 60}.d
bec0: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
bed0: 2d 32 2e 37 2e 6c 74 2e 34 20 7b 0a 20 20 64 62  -2.7.lt.4 {.  db
bee0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
bef0: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
bf00: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
bf10: 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20  wid < t2.r.     
bf20: 57 48 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20  WHERE t2.a=41.  
bf30: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
bf40: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
bf50: 7b 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20  {60 59 38 33 52 
bf60: 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31  53 54 32 29 37 1
bf70: 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20   11 47 63 58 44 
bf80: 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74  21 64 2 55}.do_t
bf90: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
bfa0: 37 2e 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76  7.lt.5 {.  db ev
bfb0: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
bfc0: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
bfd0: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
bfe0: 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   < t2.r.     WHE
bff0: 52 45 20 74 32 2e 61 3d 34 31 0a 20 20 20 20 20  RE t2.a=41.     
c000: 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
c010: 20 7b 35 39 20 36 30 20 35 35 20 32 20 36 34 20   {59 60 55 2 64 
c020: 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
c030: 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
c040: 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f  53 52 33 38}.do_
c050: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
c060: 2e 37 2e 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20  .7.lt.10 {.  db 
c070: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
c080: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
c090: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
c0a0: 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41  id < CAST(t2.r A
c0b0: 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
c0c0: 52 45 20 74 32 2e 61 3d 34 31 0a 20 20 20 20 20  RE t2.a=41.     
c0d0: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
c0e0: 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
c0f0: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
c100: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
c110: 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
c120: 36 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  60}.do_test boun
c130: 64 61 72 79 33 2d 32 2e 37 2e 6c 74 2e 31 31 20  dary3-2.7.lt.11 
c140: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
c150: 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
c160: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
c170: 20 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54   t1.rowid < CAST
c180: 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
c190: 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34      WHERE t2.a=4
c1a0: 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  1.     ORDER BY 
c1b0: 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
c1c0: 7d 0a 7d 20 7b 36 30 20 35 39 20 33 38 20 33 33  }.} {60 59 38 33
c1d0: 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20   52 53 54 32 29 
c1e0: 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38  37 1 11 47 63 58
c1f0: 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a   44 21 64 2 55}.
c200: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
c210: 33 2d 32 2e 37 2e 6c 65 2e 31 20 7b 0a 20 20 64  3-2.7.le.1 {.  d
c220: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
c230: 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31  ECT t2.a FROM t1
c240: 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
c250: 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  ).     WHERE t1.
c260: 72 6f 77 69 64 20 3c 3d 20 32 20 4f 52 44 45 52  rowid <= 2 ORDER
c270: 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b   BY t2.a.  }.} {
c280: 31 20 32 20 31 31 20 32 31 20 32 39 20 33 32 20  1 2 11 21 29 32 
c290: 33 33 20 33 37 20 33 38 20 34 31 20 34 34 20 34  33 37 38 41 44 4
c2a0: 37 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38  7 52 53 54 55 58
c2b0: 20 35 39 20 36 30 20 36 33 20 36 34 7d 0a 64 6f   59 60 63 64}.do
c2c0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
c2d0: 32 2e 37 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20  2.7.le.2 {.  db 
c2e0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
c2f0: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
c300: 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
c310: 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
c320: 69 64 20 3c 3d 20 32 20 4f 52 44 45 52 20 42 59  id <= 2 ORDER BY
c330: 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
c340: 20 7b 36 34 20 36 33 20 36 30 20 35 39 20 35 38   {64 63 60 59 58
c350: 20 35 35 20 35 34 20 35 33 20 35 32 20 34 37 20   55 54 53 52 47 
c360: 34 34 20 34 31 20 33 38 20 33 37 20 33 33 20 33  44 41 38 37 33 3
c370: 32 20 32 39 20 32 31 20 31 31 20 32 20 31 7d 0a  2 29 21 11 2 1}.
c380: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
c390: 33 2d 32 2e 37 2e 6c 65 2e 33 20 7b 0a 20 20 64  3-2.7.le.3 {.  d
c3a0: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
c3b0: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
c3c0: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
c3d0: 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
c3e0: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 31 0a    WHERE t2.a=41.
c3f0: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
c400: 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
c410: 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
c420: 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
c430: 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
c440: 38 20 35 39 20 36 30 20 34 31 7d 0a 64 6f 5f 74  8 59 60 41}.do_t
c450: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
c460: 37 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65 76  7.le.4 {.  db ev
c470: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
c480: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
c490: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
c4a0: 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
c4b0: 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20 20 20  ERE t2.a=41.    
c4c0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
c4d0: 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34  id DESC.  }.} {4
c4e0: 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
c4f0: 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
c500: 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
c510: 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
c520: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
c530: 2e 37 2e 6c 65 2e 35 20 7b 0a 20 20 64 62 20 65  .7.le.5 {.  db e
c540: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
c550: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
c560: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
c570: 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d <= t2.r.     W
c580: 48 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20 20  HERE t2.a=41.   
c590: 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
c5a0: 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 35 20  .} {59 60 41 55 
c5b0: 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
c5c0: 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
c5d0: 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
c5e0: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
c5f0: 72 79 33 2d 32 2e 37 2e 6c 65 2e 31 30 20 7b 0a  ry3-2.7.le.10 {.
c600: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
c610: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
c620: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
c630: 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28  1.rowid <= CAST(
c640: 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
c650: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 31     WHERE t2.a=41
c660: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
c670: 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
c680: 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
c690: 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
c6a0: 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
c6b0: 33 38 20 35 39 20 36 30 20 34 31 7d 0a 64 6f 5f  38 59 60 41}.do_
c6c0: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
c6d0: 2e 37 2e 6c 65 2e 31 31 20 7b 0a 20 20 64 62 20  .7.le.11 {.  db 
c6e0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
c6f0: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
c700: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
c710: 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20  id <= CAST(t2.r 
c720: 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
c730: 45 52 45 20 74 32 2e 61 3d 34 31 0a 20 20 20 20  ERE t2.a=41.    
c740: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
c750: 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34  id DESC.  }.} {4
c760: 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
c770: 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
c780: 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
c790: 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
c7a0: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
c7b0: 2e 38 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  .8.1 {.  db eval
c7c0: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
c7d0: 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57  .* FROM t1, t2 W
c7e0: 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d 34 20  HERE t1.rowid=4 
c7f0: 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20  AND t2.a=t1.a.  
c800: 7d 0a 7d 20 7b 33 31 20 30 30 30 30 30 30 30 30  }.} {31 00000000
c810: 30 30 30 30 30 30 30 34 7d 0a 64 6f 5f 74 65 73  00000004}.do_tes
c820: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 38 2e  t boundary3-2.8.
c830: 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
c840: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a 20      SELECT t2.* 
c850: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
c860: 55 53 49 4e 47 28 61 29 20 57 48 45 52 45 20 78  USING(a) WHERE x
c870: 3d 27 30 30 30 30 30 30 30 30 30 30 30 30 30 30  ='00000000000000
c880: 30 34 27 0a 20 20 7d 0a 7d 20 7b 34 20 33 31 7d  04'.  }.} {4 31}
c890: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
c8a0: 79 33 2d 32 2e 38 2e 33 20 7b 0a 20 20 64 62 20  y3-2.8.3 {.  db 
c8b0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
c8c0: 54 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52  T t1.rowid, x FR
c8d0: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
c8e0: 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57   t2.r=t1.rowid W
c8f0: 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20 7d  HERE t2.a=31.  }
c900: 0a 7d 20 7b 34 20 30 30 30 30 30 30 30 30 30 30  .} {4 0000000000
c910: 30 30 30 30 30 34 7d 0a 64 6f 5f 74 65 73 74 20  000004}.do_test 
c920: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 38 2e 67 74  boundary3-2.8.gt
c930: 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .1 {.  db eval {
c940: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
c950: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
c960: 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57   USING(a).     W
c970: 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20  HERE t1.rowid > 
c980: 34 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  4 ORDER BY t2.a.
c990: 20 20 7d 0a 7d 20 7b 33 20 34 20 36 20 37 20 38    }.} {3 4 6 7 8
c9a0: 20 39 20 31 30 20 31 32 20 31 33 20 31 34 20 31   9 10 12 13 14 1
c9b0: 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32 30  5 16 17 18 19 20
c9c0: 20 32 32 20 32 33 20 32 34 20 32 35 20 32 36 20   22 23 24 25 26 
c9d0: 32 37 20 32 38 20 33 30 20 33 34 20 33 35 20 33  27 28 30 34 35 3
c9e0: 36 20 33 39 20 34 30 20 34 32 20 34 33 20 34 35  6 39 40 42 43 45
c9f0: 20 34 36 20 34 38 20 34 39 20 35 30 20 35 31 20   46 48 49 50 51 
ca00: 35 36 20 35 37 20 36 31 20 36 32 7d 0a 64 6f 5f  56 57 61 62}.do_
ca10: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
ca20: 2e 38 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20 65  .8.gt.2 {.  db e
ca30: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
ca40: 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41   t2.a FROM t2 NA
ca50: 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20  TURAL JOIN t1.  
ca60: 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
ca70: 64 20 3e 20 34 20 4f 52 44 45 52 20 42 59 20 74  d > 4 ORDER BY t
ca80: 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
ca90: 36 32 20 36 31 20 35 37 20 35 36 20 35 31 20 35  62 61 57 56 51 5
caa0: 30 20 34 39 20 34 38 20 34 36 20 34 35 20 34 33  0 49 48 46 45 43
cab0: 20 34 32 20 34 30 20 33 39 20 33 36 20 33 35 20   42 40 39 36 35 
cac0: 33 34 20 33 30 20 32 38 20 32 37 20 32 36 20 32  34 30 28 27 26 2
cad0: 35 20 32 34 20 32 33 20 32 32 20 32 30 20 31 39  5 24 23 22 20 19
cae0: 20 31 38 20 31 37 20 31 36 20 31 35 20 31 34 20   18 17 16 15 14 
caf0: 31 33 20 31 32 20 31 30 20 39 20 38 20 37 20 36  13 12 10 9 8 7 6
cb00: 20 34 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   4 3}.do_test bo
cb10: 75 6e 64 61 72 79 33 2d 32 2e 38 2e 67 74 2e 33  undary3-2.8.gt.3
cb20: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
cb30: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
cb40: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
cb50: 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e  N t1.rowid > t2.
cb60: 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
cb70: 61 3d 33 31 0a 20 20 20 20 20 4f 52 44 45 52 20  a=31.     ORDER 
cb80: 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
cb90: 7d 20 7b 34 20 34 39 20 33 30 20 36 31 20 38 20  } {4 49 30 61 8 
cba0: 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
cbb0: 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
cbc0: 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
cbd0: 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
cbe0: 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
cbf0: 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
cc00: 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
cc10: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 38 2e 67   boundary3-2.8.g
cc20: 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.4 {.  db eval 
cc30: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
cc40: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
cc50: 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
cc60: 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
cc70: 74 32 2e 61 3d 33 31 0a 20 20 20 20 20 4f 52 44  t2.a=31.     ORD
cc80: 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
cc90: 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
cca0: 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
ccb0: 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
ccc0: 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
ccd0: 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
cce0: 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
ccf0: 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20   15 62 48 50 23 
cd00: 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34 7d  16 8 61 30 49 4}
cd10: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
cd20: 79 33 2d 32 2e 38 2e 67 74 2e 35 20 7b 0a 20 20  y3-2.8.gt.5 {.  
cd30: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
cd40: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
cd50: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
cd60: 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20  rowid > t2.r.   
cd70: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a    WHERE t2.a=31.
cd80: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
cd90: 20 20 7d 0a 7d 20 7b 34 20 34 39 20 33 30 20 36    }.} {4 49 30 6
cda0: 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
cdb0: 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
cdc0: 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
cdd0: 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
cde0: 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
cdf0: 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
ce00: 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
ce10: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
ce20: 2e 38 2e 67 74 2e 31 30 20 7b 0a 20 20 64 62 20  .8.gt.10 {.  db 
ce30: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
ce40: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
ce50: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
ce60: 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41  id > CAST(t2.r A
ce70: 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
ce80: 52 45 20 74 32 2e 61 3d 33 31 0a 20 20 20 20 20  RE t2.a=31.     
ce90: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
cea0: 64 0a 20 20 7d 0a 7d 20 7b 34 20 34 39 20 33 30  d.  }.} {4 49 30
ceb0: 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
cec0: 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
ced0: 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
cee0: 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
cef0: 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
cf00: 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
cf10: 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
cf20: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
cf30: 2d 32 2e 38 2e 67 74 2e 31 31 20 7b 0a 20 20 64  -2.8.gt.11 {.  d
cf40: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
cf50: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
cf60: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
cf70: 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72  owid > CAST(t2.r
cf80: 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
cf90: 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20 20  HERE t2.a=31.   
cfa0: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
cfb0: 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
cfc0: 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
cfd0: 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
cfe0: 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
cff0: 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
d000: 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
d010: 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
d020: 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
d030: 34 39 20 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  49 4}.do_test bo
d040: 75 6e 64 61 72 79 33 2d 32 2e 38 2e 67 65 2e 31  undary3-2.8.ge.1
d050: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
d060: 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
d070: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55  ROM t1 JOIN t2 U
d080: 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45  SING(a).     WHE
d090: 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 34  RE t1.rowid >= 4
d0a0: 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
d0b0: 20 7d 0a 7d 20 7b 33 20 34 20 36 20 37 20 38 20   }.} {3 4 6 7 8 
d0c0: 39 20 31 30 20 31 32 20 31 33 20 31 34 20 31 35  9 10 12 13 14 15
d0d0: 20 31 36 20 31 37 20 31 38 20 31 39 20 32 30 20   16 17 18 19 20 
d0e0: 32 32 20 32 33 20 32 34 20 32 35 20 32 36 20 32  22 23 24 25 26 2
d0f0: 37 20 32 38 20 33 30 20 33 31 20 33 34 20 33 35  7 28 30 31 34 35
d100: 20 33 36 20 33 39 20 34 30 20 34 32 20 34 33 20   36 39 40 42 43 
d110: 34 35 20 34 36 20 34 38 20 34 39 20 35 30 20 35  45 46 48 49 50 5
d120: 31 20 35 36 20 35 37 20 36 31 20 36 32 7d 0a 64  1 56 57 61 62}.d
d130: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
d140: 2d 32 2e 38 2e 67 65 2e 32 20 7b 0a 20 20 64 62  -2.8.ge.2 {.  db
d150: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
d160: 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
d170: 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
d180: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
d190: 77 69 64 20 3e 3d 20 34 20 4f 52 44 45 52 20 42  wid >= 4 ORDER B
d1a0: 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
d1b0: 7d 20 7b 36 32 20 36 31 20 35 37 20 35 36 20 35  } {62 61 57 56 5
d1c0: 31 20 35 30 20 34 39 20 34 38 20 34 36 20 34 35  1 50 49 48 46 45
d1d0: 20 34 33 20 34 32 20 34 30 20 33 39 20 33 36 20   43 42 40 39 36 
d1e0: 33 35 20 33 34 20 33 31 20 33 30 20 32 38 20 32  35 34 31 30 28 2
d1f0: 37 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32  7 26 25 24 23 22
d200: 20 32 30 20 31 39 20 31 38 20 31 37 20 31 36 20   20 19 18 17 16 
d210: 31 35 20 31 34 20 31 33 20 31 32 20 31 30 20 39  15 14 13 12 10 9
d220: 20 38 20 37 20 36 20 34 20 33 7d 0a 64 6f 5f 74   8 7 6 4 3}.do_t
d230: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
d240: 38 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65 76  8.ge.3 {.  db ev
d250: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
d260: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
d270: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
d280: 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
d290: 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20 20 20  ERE t2.a=31.    
d2a0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
d2b0: 69 64 0a 20 20 7d 0a 7d 20 7b 33 31 20 34 20 34  id.  }.} {31 4 4
d2c0: 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
d2d0: 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
d2e0: 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
d2f0: 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
d300: 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
d310: 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
d320: 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
d330: 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
d340: 61 72 79 33 2d 32 2e 38 2e 67 65 2e 34 20 7b 0a  ary3-2.8.ge.4 {.
d350: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
d360: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
d370: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
d380: 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
d390: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
d3a0: 33 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  31.     ORDER BY
d3b0: 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
d3c0: 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
d3d0: 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20   27 43 13 26 10 
d3e0: 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37  34 25 56 7 19 57
d3f0: 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20   35 46 22 39 36 
d400: 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36  14 51 20 40 12 6
d410: 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36   9 24 18 42 15 6
d420: 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20  2 48 50 23 16 8 
d430: 36 31 20 33 30 20 34 39 20 34 20 33 31 7d 0a 64  61 30 49 4 31}.d
d440: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
d450: 2d 32 2e 38 2e 67 65 2e 35 20 7b 0a 20 20 64 62  -2.8.ge.5 {.  db
d460: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
d470: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
d480: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
d490: 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20  wid >= t2.r.    
d4a0: 20 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20   WHERE t2.a=31. 
d4b0: 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
d4c0: 20 7d 0a 7d 20 7b 33 31 20 34 20 34 39 20 33 30   }.} {31 4 49 30
d4d0: 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
d4e0: 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
d4f0: 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
d500: 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
d510: 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
d520: 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
d530: 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
d540: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
d550: 2d 32 2e 38 2e 67 65 2e 31 30 20 7b 0a 20 20 64  -2.8.ge.10 {.  d
d560: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
d570: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
d580: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
d590: 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e  owid >= CAST(t2.
d5a0: 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
d5b0: 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20  WHERE t2.a=31.  
d5c0: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
d5d0: 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 31 20 34  owid.  }.} {31 4
d5e0: 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32   49 30 61 8 16 2
d5f0: 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32  3 50 48 62 15 42
d600: 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30   18 24 9 6 12 40
d610: 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20   20 51 14 36 39 
d620: 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37  22 46 35 57 19 7
d630: 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20   56 25 34 10 26 
d640: 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32  13 43 27 45 17 2
d650: 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  8 3}.do_test bou
d660: 6e 64 61 72 79 33 2d 32 2e 38 2e 67 65 2e 31 31  ndary3-2.8.ge.11
d670: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
d680: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
d690: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
d6a0: 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41  N t1.rowid >= CA
d6b0: 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
d6c0: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
d6d0: 3d 33 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =31.     ORDER B
d6e0: 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
d6f0: 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
d700: 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
d710: 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
d720: 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36  7 35 46 22 39 36
d730: 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20   14 51 20 40 12 
d740: 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20  6 9 24 18 42 15 
d750: 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38  62 48 50 23 16 8
d760: 20 36 31 20 33 30 20 34 39 20 34 20 33 31 7d 0a   61 30 49 4 31}.
d770: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
d780: 33 2d 32 2e 38 2e 6c 74 2e 31 20 7b 0a 20 20 64  3-2.8.lt.1 {.  d
d790: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
d7a0: 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31  ECT t2.a FROM t1
d7b0: 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
d7c0: 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  ).     WHERE t1.
d7d0: 72 6f 77 69 64 20 3c 20 34 20 4f 52 44 45 52 20  rowid < 4 ORDER 
d7e0: 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31  BY t2.a.  }.} {1
d7f0: 20 32 20 35 20 31 31 20 32 31 20 32 39 20 33 32   2 5 11 21 29 32
d800: 20 33 33 20 33 37 20 33 38 20 34 31 20 34 34 20   33 37 38 41 44 
d810: 34 37 20 35 32 20 35 33 20 35 34 20 35 35 20 35  47 52 53 54 55 5
d820: 38 20 35 39 20 36 30 20 36 33 20 36 34 7d 0a 64  8 59 60 63 64}.d
d830: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
d840: 2d 32 2e 38 2e 6c 74 2e 32 20 7b 0a 20 20 64 62  -2.8.lt.2 {.  db
d850: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
d860: 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
d870: 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
d880: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
d890: 77 69 64 20 3c 20 34 20 4f 52 44 45 52 20 42 59  wid < 4 ORDER BY
d8a0: 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
d8b0: 20 7b 36 34 20 36 33 20 36 30 20 35 39 20 35 38   {64 63 60 59 58
d8c0: 20 35 35 20 35 34 20 35 33 20 35 32 20 34 37 20   55 54 53 52 47 
d8d0: 34 34 20 34 31 20 33 38 20 33 37 20 33 33 20 33  44 41 38 37 33 3
d8e0: 32 20 32 39 20 32 31 20 31 31 20 35 20 32 20 31  2 29 21 11 5 2 1
d8f0: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
d900: 72 79 33 2d 32 2e 38 2e 6c 74 2e 33 20 7b 0a 20  ry3-2.8.lt.3 {. 
d910: 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
d920: 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
d930: 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
d940: 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20  .rowid < t2.r.  
d950: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 31     WHERE t2.a=31
d960: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
d970: 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
d980: 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
d990: 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
d9a0: 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
d9b0: 33 38 20 35 39 20 36 30 20 34 31 20 35 7d 0a 64  38 59 60 41 5}.d
d9c0: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
d9d0: 2d 32 2e 38 2e 6c 74 2e 34 20 7b 0a 20 20 64 62  -2.8.lt.4 {.  db
d9e0: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
d9f0: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
da00: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
da10: 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20  wid < t2.r.     
da20: 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20  WHERE t2.a=31.  
da30: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
da40: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
da50: 7b 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33  {5 41 60 59 38 3
da60: 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
da70: 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
da80: 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
da90: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
daa0: 79 33 2d 32 2e 38 2e 6c 74 2e 35 20 7b 0a 20 20  y3-2.8.lt.5 {.  
dab0: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
dac0: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
dad0: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
dae0: 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20  rowid < t2.r.   
daf0: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a    WHERE t2.a=31.
db00: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
db10: 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20    }.} {59 60 41 
db20: 35 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20  5 55 2 64 21 44 
db30: 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
db40: 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
db50: 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62  33 38}.do_test b
db60: 6f 75 6e 64 61 72 79 33 2d 32 2e 38 2e 6c 74 2e  oundary3-2.8.lt.
db70: 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  10 {.  db eval {
db80: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
db90: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
dba0: 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 43   ON t1.rowid < C
dbb0: 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
dbc0: 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
dbd0: 61 3d 33 31 0a 20 20 20 20 20 4f 52 44 45 52 20  a=31.     ORDER 
dbe0: 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
dbf0: 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
dc00: 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
dc10: 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
dc20: 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
dc30: 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  5}.do_test bound
dc40: 61 72 79 33 2d 32 2e 38 2e 6c 74 2e 31 31 20 7b  ary3-2.8.lt.11 {
dc50: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
dc60: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
dc70: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
dc80: 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28  t1.rowid < CAST(
dc90: 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
dca0: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 31     WHERE t2.a=31
dcb0: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
dcc0: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
dcd0: 0a 7d 20 7b 35 20 34 31 20 36 30 20 35 39 20 33  .} {5 41 60 59 3
dce0: 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
dcf0: 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
dd00: 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
dd10: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
dd20: 64 61 72 79 33 2d 32 2e 38 2e 6c 65 2e 31 20 7b  dary3-2.8.le.1 {
dd30: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
dd40: 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
dd50: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
dd60: 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45  NG(a).     WHERE
dd70: 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 34 20 4f   t1.rowid <= 4 O
dd80: 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
dd90: 0a 7d 20 7b 31 20 32 20 35 20 31 31 20 32 31 20  .} {1 2 5 11 21 
dda0: 32 39 20 33 31 20 33 32 20 33 33 20 33 37 20 33  29 31 32 33 37 3
ddb0: 38 20 34 31 20 34 34 20 34 37 20 35 32 20 35 33  8 41 44 47 52 53
ddc0: 20 35 34 20 35 35 20 35 38 20 35 39 20 36 30 20   54 55 58 59 60 
ddd0: 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62  63 64}.do_test b
dde0: 6f 75 6e 64 61 72 79 33 2d 32 2e 38 2e 6c 65 2e  oundary3-2.8.le.
ddf0: 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
de00: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
de10: 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20  FROM t2 NATURAL 
de20: 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45  JOIN t1.     WHE
de30: 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 34  RE t1.rowid <= 4
de40: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
de50: 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33  ESC.  }.} {64 63
de60: 20 36 30 20 35 39 20 35 38 20 35 35 20 35 34 20   60 59 58 55 54 
de70: 35 33 20 35 32 20 34 37 20 34 34 20 34 31 20 33  53 52 47 44 41 3
de80: 38 20 33 37 20 33 33 20 33 32 20 33 31 20 32 39  8 37 33 32 31 29
de90: 20 32 31 20 31 31 20 35 20 32 20 31 7d 0a 64 6f   21 11 5 2 1}.do
dea0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
deb0: 32 2e 38 2e 6c 65 2e 33 20 7b 0a 20 20 64 62 20  2.8.le.3 {.  db 
dec0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
ded0: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
dee0: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
def0: 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20  id <= t2.r.     
df00: 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20  WHERE t2.a=31.  
df10: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
df20: 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32  owid.  }.} {55 2
df30: 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
df40: 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
df50: 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20   54 53 52 33 38 
df60: 35 39 20 36 30 20 34 31 20 35 20 33 31 7d 0a 64  59 60 41 5 31}.d
df70: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
df80: 2d 32 2e 38 2e 6c 65 2e 34 20 7b 0a 20 20 64 62  -2.8.le.4 {.  db
df90: 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
dfa0: 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
dfb0: 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
dfc0: 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20  wid <= t2.r.    
dfd0: 20 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20   WHERE t2.a=31. 
dfe0: 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
dff0: 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
e000: 20 7b 33 31 20 35 20 34 31 20 36 30 20 35 39 20   {31 5 41 60 59 
e010: 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
e020: 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
e030: 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
e040: 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
e050: 6e 64 61 72 79 33 2d 32 2e 38 2e 6c 65 2e 35 20  ndary3-2.8.le.5 
e060: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
e070: 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
e080: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
e090: 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e   t1.rowid <= t2.
e0a0: 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
e0b0: 61 3d 33 31 0a 20 20 20 20 20 4f 52 44 45 52 20  a=31.     ORDER 
e0c0: 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  BY x.  }.} {59 6
e0d0: 30 20 34 31 20 35 20 33 31 20 35 35 20 32 20 36  0 41 5 31 55 2 6
e0e0: 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
e0f0: 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
e100: 34 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64  4 53 52 33 38}.d
e110: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
e120: 2d 32 2e 38 2e 6c 65 2e 31 30 20 7b 0a 20 20 64  -2.8.le.10 {.  d
e130: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
e140: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
e150: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
e160: 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e  owid <= CAST(t2.
e170: 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
e180: 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20  WHERE t2.a=31.  
e190: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
e1a0: 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32  owid.  }.} {55 2
e1b0: 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
e1c0: 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
e1d0: 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20   54 53 52 33 38 
e1e0: 35 39 20 36 30 20 34 31 20 35 20 33 31 7d 0a 64  59 60 41 5 31}.d
e1f0: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
e200: 2d 32 2e 38 2e 6c 65 2e 31 31 20 7b 0a 20 20 64  -2.8.le.11 {.  d
e210: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
e220: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
e230: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
e240: 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e  owid <= CAST(t2.
e250: 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
e260: 57 48 45 52 45 20 74 32 2e 61 3d 33 31 0a 20 20  WHERE t2.a=31.  
e270: 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
e280: 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
e290: 7b 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33  {31 5 41 60 59 3
e2a0: 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
e2b0: 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
e2c0: 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
e2d0: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
e2e0: 64 61 72 79 33 2d 32 2e 39 2e 31 20 7b 0a 20 20  dary3-2.9.1 {.  
e2f0: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
e300: 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d 20 74  LECT t1.* FROM t
e310: 31 2c 20 74 32 20 57 48 45 52 45 20 74 31 2e 72  1, t2 WHERE t1.r
e320: 6f 77 69 64 3d 35 36 32 39 34 39 39 35 33 34 32  owid=56294995342
e330: 31 33 31 31 20 41 4e 44 20 74 32 2e 61 3d 74 31  1311 AND t2.a=t1
e340: 2e 61 0a 20 20 7d 0a 7d 20 7b 31 33 20 30 30 30  .a.  }.} {13 000
e350: 31 66 66 66 66 66 66 66 66 66 66 66 66 7d 0a 64  1ffffffffffff}.d
e360: 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
e370: 2d 32 2e 39 2e 32 20 7b 0a 20 20 64 62 20 65 76  -2.9.2 {.  db ev
e380: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
e390: 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.* FROM t1 JOI
e3a0: 4e 20 74 32 20 55 53 49 4e 47 28 61 29 20 57 48  N t2 USING(a) WH
e3b0: 45 52 45 20 78 3d 27 30 30 30 31 66 66 66 66 66  ERE x='0001fffff
e3c0: 66 66 66 66 66 66 66 27 0a 20 20 7d 0a 7d 20 7b  fffffff'.  }.} {
e3d0: 35 36 32 39 34 39 39 35 33 34 32 31 33 31 31 20  562949953421311 
e3e0: 31 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  13}.do_test boun
e3f0: 64 61 72 79 33 2d 32 2e 39 2e 33 20 7b 0a 20 20  dary3-2.9.3 {.  
e400: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
e410: 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c 20 78  LECT t1.rowid, x
e420: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
e430: 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69   ON t2.r=t1.rowi
e440: 64 20 57 48 45 52 45 20 74 32 2e 61 3d 31 33 0a  d WHERE t2.a=13.
e450: 20 20 7d 0a 7d 20 7b 35 36 32 39 34 39 39 35 33    }.} {562949953
e460: 34 32 31 33 31 31 20 30 30 30 31 66 66 66 66 66  421311 0001fffff
e470: 66 66 66 66 66 66 66 7d 0a 64 6f 5f 74 65 73 74  fffffff}.do_test
e480: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39 2e 67   boundary3-2.9.g
e490: 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.1 {.  db eval 
e4a0: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
e4b0: 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
e4c0: 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
e4d0: 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e  WHERE t1.rowid >
e4e0: 20 35 36 32 39 34 39 39 35 33 34 32 31 33 31 31   562949953421311
e4f0: 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
e500: 20 7d 0a 7d 20 7b 33 20 31 37 20 32 37 20 32 38   }.} {3 17 27 28
e510: 20 34 33 20 34 35 7d 0a 64 6f 5f 74 65 73 74 20   43 45}.do_test 
e520: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39 2e 67 74  boundary3-2.9.gt
e530: 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
e540: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
e550: 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
e560: 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
e570: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 35  ERE t1.rowid > 5
e580: 36 32 39 34 39 39 35 33 34 32 31 33 31 31 20 4f  62949953421311 O
e590: 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
e5a0: 43 0a 20 20 7d 0a 7d 20 7b 34 35 20 34 33 20 32  C.  }.} {45 43 2
e5b0: 38 20 32 37 20 31 37 20 33 7d 0a 64 6f 5f 74 65  8 27 17 3}.do_te
e5c0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39  st boundary3-2.9
e5d0: 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .gt.3 {.  db eva
e5e0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
e5f0: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
e600: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
e610: 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
e620: 45 20 74 32 2e 61 3d 31 33 0a 20 20 20 20 20 4f  E t2.a=13.     O
e630: 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
e640: 0a 20 20 7d 0a 7d 20 7b 34 33 20 32 37 20 34 35  .  }.} {43 27 45
e650: 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
e660: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39 2e  t boundary3-2.9.
e670: 67 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  gt.4 {.  db eval
e680: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
e690: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
e6a0: 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
e6b0: 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
e6c0: 20 74 32 2e 61 3d 31 33 0a 20 20 20 20 20 4f 52   t2.a=13.     OR
e6d0: 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
e6e0: 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
e6f0: 20 31 37 20 34 35 20 32 37 20 34 33 7d 0a 64 6f   17 45 27 43}.do
e700: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
e710: 32 2e 39 2e 67 74 2e 35 20 7b 0a 20 20 64 62 20  2.9.gt.5 {.  db 
e720: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
e730: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
e740: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
e750: 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
e760: 48 45 52 45 20 74 32 2e 61 3d 31 33 0a 20 20 20  HERE t2.a=13.   
e770: 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
e780: 0a 7d 20 7b 34 33 20 32 37 20 34 35 20 31 37 20  .} {43 27 45 17 
e790: 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
e7a0: 75 6e 64 61 72 79 33 2d 32 2e 39 2e 67 65 2e 31  undary3-2.9.ge.1
e7b0: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
e7c0: 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
e7d0: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55  ROM t1 JOIN t2 U
e7e0: 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45  SING(a).     WHE
e7f0: 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 35  RE t1.rowid >= 5
e800: 36 32 39 34 39 39 35 33 34 32 31 33 31 31 20 4f  62949953421311 O
e810: 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
e820: 0a 7d 20 7b 33 20 31 33 20 31 37 20 32 37 20 32  .} {3 13 17 27 2
e830: 38 20 34 33 20 34 35 7d 0a 64 6f 5f 74 65 73 74  8 43 45}.do_test
e840: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39 2e 67   boundary3-2.9.g
e850: 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.2 {.  db eval 
e860: 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
e870: 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
e880: 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
e890: 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d  HERE t1.rowid >=
e8a0: 20 35 36 32 39 34 39 39 35 33 34 32 31 33 31 31   562949953421311
e8b0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
e8c0: 45 53 43 0a 20 20 7d 0a 7d 20 7b 34 35 20 34 33  ESC.  }.} {45 43
e8d0: 20 32 38 20 32 37 20 31 37 20 31 33 20 33 7d 0a   28 27 17 13 3}.
e8e0: 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
e8f0: 33 2d 32 2e 39 2e 67 65 2e 33 20 7b 0a 20 20 64  3-2.9.ge.3 {.  d
e900: 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
e910: 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
e920: 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
e930: 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
e940: 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 33 0a    WHERE t2.a=13.
e950: 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
e960: 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 31 33  .rowid.  }.} {13
e970: 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
e980: 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
e990: 61 72 79 33 2d 32 2e 39 2e 67 65 2e 34 20 7b 0a  ary3-2.9.ge.4 {.
e9a0: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
e9b0: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
e9c0: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
e9d0: 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
e9e0: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
e9f0: 31 33 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  13.     ORDER BY
ea00: 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
ea10: 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
ea20: 20 32 37 20 34 33 20 31 33 7d 0a 64 6f 5f 74 65   27 43 13}.do_te
ea30: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39  st boundary3-2.9
ea40: 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61  .ge.5 {.  db eva
ea50: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
ea60: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
ea70: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
ea80: 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  >= t2.r.     WHE
ea90: 52 45 20 74 32 2e 61 3d 31 33 0a 20 20 20 20 20  RE t2.a=13.     
eaa0: 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
eab0: 20 7b 31 33 20 34 33 20 32 37 20 34 35 20 31 37   {13 43 27 45 17
eac0: 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
ead0: 6f 75 6e 64 61 72 79 33 2d 32 2e 39 2e 6c 74 2e  oundary3-2.9.lt.
eae0: 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
eaf0: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
eb00: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
eb10: 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
eb20: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 35  ERE t1.rowid < 5
eb30: 36 32 39 34 39 39 35 33 34 32 31 33 31 31 20 4f  62949953421311 O
eb40: 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
eb50: 0a 7d 20 7b 31 20 32 20 34 20 35 20 36 20 37 20  .} {1 2 4 5 6 7 
eb60: 38 20 39 20 31 30 20 31 31 20 31 32 20 31 34 20  8 9 10 11 12 14 
eb70: 31 35 20 31 36 20 31 38 20 31 39 20 32 30 20 32  15 16 18 19 20 2
eb80: 31 20 32 32 20 32 33 20 32 34 20 32 35 20 32 36  1 22 23 24 25 26
eb90: 20 32 39 20 33 30 20 33 31 20 33 32 20 33 33 20   29 30 31 32 33 
eba0: 33 34 20 33 35 20 33 36 20 33 37 20 33 38 20 33  34 35 36 37 38 3
ebb0: 39 20 34 30 20 34 31 20 34 32 20 34 34 20 34 36  9 40 41 42 44 46
ebc0: 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31 20   47 48 49 50 51 
ebd0: 35 32 20 35 33 20 35 34 20 35 35 20 35 36 20 35  52 53 54 55 56 5
ebe0: 37 20 35 38 20 35 39 20 36 30 20 36 31 20 36 32  7 58 59 60 61 62
ebf0: 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20   63 64}.do_test 
ec00: 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39 2e 6c 74  boundary3-2.9.lt
ec10: 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
ec20: 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
ec30: 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
ec40: 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
ec50: 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 35  ERE t1.rowid < 5
ec60: 36 32 39 34 39 39 35 33 34 32 31 33 31 31 20 4f  62949953421311 O
ec70: 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
ec80: 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36  C.  }.} {64 63 6
ec90: 32 20 36 31 20 36 30 20 35 39 20 35 38 20 35 37  2 61 60 59 58 57
eca0: 20 35 36 20 35 35 20 35 34 20 35 33 20 35 32 20   56 55 54 53 52 
ecb0: 35 31 20 35 30 20 34 39 20 34 38 20 34 37 20 34  51 50 49 48 47 4
ecc0: 36 20 34 34 20 34 32 20 34 31 20 34 30 20 33 39  6 44 42 41 40 39
ecd0: 20 33 38 20 33 37 20 33 36 20 33 35 20 33 34 20   38 37 36 35 34 
ece0: 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20 32  33 32 31 30 29 2
ecf0: 36 20 32 35 20 32 34 20 32 33 20 32 32 20 32 31  6 25 24 23 22 21
ed00: 20 32 30 20 31 39 20 31 38 20 31 36 20 31 35 20   20 19 18 16 15 
ed10: 31 34 20 31 32 20 31 31 20 31 30 20 39 20 38 20  14 12 11 10 9 8 
ed20: 37 20 36 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f  7 6 5 4 2 1}.do_
ed30: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
ed40: 2e 39 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65  .9.lt.3 {.  db e
ed50: 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
ed60: 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
ed70: 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
ed80: 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48  d < t2.r.     WH
ed90: 45 52 45 20 74 32 2e 61 3d 31 33 0a 20 20 20 20  ERE t2.a=13.    
eda0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
edb0: 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36  id.  }.} {55 2 6
edc0: 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
edd0: 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
ede0: 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
edf0: 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
ee00: 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
ee10: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
ee20: 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
ee30: 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
ee40: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
ee50: 20 32 35 20 33 34 20 31 30 20 32 36 7d 0a 64 6f   25 34 10 26}.do
ee60: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
ee70: 32 2e 39 2e 6c 74 2e 34 20 7b 0a 20 20 64 62 20  2.9.lt.4 {.  db 
ee80: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
ee90: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
eea0: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
eeb0: 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57  id < t2.r.     W
eec0: 48 45 52 45 20 74 32 2e 61 3d 31 33 0a 20 20 20  HERE t2.a=13.   
eed0: 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
eee0: 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
eef0: 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
ef00: 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20   19 57 35 46 22 
ef10: 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
ef20: 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
ef30: 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
ef40: 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
ef50: 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
ef60: 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
ef70: 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
ef80: 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
ef90: 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
efa0: 64 61 72 79 33 2d 32 2e 39 2e 6c 74 2e 35 20 7b  dary3-2.9.lt.5 {
efb0: 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
efc0: 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
efd0: 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
efe0: 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a  t1.rowid < t2.r.
eff0: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
f000: 31 33 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  13.     ORDER BY
f010: 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20   x.  }.} {59 60 
f020: 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
f030: 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38  61 8 16 23 50 48
f040: 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20   62 15 42 18 24 
f050: 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
f060: 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
f070: 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
f080: 33 34 20 31 30 20 32 36 20 35 35 20 32 20 36 34  34 10 26 55 2 64
f090: 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
f0a0: 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
f0b0: 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f   53 52 33 38}.do
f0c0: 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
f0d0: 32 2e 39 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20  2.9.le.1 {.  db 
f0e0: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
f0f0: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
f100: 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
f110: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
f120: 77 69 64 20 3c 3d 20 35 36 32 39 34 39 39 35 33  wid <= 562949953
f130: 34 32 31 33 31 31 20 4f 52 44 45 52 20 42 59 20  421311 ORDER BY 
f140: 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20  t2.a.  }.} {1 2 
f150: 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20 31  4 5 6 7 8 9 10 1
f160: 31 20 31 32 20 31 33 20 31 34 20 31 35 20 31 36  1 12 13 14 15 16
f170: 20 31 38 20 31 39 20 32 30 20 32 31 20 32 32 20   18 19 20 21 22 
f180: 32 33 20 32 34 20 32 35 20 32 36 20 32 39 20 33  23 24 25 26 29 3
f190: 30 20 33 31 20 33 32 20 33 33 20 33 34 20 33 35  0 31 32 33 34 35
f1a0: 20 33 36 20 33 37 20 33 38 20 33 39 20 34 30 20   36 37 38 39 40 
f1b0: 34 31 20 34 32 20 34 34 20 34 36 20 34 37 20 34  41 42 44 46 47 4
f1c0: 38 20 34 39 20 35 30 20 35 31 20 35 32 20 35 33  8 49 50 51 52 53
f1d0: 20 35 34 20 35 35 20 35 36 20 35 37 20 35 38 20   54 55 56 57 58 
f1e0: 35 39 20 36 30 20 36 31 20 36 32 20 36 33 20 36  59 60 61 62 63 6
f1f0: 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  4}.do_test bound
f200: 61 72 79 33 2d 32 2e 39 2e 6c 65 2e 32 20 7b 0a  ary3-2.9.le.2 {.
f210: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
f220: 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
f230: 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e   t2 NATURAL JOIN
f240: 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74   t1.     WHERE t
f250: 31 2e 72 6f 77 69 64 20 3c 3d 20 35 36 32 39 34  1.rowid <= 56294
f260: 39 39 35 33 34 32 31 33 31 31 20 4f 52 44 45 52  9953421311 ORDER
f270: 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
f280: 7d 0a 7d 20 7b 36 34 20 36 33 20 36 32 20 36 31  }.} {64 63 62 61
f290: 20 36 30 20 35 39 20 35 38 20 35 37 20 35 36 20   60 59 58 57 56 
f2a0: 35 35 20 35 34 20 35 33 20 35 32 20 35 31 20 35  55 54 53 52 51 5
f2b0: 30 20 34 39 20 34 38 20 34 37 20 34 36 20 34 34  0 49 48 47 46 44
f2c0: 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38 20   42 41 40 39 38 
f2d0: 33 37 20 33 36 20 33 35 20 33 34 20 33 33 20 33  37 36 35 34 33 3
f2e0: 32 20 33 31 20 33 30 20 32 39 20 32 36 20 32 35  2 31 30 29 26 25
f2f0: 20 32 34 20 32 33 20 32 32 20 32 31 20 32 30 20   24 23 22 21 20 
f300: 31 39 20 31 38 20 31 36 20 31 35 20 31 34 20 31  19 18 16 15 14 1
f310: 33 20 31 32 20 31 31 20 31 30 20 39 20 38 20 37  3 12 11 10 9 8 7
f320: 20 36 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74   6 5 4 2 1}.do_t
f330: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
f340: 39 2e 6c 65 2e 33 20 7b 0a 20 20 64 62 20 65 76  9.le.3 {.  db ev
f350: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
f360: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
f370: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
f380: 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
f390: 45 52 45 20 74 32 2e 61 3d 31 33 0a 20 20 20 20  ERE t2.a=13.    
f3a0: 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
f3b0: 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36  id.  }.} {55 2 6
f3c0: 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
f3d0: 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
f3e0: 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
f3f0: 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
f400: 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
f410: 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
f420: 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
f430: 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
f440: 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
f450: 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 7d   25 34 10 26 13}
f460: 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
f470: 79 33 2d 32 2e 39 2e 6c 65 2e 34 20 7b 0a 20 20  y3-2.9.le.4 {.  
f480: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
f490: 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
f4a0: 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
f4b0: 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
f4c0: 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 33     WHERE t2.a=13
f4d0: 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
f4e0: 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
f4f0: 0a 7d 20 7b 31 33 20 32 36 20 31 30 20 33 34 20  .} {13 26 10 34 
f500: 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35  25 56 7 19 57 35
f510: 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
f520: 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
f530: 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
f540: 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
f550: 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
f560: 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
f570: 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
f580: 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
f590: 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
f5a0: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 39  st boundary3-2.9
f5b0: 2e 6c 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61  .le.5 {.  db eva
f5c0: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
f5d0: 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
f5e0: 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
f5f0: 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  <= t2.r.     WHE
f600: 52 45 20 74 32 2e 61 3d 31 33 0a 20 20 20 20 20  RE t2.a=13.     
f610: 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
f620: 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31 20   {59 60 41 5 31 
f630: 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
f640: 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
f650: 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
f660: 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
f670: 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
f680: 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
f690: 20 31 33 20 35 35 20 32 20 36 34 20 32 31 20 34   13 55 2 64 21 4
f6a0: 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
f6b0: 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
f6c0: 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74  2 33 38}.do_test
f6d0: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30 2e   boundary3-2.10.
f6e0: 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
f6f0: 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 2a 20      SELECT t1.* 
f700: 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52  FROM t1, t2 WHER
f710: 45 20 74 31 2e 72 6f 77 69 64 3d 32 35 36 20 41  E t1.rowid=256 A
f720: 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d  ND t2.a=t1.a.  }
f730: 0a 7d 20 7b 36 31 20 30 30 30 30 30 30 30 30 30  .} {61 000000000
f740: 30 30 30 30 31 30 30 7d 0a 64 6f 5f 74 65 73 74  0000100}.do_test
f750: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30 2e   boundary3-2.10.
f760: 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
f770: 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a 20      SELECT t2.* 
f780: 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
f790: 55 53 49 4e 47 28 61 29 20 57 48 45 52 45 20 78  USING(a) WHERE x
f7a0: 3d 27 30 30 30 30 30 30 30 30 30 30 30 30 30 31  ='00000000000001
f7b0: 30 30 27 0a 20 20 7d 0a 7d 20 7b 32 35 36 20 36  00'.  }.} {256 6
f7c0: 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  1}.do_test bound
f7d0: 61 72 79 33 2d 32 2e 31 30 2e 33 20 7b 0a 20 20  ary3-2.10.3 {.  
f7e0: 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
f7f0: 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c 20 78  LECT t1.rowid, x
f800: 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
f810: 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69   ON t2.r=t1.rowi
f820: 64 20 57 48 45 52 45 20 74 32 2e 61 3d 36 31 0a  d WHERE t2.a=61.
f830: 20 20 7d 0a 7d 20 7b 32 35 36 20 30 30 30 30 30    }.} {256 00000
f840: 30 30 30 30 30 30 30 30 31 30 30 7d 0a 64 6f 5f  00000000100}.do_
f850: 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
f860: 2e 31 30 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20  .10.gt.1 {.  db 
f870: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
f880: 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
f890: 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
f8a0: 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
f8b0: 77 69 64 20 3e 20 32 35 36 20 4f 52 44 45 52 20  wid > 256 ORDER 
f8c0: 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33  BY t2.a.  }.} {3
f8d0: 20 36 20 37 20 38 20 39 20 31 30 20 31 32 20 31   6 7 8 9 10 12 1
f8e0: 33 20 31 34 20 31 35 20 31 36 20 31 37 20 31 38  3 14 15 16 17 18
f8f0: 20 31 39 20 32 30 20 32 32 20 32 33 20 32 34 20   19 20 22 23 24 
f900: 32 35 20 32 36 20 32 37 20 32 38 20 33 34 20 33  25 26 27 28 34 3
f910: 35 20 33 36 20 33 39 20 34 30 20 34 32 20 34 33  5 36 39 40 42 43
f920: 20 34 35 20 34 36 20 34 38 20 35 30 20 35 31 20   45 46 48 50 51 
f930: 35 36 20 35 37 20 36 32 7d 0a 64 6f 5f 74 65 73  56 57 62}.do_tes
f940: 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30  t boundary3-2.10
f950: 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .gt.2 {.  db eva
f960: 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
f970: 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
f980: 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
f990: 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
f9a0: 3e 20 32 35 36 20 4f 52 44 45 52 20 42 59 20 74  > 256 ORDER BY t
f9b0: 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
f9c0: 36 32 20 35 37 20 35 36 20 35 31 20 35 30 20 34  62 57 56 51 50 4
f9d0: 38 20 34 36 20 34 35 20 34 33 20 34 32 20 34 30  8 46 45 43 42 40
f9e0: 20 33 39 20 33 36 20 33 35 20 33 34 20 32 38 20   39 36 35 34 28 
f9f0: 32 37 20 32 36 20 32 35 20 32 34 20 32 33 20 32  27 26 25 24 23 2
fa00: 32 20 32 30 20 31 39 20 31 38 20 31 37 20 31 36  2 20 19 18 17 16
fa10: 20 31 35 20 31 34 20 31 33 20 31 32 20 31 30 20   15 14 13 12 10 
fa20: 39 20 38 20 37 20 36 20 33 7d 0a 64 6f 5f 74 65  9 8 7 6 3}.do_te
fa30: 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
fa40: 30 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76  0.gt.3 {.  db ev
fa50: 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
fa60: 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
fa70: 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
fa80: 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
fa90: 52 45 20 74 32 2e 61 3d 36 31 0a 20 20 20 20 20  RE t2.a=61.     
faa0: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
fab0: 64 0a 20 20 7d 0a 7d 20 7b 38 20 31 36 20 32 33  d.  }.} {8 16 23
fac0: 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
fad0: 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
fae0: 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
faf0: 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
fb00: 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
fb10: 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
fb20: 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
fb30: 64 61 72 79 33 2d 32 2e 31 30 2e 67 74 2e 34 20  dary3-2.10.gt.4 
fb40: 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
fb50: 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
fb60: 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
fb70: 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72   t1.rowid > t2.r
fb80: 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
fb90: 3d 36 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =61.     ORDER B
fba0: 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
fbb0: 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
fbc0: 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
fbd0: 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
fbe0: 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36  7 35 46 22 39 36
fbf0: 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20   14 51 20 40 12 
fc00: 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20  6 9 24 18 42 15 
fc10: 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38  62 48 50 23 16 8
fc20: 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
fc30: 72 79 33 2d 32 2e 31 30 2e 67 74 2e 35 20 7b 0a  ry3-2.10.gt.5 {.
fc40: 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
fc50: 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
fc60: 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
fc70: 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20  1.rowid > t2.r. 
fc80: 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36      WHERE t2.a=6
fc90: 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  1.     ORDER BY 
fca0: 78 0a 20 20 7d 0a 7d 20 7b 38 20 31 36 20 32 33  x.  }.} {8 16 23
fcb0: 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
fcc0: 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
fcd0: 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
fce0: 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
fcf0: 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
fd00: 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
fd10: 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
fd20: 64 61 72 79 33 2d 32 2e 31 30 2e 67 74 2e 31 30  dary3-2.10.gt.10
fd30: 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
fd40: 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
fd50: 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
fd60: 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53  N t1.rowid > CAS
fd70: 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a  T(t2.r AS real).
fd80: 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
fd90: 36 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  61.     ORDER BY
fda0: 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
fdb0: 7b 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36  {8 16 23 50 48 6
fdc0: 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
fdd0: 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
fde0: 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
fdf0: 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
fe00: 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
fe10: 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
fe20: 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
fe30: 31 30 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62 20  10.gt.11 {.  db 
fe40: 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
fe50: 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
fe60: 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
fe70: 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41  id > CAST(t2.r A
fe80: 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
fe90: 52 45 20 74 32 2e 61 3d 36 31 0a 20 20 20 20 20  RE t2.a=61.     
fea0: 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
feb0: 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
fec0: 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
fed0: 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
fee0: 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32   7 19 57 35 46 2
fef0: 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
ff00: 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
ff10: 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20   42 15 62 48 50 
ff20: 32 33 20 31 36 20 38 7d 0a 64 6f 5f 74 65 73 74  23 16 8}.do_test
ff30: 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30 2e   boundary3-2.10.
ff40: 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  ge.1 {.  db eval
ff50: 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
ff60: 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
ff70: 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20  t2 USING(a).    
ff80: 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
ff90: 3e 3d 20 32 35 36 20 4f 52 44 45 52 20 42 59 20  >= 256 ORDER BY 
ffa0: 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 36 20  t2.a.  }.} {3 6 
ffb0: 37 20 38 20 39 20 31 30 20 31 32 20 31 33 20 31  7 8 9 10 12 13 1
ffc0: 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
ffd0: 20 32 30 20 32 32 20 32 33 20 32 34 20 32 35 20   20 22 23 24 25 
ffe0: 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20 33  26 27 28 34 35 3
fff0: 36 20 33 39 20 34 30 20 34 32 20 34 33 20 34 35  6 39 40 42 43 45
10000 20 34 36 20 34 38 20 35 30 20 35 31 20 35 36 20   46 48 50 51 56 
10010 35 37 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65 73  57 61 62}.do_tes
10020 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30  t boundary3-2.10
10030 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .ge.2 {.  db eva
10040 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
10050 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
10060 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
10070 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
10080 3e 3d 20 32 35 36 20 4f 52 44 45 52 20 42 59 20  >= 256 ORDER BY 
10090 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
100a0 7b 36 32 20 36 31 20 35 37 20 35 36 20 35 31 20  {62 61 57 56 51 
100b0 35 30 20 34 38 20 34 36 20 34 35 20 34 33 20 34  50 48 46 45 43 4
100c0 32 20 34 30 20 33 39 20 33 36 20 33 35 20 33 34  2 40 39 36 35 34
100d0 20 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20   28 27 26 25 24 
100e0 32 33 20 32 32 20 32 30 20 31 39 20 31 38 20 31  23 22 20 19 18 1
100f0 37 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32  7 16 15 14 13 12
10100 20 31 30 20 39 20 38 20 37 20 36 20 33 7d 0a 64   10 9 8 7 6 3}.d
10110 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
10120 2d 32 2e 31 30 2e 67 65 2e 33 20 7b 0a 20 20 64  -2.10.ge.3 {.  d
10130 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
10140 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
10150 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
10160 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
10170 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 31 0a    WHERE t2.a=61.
10180 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
10190 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 36 31  .rowid.  }.} {61
101a0 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36   8 16 23 50 48 6
101b0 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
101c0 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
101d0 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
101e0 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
101f0 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
10200 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
10210 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
10220 31 30 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20 65  10.ge.4 {.  db e
10230 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
10240 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
10250 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
10260 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
10270 48 45 52 45 20 74 32 2e 61 3d 36 31 0a 20 20 20  HERE t2.a=61.   
10280 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
10290 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
102a0 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
102b0 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
102c0 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
102d0 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
102e0 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
102f0 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
10300 30 20 32 33 20 31 36 20 38 20 36 31 7d 0a 64 6f  0 23 16 8 61}.do
10310 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
10320 32 2e 31 30 2e 67 65 2e 35 20 7b 0a 20 20 64 62  2.10.ge.5 {.  db
10330 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
10340 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
10350 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
10360 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20  wid >= t2.r.    
10370 20 57 48 45 52 45 20 74 32 2e 61 3d 36 31 0a 20   WHERE t2.a=61. 
10380 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
10390 20 7d 0a 7d 20 7b 36 31 20 38 20 31 36 20 32 33   }.} {61 8 16 23
103a0 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
103b0 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
103c0 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
103d0 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
103e0 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
103f0 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
10400 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
10410 64 61 72 79 33 2d 32 2e 31 30 2e 67 65 2e 31 30  dary3-2.10.ge.10
10420 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
10430 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
10440 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
10450 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41  N t1.rowid >= CA
10460 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
10470 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
10480 3d 36 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =61.     ORDER B
10490 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
104a0 20 7b 36 31 20 38 20 31 36 20 32 33 20 35 30 20   {61 8 16 23 50 
104b0 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
104c0 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
104d0 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
104e0 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
104f0 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
10500 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
10510 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
10520 33 2d 32 2e 31 30 2e 67 65 2e 31 31 20 7b 0a 20  3-2.10.ge.11 {. 
10530 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
10540 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
10550 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
10560 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74  .rowid >= CAST(t
10570 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
10580 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 31 0a    WHERE t2.a=61.
10590 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
105a0 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
105b0 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37  } {3 28 17 45 27
105c0 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20   43 13 26 10 34 
105d0 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35  25 56 7 19 57 35
105e0 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
105f0 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
10600 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
10610 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 7d  8 50 23 16 8 61}
10620 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
10630 79 33 2d 32 2e 31 30 2e 6c 74 2e 31 20 7b 0a 20  y3-2.10.lt.1 {. 
10640 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
10650 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
10660 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
10670 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
10680 31 2e 72 6f 77 69 64 20 3c 20 32 35 36 20 4f 52  1.rowid < 256 OR
10690 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
106a0 7d 20 7b 31 20 32 20 34 20 35 20 31 31 20 32 31  } {1 2 4 5 11 21
106b0 20 32 39 20 33 30 20 33 31 20 33 32 20 33 33 20   29 30 31 32 33 
106c0 33 37 20 33 38 20 34 31 20 34 34 20 34 37 20 34  37 38 41 44 47 4
106d0 39 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38  9 52 53 54 55 58
106e0 20 35 39 20 36 30 20 36 33 20 36 34 7d 0a 64 6f   59 60 63 64}.do
106f0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
10700 32 2e 31 30 2e 6c 74 2e 32 20 7b 0a 20 20 64 62  2.10.lt.2 {.  db
10710 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
10720 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
10730 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
10740 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
10750 77 69 64 20 3c 20 32 35 36 20 4f 52 44 45 52 20  wid < 256 ORDER 
10760 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
10770 0a 7d 20 7b 36 34 20 36 33 20 36 30 20 35 39 20  .} {64 63 60 59 
10780 35 38 20 35 35 20 35 34 20 35 33 20 35 32 20 34  58 55 54 53 52 4
10790 39 20 34 37 20 34 34 20 34 31 20 33 38 20 33 37  9 47 44 41 38 37
107a0 20 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20   33 32 31 30 29 
107b0 32 31 20 31 31 20 35 20 34 20 32 20 31 7d 0a 64  21 11 5 4 2 1}.d
107c0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
107d0 2d 32 2e 31 30 2e 6c 74 2e 33 20 7b 0a 20 20 64  -2.10.lt.3 {.  d
107e0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
107f0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
10800 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
10810 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20  owid < t2.r.    
10820 20 57 48 45 52 45 20 74 32 2e 61 3d 36 31 0a 20   WHERE t2.a=61. 
10830 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
10840 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20  rowid.  }.} {55 
10850 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
10860 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
10870 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
10880 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34   59 60 41 5 31 4
10890 20 34 39 20 33 30 7d 0a 64 6f 5f 74 65 73 74 20   49 30}.do_test 
108a0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30 2e 6c  boundary3-2.10.l
108b0 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.4 {.  db eval 
108c0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
108d0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
108e0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
108f0 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
10900 74 32 2e 61 3d 36 31 0a 20 20 20 20 20 4f 52 44  t2.a=61.     ORD
10910 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
10920 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 30 20 34 39  ESC.  }.} {30 49
10930 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39   4 31 5 41 60 59
10940 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20   38 33 52 53 54 
10950 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
10960 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
10970 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
10980 75 6e 64 61 72 79 33 2d 32 2e 31 30 2e 6c 74 2e  undary3-2.10.lt.
10990 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
109a0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
109b0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
109c0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
109d0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
109e0 2e 61 3d 36 31 0a 20 20 20 20 20 4f 52 44 45 52  .a=61.     ORDER
109f0 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20   BY x.  }.} {59 
10a00 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
10a10 33 30 20 35 35 20 32 20 36 34 20 32 31 20 34 34  30 55 2 64 21 44
10a20 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
10a30 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
10a40 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20   33 38}.do_test 
10a50 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30 2e 6c  boundary3-2.10.l
10a60 74 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c  t.10 {.  db eval
10a70 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
10a80 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
10a90 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
10aa0 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
10ab0 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
10ac0 32 2e 61 3d 36 31 0a 20 20 20 20 20 4f 52 44 45  2.a=61.     ORDE
10ad0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
10ae0 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20  }.} {55 2 64 21 
10af0 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
10b00 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
10b10 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
10b20 31 20 35 20 33 31 20 34 20 34 39 20 33 30 7d 0a  1 5 31 4 49 30}.
10b30 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
10b40 33 2d 32 2e 31 30 2e 6c 74 2e 31 31 20 7b 0a 20  3-2.10.lt.11 {. 
10b50 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
10b60 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
10b70 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
10b80 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32  .rowid < CAST(t2
10b90 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
10ba0 20 57 48 45 52 45 20 74 32 2e 61 3d 36 31 0a 20   WHERE t2.a=61. 
10bb0 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
10bc0 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
10bd0 20 7b 33 30 20 34 39 20 34 20 33 31 20 35 20 34   {30 49 4 31 5 4
10be0 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
10bf0 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
10c00 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
10c10 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
10c20 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
10c30 2e 31 30 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20  .10.le.1 {.  db 
10c40 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
10c50 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
10c60 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
10c70 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
10c80 77 69 64 20 3c 3d 20 32 35 36 20 4f 52 44 45 52  wid <= 256 ORDER
10c90 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b   BY t2.a.  }.} {
10ca0 31 20 32 20 34 20 35 20 31 31 20 32 31 20 32 39  1 2 4 5 11 21 29
10cb0 20 33 30 20 33 31 20 33 32 20 33 33 20 33 37 20   30 31 32 33 37 
10cc0 33 38 20 34 31 20 34 34 20 34 37 20 34 39 20 35  38 41 44 47 49 5
10cd0 32 20 35 33 20 35 34 20 35 35 20 35 38 20 35 39  2 53 54 55 58 59
10ce0 20 36 30 20 36 31 20 36 33 20 36 34 7d 0a 64 6f   60 61 63 64}.do
10cf0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
10d00 32 2e 31 30 2e 6c 65 2e 32 20 7b 0a 20 20 64 62  2.10.le.2 {.  db
10d10 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
10d20 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
10d30 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
10d40 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
10d50 77 69 64 20 3c 3d 20 32 35 36 20 4f 52 44 45 52  wid <= 256 ORDER
10d60 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
10d70 7d 0a 7d 20 7b 36 34 20 36 33 20 36 31 20 36 30  }.} {64 63 61 60
10d80 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20   59 58 55 54 53 
10d90 35 32 20 34 39 20 34 37 20 34 34 20 34 31 20 33  52 49 47 44 41 3
10da0 38 20 33 37 20 33 33 20 33 32 20 33 31 20 33 30  8 37 33 32 31 30
10db0 20 32 39 20 32 31 20 31 31 20 35 20 34 20 32 20   29 21 11 5 4 2 
10dc0 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  1}.do_test bound
10dd0 61 72 79 33 2d 32 2e 31 30 2e 6c 65 2e 33 20 7b  ary3-2.10.le.3 {
10de0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
10df0 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
10e00 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
10e10 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72  t1.rowid <= t2.r
10e20 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
10e30 3d 36 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =61.     ORDER B
10e40 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
10e50 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
10e60 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
10e70 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
10e80 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
10e90 20 33 31 20 34 20 34 39 20 33 30 20 36 31 7d 0a   31 4 49 30 61}.
10ea0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
10eb0 33 2d 32 2e 31 30 2e 6c 65 2e 34 20 7b 0a 20 20  3-2.10.le.4 {.  
10ec0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
10ed0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
10ee0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
10ef0 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
10f00 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 31     WHERE t2.a=61
10f10 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
10f20 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
10f30 0a 7d 20 7b 36 31 20 33 30 20 34 39 20 34 20 33  .} {61 30 49 4 3
10f40 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20  1 5 41 60 59 38 
10f50 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
10f60 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20  9 37 1 11 47 63 
10f70 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
10f80 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
10f90 72 79 33 2d 32 2e 31 30 2e 6c 65 2e 35 20 7b 0a  ry3-2.10.le.5 {.
10fa0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
10fb0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
10fc0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
10fd0 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a  1.rowid <= t2.r.
10fe0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
10ff0 36 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  61.     ORDER BY
11000 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20   x.  }.} {59 60 
11010 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
11020 36 31 20 35 35 20 32 20 36 34 20 32 31 20 34 34  61 55 2 64 21 44
11030 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
11040 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
11050 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20   33 38}.do_test 
11060 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 30 2e 6c  boundary3-2.10.l
11070 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c  e.10 {.  db eval
11080 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
11090 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
110a0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
110b0 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  = CAST(t2.r AS r
110c0 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
110d0 74 32 2e 61 3d 36 31 0a 20 20 20 20 20 4f 52 44  t2.a=61.     ORD
110e0 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20  ER BY t1.rowid. 
110f0 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31   }.} {55 2 64 21
11100 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
11110 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
11120 20 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20   52 33 38 59 60 
11130 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
11140 36 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  61}.do_test boun
11150 64 61 72 79 33 2d 32 2e 31 30 2e 6c 65 2e 31 31  dary3-2.10.le.11
11160 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
11170 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
11180 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
11190 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41  N t1.rowid <= CA
111a0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
111b0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
111c0 3d 36 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =61.     ORDER B
111d0 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
111e0 20 20 7d 0a 7d 20 7b 36 31 20 33 30 20 34 39 20    }.} {61 30 49 
111f0 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
11200 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
11210 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
11220 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
11230 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
11240 6e 64 61 72 79 33 2d 32 2e 31 31 2e 31 20 7b 0a  ndary3-2.11.1 {.
11250 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
11260 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d  SELECT t1.* FROM
11270 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74 31   t1, t2 WHERE t1
11280 2e 72 6f 77 69 64 3d 33 34 33 35 39 37 33 38 33  .rowid=343597383
11290 36 38 20 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61  68 AND t2.a=t1.a
112a0 0a 20 20 7d 0a 7d 20 7b 32 32 20 30 30 30 30 30  .  }.} {22 00000
112b0 30 30 38 30 30 30 30 30 30 30 30 7d 0a 64 6f 5f  00800000000}.do_
112c0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
112d0 2e 31 31 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .11.2 {.  db eva
112e0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
112f0 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.* FROM t1 JOIN
11300 20 74 32 20 55 53 49 4e 47 28 61 29 20 57 48 45   t2 USING(a) WHE
11310 52 45 20 78 3d 27 30 30 30 30 30 30 30 38 30 30  RE x='0000000800
11320 30 30 30 30 30 30 27 0a 20 20 7d 0a 7d 20 7b 33  000000'.  }.} {3
11330 34 33 35 39 37 33 38 33 36 38 20 32 32 7d 0a 64  4359738368 22}.d
11340 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
11350 2d 32 2e 31 31 2e 33 20 7b 0a 20 20 64 62 20 65  -2.11.3 {.  db e
11360 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
11370 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f   t1.rowid, x FRO
11380 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
11390 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57 48  t2.r=t1.rowid WH
113a0 45 52 45 20 74 32 2e 61 3d 32 32 0a 20 20 7d 0a  ERE t2.a=22.  }.
113b0 7d 20 7b 33 34 33 35 39 37 33 38 33 36 38 20 30  } {34359738368 0
113c0 30 30 30 30 30 30 38 30 30 30 30 30 30 30 30 7d  000000800000000}
113d0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
113e0 79 33 2d 32 2e 31 31 2e 67 74 2e 31 20 7b 0a 20  y3-2.11.gt.1 {. 
113f0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
11400 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
11410 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
11420 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
11430 31 2e 72 6f 77 69 64 20 3e 20 33 34 33 35 39 37  1.rowid > 343597
11440 33 38 33 36 38 20 4f 52 44 45 52 20 42 59 20 74  38368 ORDER BY t
11450 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 37 20 31  2.a.  }.} {3 7 1
11460 30 20 31 33 20 31 37 20 31 39 20 32 35 20 32 36  0 13 17 19 25 26
11470 20 32 37 20 32 38 20 33 34 20 33 35 20 34 33 20   27 28 34 35 43 
11480 34 35 20 34 36 20 35 36 20 35 37 7d 0a 64 6f 5f  45 46 56 57}.do_
11490 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
114a0 2e 31 31 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20  .11.gt.2 {.  db 
114b0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
114c0 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
114d0 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
114e0 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
114f0 69 64 20 3e 20 33 34 33 35 39 37 33 38 33 36 38  id > 34359738368
11500 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
11510 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 35 36  ESC.  }.} {57 56
11520 20 34 36 20 34 35 20 34 33 20 33 35 20 33 34 20   46 45 43 35 34 
11530 32 38 20 32 37 20 32 36 20 32 35 20 31 39 20 31  28 27 26 25 19 1
11540 37 20 31 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f  7 13 10 7 3}.do_
11550 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
11560 2e 31 31 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20  .11.gt.3 {.  db 
11570 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
11580 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
11590 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
115a0 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
115b0 48 45 52 45 20 74 32 2e 61 3d 32 32 0a 20 20 20  HERE t2.a=22.   
115c0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
115d0 77 69 64 0a 20 20 7d 0a 7d 20 7b 34 36 20 33 35  wid.  }.} {46 35
115e0 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
115f0 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
11600 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
11610 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
11620 2e 31 31 2e 67 74 2e 34 20 7b 0a 20 20 64 62 20  .11.gt.4 {.  db 
11630 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
11640 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
11650 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
11660 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
11670 48 45 52 45 20 74 32 2e 61 3d 32 32 0a 20 20 20  HERE t2.a=22.   
11680 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
11690 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
116a0 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
116b0 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
116c0 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
116d0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
116e0 72 79 33 2d 32 2e 31 31 2e 67 74 2e 35 20 7b 0a  ry3-2.11.gt.5 {.
116f0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
11700 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
11710 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
11720 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20  1.rowid > t2.r. 
11730 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32      WHERE t2.a=2
11740 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  2.     ORDER BY 
11750 78 0a 20 20 7d 0a 7d 20 7b 34 36 20 33 35 20 35  x.  }.} {46 35 5
11760 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
11770 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
11780 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
11790 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
117a0 31 2e 67 74 2e 31 30 20 7b 0a 20 20 64 62 20 65  1.gt.10 {.  db e
117b0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
117c0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
117d0 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
117e0 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53  d > CAST(t2.r AS
117f0 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
11800 45 20 74 32 2e 61 3d 32 32 0a 20 20 20 20 20 4f  E t2.a=22.     O
11810 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
11820 0a 20 20 7d 0a 7d 20 7b 34 36 20 33 35 20 35 37  .  }.} {46 35 57
11830 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
11840 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
11850 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
11860 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 31  t boundary3-2.11
11870 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76  .gt.11 {.  db ev
11880 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
11890 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
118a0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
118b0 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53 20   > CAST(t2.r AS 
118c0 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
118d0 20 74 32 2e 61 3d 32 32 0a 20 20 20 20 20 4f 52   t2.a=22.     OR
118e0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
118f0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
11900 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
11910 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
11920 20 31 39 20 35 37 20 33 35 20 34 36 7d 0a 64 6f   19 57 35 46}.do
11930 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
11940 32 2e 31 31 2e 67 65 2e 31 20 7b 0a 20 20 64 62  2.11.ge.1 {.  db
11950 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
11960 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
11970 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
11980 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
11990 6f 77 69 64 20 3e 3d 20 33 34 33 35 39 37 33 38  owid >= 34359738
119a0 33 36 38 20 4f 52 44 45 52 20 42 59 20 74 32 2e  368 ORDER BY t2.
119b0 61 0a 20 20 7d 0a 7d 20 7b 33 20 37 20 31 30 20  a.  }.} {3 7 10 
119c0 31 33 20 31 37 20 31 39 20 32 32 20 32 35 20 32  13 17 19 22 25 2
119d0 36 20 32 37 20 32 38 20 33 34 20 33 35 20 34 33  6 27 28 34 35 43
119e0 20 34 35 20 34 36 20 35 36 20 35 37 7d 0a 64 6f   45 46 56 57}.do
119f0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
11a00 32 2e 31 31 2e 67 65 2e 32 20 7b 0a 20 20 64 62  2.11.ge.2 {.  db
11a10 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
11a20 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
11a30 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
11a40 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
11a50 77 69 64 20 3e 3d 20 33 34 33 35 39 37 33 38 33  wid >= 343597383
11a60 36 38 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61  68 ORDER BY t1.a
11a70 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 37 20   DESC.  }.} {57 
11a80 35 36 20 34 36 20 34 35 20 34 33 20 33 35 20 33  56 46 45 43 35 3
11a90 34 20 32 38 20 32 37 20 32 36 20 32 35 20 32 32  4 28 27 26 25 22
11aa0 20 31 39 20 31 37 20 31 33 20 31 30 20 37 20 33   19 17 13 10 7 3
11ab0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
11ac0 72 79 33 2d 32 2e 31 31 2e 67 65 2e 33 20 7b 0a  ry3-2.11.ge.3 {.
11ad0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
11ae0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
11af0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
11b00 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
11b10 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
11b20 32 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  22.     ORDER BY
11b30 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
11b40 7b 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20  {22 46 35 57 19 
11b50 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
11b60 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
11b70 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
11b80 75 6e 64 61 72 79 33 2d 32 2e 31 31 2e 67 65 2e  undary3-2.11.ge.
11b90 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
11ba0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
11bb0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
11bc0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74  ON t1.rowid >= t
11bd0 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
11be0 32 2e 61 3d 32 32 0a 20 20 20 20 20 4f 52 44 45  2.a=22.     ORDE
11bf0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
11c00 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31  SC.  }.} {3 28 1
11c10 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36  7 45 27 43 13 26
11c20 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31   10 34 25 56 7 1
11c30 39 20 35 37 20 33 35 20 34 36 20 32 32 7d 0a 64  9 57 35 46 22}.d
11c40 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
11c50 2d 32 2e 31 31 2e 67 65 2e 35 20 7b 0a 20 20 64  -2.11.ge.5 {.  d
11c60 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
11c70 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
11c80 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
11c90 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
11ca0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 32 0a    WHERE t2.a=22.
11cb0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
11cc0 20 20 7d 0a 7d 20 7b 32 32 20 34 36 20 33 35 20    }.} {22 46 35 
11cd0 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
11ce0 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
11cf0 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
11d00 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
11d10 31 31 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20  11.ge.10 {.  db 
11d20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
11d30 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
11d40 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
11d50 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20  id >= CAST(t2.r 
11d60 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
11d70 45 52 45 20 74 32 2e 61 3d 32 32 0a 20 20 20 20  ERE t2.a=22.    
11d80 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
11d90 69 64 0a 20 20 7d 0a 7d 20 7b 32 32 20 34 36 20  id.  }.} {22 46 
11da0 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
11db0 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
11dc0 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
11dd0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
11de0 2d 32 2e 31 31 2e 67 65 2e 31 31 20 7b 0a 20 20  -2.11.ge.11 {.  
11df0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
11e00 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
11e10 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
11e20 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32  rowid >= CAST(t2
11e30 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
11e40 20 57 48 45 52 45 20 74 32 2e 61 3d 32 32 0a 20   WHERE t2.a=22. 
11e50 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
11e60 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
11e70 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20   {3 28 17 45 27 
11e80 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32  43 13 26 10 34 2
11e90 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20  5 56 7 19 57 35 
11ea0 34 36 20 32 32 7d 0a 64 6f 5f 74 65 73 74 20 62  46 22}.do_test b
11eb0 6f 75 6e 64 61 72 79 33 2d 32 2e 31 31 2e 6c 74  oundary3-2.11.lt
11ec0 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .1 {.  db eval {
11ed0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
11ee0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
11ef0 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57   USING(a).     W
11f00 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20  HERE t1.rowid < 
11f10 33 34 33 35 39 37 33 38 33 36 38 20 4f 52 44 45  34359738368 ORDE
11f20 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20  R BY t2.a.  }.} 
11f30 7b 31 20 32 20 34 20 35 20 36 20 38 20 39 20 31  {1 2 4 5 6 8 9 1
11f40 31 20 31 32 20 31 34 20 31 35 20 31 36 20 31 38  1 12 14 15 16 18
11f50 20 32 30 20 32 31 20 32 33 20 32 34 20 32 39 20   20 21 23 24 29 
11f60 33 30 20 33 31 20 33 32 20 33 33 20 33 36 20 33  30 31 32 33 36 3
11f70 37 20 33 38 20 33 39 20 34 30 20 34 31 20 34 32  7 38 39 40 41 42
11f80 20 34 34 20 34 37 20 34 38 20 34 39 20 35 30 20   44 47 48 49 50 
11f90 35 31 20 35 32 20 35 33 20 35 34 20 35 35 20 35  51 52 53 54 55 5
11fa0 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36 33  8 59 60 61 62 63
11fb0 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
11fc0 6e 64 61 72 79 33 2d 32 2e 31 31 2e 6c 74 2e 32  ndary3-2.11.lt.2
11fd0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
11fe0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
11ff0 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
12000 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
12010 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 33 34 33  E t1.rowid < 343
12020 35 39 37 33 38 33 36 38 20 4f 52 44 45 52 20 42  59738368 ORDER B
12030 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
12040 7d 20 7b 36 34 20 36 33 20 36 32 20 36 31 20 36  } {64 63 62 61 6
12050 30 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33  0 59 58 55 54 53
12060 20 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20   52 51 50 49 48 
12070 34 37 20 34 34 20 34 32 20 34 31 20 34 30 20 33  47 44 42 41 40 3
12080 39 20 33 38 20 33 37 20 33 36 20 33 33 20 33 32  9 38 37 36 33 32
12090 20 33 31 20 33 30 20 32 39 20 32 34 20 32 33 20   31 30 29 24 23 
120a0 32 31 20 32 30 20 31 38 20 31 36 20 31 35 20 31  21 20 18 16 15 1
120b0 34 20 31 32 20 31 31 20 39 20 38 20 36 20 35 20  4 12 11 9 8 6 5 
120c0 34 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62  4 2 1}.do_test b
120d0 6f 75 6e 64 61 72 79 33 2d 32 2e 31 31 2e 6c 74  oundary3-2.11.lt
120e0 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
120f0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
12100 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
12110 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74   ON t1.rowid < t
12120 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
12130 32 2e 61 3d 32 32 0a 20 20 20 20 20 4f 52 44 45  2.a=22.     ORDE
12140 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
12150 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20  }.} {55 2 64 21 
12160 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
12170 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
12180 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
12190 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
121a0 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
121b0 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
121c0 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
121d0 34 20 33 36 20 33 39 7d 0a 64 6f 5f 74 65 73 74  4 36 39}.do_test
121e0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 31 2e   boundary3-2.11.
121f0 6c 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.4 {.  db eval
12200 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
12210 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
12220 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
12230 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
12240 20 74 32 2e 61 3d 32 32 0a 20 20 20 20 20 4f 52   t2.a=22.     OR
12250 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
12260 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 39 20 33  DESC.  }.} {39 3
12270 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32  6 14 51 20 40 12
12280 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35   6 9 24 18 42 15
12290 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20   62 48 50 23 16 
122a0 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31 20  8 61 30 49 4 31 
122b0 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33 33  5 41 60 59 38 33
122c0 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20   52 53 54 32 29 
122d0 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38  37 1 11 47 63 58
122e0 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a   44 21 64 2 55}.
122f0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
12300 33 2d 32 2e 31 31 2e 6c 74 2e 35 20 7b 0a 20 20  3-2.11.lt.5 {.  
12310 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
12320 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
12330 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
12340 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20  rowid < t2.r.   
12350 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 32 0a    WHERE t2.a=22.
12360 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
12370 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20    }.} {59 60 41 
12380 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
12390 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
123a0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
123b0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
123c0 33 36 20 33 39 20 35 35 20 32 20 36 34 20 32 31  36 39 55 2 64 21
123d0 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
123e0 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
123f0 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65   52 33 38}.do_te
12400 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
12410 31 2e 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20 65  1.lt.10 {.  db e
12420 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
12430 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
12440 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
12450 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53  d < CAST(t2.r AS
12460 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
12470 45 20 74 32 2e 61 3d 32 32 0a 20 20 20 20 20 4f  E t2.a=22.     O
12480 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
12490 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
124a0 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
124b0 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
124c0 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36  53 52 33 38 59 6
124d0 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
124e0 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
124f0 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
12500 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
12510 31 20 31 34 20 33 36 20 33 39 7d 0a 64 6f 5f 74  1 14 36 39}.do_t
12520 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
12530 31 31 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62 20  11.lt.11 {.  db 
12540 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
12550 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
12560 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
12570 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41  id < CAST(t2.r A
12580 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
12590 52 45 20 74 32 2e 61 3d 32 32 0a 20 20 20 20 20  RE t2.a=22.     
125a0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
125b0 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 39  d DESC.  }.} {39
125c0 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20   36 14 51 20 40 
125d0 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20  12 6 9 24 18 42 
125e0 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31  15 62 48 50 23 1
125f0 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33  6 8 61 30 49 4 3
12600 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20  1 5 41 60 59 38 
12610 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
12620 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20  9 37 1 11 47 63 
12630 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
12640 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
12650 72 79 33 2d 32 2e 31 31 2e 6c 65 2e 31 20 7b 0a  ry3-2.11.le.1 {.
12660 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
12670 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
12680 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
12690 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
126a0 74 31 2e 72 6f 77 69 64 20 3c 3d 20 33 34 33 35  t1.rowid <= 3435
126b0 39 37 33 38 33 36 38 20 4f 52 44 45 52 20 42 59  9738368 ORDER BY
126c0 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32   t2.a.  }.} {1 2
126d0 20 34 20 35 20 36 20 38 20 39 20 31 31 20 31 32   4 5 6 8 9 11 12
126e0 20 31 34 20 31 35 20 31 36 20 31 38 20 32 30 20   14 15 16 18 20 
126f0 32 31 20 32 32 20 32 33 20 32 34 20 32 39 20 33  21 22 23 24 29 3
12700 30 20 33 31 20 33 32 20 33 33 20 33 36 20 33 37  0 31 32 33 36 37
12710 20 33 38 20 33 39 20 34 30 20 34 31 20 34 32 20   38 39 40 41 42 
12720 34 34 20 34 37 20 34 38 20 34 39 20 35 30 20 35  44 47 48 49 50 5
12730 31 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38  1 52 53 54 55 58
12740 20 35 39 20 36 30 20 36 31 20 36 32 20 36 33 20   59 60 61 62 63 
12750 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  64}.do_test boun
12760 64 61 72 79 33 2d 32 2e 31 31 2e 6c 65 2e 32 20  dary3-2.11.le.2 
12770 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
12780 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
12790 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f  OM t2 NATURAL JO
127a0 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45  IN t1.     WHERE
127b0 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 33 34 33   t1.rowid <= 343
127c0 35 39 37 33 38 33 36 38 20 4f 52 44 45 52 20 42  59738368 ORDER B
127d0 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
127e0 7d 20 7b 36 34 20 36 33 20 36 32 20 36 31 20 36  } {64 63 62 61 6
127f0 30 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33  0 59 58 55 54 53
12800 20 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20   52 51 50 49 48 
12810 34 37 20 34 34 20 34 32 20 34 31 20 34 30 20 33  47 44 42 41 40 3
12820 39 20 33 38 20 33 37 20 33 36 20 33 33 20 33 32  9 38 37 36 33 32
12830 20 33 31 20 33 30 20 32 39 20 32 34 20 32 33 20   31 30 29 24 23 
12840 32 32 20 32 31 20 32 30 20 31 38 20 31 36 20 31  22 21 20 18 16 1
12850 35 20 31 34 20 31 32 20 31 31 20 39 20 38 20 36  5 14 12 11 9 8 6
12860 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74 65 73   5 4 2 1}.do_tes
12870 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 31  t boundary3-2.11
12880 2e 6c 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .le.3 {.  db eva
12890 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
128a0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
128b0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
128c0 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  <= t2.r.     WHE
128d0 52 45 20 74 32 2e 61 3d 32 32 0a 20 20 20 20 20  RE t2.a=22.     
128e0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
128f0 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
12900 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
12910 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
12920 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
12930 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
12940 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
12950 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
12960 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
12970 35 31 20 31 34 20 33 36 20 33 39 20 32 32 7d 0a  51 14 36 39 22}.
12980 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
12990 33 2d 32 2e 31 31 2e 6c 65 2e 34 20 7b 0a 20 20  3-2.11.le.4 {.  
129a0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
129b0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
129c0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
129d0 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
129e0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 32 32     WHERE t2.a=22
129f0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
12a00 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
12a10 0a 7d 20 7b 32 32 20 33 39 20 33 36 20 31 34 20  .} {22 39 36 14 
12a20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
12a30 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
12a40 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
12a50 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
12a60 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
12a70 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
12a80 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
12a90 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
12aa0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
12ab0 31 2e 6c 65 2e 35 20 7b 0a 20 20 64 62 20 65 76  1.le.5 {.  db ev
12ac0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
12ad0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
12ae0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
12af0 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
12b00 45 52 45 20 74 32 2e 61 3d 32 32 0a 20 20 20 20  ERE t2.a=22.    
12b10 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a   ORDER BY x.  }.
12b20 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31  } {59 60 41 5 31
12b30 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
12b40 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
12b50 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
12b60 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
12b70 39 20 32 32 20 35 35 20 32 20 36 34 20 32 31 20  9 22 55 2 64 21 
12b80 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
12b90 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
12ba0 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73  52 33 38}.do_tes
12bb0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 31  t boundary3-2.11
12bc0 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76  .le.10 {.  db ev
12bd0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
12be0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
12bf0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
12c00 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53   <= CAST(t2.r AS
12c10 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
12c20 45 20 74 32 2e 61 3d 32 32 0a 20 20 20 20 20 4f  E t2.a=22.     O
12c30 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
12c40 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
12c50 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
12c60 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
12c70 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36  53 52 33 38 59 6
12c80 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
12c90 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
12ca0 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
12cb0 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
12cc0 31 20 31 34 20 33 36 20 33 39 20 32 32 7d 0a 64  1 14 36 39 22}.d
12cd0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
12ce0 2d 32 2e 31 31 2e 6c 65 2e 31 31 20 7b 0a 20 20  -2.11.le.11 {.  
12cf0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
12d00 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
12d10 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
12d20 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32  rowid <= CAST(t2
12d30 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
12d40 20 57 48 45 52 45 20 74 32 2e 61 3d 32 32 0a 20   WHERE t2.a=22. 
12d50 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
12d60 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
12d70 20 7b 32 32 20 33 39 20 33 36 20 31 34 20 35 31   {22 39 36 14 51
12d80 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
12d90 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20   18 42 15 62 48 
12da0 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
12db0 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
12dc0 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
12dd0 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
12de0 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
12df0 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
12e00 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 32 2e   boundary3-2.12.
12e10 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
12e20 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 2a 20      SELECT t1.* 
12e30 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52  FROM t1, t2 WHER
12e40 45 20 74 31 2e 72 6f 77 69 64 3d 36 35 35 33 36  E t1.rowid=65536
12e50 20 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20   AND t2.a=t1.a. 
12e60 20 7d 0a 7d 20 7b 36 32 20 30 30 30 30 30 30 30   }.} {62 0000000
12e70 30 30 30 30 31 30 30 30 30 7d 0a 64 6f 5f 74 65  000010000}.do_te
12e80 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
12e90 32 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  2.2 {.  db eval 
12ea0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
12eb0 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  * FROM t1 JOIN t
12ec0 32 20 55 53 49 4e 47 28 61 29 20 57 48 45 52 45  2 USING(a) WHERE
12ed0 20 78 3d 27 30 30 30 30 30 30 30 30 30 30 30 31   x='000000000001
12ee0 30 30 30 30 27 0a 20 20 7d 0a 7d 20 7b 36 35 35  0000'.  }.} {655
12ef0 33 36 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20 62  36 62}.do_test b
12f00 6f 75 6e 64 61 72 79 33 2d 32 2e 31 32 2e 33 20  oundary3-2.12.3 
12f10 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
12f20 20 20 53 45 4c 45 43 54 20 74 31 2e 72 6f 77 69    SELECT t1.rowi
12f30 64 2c 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49  d, x FROM t1 JOI
12f40 4e 20 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e  N t2 ON t2.r=t1.
12f50 72 6f 77 69 64 20 57 48 45 52 45 20 74 32 2e 61  rowid WHERE t2.a
12f60 3d 36 32 0a 20 20 7d 0a 7d 20 7b 36 35 35 33 36  =62.  }.} {65536
12f70 20 30 30 30 30 30 30 30 30 30 30 30 31 30 30 30   000000000001000
12f80 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  0}.do_test bound
12f90 61 72 79 33 2d 32 2e 31 32 2e 67 74 2e 31 20 7b  ary3-2.12.gt.1 {
12fa0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
12fb0 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
12fc0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
12fd0 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45  NG(a).     WHERE
12fe0 20 74 31 2e 72 6f 77 69 64 20 3e 20 36 35 35 33   t1.rowid > 6553
12ff0 36 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  6 ORDER BY t2.a.
13000 20 20 7d 0a 7d 20 7b 33 20 36 20 37 20 39 20 31    }.} {3 6 7 9 1
13010 30 20 31 32 20 31 33 20 31 34 20 31 35 20 31 37  0 12 13 14 15 17
13020 20 31 38 20 31 39 20 32 30 20 32 32 20 32 34 20   18 19 20 22 24 
13030 32 35 20 32 36 20 32 37 20 32 38 20 33 34 20 33  25 26 27 28 34 3
13040 35 20 33 36 20 33 39 20 34 30 20 34 32 20 34 33  5 36 39 40 42 43
13050 20 34 35 20 34 36 20 35 31 20 35 36 20 35 37 7d   45 46 51 56 57}
13060 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
13070 79 33 2d 32 2e 31 32 2e 67 74 2e 32 20 7b 0a 20  y3-2.12.gt.2 {. 
13080 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
13090 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
130a0 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
130b0 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
130c0 2e 72 6f 77 69 64 20 3e 20 36 35 35 33 36 20 4f  .rowid > 65536 O
130d0 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
130e0 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 35 36 20 35  C.  }.} {57 56 5
130f0 31 20 34 36 20 34 35 20 34 33 20 34 32 20 34 30  1 46 45 43 42 40
13100 20 33 39 20 33 36 20 33 35 20 33 34 20 32 38 20   39 36 35 34 28 
13110 32 37 20 32 36 20 32 35 20 32 34 20 32 32 20 32  27 26 25 24 22 2
13120 30 20 31 39 20 31 38 20 31 37 20 31 35 20 31 34  0 19 18 17 15 14
13130 20 31 33 20 31 32 20 31 30 20 39 20 37 20 36 20   13 12 10 9 7 6 
13140 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
13150 61 72 79 33 2d 32 2e 31 32 2e 67 74 2e 33 20 7b  ary3-2.12.gt.3 {
13160 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
13170 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
13180 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
13190 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a  t1.rowid > t2.r.
131a0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
131b0 36 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  62.     ORDER BY
131c0 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
131d0 7b 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36  {15 42 18 24 9 6
131e0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
131f0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
13200 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
13210 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
13220 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
13230 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
13240 32 2e 67 74 2e 34 20 7b 0a 20 20 64 62 20 65 76  2.gt.4 {.  db ev
13250 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
13260 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
13270 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
13280 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
13290 52 45 20 74 32 2e 61 3d 36 32 0a 20 20 20 20 20  RE t2.a=62.     
132a0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
132b0 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
132c0 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
132d0 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
132e0 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32   7 19 57 35 46 2
132f0 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
13300 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
13310 20 34 32 20 31 35 7d 0a 64 6f 5f 74 65 73 74 20   42 15}.do_test 
13320 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 32 2e 67  boundary3-2.12.g
13330 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.5 {.  db eval 
13340 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
13350 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
13360 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
13370 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
13380 74 32 2e 61 3d 36 32 0a 20 20 20 20 20 4f 52 44  t2.a=62.     ORD
13390 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 31  ER BY x.  }.} {1
133a0 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
133b0 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
133c0 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
133d0 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
133e0 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
133f0 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
13400 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 32 2e   boundary3-2.12.
13410 67 74 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  gt.10 {.  db eva
13420 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
13430 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
13440 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
13450 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  > CAST(t2.r AS r
13460 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
13470 74 32 2e 61 3d 36 32 0a 20 20 20 20 20 4f 52 44  t2.a=62.     ORD
13480 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20  ER BY t1.rowid. 
13490 20 7d 0a 7d 20 7b 31 35 20 34 32 20 31 38 20 32   }.} {15 42 18 2
134a0 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
134b0 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
134c0 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
134d0 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
134e0 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
134f0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
13500 33 2d 32 2e 31 32 2e 67 74 2e 31 31 20 7b 0a 20  3-2.12.gt.11 {. 
13510 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
13520 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
13530 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
13540 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32  .rowid > CAST(t2
13550 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
13560 20 57 48 45 52 45 20 74 32 2e 61 3d 36 32 0a 20   WHERE t2.a=62. 
13570 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
13580 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
13590 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20   {3 28 17 45 27 
135a0 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32  43 13 26 10 34 2
135b0 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20  5 56 7 19 57 35 
135c0 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35  46 22 39 36 14 5
135d0 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32  1 20 40 12 6 9 2
135e0 34 20 31 38 20 34 32 20 31 35 7d 0a 64 6f 5f 74  4 18 42 15}.do_t
135f0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
13600 31 32 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65  12.ge.1 {.  db e
13610 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
13620 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.a FROM t1 JO
13630 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20  IN t2 USING(a). 
13640 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
13650 69 64 20 3e 3d 20 36 35 35 33 36 20 4f 52 44 45  id >= 65536 ORDE
13660 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20  R BY t2.a.  }.} 
13670 7b 33 20 36 20 37 20 39 20 31 30 20 31 32 20 31  {3 6 7 9 10 12 1
13680 33 20 31 34 20 31 35 20 31 37 20 31 38 20 31 39  3 14 15 17 18 19
13690 20 32 30 20 32 32 20 32 34 20 32 35 20 32 36 20   20 22 24 25 26 
136a0 32 37 20 32 38 20 33 34 20 33 35 20 33 36 20 33  27 28 34 35 36 3
136b0 39 20 34 30 20 34 32 20 34 33 20 34 35 20 34 36  9 40 42 43 45 46
136c0 20 35 31 20 35 36 20 35 37 20 36 32 7d 0a 64 6f   51 56 57 62}.do
136d0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
136e0 32 2e 31 32 2e 67 65 2e 32 20 7b 0a 20 20 64 62  2.12.ge.2 {.  db
136f0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
13700 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
13710 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
13720 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
13730 77 69 64 20 3e 3d 20 36 35 35 33 36 20 4f 52 44  wid >= 65536 ORD
13740 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
13750 20 20 7d 0a 7d 20 7b 36 32 20 35 37 20 35 36 20    }.} {62 57 56 
13760 35 31 20 34 36 20 34 35 20 34 33 20 34 32 20 34  51 46 45 43 42 4
13770 30 20 33 39 20 33 36 20 33 35 20 33 34 20 32 38  0 39 36 35 34 28
13780 20 32 37 20 32 36 20 32 35 20 32 34 20 32 32 20   27 26 25 24 22 
13790 32 30 20 31 39 20 31 38 20 31 37 20 31 35 20 31  20 19 18 17 15 1
137a0 34 20 31 33 20 31 32 20 31 30 20 39 20 37 20 36  4 13 12 10 9 7 6
137b0 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
137c0 64 61 72 79 33 2d 32 2e 31 32 2e 67 65 2e 33 20  dary3-2.12.ge.3 
137d0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
137e0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
137f0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
13800 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e   t1.rowid >= t2.
13810 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
13820 61 3d 36 32 0a 20 20 20 20 20 4f 52 44 45 52 20  a=62.     ORDER 
13830 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
13840 7d 20 7b 36 32 20 31 35 20 34 32 20 31 38 20 32  } {62 15 42 18 2
13850 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
13860 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
13870 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
13880 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
13890 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
138a0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
138b0 33 2d 32 2e 31 32 2e 67 65 2e 34 20 7b 0a 20 20  3-2.12.ge.4 {.  
138c0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
138d0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
138e0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
138f0 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20  rowid >= t2.r.  
13900 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 32     WHERE t2.a=62
13910 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
13920 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
13930 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
13940 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
13950 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
13960 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
13970 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
13980 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 7d   24 18 42 15 62}
13990 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
139a0 79 33 2d 32 2e 31 32 2e 67 65 2e 35 20 7b 0a 20  y3-2.12.ge.5 {. 
139b0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
139c0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
139d0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
139e0 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20  .rowid >= t2.r. 
139f0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36      WHERE t2.a=6
13a00 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  2.     ORDER BY 
13a10 78 0a 20 20 7d 0a 7d 20 7b 36 32 20 31 35 20 34  x.  }.} {62 15 4
13a20 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
13a30 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
13a40 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
13a50 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
13a60 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
13a70 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
13a80 75 6e 64 61 72 79 33 2d 32 2e 31 32 2e 67 65 2e  undary3-2.12.ge.
13a90 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  10 {.  db eval {
13aa0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
13ab0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
13ac0 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
13ad0 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
13ae0 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
13af0 2e 61 3d 36 32 0a 20 20 20 20 20 4f 52 44 45 52  .a=62.     ORDER
13b00 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
13b10 0a 7d 20 7b 36 32 20 31 35 20 34 32 20 31 38 20  .} {62 15 42 18 
13b20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
13b30 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
13b40 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
13b50 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
13b60 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
13b70 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
13b80 79 33 2d 32 2e 31 32 2e 67 65 2e 31 31 20 7b 0a  y3-2.12.ge.11 {.
13b90 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
13ba0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
13bb0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
13bc0 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
13bd0 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
13be0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 32     WHERE t2.a=62
13bf0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
13c00 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
13c10 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
13c20 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
13c30 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
13c40 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
13c50 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
13c60 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 7d   24 18 42 15 62}
13c70 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
13c80 79 33 2d 32 2e 31 32 2e 6c 74 2e 31 20 7b 0a 20  y3-2.12.lt.1 {. 
13c90 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
13ca0 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
13cb0 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
13cc0 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
13cd0 31 2e 72 6f 77 69 64 20 3c 20 36 35 35 33 36 20  1.rowid < 65536 
13ce0 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20  ORDER BY t2.a.  
13cf0 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 38 20 31  }.} {1 2 4 5 8 1
13d00 31 20 31 36 20 32 31 20 32 33 20 32 39 20 33 30  1 16 21 23 29 30
13d10 20 33 31 20 33 32 20 33 33 20 33 37 20 33 38 20   31 32 33 37 38 
13d20 34 31 20 34 34 20 34 37 20 34 38 20 34 39 20 35  41 44 47 48 49 5
13d30 30 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38  0 52 53 54 55 58
13d40 20 35 39 20 36 30 20 36 31 20 36 33 20 36 34 7d   59 60 61 63 64}
13d50 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
13d60 79 33 2d 32 2e 31 32 2e 6c 74 2e 32 20 7b 0a 20  y3-2.12.lt.2 {. 
13d70 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
13d80 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
13d90 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
13da0 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
13db0 2e 72 6f 77 69 64 20 3c 20 36 35 35 33 36 20 4f  .rowid < 65536 O
13dc0 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
13dd0 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36  C.  }.} {64 63 6
13de0 31 20 36 30 20 35 39 20 35 38 20 35 35 20 35 34  1 60 59 58 55 54
13df0 20 35 33 20 35 32 20 35 30 20 34 39 20 34 38 20   53 52 50 49 48 
13e00 34 37 20 34 34 20 34 31 20 33 38 20 33 37 20 33  47 44 41 38 37 3
13e10 33 20 33 32 20 33 31 20 33 30 20 32 39 20 32 33  3 32 31 30 29 23
13e20 20 32 31 20 31 36 20 31 31 20 38 20 35 20 34 20   21 16 11 8 5 4 
13e30 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  2 1}.do_test bou
13e40 6e 64 61 72 79 33 2d 32 2e 31 32 2e 6c 74 2e 33  ndary3-2.12.lt.3
13e50 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
13e60 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
13e70 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
13e80 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
13e90 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
13ea0 61 3d 36 32 0a 20 20 20 20 20 4f 52 44 45 52 20  a=62.     ORDER 
13eb0 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
13ec0 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
13ed0 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
13ee0 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
13ef0 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
13f00 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
13f10 38 20 31 36 20 32 33 20 35 30 20 34 38 7d 0a 64  8 16 23 50 48}.d
13f20 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
13f30 2d 32 2e 31 32 2e 6c 74 2e 34 20 7b 0a 20 20 64  -2.12.lt.4 {.  d
13f40 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
13f50 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
13f60 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
13f70 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20  owid < t2.r.    
13f80 20 57 48 45 52 45 20 74 32 2e 61 3d 36 32 0a 20   WHERE t2.a=62. 
13f90 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
13fa0 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
13fb0 20 7b 34 38 20 35 30 20 32 33 20 31 36 20 38 20   {48 50 23 16 8 
13fc0 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20  61 30 49 4 31 5 
13fd0 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35  41 60 59 38 33 5
13fe0 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37  2 53 54 32 29 37
13ff0 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34   1 11 47 63 58 4
14000 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f  4 21 64 2 55}.do
14010 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
14020 32 2e 31 32 2e 6c 74 2e 35 20 7b 0a 20 20 64 62  2.12.lt.5 {.  db
14030 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
14040 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
14050 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
14060 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20  wid < t2.r.     
14070 57 48 45 52 45 20 74 32 2e 61 3d 36 32 0a 20 20  WHERE t2.a=62.  
14080 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
14090 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20  }.} {59 60 41 5 
140a0 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
140b0 31 36 20 32 33 20 35 30 20 34 38 20 35 35 20 32  16 23 50 48 55 2
140c0 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
140d0 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
140e0 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d   54 53 52 33 38}
140f0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
14100 79 33 2d 32 2e 31 32 2e 6c 74 2e 31 30 20 7b 0a  y3-2.12.lt.10 {.
14110 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
14120 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
14130 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
14140 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74  1.rowid < CAST(t
14150 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
14160 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 32 0a    WHERE t2.a=62.
14170 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
14180 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
14190 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
141a0 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
141b0 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
141c0 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20  8 59 60 41 5 31 
141d0 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
141e0 32 33 20 35 30 20 34 38 7d 0a 64 6f 5f 74 65 73  23 50 48}.do_tes
141f0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 32  t boundary3-2.12
14200 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76  .lt.11 {.  db ev
14210 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
14220 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
14230 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
14240 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53 20   < CAST(t2.r AS 
14250 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
14260 20 74 32 2e 61 3d 36 32 0a 20 20 20 20 20 4f 52   t2.a=62.     OR
14270 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
14280 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34 38 20 35  DESC.  }.} {48 5
14290 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
142a0 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
142b0 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
142c0 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
142d0 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
142e0 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
142f0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 32 2e 6c  boundary3-2.12.l
14300 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.1 {.  db eval 
14310 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
14320 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
14330 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
14340 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
14350 3d 20 36 35 35 33 36 20 4f 52 44 45 52 20 42 59  = 65536 ORDER BY
14360 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32   t2.a.  }.} {1 2
14370 20 34 20 35 20 38 20 31 31 20 31 36 20 32 31 20   4 5 8 11 16 21 
14380 32 33 20 32 39 20 33 30 20 33 31 20 33 32 20 33  23 29 30 31 32 3
14390 33 20 33 37 20 33 38 20 34 31 20 34 34 20 34 37  3 37 38 41 44 47
143a0 20 34 38 20 34 39 20 35 30 20 35 32 20 35 33 20   48 49 50 52 53 
143b0 35 34 20 35 35 20 35 38 20 35 39 20 36 30 20 36  54 55 58 59 60 6
143c0 31 20 36 32 20 36 33 20 36 34 7d 0a 64 6f 5f 74  1 62 63 64}.do_t
143d0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
143e0 31 32 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20 65  12.le.2 {.  db e
143f0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
14400 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41   t2.a FROM t2 NA
14410 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20  TURAL JOIN t1.  
14420 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
14430 64 20 3c 3d 20 36 35 35 33 36 20 4f 52 44 45 52  d <= 65536 ORDER
14440 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
14450 7d 0a 7d 20 7b 36 34 20 36 33 20 36 32 20 36 31  }.} {64 63 62 61
14460 20 36 30 20 35 39 20 35 38 20 35 35 20 35 34 20   60 59 58 55 54 
14470 35 33 20 35 32 20 35 30 20 34 39 20 34 38 20 34  53 52 50 49 48 4
14480 37 20 34 34 20 34 31 20 33 38 20 33 37 20 33 33  7 44 41 38 37 33
14490 20 33 32 20 33 31 20 33 30 20 32 39 20 32 33 20   32 31 30 29 23 
144a0 32 31 20 31 36 20 31 31 20 38 20 35 20 34 20 32  21 16 11 8 5 4 2
144b0 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   1}.do_test boun
144c0 64 61 72 79 33 2d 32 2e 31 32 2e 6c 65 2e 33 20  dary3-2.12.le.3 
144d0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
144e0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
144f0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
14500 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e   t1.rowid <= t2.
14510 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
14520 61 3d 36 32 0a 20 20 20 20 20 4f 52 44 45 52 20  a=62.     ORDER 
14530 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
14540 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
14550 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
14560 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
14570 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
14580 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
14590 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
145a0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
145b0 72 79 33 2d 32 2e 31 32 2e 6c 65 2e 34 20 7b 0a  ry3-2.12.le.4 {.
145c0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
145d0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
145e0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
145f0 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a  1.rowid <= t2.r.
14600 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
14610 36 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  62.     ORDER BY
14620 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
14630 20 7d 0a 7d 20 7b 36 32 20 34 38 20 35 30 20 32   }.} {62 48 50 2
14640 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
14650 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
14660 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
14670 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
14680 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
14690 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
146a0 6e 64 61 72 79 33 2d 32 2e 31 32 2e 6c 65 2e 35  ndary3-2.12.le.5
146b0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
146c0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
146d0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
146e0 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
146f0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
14700 2e 61 3d 36 32 0a 20 20 20 20 20 4f 52 44 45 52  .a=62.     ORDER
14710 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20   BY x.  }.} {59 
14720 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
14730 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
14740 20 34 38 20 36 32 20 35 35 20 32 20 36 34 20 32   48 62 55 2 64 2
14750 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
14760 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
14770 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74  3 52 33 38}.do_t
14780 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
14790 31 32 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20  12.le.10 {.  db 
147a0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
147b0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
147c0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
147d0 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20  id <= CAST(t2.r 
147e0 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
147f0 45 52 45 20 74 32 2e 61 3d 36 32 0a 20 20 20 20  ERE t2.a=62.    
14800 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
14810 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36  id.  }.} {55 2 6
14820 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
14830 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
14840 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
14850 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
14860 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
14870 30 20 34 38 20 36 32 7d 0a 64 6f 5f 74 65 73 74  0 48 62}.do_test
14880 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 32 2e   boundary3-2.12.
14890 6c 65 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61  le.11 {.  db eva
148a0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
148b0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
148c0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
148d0 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  <= CAST(t2.r AS 
148e0 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
148f0 20 74 32 2e 61 3d 36 32 0a 20 20 20 20 20 4f 52   t2.a=62.     OR
14900 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
14910 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32 20 34  DESC.  }.} {62 4
14920 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
14930 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
14940 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
14950 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
14960 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
14970 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
14980 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
14990 33 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  3.1 {.  db eval 
149a0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
149b0 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48  * FROM t1, t2 WH
149c0 45 52 45 20 74 31 2e 72 6f 77 69 64 3d 32 36 38  ERE t1.rowid=268
149d0 34 33 35 34 35 36 20 41 4e 44 20 74 32 2e 61 3d  435456 AND t2.a=
149e0 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 34 30 20 30  t1.a.  }.} {40 0
149f0 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 7d  000000010000000}
14a00 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
14a10 79 33 2d 32 2e 31 33 2e 32 20 7b 0a 20 20 64 62  y3-2.13.2 {.  db
14a20 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
14a30 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20  CT t2.* FROM t1 
14a40 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
14a50 20 57 48 45 52 45 20 78 3d 27 30 30 30 30 30 30   WHERE x='000000
14a60 30 30 31 30 30 30 30 30 30 30 27 0a 20 20 7d 0a  0010000000'.  }.
14a70 7d 20 7b 32 36 38 34 33 35 34 35 36 20 34 30 7d  } {268435456 40}
14a80 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
14a90 79 33 2d 32 2e 31 33 2e 33 20 7b 0a 20 20 64 62  y3-2.13.3 {.  db
14aa0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
14ab0 43 54 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46  CT t1.rowid, x F
14ac0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
14ad0 4e 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20  N t2.r=t1.rowid 
14ae0 57 48 45 52 45 20 74 32 2e 61 3d 34 30 0a 20 20  WHERE t2.a=40.  
14af0 7d 0a 7d 20 7b 32 36 38 34 33 35 34 35 36 20 30  }.} {268435456 0
14b00 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 7d  000000010000000}
14b10 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
14b20 79 33 2d 32 2e 31 33 2e 67 74 2e 31 20 7b 0a 20  y3-2.13.gt.1 {. 
14b30 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
14b40 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
14b50 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
14b60 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
14b70 31 2e 72 6f 77 69 64 20 3e 20 32 36 38 34 33 35  1.rowid > 268435
14b80 34 35 36 20 4f 52 44 45 52 20 42 59 20 74 32 2e  456 ORDER BY t2.
14b90 61 0a 20 20 7d 0a 7d 20 7b 33 20 37 20 31 30 20  a.  }.} {3 7 10 
14ba0 31 33 20 31 34 20 31 37 20 31 39 20 32 30 20 32  13 14 17 19 20 2
14bb0 32 20 32 35 20 32 36 20 32 37 20 32 38 20 33 34  2 25 26 27 28 34
14bc0 20 33 35 20 33 36 20 33 39 20 34 33 20 34 35 20   35 36 39 43 45 
14bd0 34 36 20 35 31 20 35 36 20 35 37 7d 0a 64 6f 5f  46 51 56 57}.do_
14be0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
14bf0 2e 31 33 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20  .13.gt.2 {.  db 
14c00 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
14c10 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
14c20 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
14c30 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
14c40 69 64 20 3e 20 32 36 38 34 33 35 34 35 36 20 4f  id > 268435456 O
14c50 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
14c60 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 35 36 20 35  C.  }.} {57 56 5
14c70 31 20 34 36 20 34 35 20 34 33 20 33 39 20 33 36  1 46 45 43 39 36
14c80 20 33 35 20 33 34 20 32 38 20 32 37 20 32 36 20   35 34 28 27 26 
14c90 32 35 20 32 32 20 32 30 20 31 39 20 31 37 20 31  25 22 20 19 17 1
14ca0 34 20 31 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f  4 13 10 7 3}.do_
14cb0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
14cc0 2e 31 33 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20  .13.gt.3 {.  db 
14cd0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
14ce0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
14cf0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
14d00 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
14d10 48 45 52 45 20 74 32 2e 61 3d 34 30 0a 20 20 20  HERE t2.a=40.   
14d20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
14d30 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 30 20 35 31  wid.  }.} {20 51
14d40 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
14d50 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
14d60 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
14d70 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
14d80 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
14d90 2d 32 2e 31 33 2e 67 74 2e 34 20 7b 0a 20 20 64  -2.13.gt.4 {.  d
14da0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
14db0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
14dc0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
14dd0 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20  owid > t2.r.    
14de0 20 57 48 45 52 45 20 74 32 2e 61 3d 34 30 0a 20   WHERE t2.a=40. 
14df0 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
14e00 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
14e10 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20   {3 28 17 45 27 
14e20 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32  43 13 26 10 34 2
14e30 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20  5 56 7 19 57 35 
14e40 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35  46 22 39 36 14 5
14e50 31 20 32 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  1 20}.do_test bo
14e60 75 6e 64 61 72 79 33 2d 32 2e 31 33 2e 67 74 2e  undary3-2.13.gt.
14e70 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
14e80 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
14e90 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
14ea0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32  ON t1.rowid > t2
14eb0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
14ec0 2e 61 3d 34 30 0a 20 20 20 20 20 4f 52 44 45 52  .a=40.     ORDER
14ed0 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 32 30 20   BY x.  }.} {20 
14ee0 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
14ef0 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
14f00 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
14f10 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
14f20 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
14f30 79 33 2d 32 2e 31 33 2e 67 74 2e 31 30 20 7b 0a  y3-2.13.gt.10 {.
14f40 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
14f50 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
14f60 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
14f70 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74  1.rowid > CAST(t
14f80 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
14f90 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 30 0a    WHERE t2.a=40.
14fa0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
14fb0 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 30  .rowid.  }.} {20
14fc0 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
14fd0 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
14fe0 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
14ff0 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
15000 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
15010 72 79 33 2d 32 2e 31 33 2e 67 74 2e 31 31 20 7b  ry3-2.13.gt.11 {
15020 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
15030 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
15040 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
15050 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28  t1.rowid > CAST(
15060 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
15070 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 30     WHERE t2.a=40
15080 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
15090 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
150a0 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
150b0 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
150c0 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
150d0 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
150e0 20 35 31 20 32 30 7d 0a 64 6f 5f 74 65 73 74 20   51 20}.do_test 
150f0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 33 2e 67  boundary3-2.13.g
15100 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.1 {.  db eval 
15110 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
15120 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
15130 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
15140 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e  WHERE t1.rowid >
15150 3d 20 32 36 38 34 33 35 34 35 36 20 4f 52 44 45  = 268435456 ORDE
15160 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20  R BY t2.a.  }.} 
15170 7b 33 20 37 20 31 30 20 31 33 20 31 34 20 31 37  {3 7 10 13 14 17
15180 20 31 39 20 32 30 20 32 32 20 32 35 20 32 36 20   19 20 22 25 26 
15190 32 37 20 32 38 20 33 34 20 33 35 20 33 36 20 33  27 28 34 35 36 3
151a0 39 20 34 30 20 34 33 20 34 35 20 34 36 20 35 31  9 40 43 45 46 51
151b0 20 35 36 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20   56 57}.do_test 
151c0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 33 2e 67  boundary3-2.13.g
151d0 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.2 {.  db eval 
151e0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
151f0 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
15200 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
15210 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d  HERE t1.rowid >=
15220 20 32 36 38 34 33 35 34 35 36 20 4f 52 44 45 52   268435456 ORDER
15230 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
15240 7d 0a 7d 20 7b 35 37 20 35 36 20 35 31 20 34 36  }.} {57 56 51 46
15250 20 34 35 20 34 33 20 34 30 20 33 39 20 33 36 20   45 43 40 39 36 
15260 33 35 20 33 34 20 32 38 20 32 37 20 32 36 20 32  35 34 28 27 26 2
15270 35 20 32 32 20 32 30 20 31 39 20 31 37 20 31 34  5 22 20 19 17 14
15280 20 31 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f 74   13 10 7 3}.do_t
15290 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
152a0 31 33 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65  13.ge.3 {.  db e
152b0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
152c0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
152d0 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
152e0 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
152f0 48 45 52 45 20 74 32 2e 61 3d 34 30 0a 20 20 20  HERE t2.a=40.   
15300 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
15310 77 69 64 0a 20 20 7d 0a 7d 20 7b 34 30 20 32 30  wid.  }.} {40 20
15320 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
15330 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
15340 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
15350 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
15360 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
15370 72 79 33 2d 32 2e 31 33 2e 67 65 2e 34 20 7b 0a  ry3-2.13.ge.4 {.
15380 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
15390 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
153a0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
153b0 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
153c0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
153d0 34 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  40.     ORDER BY
153e0 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
153f0 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
15400 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20   27 43 13 26 10 
15410 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37  34 25 56 7 19 57
15420 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20   35 46 22 39 36 
15430 31 34 20 35 31 20 32 30 20 34 30 7d 0a 64 6f 5f  14 51 20 40}.do_
15440 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
15450 2e 31 33 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20  .13.ge.5 {.  db 
15460 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
15470 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
15480 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
15490 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
154a0 57 48 45 52 45 20 74 32 2e 61 3d 34 30 0a 20 20  WHERE t2.a=40.  
154b0 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
154c0 7d 0a 7d 20 7b 34 30 20 32 30 20 35 31 20 31 34  }.} {40 20 51 14
154d0 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
154e0 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
154f0 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
15500 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
15510 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
15520 31 33 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20  13.ge.10 {.  db 
15530 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
15540 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
15550 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
15560 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20  id >= CAST(t2.r 
15570 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
15580 45 52 45 20 74 32 2e 61 3d 34 30 0a 20 20 20 20  ERE t2.a=40.    
15590 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
155a0 69 64 0a 20 20 7d 0a 7d 20 7b 34 30 20 32 30 20  id.  }.} {40 20 
155b0 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
155c0 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
155d0 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
155e0 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
155f0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
15600 79 33 2d 32 2e 31 33 2e 67 65 2e 31 31 20 7b 0a  y3-2.13.ge.11 {.
15610 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
15620 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
15630 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
15640 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
15650 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
15660 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 30     WHERE t2.a=40
15670 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
15680 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
15690 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
156a0 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
156b0 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
156c0 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
156d0 20 35 31 20 32 30 20 34 30 7d 0a 64 6f 5f 74 65   51 20 40}.do_te
156e0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
156f0 33 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20 65 76  3.lt.1 {.  db ev
15700 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
15710 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
15720 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
15730 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
15740 64 20 3c 20 32 36 38 34 33 35 34 35 36 20 4f 52  d < 268435456 OR
15750 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
15760 7d 20 7b 31 20 32 20 34 20 35 20 36 20 38 20 39  } {1 2 4 5 6 8 9
15770 20 31 31 20 31 32 20 31 35 20 31 36 20 31 38 20   11 12 15 16 18 
15780 32 31 20 32 33 20 32 34 20 32 39 20 33 30 20 33  21 23 24 29 30 3
15790 31 20 33 32 20 33 33 20 33 37 20 33 38 20 34 31  1 32 33 37 38 41
157a0 20 34 32 20 34 34 20 34 37 20 34 38 20 34 39 20   42 44 47 48 49 
157b0 35 30 20 35 32 20 35 33 20 35 34 20 35 35 20 35  50 52 53 54 55 5
157c0 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36 33  8 59 60 61 62 63
157d0 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
157e0 6e 64 61 72 79 33 2d 32 2e 31 33 2e 6c 74 2e 32  ndary3-2.13.lt.2
157f0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
15800 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
15810 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
15820 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
15830 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 32 36 38  E t1.rowid < 268
15840 34 33 35 34 35 36 20 4f 52 44 45 52 20 42 59 20  435456 ORDER BY 
15850 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
15860 7b 36 34 20 36 33 20 36 32 20 36 31 20 36 30 20  {64 63 62 61 60 
15870 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20 35  59 58 55 54 53 5
15880 32 20 35 30 20 34 39 20 34 38 20 34 37 20 34 34  2 50 49 48 47 44
15890 20 34 32 20 34 31 20 33 38 20 33 37 20 33 33 20   42 41 38 37 33 
158a0 33 32 20 33 31 20 33 30 20 32 39 20 32 34 20 32  32 31 30 29 24 2
158b0 33 20 32 31 20 31 38 20 31 36 20 31 35 20 31 32  3 21 18 16 15 12
158c0 20 31 31 20 39 20 38 20 36 20 35 20 34 20 32 20   11 9 8 6 5 4 2 
158d0 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  1}.do_test bound
158e0 61 72 79 33 2d 32 2e 31 33 2e 6c 74 2e 33 20 7b  ary3-2.13.lt.3 {
158f0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
15900 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
15910 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
15920 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a  t1.rowid < t2.r.
15930 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
15940 34 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  40.     ORDER BY
15950 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
15960 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35  {55 2 64 21 44 5
15970 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
15980 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
15990 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20  3 38 59 60 41 5 
159a0 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
159b0 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
159c0 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
159d0 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  2}.do_test bound
159e0 61 72 79 33 2d 32 2e 31 33 2e 6c 74 2e 34 20 7b  ary3-2.13.lt.4 {
159f0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
15a00 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
15a10 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
15a20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a  t1.rowid < t2.r.
15a30 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
15a40 34 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  40.     ORDER BY
15a50 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
15a60 20 7d 0a 7d 20 7b 31 32 20 36 20 39 20 32 34 20   }.} {12 6 9 24 
15a70 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
15a80 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
15a90 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
15aa0 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
15ab0 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
15ac0 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
15ad0 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
15ae0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 33 2e 6c  boundary3-2.13.l
15af0 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.5 {.  db eval 
15b00 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
15b10 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
15b20 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
15b30 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
15b40 74 32 2e 61 3d 34 30 0a 20 20 20 20 20 4f 52 44  t2.a=40.     ORD
15b50 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35  ER BY x.  }.} {5
15b60 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
15b70 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
15b80 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
15b90 38 20 32 34 20 39 20 36 20 31 32 20 35 35 20 32  8 24 9 6 12 55 2
15ba0 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
15bb0 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
15bc0 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d   54 53 52 33 38}
15bd0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
15be0 79 33 2d 32 2e 31 33 2e 6c 74 2e 31 30 20 7b 0a  y3-2.13.lt.10 {.
15bf0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
15c00 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
15c10 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
15c20 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74  1.rowid < CAST(t
15c30 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
15c40 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 30 0a    WHERE t2.a=40.
15c50 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
15c60 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
15c70 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
15c80 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
15c90 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
15ca0 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20  8 59 60 41 5 31 
15cb0 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
15cc0 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
15cd0 32 20 31 38 20 32 34 20 39 20 36 20 31 32 7d 0a  2 18 24 9 6 12}.
15ce0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
15cf0 33 2d 32 2e 31 33 2e 6c 74 2e 31 31 20 7b 0a 20  3-2.13.lt.11 {. 
15d00 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
15d10 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
15d20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
15d30 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32  .rowid < CAST(t2
15d40 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
15d50 20 57 48 45 52 45 20 74 32 2e 61 3d 34 30 0a 20   WHERE t2.a=40. 
15d60 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
15d70 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
15d80 20 7b 31 32 20 36 20 39 20 32 34 20 31 38 20 34   {12 6 9 24 18 4
15d90 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
15da0 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
15db0 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
15dc0 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
15dd0 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
15de0 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
15df0 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
15e00 64 61 72 79 33 2d 32 2e 31 33 2e 6c 65 2e 31 20  dary3-2.13.le.1 
15e10 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
15e20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
15e30 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
15e40 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
15e50 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 32 36  E t1.rowid <= 26
15e60 38 34 33 35 34 35 36 20 4f 52 44 45 52 20 42 59  8435456 ORDER BY
15e70 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32   t2.a.  }.} {1 2
15e80 20 34 20 35 20 36 20 38 20 39 20 31 31 20 31 32   4 5 6 8 9 11 12
15e90 20 31 35 20 31 36 20 31 38 20 32 31 20 32 33 20   15 16 18 21 23 
15ea0 32 34 20 32 39 20 33 30 20 33 31 20 33 32 20 33  24 29 30 31 32 3
15eb0 33 20 33 37 20 33 38 20 34 30 20 34 31 20 34 32  3 37 38 40 41 42
15ec0 20 34 34 20 34 37 20 34 38 20 34 39 20 35 30 20   44 47 48 49 50 
15ed0 35 32 20 35 33 20 35 34 20 35 35 20 35 38 20 35  52 53 54 55 58 5
15ee0 39 20 36 30 20 36 31 20 36 32 20 36 33 20 36 34  9 60 61 62 63 64
15ef0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
15f00 72 79 33 2d 32 2e 31 33 2e 6c 65 2e 32 20 7b 0a  ry3-2.13.le.2 {.
15f10 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
15f20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
15f30 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e   t2 NATURAL JOIN
15f40 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74   t1.     WHERE t
15f50 31 2e 72 6f 77 69 64 20 3c 3d 20 32 36 38 34 33  1.rowid <= 26843
15f60 35 34 35 36 20 4f 52 44 45 52 20 42 59 20 74 31  5456 ORDER BY t1
15f70 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36  .a DESC.  }.} {6
15f80 34 20 36 33 20 36 32 20 36 31 20 36 30 20 35 39  4 63 62 61 60 59
15f90 20 35 38 20 35 35 20 35 34 20 35 33 20 35 32 20   58 55 54 53 52 
15fa0 35 30 20 34 39 20 34 38 20 34 37 20 34 34 20 34  50 49 48 47 44 4
15fb0 32 20 34 31 20 34 30 20 33 38 20 33 37 20 33 33  2 41 40 38 37 33
15fc0 20 33 32 20 33 31 20 33 30 20 32 39 20 32 34 20   32 31 30 29 24 
15fd0 32 33 20 32 31 20 31 38 20 31 36 20 31 35 20 31  23 21 18 16 15 1
15fe0 32 20 31 31 20 39 20 38 20 36 20 35 20 34 20 32  2 11 9 8 6 5 4 2
15ff0 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   1}.do_test boun
16000 64 61 72 79 33 2d 32 2e 31 33 2e 6c 65 2e 33 20  dary3-2.13.le.3 
16010 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
16020 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
16030 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
16040 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e   t1.rowid <= t2.
16050 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
16060 61 3d 34 30 0a 20 20 20 20 20 4f 52 44 45 52 20  a=40.     ORDER 
16070 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
16080 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
16090 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
160a0 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
160b0 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
160c0 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
160d0 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
160e0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
160f0 20 31 32 20 34 30 7d 0a 64 6f 5f 74 65 73 74 20   12 40}.do_test 
16100 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 33 2e 6c  boundary3-2.13.l
16110 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.4 {.  db eval 
16120 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
16130 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
16140 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
16150 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
16160 20 74 32 2e 61 3d 34 30 0a 20 20 20 20 20 4f 52   t2.a=40.     OR
16170 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
16180 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34 30 20 31  DESC.  }.} {40 1
16190 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
161a0 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
161b0 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31   8 61 30 49 4 31
161c0 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33   5 41 60 59 38 3
161d0 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
161e0 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
161f0 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
16200 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
16210 79 33 2d 32 2e 31 33 2e 6c 65 2e 35 20 7b 0a 20  y3-2.13.le.5 {. 
16220 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
16230 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
16240 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
16250 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
16260 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34      WHERE t2.a=4
16270 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  0.     ORDER BY 
16280 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  x.  }.} {59 60 4
16290 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
162a0 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
162b0 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
162c0 20 36 20 31 32 20 34 30 20 35 35 20 32 20 36 34   6 12 40 55 2 64
162d0 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
162e0 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
162f0 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f   53 52 33 38}.do
16300 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
16310 32 2e 31 33 2e 6c 65 2e 31 30 20 7b 0a 20 20 64  2.13.le.10 {.  d
16320 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
16330 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
16340 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
16350 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e  owid <= CAST(t2.
16360 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
16370 57 48 45 52 45 20 74 32 2e 61 3d 34 30 0a 20 20  WHERE t2.a=40.  
16380 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
16390 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32  owid.  }.} {55 2
163a0 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
163b0 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
163c0 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20   54 53 52 33 38 
163d0 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
163e0 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
163f0 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
16400 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 7d  18 24 9 6 12 40}
16410 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
16420 79 33 2d 32 2e 31 33 2e 6c 65 2e 31 31 20 7b 0a  y3-2.13.le.11 {.
16430 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
16440 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
16450 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
16460 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28  1.rowid <= CAST(
16470 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
16480 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 30     WHERE t2.a=40
16490 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
164a0 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
164b0 0a 7d 20 7b 34 30 20 31 32 20 36 20 39 20 32 34  .} {40 12 6 9 24
164c0 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20   18 42 15 62 48 
164d0 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
164e0 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
164f0 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
16500 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
16510 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
16520 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
16530 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 34 2e   boundary3-2.14.
16540 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
16550 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 2a 20      SELECT t1.* 
16560 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52  FROM t1, t2 WHER
16570 45 20 74 31 2e 72 6f 77 69 64 3d 2d 31 34 30 37  E t1.rowid=-1407
16580 33 37 34 38 38 33 35 35 33 32 38 20 41 4e 44 20  37488355328 AND 
16590 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20  t2.a=t1.a.  }.} 
165a0 7b 34 34 20 66 66 66 66 38 30 30 30 30 30 30 30  {44 ffff80000000
165b0 30 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  0000}.do_test bo
165c0 75 6e 64 61 72 79 33 2d 32 2e 31 34 2e 32 20 7b  undary3-2.14.2 {
165d0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
165e0 20 53 45 4c 45 43 54 20 74 32 2e 2a 20 46 52 4f   SELECT t2.* FRO
165f0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
16600 4e 47 28 61 29 20 57 48 45 52 45 20 78 3d 27 66  NG(a) WHERE x='f
16610 66 66 66 38 30 30 30 30 30 30 30 30 30 30 30 27  fff800000000000'
16620 0a 20 20 7d 0a 7d 20 7b 2d 31 34 30 37 33 37 34  .  }.} {-1407374
16630 38 38 33 35 35 33 32 38 20 34 34 7d 0a 64 6f 5f  88355328 44}.do_
16640 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
16650 2e 31 34 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .14.3 {.  db eva
16660 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
16670 31 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f 4d 20  1.rowid, x FROM 
16680 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 32  t1 JOIN t2 ON t2
16690 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57 48 45 52  .r=t1.rowid WHER
166a0 45 20 74 32 2e 61 3d 34 34 0a 20 20 7d 0a 7d 20  E t2.a=44.  }.} 
166b0 7b 2d 31 34 30 37 33 37 34 38 38 33 35 35 33 32  {-14073748835532
166c0 38 20 66 66 66 66 38 30 30 30 30 30 30 30 30 30  8 ffff8000000000
166d0 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  00}.do_test boun
166e0 64 61 72 79 33 2d 32 2e 31 34 2e 67 74 2e 31 20  dary3-2.14.gt.1 
166f0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
16700 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
16710 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
16720 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
16730 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 2d 31 34  E t1.rowid > -14
16740 30 37 33 37 34 38 38 33 35 35 33 32 38 20 4f 52  0737488355328 OR
16750 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
16760 7d 20 7b 31 20 33 20 34 20 35 20 36 20 37 20 38  } {1 3 4 5 6 7 8
16770 20 39 20 31 30 20 31 31 20 31 32 20 31 33 20 31   9 10 11 12 13 1
16780 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
16790 20 32 30 20 32 32 20 32 33 20 32 34 20 32 35 20   20 22 23 24 25 
167a0 32 36 20 32 37 20 32 38 20 32 39 20 33 30 20 33  26 27 28 29 30 3
167b0 31 20 33 32 20 33 33 20 33 34 20 33 35 20 33 36  1 32 33 34 35 36
167c0 20 33 37 20 33 38 20 33 39 20 34 30 20 34 31 20   37 38 39 40 41 
167d0 34 32 20 34 33 20 34 35 20 34 36 20 34 37 20 34  42 43 45 46 47 4
167e0 38 20 34 39 20 35 30 20 35 31 20 35 32 20 35 33  8 49 50 51 52 53
167f0 20 35 34 20 35 36 20 35 37 20 35 38 20 35 39 20   54 56 57 58 59 
16800 36 30 20 36 31 20 36 32 20 36 33 7d 0a 64 6f 5f  60 61 62 63}.do_
16810 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
16820 2e 31 34 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20  .14.gt.2 {.  db 
16830 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
16840 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
16850 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
16860 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
16870 69 64 20 3e 20 2d 31 34 30 37 33 37 34 38 38 33  id > -1407374883
16880 35 35 33 32 38 20 4f 52 44 45 52 20 42 59 20 74  55328 ORDER BY t
16890 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
168a0 36 33 20 36 32 20 36 31 20 36 30 20 35 39 20 35  63 62 61 60 59 5
168b0 38 20 35 37 20 35 36 20 35 34 20 35 33 20 35 32  8 57 56 54 53 52
168c0 20 35 31 20 35 30 20 34 39 20 34 38 20 34 37 20   51 50 49 48 47 
168d0 34 36 20 34 35 20 34 33 20 34 32 20 34 31 20 34  46 45 43 42 41 4
168e0 30 20 33 39 20 33 38 20 33 37 20 33 36 20 33 35  0 39 38 37 36 35
168f0 20 33 34 20 33 33 20 33 32 20 33 31 20 33 30 20   34 33 32 31 30 
16900 32 39 20 32 38 20 32 37 20 32 36 20 32 35 20 32  29 28 27 26 25 2
16910 34 20 32 33 20 32 32 20 32 30 20 31 39 20 31 38  4 23 22 20 19 18
16920 20 31 37 20 31 36 20 31 35 20 31 34 20 31 33 20   17 16 15 14 13 
16930 31 32 20 31 31 20 31 30 20 39 20 38 20 37 20 36  12 11 10 9 8 7 6
16940 20 35 20 34 20 33 20 31 7d 0a 64 6f 5f 74 65 73   5 4 3 1}.do_tes
16950 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 34  t boundary3-2.14
16960 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .gt.3 {.  db eva
16970 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
16980 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
16990 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
169a0 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
169b0 45 20 74 32 2e 61 3d 34 34 0a 20 20 20 20 20 4f  E t2.a=44.     O
169c0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
169d0 0a 20 20 7d 0a 7d 20 7b 35 38 20 36 33 20 34 37  .  }.} {58 63 47
169e0 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
169f0 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
16a00 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
16a10 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
16a20 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
16a30 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
16a40 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
16a50 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
16a60 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
16a70 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
16a80 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
16a90 72 79 33 2d 32 2e 31 34 2e 67 74 2e 34 20 7b 0a  ry3-2.14.gt.4 {.
16aa0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
16ab0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
16ac0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
16ad0 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20  1.rowid > t2.r. 
16ae0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34      WHERE t2.a=4
16af0 34 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  4.     ORDER BY 
16b00 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
16b10 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
16b20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
16b30 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
16b40 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
16b50 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
16b60 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
16b70 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
16b80 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
16b90 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
16ba0 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
16bb0 31 20 31 31 20 34 37 20 36 33 20 35 38 7d 0a 64  1 11 47 63 58}.d
16bc0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
16bd0 2d 32 2e 31 34 2e 67 74 2e 35 20 7b 0a 20 20 64  -2.14.gt.5 {.  d
16be0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
16bf0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
16c00 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
16c10 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20  owid > t2.r.    
16c20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 34 0a 20   WHERE t2.a=44. 
16c30 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
16c40 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35   }.} {59 60 41 5
16c50 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
16c60 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
16c70 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20  15 42 18 24 9 6 
16c80 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33  12 40 20 51 14 3
16c90 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
16ca0 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
16cb0 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
16cc0 20 31 37 20 32 38 20 33 20 35 38 20 36 33 20 34   17 28 3 58 63 4
16cd0 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20  7 11 1 37 29 32 
16ce0 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a  54 53 52 33 38}.
16cf0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
16d00 33 2d 32 2e 31 34 2e 67 65 2e 31 20 7b 0a 20 20  3-2.14.ge.1 {.  
16d10 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
16d20 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
16d30 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
16d40 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
16d50 2e 72 6f 77 69 64 20 3e 3d 20 2d 31 34 30 37 33  .rowid >= -14073
16d60 37 34 38 38 33 35 35 33 32 38 20 4f 52 44 45 52  7488355328 ORDER
16d70 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b   BY t2.a.  }.} {
16d80 31 20 33 20 34 20 35 20 36 20 37 20 38 20 39 20  1 3 4 5 6 7 8 9 
16d90 31 30 20 31 31 20 31 32 20 31 33 20 31 34 20 31  10 11 12 13 14 1
16da0 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32 30  5 16 17 18 19 20
16db0 20 32 32 20 32 33 20 32 34 20 32 35 20 32 36 20   22 23 24 25 26 
16dc0 32 37 20 32 38 20 32 39 20 33 30 20 33 31 20 33  27 28 29 30 31 3
16dd0 32 20 33 33 20 33 34 20 33 35 20 33 36 20 33 37  2 33 34 35 36 37
16de0 20 33 38 20 33 39 20 34 30 20 34 31 20 34 32 20   38 39 40 41 42 
16df0 34 33 20 34 34 20 34 35 20 34 36 20 34 37 20 34  43 44 45 46 47 4
16e00 38 20 34 39 20 35 30 20 35 31 20 35 32 20 35 33  8 49 50 51 52 53
16e10 20 35 34 20 35 36 20 35 37 20 35 38 20 35 39 20   54 56 57 58 59 
16e20 36 30 20 36 31 20 36 32 20 36 33 7d 0a 64 6f 5f  60 61 62 63}.do_
16e30 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
16e40 2e 31 34 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20  .14.ge.2 {.  db 
16e50 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
16e60 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
16e70 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
16e80 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
16e90 69 64 20 3e 3d 20 2d 31 34 30 37 33 37 34 38 38  id >= -140737488
16ea0 33 35 35 33 32 38 20 4f 52 44 45 52 20 42 59 20  355328 ORDER BY 
16eb0 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
16ec0 7b 36 33 20 36 32 20 36 31 20 36 30 20 35 39 20  {63 62 61 60 59 
16ed0 35 38 20 35 37 20 35 36 20 35 34 20 35 33 20 35  58 57 56 54 53 5
16ee0 32 20 35 31 20 35 30 20 34 39 20 34 38 20 34 37  2 51 50 49 48 47
16ef0 20 34 36 20 34 35 20 34 34 20 34 33 20 34 32 20   46 45 44 43 42 
16f00 34 31 20 34 30 20 33 39 20 33 38 20 33 37 20 33  41 40 39 38 37 3
16f10 36 20 33 35 20 33 34 20 33 33 20 33 32 20 33 31  6 35 34 33 32 31
16f20 20 33 30 20 32 39 20 32 38 20 32 37 20 32 36 20   30 29 28 27 26 
16f30 32 35 20 32 34 20 32 33 20 32 32 20 32 30 20 31  25 24 23 22 20 1
16f40 39 20 31 38 20 31 37 20 31 36 20 31 35 20 31 34  9 18 17 16 15 14
16f50 20 31 33 20 31 32 20 31 31 20 31 30 20 39 20 38   13 12 11 10 9 8
16f60 20 37 20 36 20 35 20 34 20 33 20 31 7d 0a 64 6f   7 6 5 4 3 1}.do
16f70 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
16f80 32 2e 31 34 2e 67 65 2e 33 20 7b 0a 20 20 64 62  2.14.ge.3 {.  db
16f90 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
16fa0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
16fb0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
16fc0 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20  wid >= t2.r.    
16fd0 20 57 48 45 52 45 20 74 32 2e 61 3d 34 34 0a 20   WHERE t2.a=44. 
16fe0 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
16ff0 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 34 34 20  rowid.  }.} {44 
17000 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
17010 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
17020 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
17030 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
17040 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
17050 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20  15 42 18 24 9 6 
17060 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33  12 40 20 51 14 3
17070 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
17080 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
17090 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
170a0 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
170b0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 34  t boundary3-2.14
170c0 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61  .ge.4 {.  db eva
170d0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
170e0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
170f0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
17100 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  >= t2.r.     WHE
17110 52 45 20 74 32 2e 61 3d 34 34 0a 20 20 20 20 20  RE t2.a=44.     
17120 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
17130 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
17140 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
17150 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
17160 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32   7 19 57 35 46 2
17170 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
17180 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
17190 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20   42 15 62 48 50 
171a0 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39  23 16 8 61 30 49
171b0 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39   4 31 5 41 60 59
171c0 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20   38 33 52 53 54 
171d0 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
171e0 20 36 33 20 35 38 20 34 34 7d 0a 64 6f 5f 74 65   63 58 44}.do_te
171f0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
17200 34 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20 65 76  4.ge.5 {.  db ev
17210 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
17220 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
17230 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
17240 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
17250 45 52 45 20 74 32 2e 61 3d 34 34 0a 20 20 20 20  ERE t2.a=44.    
17260 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a   ORDER BY x.  }.
17270 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31  } {59 60 41 5 31
17280 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
17290 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
172a0 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
172b0 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
172c0 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
172d0 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
172e0 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
172f0 20 32 38 20 33 20 34 34 20 35 38 20 36 33 20 34   28 3 44 58 63 4
17300 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20  7 11 1 37 29 32 
17310 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a  54 53 52 33 38}.
17320 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
17330 33 2d 32 2e 31 34 2e 6c 74 2e 31 20 7b 0a 20 20  3-2.14.lt.1 {.  
17340 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
17350 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
17360 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
17370 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
17380 2e 72 6f 77 69 64 20 3c 20 2d 31 34 30 37 33 37  .rowid < -140737
17390 34 38 38 33 35 35 33 32 38 20 4f 52 44 45 52 20  488355328 ORDER 
173a0 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 32  BY t2.a.  }.} {2
173b0 20 32 31 20 35 35 20 36 34 7d 0a 64 6f 5f 74 65   21 55 64}.do_te
173c0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
173d0 34 2e 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65 76  4.lt.2 {.  db ev
173e0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
173f0 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
17400 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
17410 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
17420 20 3c 20 2d 31 34 30 37 33 37 34 38 38 33 35 35   < -140737488355
17430 33 32 38 20 4f 52 44 45 52 20 42 59 20 74 31 2e  328 ORDER BY t1.
17440 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34  a DESC.  }.} {64
17450 20 35 35 20 32 31 20 32 7d 0a 64 6f 5f 74 65 73   55 21 2}.do_tes
17460 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 34  t boundary3-2.14
17470 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .lt.3 {.  db eva
17480 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
17490 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
174a0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
174b0 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  < t2.r.     WHER
174c0 45 20 74 32 2e 61 3d 34 34 0a 20 20 20 20 20 4f  E t2.a=44.     O
174d0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
174e0 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
174f0 32 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  21}.do_test boun
17500 64 61 72 79 33 2d 32 2e 31 34 2e 6c 74 2e 34 20  dary3-2.14.lt.4 
17510 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
17520 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
17530 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
17540 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
17550 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
17560 3d 34 34 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =44.     ORDER B
17570 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
17580 20 20 7d 0a 7d 20 7b 32 31 20 36 34 20 32 20 35    }.} {21 64 2 5
17590 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  5}.do_test bound
175a0 61 72 79 33 2d 32 2e 31 34 2e 6c 74 2e 35 20 7b  ary3-2.14.lt.5 {
175b0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
175c0 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
175d0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
175e0 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a  t1.rowid < t2.r.
175f0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
17600 34 34 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  44.     ORDER BY
17610 20 78 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36   x.  }.} {55 2 6
17620 34 20 32 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  4 21}.do_test bo
17630 75 6e 64 61 72 79 33 2d 32 2e 31 34 2e 6c 65 2e  undary3-2.14.le.
17640 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
17650 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
17660 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
17670 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
17680 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20  ERE t1.rowid <= 
17690 2d 31 34 30 37 33 37 34 38 38 33 35 35 33 32 38  -140737488355328
176a0 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
176b0 20 7d 0a 7d 20 7b 32 20 32 31 20 34 34 20 35 35   }.} {2 21 44 55
176c0 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
176d0 6e 64 61 72 79 33 2d 32 2e 31 34 2e 6c 65 2e 32  ndary3-2.14.le.2
176e0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
176f0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
17700 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
17710 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
17720 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 2d 31  E t1.rowid <= -1
17730 34 30 37 33 37 34 38 38 33 35 35 33 32 38 20 4f  40737488355328 O
17740 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
17750 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 35 35 20 34  C.  }.} {64 55 4
17760 34 20 32 31 20 32 7d 0a 64 6f 5f 74 65 73 74 20  4 21 2}.do_test 
17770 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 34 2e 6c  boundary3-2.14.l
17780 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
17790 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
177a0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
177b0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
177c0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
177d0 20 74 32 2e 61 3d 34 34 0a 20 20 20 20 20 4f 52   t2.a=44.     OR
177e0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
177f0 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
17800 31 20 34 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  1 44}.do_test bo
17810 75 6e 64 61 72 79 33 2d 32 2e 31 34 2e 6c 65 2e  undary3-2.14.le.
17820 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
17830 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
17840 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
17850 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74  ON t1.rowid <= t
17860 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
17870 32 2e 61 3d 34 34 0a 20 20 20 20 20 4f 52 44 45  2.a=44.     ORDE
17880 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
17890 53 43 0a 20 20 7d 0a 7d 20 7b 34 34 20 32 31 20  SC.  }.} {44 21 
178a0 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
178b0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 34 2e   boundary3-2.14.
178c0 6c 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  le.5 {.  db eval
178d0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
178e0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
178f0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
17900 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  = t2.r.     WHER
17910 45 20 74 32 2e 61 3d 34 34 0a 20 20 20 20 20 4f  E t2.a=44.     O
17920 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20  RDER BY x.  }.} 
17930 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 7d 0a  {55 2 64 21 44}.
17940 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
17950 33 2d 32 2e 31 35 2e 31 20 7b 0a 20 20 64 62 20  3-2.15.1 {.  db 
17960 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
17970 54 20 74 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20  T t1.* FROM t1, 
17980 74 32 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69  t2 WHERE t1.rowi
17990 64 3d 31 30 39 39 35 31 31 36 32 37 37 37 36 20  d=1099511627776 
179a0 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20  AND t2.a=t1.a.  
179b0 7d 0a 7d 20 7b 31 39 20 30 30 30 30 30 31 30 30  }.} {19 00000100
179c0 30 30 30 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73  00000000}.do_tes
179d0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35  t boundary3-2.15
179e0 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
179f0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a  .    SELECT t2.*
17a00 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
17a10 20 55 53 49 4e 47 28 61 29 20 57 48 45 52 45 20   USING(a) WHERE 
17a20 78 3d 27 30 30 30 30 30 31 30 30 30 30 30 30 30  x='0000010000000
17a30 30 30 30 27 0a 20 20 7d 0a 7d 20 7b 31 30 39 39  000'.  }.} {1099
17a40 35 31 31 36 32 37 37 37 36 20 31 39 7d 0a 64 6f  511627776 19}.do
17a50 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
17a60 32 2e 31 35 2e 33 20 7b 0a 20 20 64 62 20 65 76  2.15.3 {.  db ev
17a70 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
17a80 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f 4d  t1.rowid, x FROM
17a90 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
17aa0 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57 48 45  2.r=t1.rowid WHE
17ab0 52 45 20 74 32 2e 61 3d 31 39 0a 20 20 7d 0a 7d  RE t2.a=19.  }.}
17ac0 20 7b 31 30 39 39 35 31 31 36 32 37 37 37 36 20   {1099511627776 
17ad0 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30  0000010000000000
17ae0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
17af0 72 79 33 2d 32 2e 31 35 2e 67 74 2e 31 20 7b 0a  ry3-2.15.gt.1 {.
17b00 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
17b10 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
17b20 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
17b30 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
17b40 74 31 2e 72 6f 77 69 64 20 3e 20 31 30 39 39 35  t1.rowid > 10995
17b50 31 31 36 32 37 37 37 36 20 4f 52 44 45 52 20 42  11627776 ORDER B
17b60 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20  Y t2.a.  }.} {3 
17b70 37 20 31 30 20 31 33 20 31 37 20 32 35 20 32 36  7 10 13 17 25 26
17b80 20 32 37 20 32 38 20 33 34 20 34 33 20 34 35 20   27 28 34 43 45 
17b90 35 36 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  56}.do_test boun
17ba0 64 61 72 79 33 2d 32 2e 31 35 2e 67 74 2e 32 20  dary3-2.15.gt.2 
17bb0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
17bc0 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
17bd0 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f  OM t2 NATURAL JO
17be0 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45  IN t1.     WHERE
17bf0 20 74 31 2e 72 6f 77 69 64 20 3e 20 31 30 39 39   t1.rowid > 1099
17c00 35 31 31 36 32 37 37 37 36 20 4f 52 44 45 52 20  511627776 ORDER 
17c10 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
17c20 0a 7d 20 7b 35 36 20 34 35 20 34 33 20 33 34 20  .} {56 45 43 34 
17c30 32 38 20 32 37 20 32 36 20 32 35 20 31 37 20 31  28 27 26 25 17 1
17c40 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f 74 65 73  3 10 7 3}.do_tes
17c50 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35  t boundary3-2.15
17c60 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .gt.3 {.  db eva
17c70 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
17c80 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
17c90 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
17ca0 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
17cb0 45 20 74 32 2e 61 3d 31 39 0a 20 20 20 20 20 4f  E t2.a=19.     O
17cc0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
17cd0 0a 20 20 7d 0a 7d 20 7b 37 20 35 36 20 32 35 20  .  }.} {7 56 25 
17ce0 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
17cf0 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
17d00 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
17d10 32 2e 31 35 2e 67 74 2e 34 20 7b 0a 20 20 64 62  2.15.gt.4 {.  db
17d20 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
17d30 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
17d40 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
17d50 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20  wid > t2.r.     
17d60 57 48 45 52 45 20 74 32 2e 61 3d 31 39 0a 20 20  WHERE t2.a=19.  
17d70 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
17d80 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
17d90 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
17da0 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
17db0 20 35 36 20 37 7d 0a 64 6f 5f 74 65 73 74 20 62   56 7}.do_test b
17dc0 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35 2e 67 74  oundary3-2.15.gt
17dd0 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .5 {.  db eval {
17de0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
17df0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
17e00 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74   ON t1.rowid > t
17e10 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
17e20 32 2e 61 3d 31 39 0a 20 20 20 20 20 4f 52 44 45  2.a=19.     ORDE
17e30 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 37 20  R BY x.  }.} {7 
17e40 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
17e50 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
17e60 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
17e70 64 61 72 79 33 2d 32 2e 31 35 2e 67 74 2e 31 30  dary3-2.15.gt.10
17e80 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
17e90 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
17ea0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
17eb0 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53  N t1.rowid > CAS
17ec0 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a  T(t2.r AS real).
17ed0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
17ee0 31 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  19.     ORDER BY
17ef0 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
17f00 7b 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32  {7 56 25 34 10 2
17f10 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
17f20 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
17f30 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35 2e 67 74  oundary3-2.15.gt
17f40 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .11 {.  db eval 
17f50 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
17f60 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
17f70 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
17f80 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
17f90 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
17fa0 2e 61 3d 31 39 0a 20 20 20 20 20 4f 52 44 45 52  .a=19.     ORDER
17fb0 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
17fc0 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37  C.  }.} {3 28 17
17fd0 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20   45 27 43 13 26 
17fe0 31 30 20 33 34 20 32 35 20 35 36 20 37 7d 0a 64  10 34 25 56 7}.d
17ff0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
18000 2d 32 2e 31 35 2e 67 65 2e 31 20 7b 0a 20 20 64  -2.15.ge.1 {.  d
18010 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
18020 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31  ECT t2.a FROM t1
18030 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
18040 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  ).     WHERE t1.
18050 72 6f 77 69 64 20 3e 3d 20 31 30 39 39 35 31 31  rowid >= 1099511
18060 36 32 37 37 37 36 20 4f 52 44 45 52 20 42 59 20  627776 ORDER BY 
18070 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 37 20  t2.a.  }.} {3 7 
18080 31 30 20 31 33 20 31 37 20 31 39 20 32 35 20 32  10 13 17 19 25 2
18090 36 20 32 37 20 32 38 20 33 34 20 34 33 20 34 35  6 27 28 34 43 45
180a0 20 35 36 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   56}.do_test bou
180b0 6e 64 61 72 79 33 2d 32 2e 31 35 2e 67 65 2e 32  ndary3-2.15.ge.2
180c0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
180d0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
180e0 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
180f0 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
18100 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 31 30  E t1.rowid >= 10
18110 39 39 35 31 31 36 32 37 37 37 36 20 4f 52 44 45  99511627776 ORDE
18120 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
18130 20 7d 0a 7d 20 7b 35 36 20 34 35 20 34 33 20 33   }.} {56 45 43 3
18140 34 20 32 38 20 32 37 20 32 36 20 32 35 20 31 39  4 28 27 26 25 19
18150 20 31 37 20 31 33 20 31 30 20 37 20 33 7d 0a 64   17 13 10 7 3}.d
18160 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
18170 2d 32 2e 31 35 2e 67 65 2e 33 20 7b 0a 20 20 64  -2.15.ge.3 {.  d
18180 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
18190 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
181a0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
181b0 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
181c0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 39 0a    WHERE t2.a=19.
181d0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
181e0 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 31 39  .rowid.  }.} {19
181f0 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
18200 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
18210 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
18220 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35 2e 67 65  oundary3-2.15.ge
18230 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
18240 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
18250 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
18260 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
18270 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
18280 74 32 2e 61 3d 31 39 0a 20 20 20 20 20 4f 52 44  t2.a=19.     ORD
18290 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
182a0 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
182b0 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
182c0 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
182d0 31 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  19}.do_test boun
182e0 64 61 72 79 33 2d 32 2e 31 35 2e 67 65 2e 35 20  dary3-2.15.ge.5 
182f0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
18300 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
18310 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
18320 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e   t1.rowid >= t2.
18330 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
18340 61 3d 31 39 0a 20 20 20 20 20 4f 52 44 45 52 20  a=19.     ORDER 
18350 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 31 39 20 37  BY x.  }.} {19 7
18360 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20   56 25 34 10 26 
18370 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32  13 43 27 45 17 2
18380 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  8 3}.do_test bou
18390 6e 64 61 72 79 33 2d 32 2e 31 35 2e 67 65 2e 31  ndary3-2.15.ge.1
183a0 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
183b0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
183c0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
183d0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43  ON t1.rowid >= C
183e0 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
183f0 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
18400 61 3d 31 39 0a 20 20 20 20 20 4f 52 44 45 52 20  a=19.     ORDER 
18410 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
18420 7d 20 7b 31 39 20 37 20 35 36 20 32 35 20 33 34  } {19 7 56 25 34
18430 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
18440 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
18450 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
18460 31 35 2e 67 65 2e 31 31 20 7b 0a 20 20 64 62 20  15.ge.11 {.  db 
18470 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
18480 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
18490 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
184a0 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20  id >= CAST(t2.r 
184b0 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
184c0 45 52 45 20 74 32 2e 61 3d 31 39 0a 20 20 20 20  ERE t2.a=19.    
184d0 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
184e0 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33  id DESC.  }.} {3
184f0 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20   28 17 45 27 43 
18500 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35  13 26 10 34 25 5
18510 36 20 37 20 31 39 7d 0a 64 6f 5f 74 65 73 74 20  6 7 19}.do_test 
18520 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35 2e 6c  boundary3-2.15.l
18530 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.1 {.  db eval 
18540 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
18550 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
18560 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
18570 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
18580 20 31 30 39 39 35 31 31 36 32 37 37 37 36 20 4f   1099511627776 O
18590 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
185a0 0a 7d 20 7b 31 20 32 20 34 20 35 20 36 20 38 20  .} {1 2 4 5 6 8 
185b0 39 20 31 31 20 31 32 20 31 34 20 31 35 20 31 36  9 11 12 14 15 16
185c0 20 31 38 20 32 30 20 32 31 20 32 32 20 32 33 20   18 20 21 22 23 
185d0 32 34 20 32 39 20 33 30 20 33 31 20 33 32 20 33  24 29 30 31 32 3
185e0 33 20 33 35 20 33 36 20 33 37 20 33 38 20 33 39  3 35 36 37 38 39
185f0 20 34 30 20 34 31 20 34 32 20 34 34 20 34 36 20   40 41 42 44 46 
18600 34 37 20 34 38 20 34 39 20 35 30 20 35 31 20 35  47 48 49 50 51 5
18610 32 20 35 33 20 35 34 20 35 35 20 35 37 20 35 38  2 53 54 55 57 58
18620 20 35 39 20 36 30 20 36 31 20 36 32 20 36 33 20   59 60 61 62 63 
18630 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  64}.do_test boun
18640 64 61 72 79 33 2d 32 2e 31 35 2e 6c 74 2e 32 20  dary3-2.15.lt.2 
18650 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
18660 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
18670 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f  OM t2 NATURAL JO
18680 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45  IN t1.     WHERE
18690 20 74 31 2e 72 6f 77 69 64 20 3c 20 31 30 39 39   t1.rowid < 1099
186a0 35 31 31 36 32 37 37 37 36 20 4f 52 44 45 52 20  511627776 ORDER 
186b0 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
186c0 0a 7d 20 7b 36 34 20 36 33 20 36 32 20 36 31 20  .} {64 63 62 61 
186d0 36 30 20 35 39 20 35 38 20 35 37 20 35 35 20 35  60 59 58 57 55 5
186e0 34 20 35 33 20 35 32 20 35 31 20 35 30 20 34 39  4 53 52 51 50 49
186f0 20 34 38 20 34 37 20 34 36 20 34 34 20 34 32 20   48 47 46 44 42 
18700 34 31 20 34 30 20 33 39 20 33 38 20 33 37 20 33  41 40 39 38 37 3
18710 36 20 33 35 20 33 33 20 33 32 20 33 31 20 33 30  6 35 33 32 31 30
18720 20 32 39 20 32 34 20 32 33 20 32 32 20 32 31 20   29 24 23 22 21 
18730 32 30 20 31 38 20 31 36 20 31 35 20 31 34 20 31  20 18 16 15 14 1
18740 32 20 31 31 20 39 20 38 20 36 20 35 20 34 20 32  2 11 9 8 6 5 4 2
18750 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   1}.do_test boun
18760 64 61 72 79 33 2d 32 2e 31 35 2e 6c 74 2e 33 20  dary3-2.15.lt.3 
18770 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
18780 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
18790 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
187a0 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
187b0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
187c0 3d 31 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =19.     ORDER B
187d0 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
187e0 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
187f0 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
18800 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
18810 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
18820 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
18830 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
18840 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20  15 42 18 24 9 6 
18850 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33  12 40 20 51 14 3
18860 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
18870 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
18880 72 79 33 2d 32 2e 31 35 2e 6c 74 2e 34 20 7b 0a  ry3-2.15.lt.4 {.
18890 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
188a0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
188b0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
188c0 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20  1.rowid < t2.r. 
188d0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31      WHERE t2.a=1
188e0 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
188f0 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
18900 7d 0a 7d 20 7b 35 37 20 33 35 20 34 36 20 32 32  }.} {57 35 46 22
18910 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20   39 36 14 51 20 
18920 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20  40 12 6 9 24 18 
18930 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32  42 15 62 48 50 2
18940 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
18950 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
18960 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
18970 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
18980 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
18990 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
189a0 6e 64 61 72 79 33 2d 32 2e 31 35 2e 6c 74 2e 35  ndary3-2.15.lt.5
189b0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
189c0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
189d0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
189e0 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
189f0 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
18a00 61 3d 31 39 0a 20 20 20 20 20 4f 52 44 45 52 20  a=19.     ORDER 
18a10 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  BY x.  }.} {59 6
18a20 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
18a30 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
18a40 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
18a50 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
18a60 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
18a70 20 33 35 20 35 37 20 35 35 20 32 20 36 34 20 32   35 57 55 2 64 2
18a80 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
18a90 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
18aa0 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74  3 52 33 38}.do_t
18ab0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
18ac0 31 35 2e 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20  15.lt.10 {.  db 
18ad0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
18ae0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
18af0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
18b00 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41  id < CAST(t2.r A
18b10 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
18b20 52 45 20 74 32 2e 61 3d 31 39 0a 20 20 20 20 20  RE t2.a=19.     
18b30 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
18b40 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
18b50 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
18b60 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
18b70 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
18b80 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
18b90 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
18ba0 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
18bb0 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
18bc0 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
18bd0 36 20 33 35 20 35 37 7d 0a 64 6f 5f 74 65 73 74  6 35 57}.do_test
18be0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35 2e   boundary3-2.15.
18bf0 6c 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61  lt.11 {.  db eva
18c00 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
18c10 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
18c20 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
18c30 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  < CAST(t2.r AS r
18c40 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
18c50 74 32 2e 61 3d 31 39 0a 20 20 20 20 20 4f 52 44  t2.a=19.     ORD
18c60 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
18c70 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 33 35  ESC.  }.} {57 35
18c80 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
18c90 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
18ca0 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
18cb0 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
18cc0 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
18cd0 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
18ce0 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
18cf0 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
18d00 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
18d10 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
18d20 35 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76  5.le.1 {.  db ev
18d30 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
18d40 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
18d50 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
18d60 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
18d70 64 20 3c 3d 20 31 30 39 39 35 31 31 36 32 37 37  d <= 10995116277
18d80 37 36 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  76 ORDER BY t2.a
18d90 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20  .  }.} {1 2 4 5 
18da0 36 20 38 20 39 20 31 31 20 31 32 20 31 34 20 31  6 8 9 11 12 14 1
18db0 35 20 31 36 20 31 38 20 31 39 20 32 30 20 32 31  5 16 18 19 20 21
18dc0 20 32 32 20 32 33 20 32 34 20 32 39 20 33 30 20   22 23 24 29 30 
18dd0 33 31 20 33 32 20 33 33 20 33 35 20 33 36 20 33  31 32 33 35 36 3
18de0 37 20 33 38 20 33 39 20 34 30 20 34 31 20 34 32  7 38 39 40 41 42
18df0 20 34 34 20 34 36 20 34 37 20 34 38 20 34 39 20   44 46 47 48 49 
18e00 35 30 20 35 31 20 35 32 20 35 33 20 35 34 20 35  50 51 52 53 54 5
18e10 35 20 35 37 20 35 38 20 35 39 20 36 30 20 36 31  5 57 58 59 60 61
18e20 20 36 32 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65   62 63 64}.do_te
18e30 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
18e40 35 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20 65 76  5.le.2 {.  db ev
18e50 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
18e60 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
18e70 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
18e80 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
18e90 20 3c 3d 20 31 30 39 39 35 31 31 36 32 37 37 37   <= 109951162777
18ea0 36 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20  6 ORDER BY t1.a 
18eb0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36  DESC.  }.} {64 6
18ec0 33 20 36 32 20 36 31 20 36 30 20 35 39 20 35 38  3 62 61 60 59 58
18ed0 20 35 37 20 35 35 20 35 34 20 35 33 20 35 32 20   57 55 54 53 52 
18ee0 35 31 20 35 30 20 34 39 20 34 38 20 34 37 20 34  51 50 49 48 47 4
18ef0 36 20 34 34 20 34 32 20 34 31 20 34 30 20 33 39  6 44 42 41 40 39
18f00 20 33 38 20 33 37 20 33 36 20 33 35 20 33 33 20   38 37 36 35 33 
18f10 33 32 20 33 31 20 33 30 20 32 39 20 32 34 20 32  32 31 30 29 24 2
18f20 33 20 32 32 20 32 31 20 32 30 20 31 39 20 31 38  3 22 21 20 19 18
18f30 20 31 36 20 31 35 20 31 34 20 31 32 20 31 31 20   16 15 14 12 11 
18f40 39 20 38 20 36 20 35 20 34 20 32 20 31 7d 0a 64  9 8 6 5 4 2 1}.d
18f50 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
18f60 2d 32 2e 31 35 2e 6c 65 2e 33 20 7b 0a 20 20 64  -2.15.le.3 {.  d
18f70 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
18f80 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
18f90 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
18fa0 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
18fb0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 39 0a    WHERE t2.a=19.
18fc0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
18fd0 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
18fe0 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
18ff0 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
19000 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
19010 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20  8 59 60 41 5 31 
19020 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
19030 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
19040 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
19050 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
19060 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 7d   22 46 35 57 19}
19070 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
19080 79 33 2d 32 2e 31 35 2e 6c 65 2e 34 20 7b 0a 20  y3-2.15.le.4 {. 
19090 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
190a0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
190b0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
190c0 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
190d0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31      WHERE t2.a=1
190e0 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
190f0 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
19100 7d 0a 7d 20 7b 31 39 20 35 37 20 33 35 20 34 36  }.} {19 57 35 46
19110 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
19120 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
19130 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
19140 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
19150 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
19160 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
19170 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
19180 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
19190 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
191a0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 35 2e 6c  boundary3-2.15.l
191b0 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.5 {.  db eval 
191c0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
191d0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
191e0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
191f0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
19200 20 74 32 2e 61 3d 31 39 0a 20 20 20 20 20 4f 52   t2.a=19.     OR
19210 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
19220 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
19230 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
19240 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
19250 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
19260 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
19270 32 20 34 36 20 33 35 20 35 37 20 31 39 20 35 35  2 46 35 57 19 55
19280 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
19290 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
192a0 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
192b0 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  8}.do_test bound
192c0 61 72 79 33 2d 32 2e 31 35 2e 6c 65 2e 31 30 20  ary3-2.15.le.10 
192d0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
192e0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
192f0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
19300 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53   t1.rowid <= CAS
19310 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a  T(t2.r AS real).
19320 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
19330 31 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  19.     ORDER BY
19340 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
19350 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35  {55 2 64 21 44 5
19360 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
19370 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
19380 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20  3 38 59 60 41 5 
19390 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
193a0 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
193b0 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
193c0 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
193d0 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
193e0 31 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  19}.do_test boun
193f0 64 61 72 79 33 2d 32 2e 31 35 2e 6c 65 2e 31 31  dary3-2.15.le.11
19400 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
19410 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
19420 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
19430 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41  N t1.rowid <= CA
19440 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
19450 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
19460 3d 31 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =19.     ORDER B
19470 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
19480 20 20 7d 0a 7d 20 7b 31 39 20 35 37 20 33 35 20    }.} {19 57 35 
19490 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35  46 22 39 36 14 5
194a0 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32  1 20 40 12 6 9 2
194b0 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38  4 18 42 15 62 48
194c0 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33   50 23 16 8 61 3
194d0 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36  0 49 4 31 5 41 6
194e0 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33  0 59 38 33 52 53
194f0 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31   54 32 29 37 1 1
19500 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31  1 47 63 58 44 21
19510 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73   64 2 55}.do_tes
19520 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36  t boundary3-2.16
19530 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .gt.1 {.  db eva
19540 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
19550 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
19560 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
19570 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
19580 20 3e 20 39 32 32 33 33 37 32 30 33 36 38 35 34   > 9223372036854
19590 37 37 35 38 30 37 20 4f 52 44 45 52 20 42 59 20  775807 ORDER BY 
195a0 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 7d 0a 64 6f  t2.a.  }.} {}.do
195b0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
195c0 32 2e 31 36 2e 67 74 2e 32 20 7b 0a 20 20 64 62  2.16.gt.2 {.  db
195d0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
195e0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
195f0 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
19600 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
19610 77 69 64 20 3e 20 39 32 32 33 33 37 32 30 33 36  wid > 9223372036
19620 38 35 34 37 37 35 38 30 37 20 4f 52 44 45 52 20  854775807 ORDER 
19630 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
19640 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  .} {}.do_test bo
19650 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e 67 74 2e  undary3-2.16.gt.
19660 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
19670 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
19680 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
19690 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32  ON t1.rowid > t2
196a0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
196b0 2e 61 3d 33 0a 20 20 20 20 20 4f 52 44 45 52 20  .a=3.     ORDER 
196c0 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
196d0 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  } {}.do_test bou
196e0 6e 64 61 72 79 33 2d 32 2e 31 36 2e 67 74 2e 34  ndary3-2.16.gt.4
196f0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
19700 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
19710 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
19720 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e  N t1.rowid > t2.
19730 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
19740 61 3d 33 0a 20 20 20 20 20 4f 52 44 45 52 20 42  a=3.     ORDER B
19750 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
19760 20 20 7d 0a 7d 20 7b 7d 0a 64 6f 5f 74 65 73 74    }.} {}.do_test
19770 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e   boundary3-2.16.
19780 67 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  gt.5 {.  db eval
19790 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
197a0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
197b0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
197c0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
197d0 20 74 32 2e 61 3d 33 0a 20 20 20 20 20 4f 52 44   t2.a=3.     ORD
197e0 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 7d  ER BY x.  }.} {}
197f0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
19800 79 33 2d 32 2e 31 36 2e 67 65 2e 31 20 7b 0a 20  y3-2.16.ge.1 {. 
19810 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
19820 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
19830 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
19840 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
19850 31 2e 72 6f 77 69 64 20 3e 3d 20 39 32 32 33 33  1.rowid >= 92233
19860 37 32 30 33 36 38 35 34 37 37 35 38 30 37 20 4f  72036854775807 O
19870 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
19880 0a 7d 20 7b 33 7d 0a 64 6f 5f 74 65 73 74 20 62  .} {3}.do_test b
19890 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e 67 65  oundary3-2.16.ge
198a0 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
198b0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
198c0 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
198d0 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
198e0 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
198f0 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37 35  9223372036854775
19900 38 30 37 20 4f 52 44 45 52 20 42 59 20 74 31 2e  807 ORDER BY t1.
19910 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 7d  a DESC.  }.} {3}
19920 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
19930 79 33 2d 32 2e 31 36 2e 67 65 2e 33 20 7b 0a 20  y3-2.16.ge.3 {. 
19940 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
19950 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
19960 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
19970 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20  .rowid >= t2.r. 
19980 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
19990 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
199a0 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33  1.rowid.  }.} {3
199b0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
199c0 72 79 33 2d 32 2e 31 36 2e 67 65 2e 34 20 7b 0a  ry3-2.16.ge.4 {.
199d0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
199e0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
199f0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
19a00 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
19a10 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
19a20 33 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  3.     ORDER BY 
19a30 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
19a40 7d 0a 7d 20 7b 33 7d 0a 64 6f 5f 74 65 73 74 20  }.} {3}.do_test 
19a50 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e 67  boundary3-2.16.g
19a60 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.5 {.  db eval 
19a70 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
19a80 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
19a90 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
19aa0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
19ab0 20 74 32 2e 61 3d 33 0a 20 20 20 20 20 4f 52 44   t2.a=3.     ORD
19ac0 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 33  ER BY x.  }.} {3
19ad0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
19ae0 72 79 33 2d 32 2e 31 36 2e 6c 74 2e 31 20 7b 0a  ry3-2.16.lt.1 {.
19af0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
19b00 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
19b10 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
19b20 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
19b30 74 31 2e 72 6f 77 69 64 20 3c 20 39 32 32 33 33  t1.rowid < 92233
19b40 37 32 30 33 36 38 35 34 37 37 35 38 30 37 20 4f  72036854775807 O
19b50 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
19b60 0a 7d 20 7b 31 20 32 20 34 20 35 20 36 20 37 20  .} {1 2 4 5 6 7 
19b70 38 20 39 20 31 30 20 31 31 20 31 32 20 31 33 20  8 9 10 11 12 13 
19b80 31 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31  14 15 16 17 18 1
19b90 39 20 32 30 20 32 31 20 32 32 20 32 33 20 32 34  9 20 21 22 23 24
19ba0 20 32 35 20 32 36 20 32 37 20 32 38 20 32 39 20   25 26 27 28 29 
19bb0 33 30 20 33 31 20 33 32 20 33 33 20 33 34 20 33  30 31 32 33 34 3
19bc0 35 20 33 36 20 33 37 20 33 38 20 33 39 20 34 30  5 36 37 38 39 40
19bd0 20 34 31 20 34 32 20 34 33 20 34 34 20 34 35 20   41 42 43 44 45 
19be0 34 36 20 34 37 20 34 38 20 34 39 20 35 30 20 35  46 47 48 49 50 5
19bf0 31 20 35 32 20 35 33 20 35 34 20 35 35 20 35 36  1 52 53 54 55 56
19c00 20 35 37 20 35 38 20 35 39 20 36 30 20 36 31 20   57 58 59 60 61 
19c10 36 32 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73  62 63 64}.do_tes
19c20 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36  t boundary3-2.16
19c30 2e 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .lt.2 {.  db eva
19c40 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
19c50 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
19c60 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
19c70 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
19c80 3c 20 39 32 32 33 33 37 32 30 33 36 38 35 34 37  < 92233720368547
19c90 37 35 38 30 37 20 4f 52 44 45 52 20 42 59 20 74  75807 ORDER BY t
19ca0 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
19cb0 36 34 20 36 33 20 36 32 20 36 31 20 36 30 20 35  64 63 62 61 60 5
19cc0 39 20 35 38 20 35 37 20 35 36 20 35 35 20 35 34  9 58 57 56 55 54
19cd0 20 35 33 20 35 32 20 35 31 20 35 30 20 34 39 20   53 52 51 50 49 
19ce0 34 38 20 34 37 20 34 36 20 34 35 20 34 34 20 34  48 47 46 45 44 4
19cf0 33 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38  3 42 41 40 39 38
19d00 20 33 37 20 33 36 20 33 35 20 33 34 20 33 33 20   37 36 35 34 33 
19d10 33 32 20 33 31 20 33 30 20 32 39 20 32 38 20 32  32 31 30 29 28 2
19d20 37 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32  7 26 25 24 23 22
19d30 20 32 31 20 32 30 20 31 39 20 31 38 20 31 37 20   21 20 19 18 17 
19d40 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20 31  16 15 14 13 12 1
19d50 31 20 31 30 20 39 20 38 20 37 20 36 20 35 20 34  1 10 9 8 7 6 5 4
19d60 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   2 1}.do_test bo
19d70 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e 6c 74 2e  undary3-2.16.lt.
19d80 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
19d90 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
19da0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
19db0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
19dc0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
19dd0 2e 61 3d 33 0a 20 20 20 20 20 4f 52 44 45 52 20  .a=3.     ORDER 
19de0 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
19df0 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
19e00 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
19e10 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
19e20 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
19e30 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
19e40 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
19e50 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
19e60 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
19e70 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
19e80 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
19e90 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
19ea0 35 20 31 37 20 32 38 7d 0a 64 6f 5f 74 65 73 74  5 17 28}.do_test
19eb0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e   boundary3-2.16.
19ec0 6c 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.4 {.  db eval
19ed0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
19ee0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
19ef0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
19f00 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
19f10 20 74 32 2e 61 3d 33 0a 20 20 20 20 20 4f 52 44   t2.a=3.     ORD
19f20 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
19f30 45 53 43 0a 20 20 7d 0a 7d 20 7b 32 38 20 31 37  ESC.  }.} {28 17
19f40 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20   45 27 43 13 26 
19f50 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31 39  10 34 25 56 7 19
19f60 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39 20   57 35 46 22 39 
19f70 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31  36 14 51 20 40 1
19f80 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
19f90 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
19fa0 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31   8 61 30 49 4 31
19fb0 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33   5 41 60 59 38 3
19fc0 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
19fd0 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
19fe0 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
19ff0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1a000 79 33 2d 32 2e 31 36 2e 6c 74 2e 35 20 7b 0a 20  y3-2.16.lt.5 {. 
1a010 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1a020 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
1a030 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
1a040 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20  .rowid < t2.r.  
1a050 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 0a     WHERE t2.a=3.
1a060 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
1a070 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20    }.} {59 60 41 
1a080 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
1a090 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
1a0a0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
1a0b0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
1a0c0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
1a0d0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
1a0e0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
1a0f0 35 20 31 37 20 32 38 20 35 35 20 32 20 36 34 20  5 17 28 55 2 64 
1a100 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
1a110 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
1a120 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f  53 52 33 38}.do_
1a130 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1a140 2e 31 36 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20  .16.le.1 {.  db 
1a150 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1a160 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
1a170 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
1a180 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
1a190 77 69 64 20 3c 3d 20 39 32 32 33 33 37 32 30 33  wid <= 922337203
1a1a0 36 38 35 34 37 37 35 38 30 37 20 4f 52 44 45 52  6854775807 ORDER
1a1b0 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b   BY t2.a.  }.} {
1a1c0 31 20 32 20 33 20 34 20 35 20 36 20 37 20 38 20  1 2 3 4 5 6 7 8 
1a1d0 39 20 31 30 20 31 31 20 31 32 20 31 33 20 31 34  9 10 11 12 13 14
1a1e0 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20   15 16 17 18 19 
1a1f0 32 30 20 32 31 20 32 32 20 32 33 20 32 34 20 32  20 21 22 23 24 2
1a200 35 20 32 36 20 32 37 20 32 38 20 32 39 20 33 30  5 26 27 28 29 30
1a210 20 33 31 20 33 32 20 33 33 20 33 34 20 33 35 20   31 32 33 34 35 
1a220 33 36 20 33 37 20 33 38 20 33 39 20 34 30 20 34  36 37 38 39 40 4
1a230 31 20 34 32 20 34 33 20 34 34 20 34 35 20 34 36  1 42 43 44 45 46
1a240 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31 20   47 48 49 50 51 
1a250 35 32 20 35 33 20 35 34 20 35 35 20 35 36 20 35  52 53 54 55 56 5
1a260 37 20 35 38 20 35 39 20 36 30 20 36 31 20 36 32  7 58 59 60 61 62
1a270 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20   63 64}.do_test 
1a280 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e 6c  boundary3-2.16.l
1a290 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.2 {.  db eval 
1a2a0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
1a2b0 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
1a2c0 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
1a2d0 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d  HERE t1.rowid <=
1a2e0 20 39 32 32 33 33 37 32 30 33 36 38 35 34 37 37   922337203685477
1a2f0 35 38 30 37 20 4f 52 44 45 52 20 42 59 20 74 31  5807 ORDER BY t1
1a300 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36  .a DESC.  }.} {6
1a310 34 20 36 33 20 36 32 20 36 31 20 36 30 20 35 39  4 63 62 61 60 59
1a320 20 35 38 20 35 37 20 35 36 20 35 35 20 35 34 20   58 57 56 55 54 
1a330 35 33 20 35 32 20 35 31 20 35 30 20 34 39 20 34  53 52 51 50 49 4
1a340 38 20 34 37 20 34 36 20 34 35 20 34 34 20 34 33  8 47 46 45 44 43
1a350 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38 20   42 41 40 39 38 
1a360 33 37 20 33 36 20 33 35 20 33 34 20 33 33 20 33  37 36 35 34 33 3
1a370 32 20 33 31 20 33 30 20 32 39 20 32 38 20 32 37  2 31 30 29 28 27
1a380 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32 20   26 25 24 23 22 
1a390 32 31 20 32 30 20 31 39 20 31 38 20 31 37 20 31  21 20 19 18 17 1
1a3a0 36 20 31 35 20 31 34 20 31 33 20 31 32 20 31 31  6 15 14 13 12 11
1a3b0 20 31 30 20 39 20 38 20 37 20 36 20 35 20 34 20   10 9 8 7 6 5 4 
1a3c0 33 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62  3 2 1}.do_test b
1a3d0 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e 6c 65  oundary3-2.16.le
1a3e0 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
1a3f0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
1a400 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
1a410 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20   ON t1.rowid <= 
1a420 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
1a430 74 32 2e 61 3d 33 0a 20 20 20 20 20 4f 52 44 45  t2.a=3.     ORDE
1a440 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
1a450 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20  }.} {55 2 64 21 
1a460 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
1a470 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
1a480 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
1a490 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
1a4a0 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
1a4b0 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
1a4c0 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
1a4d0 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
1a4e0 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
1a4f0 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
1a500 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
1a510 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1a520 2e 31 36 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20  .16.le.4 {.  db 
1a530 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1a540 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
1a550 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
1a560 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20  id <= t2.r.     
1a570 57 48 45 52 45 20 74 32 2e 61 3d 33 0a 20 20 20  WHERE t2.a=3.   
1a580 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1a590 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
1a5a0 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
1a5b0 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
1a5c0 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
1a5d0 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
1a5e0 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
1a5f0 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
1a600 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
1a610 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
1a620 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
1a630 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
1a640 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
1a650 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
1a660 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 36 2e 6c  boundary3-2.16.l
1a670 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.5 {.  db eval 
1a680 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1a690 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1a6a0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
1a6b0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1a6c0 20 74 32 2e 61 3d 33 0a 20 20 20 20 20 4f 52 44   t2.a=3.     ORD
1a6d0 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35  ER BY x.  }.} {5
1a6e0 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
1a6f0 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
1a700 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
1a710 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
1a720 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
1a730 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
1a740 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
1a750 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
1a760 33 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20  3 55 2 64 21 44 
1a770 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
1a780 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
1a790 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62  33 38}.do_test b
1a7a0 6f 75 6e 64 61 72 79 33 2d 32 2e 31 37 2e 31 20  oundary3-2.17.1 
1a7b0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
1a7c0 20 20 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52    SELECT t1.* FR
1a7d0 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20  OM t1, t2 WHERE 
1a7e0 74 31 2e 72 6f 77 69 64 3d 33 32 37 36 38 20 41  t1.rowid=32768 A
1a7f0 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d  ND t2.a=t1.a.  }
1a800 0a 7d 20 7b 35 30 20 30 30 30 30 30 30 30 30 30  .} {50 000000000
1a810 30 30 30 38 30 30 30 7d 0a 64 6f 5f 74 65 73 74  0008000}.do_test
1a820 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 37 2e   boundary3-2.17.
1a830 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
1a840 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a 20      SELECT t2.* 
1a850 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1a860 55 53 49 4e 47 28 61 29 20 57 48 45 52 45 20 78  USING(a) WHERE x
1a870 3d 27 30 30 30 30 30 30 30 30 30 30 30 30 38 30  ='00000000000080
1a880 30 30 27 0a 20 20 7d 0a 7d 20 7b 33 32 37 36 38  00'.  }.} {32768
1a890 20 35 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   50}.do_test bou
1a8a0 6e 64 61 72 79 33 2d 32 2e 31 37 2e 33 20 7b 0a  ndary3-2.17.3 {.
1a8b0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
1a8c0 53 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c  SELECT t1.rowid,
1a8d0 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20   x FROM t1 JOIN 
1a8e0 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f  t2 ON t2.r=t1.ro
1a8f0 77 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d 35  wid WHERE t2.a=5
1a900 30 0a 20 20 7d 0a 7d 20 7b 33 32 37 36 38 20 30  0.  }.} {32768 0
1a910 30 30 30 30 30 30 30 30 30 30 30 38 30 30 30 7d  000000000008000}
1a920 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1a930 79 33 2d 32 2e 31 37 2e 67 74 2e 31 20 7b 0a 20  y3-2.17.gt.1 {. 
1a940 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1a950 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
1a960 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
1a970 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
1a980 31 2e 72 6f 77 69 64 20 3e 20 33 32 37 36 38 20  1.rowid > 32768 
1a990 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20  ORDER BY t2.a.  
1a9a0 7d 0a 7d 20 7b 33 20 36 20 37 20 39 20 31 30 20  }.} {3 6 7 9 10 
1a9b0 31 32 20 31 33 20 31 34 20 31 35 20 31 37 20 31  12 13 14 15 17 1
1a9c0 38 20 31 39 20 32 30 20 32 32 20 32 34 20 32 35  8 19 20 22 24 25
1a9d0 20 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20   26 27 28 34 35 
1a9e0 33 36 20 33 39 20 34 30 20 34 32 20 34 33 20 34  36 39 40 42 43 4
1a9f0 35 20 34 36 20 34 38 20 35 31 20 35 36 20 35 37  5 46 48 51 56 57
1aa00 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   62}.do_test bou
1aa10 6e 64 61 72 79 33 2d 32 2e 31 37 2e 67 74 2e 32  ndary3-2.17.gt.2
1aa20 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1aa30 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
1aa40 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
1aa50 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
1aa60 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 33 32 37  E t1.rowid > 327
1aa70 36 38 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61  68 ORDER BY t1.a
1aa80 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32 20   DESC.  }.} {62 
1aa90 35 37 20 35 36 20 35 31 20 34 38 20 34 36 20 34  57 56 51 48 46 4
1aaa0 35 20 34 33 20 34 32 20 34 30 20 33 39 20 33 36  5 43 42 40 39 36
1aab0 20 33 35 20 33 34 20 32 38 20 32 37 20 32 36 20   35 34 28 27 26 
1aac0 32 35 20 32 34 20 32 32 20 32 30 20 31 39 20 31  25 24 22 20 19 1
1aad0 38 20 31 37 20 31 35 20 31 34 20 31 33 20 31 32  8 17 15 14 13 12
1aae0 20 31 30 20 39 20 37 20 36 20 33 7d 0a 64 6f 5f   10 9 7 6 3}.do_
1aaf0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1ab00 2e 31 37 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20  .17.gt.3 {.  db 
1ab10 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1ab20 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
1ab30 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
1ab40 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
1ab50 48 45 52 45 20 74 32 2e 61 3d 35 30 0a 20 20 20  HERE t2.a=50.   
1ab60 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1ab70 77 69 64 0a 20 20 7d 0a 7d 20 7b 34 38 20 36 32  wid.  }.} {48 62
1ab80 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
1ab90 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
1aba0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
1abb0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
1abc0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
1abd0 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
1abe0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1abf0 37 2e 67 74 2e 34 20 7b 0a 20 20 64 62 20 65 76  7.gt.4 {.  db ev
1ac00 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1ac10 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
1ac20 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
1ac30 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
1ac40 52 45 20 74 32 2e 61 3d 35 30 0a 20 20 20 20 20  RE t2.a=50.     
1ac50 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
1ac60 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
1ac70 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
1ac80 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
1ac90 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32   7 19 57 35 46 2
1aca0 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
1acb0 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
1acc0 20 34 32 20 31 35 20 36 32 20 34 38 7d 0a 64 6f   42 15 62 48}.do
1acd0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
1ace0 32 2e 31 37 2e 67 74 2e 35 20 7b 0a 20 20 64 62  2.17.gt.5 {.  db
1acf0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1ad00 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
1ad10 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
1ad20 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20  wid > t2.r.     
1ad30 57 48 45 52 45 20 74 32 2e 61 3d 35 30 0a 20 20  WHERE t2.a=50.  
1ad40 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
1ad50 7d 0a 7d 20 7b 34 38 20 36 32 20 31 35 20 34 32  }.} {48 62 15 42
1ad60 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30   18 24 9 6 12 40
1ad70 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20   20 51 14 36 39 
1ad80 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37  22 46 35 57 19 7
1ad90 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20   56 25 34 10 26 
1ada0 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32  13 43 27 45 17 2
1adb0 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  8 3}.do_test bou
1adc0 6e 64 61 72 79 33 2d 32 2e 31 37 2e 67 74 2e 31  ndary3-2.17.gt.1
1add0 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
1ade0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1adf0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1ae00 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41  ON t1.rowid > CA
1ae10 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
1ae20 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
1ae30 3d 35 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =50.     ORDER B
1ae40 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
1ae50 20 7b 34 38 20 36 32 20 31 35 20 34 32 20 31 38   {48 62 15 42 18
1ae60 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
1ae70 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
1ae80 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
1ae90 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
1aea0 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
1aeb0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
1aec0 72 79 33 2d 32 2e 31 37 2e 67 74 2e 31 31 20 7b  ry3-2.17.gt.11 {
1aed0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
1aee0 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
1aef0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
1af00 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28  t1.rowid > CAST(
1af10 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
1af20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 30     WHERE t2.a=50
1af30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
1af40 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
1af50 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
1af60 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
1af70 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
1af80 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
1af90 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
1afa0 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20   24 18 42 15 62 
1afb0 34 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  48}.do_test boun
1afc0 64 61 72 79 33 2d 32 2e 31 37 2e 67 65 2e 31 20  dary3-2.17.ge.1 
1afd0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
1afe0 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
1aff0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
1b000 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
1b010 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 33 32  E t1.rowid >= 32
1b020 37 36 38 20 4f 52 44 45 52 20 42 59 20 74 32 2e  768 ORDER BY t2.
1b030 61 0a 20 20 7d 0a 7d 20 7b 33 20 36 20 37 20 39  a.  }.} {3 6 7 9
1b040 20 31 30 20 31 32 20 31 33 20 31 34 20 31 35 20   10 12 13 14 15 
1b050 31 37 20 31 38 20 31 39 20 32 30 20 32 32 20 32  17 18 19 20 22 2
1b060 34 20 32 35 20 32 36 20 32 37 20 32 38 20 33 34  4 25 26 27 28 34
1b070 20 33 35 20 33 36 20 33 39 20 34 30 20 34 32 20   35 36 39 40 42 
1b080 34 33 20 34 35 20 34 36 20 34 38 20 35 30 20 35  43 45 46 48 50 5
1b090 31 20 35 36 20 35 37 20 36 32 7d 0a 64 6f 5f 74  1 56 57 62}.do_t
1b0a0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1b0b0 31 37 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20 65  17.ge.2 {.  db e
1b0c0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1b0d0 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41   t2.a FROM t2 NA
1b0e0 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20  TURAL JOIN t1.  
1b0f0 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
1b100 64 20 3e 3d 20 33 32 37 36 38 20 4f 52 44 45 52  d >= 32768 ORDER
1b110 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
1b120 7d 0a 7d 20 7b 36 32 20 35 37 20 35 36 20 35 31  }.} {62 57 56 51
1b130 20 35 30 20 34 38 20 34 36 20 34 35 20 34 33 20   50 48 46 45 43 
1b140 34 32 20 34 30 20 33 39 20 33 36 20 33 35 20 33  42 40 39 36 35 3
1b150 34 20 32 38 20 32 37 20 32 36 20 32 35 20 32 34  4 28 27 26 25 24
1b160 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37 20   22 20 19 18 17 
1b170 31 35 20 31 34 20 31 33 20 31 32 20 31 30 20 39  15 14 13 12 10 9
1b180 20 37 20 36 20 33 7d 0a 64 6f 5f 74 65 73 74 20   7 6 3}.do_test 
1b190 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 37 2e 67  boundary3-2.17.g
1b1a0 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
1b1b0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1b1c0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1b1d0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
1b1e0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1b1f0 20 74 32 2e 61 3d 35 30 0a 20 20 20 20 20 4f 52   t2.a=50.     OR
1b200 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
1b210 20 20 7d 0a 7d 20 7b 35 30 20 34 38 20 36 32 20    }.} {50 48 62 
1b220 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20  15 42 18 24 9 6 
1b230 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33  12 40 20 51 14 3
1b240 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
1b250 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
1b260 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
1b270 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
1b280 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 37  t boundary3-2.17
1b290 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61  .ge.4 {.  db eva
1b2a0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
1b2b0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
1b2c0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
1b2d0 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  >= t2.r.     WHE
1b2e0 52 45 20 74 32 2e 61 3d 35 30 0a 20 20 20 20 20  RE t2.a=50.     
1b2f0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
1b300 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
1b310 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
1b320 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
1b330 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32   7 19 57 35 46 2
1b340 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
1b350 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
1b360 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30 7d   42 15 62 48 50}
1b370 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1b380 79 33 2d 32 2e 31 37 2e 67 65 2e 35 20 7b 0a 20  y3-2.17.ge.5 {. 
1b390 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1b3a0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
1b3b0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
1b3c0 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20  .rowid >= t2.r. 
1b3d0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35      WHERE t2.a=5
1b3e0 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  0.     ORDER BY 
1b3f0 78 0a 20 20 7d 0a 7d 20 7b 35 30 20 34 38 20 36  x.  }.} {50 48 6
1b400 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
1b410 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
1b420 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
1b430 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
1b440 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
1b450 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
1b460 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1b470 31 37 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20  17.ge.10 {.  db 
1b480 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1b490 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
1b4a0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
1b4b0 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20  id >= CAST(t2.r 
1b4c0 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
1b4d0 45 52 45 20 74 32 2e 61 3d 35 30 0a 20 20 20 20  ERE t2.a=50.    
1b4e0 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
1b4f0 69 64 0a 20 20 7d 0a 7d 20 7b 35 30 20 34 38 20  id.  }.} {50 48 
1b500 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
1b510 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
1b520 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
1b530 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
1b540 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
1b550 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
1b560 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1b570 2e 31 37 2e 67 65 2e 31 31 20 7b 0a 20 20 64 62  .17.ge.11 {.  db
1b580 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1b590 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
1b5a0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
1b5b0 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72  wid >= CAST(t2.r
1b5c0 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
1b5d0 48 45 52 45 20 74 32 2e 61 3d 35 30 0a 20 20 20  HERE t2.a=50.   
1b5e0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1b5f0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
1b600 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
1b610 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
1b620 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
1b630 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
1b640 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
1b650 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
1b660 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  0}.do_test bound
1b670 61 72 79 33 2d 32 2e 31 37 2e 6c 74 2e 31 20 7b  ary3-2.17.lt.1 {
1b680 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
1b690 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
1b6a0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
1b6b0 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45  NG(a).     WHERE
1b6c0 20 74 31 2e 72 6f 77 69 64 20 3c 20 33 32 37 36   t1.rowid < 3276
1b6d0 38 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  8 ORDER BY t2.a.
1b6e0 20 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 38    }.} {1 2 4 5 8
1b6f0 20 31 31 20 31 36 20 32 31 20 32 33 20 32 39 20   11 16 21 23 29 
1b700 33 30 20 33 31 20 33 32 20 33 33 20 33 37 20 33  30 31 32 33 37 3
1b710 38 20 34 31 20 34 34 20 34 37 20 34 39 20 35 32  8 41 44 47 49 52
1b720 20 35 33 20 35 34 20 35 35 20 35 38 20 35 39 20   53 54 55 58 59 
1b730 36 30 20 36 31 20 36 33 20 36 34 7d 0a 64 6f 5f  60 61 63 64}.do_
1b740 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1b750 2e 31 37 2e 6c 74 2e 32 20 7b 0a 20 20 64 62 20  .17.lt.2 {.  db 
1b760 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1b770 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
1b780 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
1b790 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
1b7a0 69 64 20 3c 20 33 32 37 36 38 20 4f 52 44 45 52  id < 32768 ORDER
1b7b0 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
1b7c0 7d 0a 7d 20 7b 36 34 20 36 33 20 36 31 20 36 30  }.} {64 63 61 60
1b7d0 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20   59 58 55 54 53 
1b7e0 35 32 20 34 39 20 34 37 20 34 34 20 34 31 20 33  52 49 47 44 41 3
1b7f0 38 20 33 37 20 33 33 20 33 32 20 33 31 20 33 30  8 37 33 32 31 30
1b800 20 32 39 20 32 33 20 32 31 20 31 36 20 31 31 20   29 23 21 16 11 
1b810 38 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74 65  8 5 4 2 1}.do_te
1b820 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1b830 37 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65 76  7.lt.3 {.  db ev
1b840 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1b850 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
1b860 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
1b870 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   < t2.r.     WHE
1b880 52 45 20 74 32 2e 61 3d 35 30 0a 20 20 20 20 20  RE t2.a=50.     
1b890 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
1b8a0 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
1b8b0 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
1b8c0 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
1b8d0 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
1b8e0 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
1b8f0 33 30 20 36 31 20 38 20 31 36 20 32 33 7d 0a 64  30 61 8 16 23}.d
1b900 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1b910 2d 32 2e 31 37 2e 6c 74 2e 34 20 7b 0a 20 20 64  -2.17.lt.4 {.  d
1b920 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1b930 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
1b940 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
1b950 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20  owid < t2.r.    
1b960 20 57 48 45 52 45 20 74 32 2e 61 3d 35 30 0a 20   WHERE t2.a=50. 
1b970 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
1b980 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
1b990 20 7b 32 33 20 31 36 20 38 20 36 31 20 33 30 20   {23 16 8 61 30 
1b9a0 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
1b9b0 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
1b9c0 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
1b9d0 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
1b9e0 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
1b9f0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 37 2e 6c  boundary3-2.17.l
1ba00 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.5 {.  db eval 
1ba10 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1ba20 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1ba30 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
1ba40 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
1ba50 74 32 2e 61 3d 35 30 0a 20 20 20 20 20 4f 52 44  t2.a=50.     ORD
1ba60 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35  ER BY x.  }.} {5
1ba70 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
1ba80 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
1ba90 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
1baa0 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
1bab0 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
1bac0 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   38}.do_test bou
1bad0 6e 64 61 72 79 33 2d 32 2e 31 37 2e 6c 74 2e 31  ndary3-2.17.lt.1
1bae0 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
1baf0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1bb00 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1bb10 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 43 41  ON t1.rowid < CA
1bb20 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
1bb30 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
1bb40 3d 35 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =50.     ORDER B
1bb50 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
1bb60 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
1bb70 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
1bb80 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
1bb90 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
1bba0 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
1bbb0 20 31 36 20 32 33 7d 0a 64 6f 5f 74 65 73 74 20   16 23}.do_test 
1bbc0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 37 2e 6c  boundary3-2.17.l
1bbd0 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  t.11 {.  db eval
1bbe0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
1bbf0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
1bc00 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
1bc10 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
1bc20 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
1bc30 32 2e 61 3d 35 30 0a 20 20 20 20 20 4f 52 44 45  2.a=50.     ORDE
1bc40 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
1bc50 53 43 0a 20 20 7d 0a 7d 20 7b 32 33 20 31 36 20  SC.  }.} {23 16 
1bc60 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31 20  8 61 30 49 4 31 
1bc70 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33 33  5 41 60 59 38 33
1bc80 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20   52 53 54 32 29 
1bc90 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38  37 1 11 47 63 58
1bca0 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a   44 21 64 2 55}.
1bcb0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1bcc0 33 2d 32 2e 31 37 2e 6c 65 2e 31 20 7b 0a 20 20  3-2.17.le.1 {.  
1bcd0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1bce0 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
1bcf0 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
1bd00 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
1bd10 2e 72 6f 77 69 64 20 3c 3d 20 33 32 37 36 38 20  .rowid <= 32768 
1bd20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20  ORDER BY t2.a.  
1bd30 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 38 20 31  }.} {1 2 4 5 8 1
1bd40 31 20 31 36 20 32 31 20 32 33 20 32 39 20 33 30  1 16 21 23 29 30
1bd50 20 33 31 20 33 32 20 33 33 20 33 37 20 33 38 20   31 32 33 37 38 
1bd60 34 31 20 34 34 20 34 37 20 34 39 20 35 30 20 35  41 44 47 49 50 5
1bd70 32 20 35 33 20 35 34 20 35 35 20 35 38 20 35 39  2 53 54 55 58 59
1bd80 20 36 30 20 36 31 20 36 33 20 36 34 7d 0a 64 6f   60 61 63 64}.do
1bd90 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
1bda0 32 2e 31 37 2e 6c 65 2e 32 20 7b 0a 20 20 64 62  2.17.le.2 {.  db
1bdb0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1bdc0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
1bdd0 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
1bde0 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
1bdf0 77 69 64 20 3c 3d 20 33 32 37 36 38 20 4f 52 44  wid <= 32768 ORD
1be00 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
1be10 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36 31 20    }.} {64 63 61 
1be20 36 30 20 35 39 20 35 38 20 35 35 20 35 34 20 35  60 59 58 55 54 5
1be30 33 20 35 32 20 35 30 20 34 39 20 34 37 20 34 34  3 52 50 49 47 44
1be40 20 34 31 20 33 38 20 33 37 20 33 33 20 33 32 20   41 38 37 33 32 
1be50 33 31 20 33 30 20 32 39 20 32 33 20 32 31 20 31  31 30 29 23 21 1
1be60 36 20 31 31 20 38 20 35 20 34 20 32 20 31 7d 0a  6 11 8 5 4 2 1}.
1be70 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1be80 33 2d 32 2e 31 37 2e 6c 65 2e 33 20 7b 0a 20 20  3-2.17.le.3 {.  
1be90 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1bea0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1beb0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1bec0 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
1bed0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 30     WHERE t2.a=50
1bee0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
1bef0 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
1bf00 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
1bf10 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
1bf20 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
1bf30 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
1bf40 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
1bf50 20 32 33 20 35 30 7d 0a 64 6f 5f 74 65 73 74 20   23 50}.do_test 
1bf60 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 37 2e 6c  boundary3-2.17.l
1bf70 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.4 {.  db eval 
1bf80 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1bf90 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1bfa0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
1bfb0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1bfc0 20 74 32 2e 61 3d 35 30 0a 20 20 20 20 20 4f 52   t2.a=50.     OR
1bfd0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
1bfe0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 30 20 32  DESC.  }.} {50 2
1bff0 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
1c000 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
1c010 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
1c020 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
1c030 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
1c040 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
1c050 6e 64 61 72 79 33 2d 32 2e 31 37 2e 6c 65 2e 35  ndary3-2.17.le.5
1c060 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1c070 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
1c080 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
1c090 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
1c0a0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
1c0b0 2e 61 3d 35 30 0a 20 20 20 20 20 4f 52 44 45 52  .a=50.     ORDER
1c0c0 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20   BY x.  }.} {59 
1c0d0 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
1c0e0 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
1c0f0 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35   55 2 64 21 44 5
1c100 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
1c110 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
1c120 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 38}.do_test bo
1c130 75 6e 64 61 72 79 33 2d 32 2e 31 37 2e 6c 65 2e  undary3-2.17.le.
1c140 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  10 {.  db eval {
1c150 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
1c160 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
1c170 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20   ON t1.rowid <= 
1c180 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
1c190 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
1c1a0 2e 61 3d 35 30 0a 20 20 20 20 20 4f 52 44 45 52  .a=50.     ORDER
1c1b0 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
1c1c0 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
1c1d0 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
1c1e0 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
1c1f0 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31  2 33 38 59 60 41
1c200 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31   5 31 4 49 30 61
1c210 20 38 20 31 36 20 32 33 20 35 30 7d 0a 64 6f 5f   8 16 23 50}.do_
1c220 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1c230 2e 31 37 2e 6c 65 2e 31 31 20 7b 0a 20 20 64 62  .17.le.11 {.  db
1c240 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1c250 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
1c260 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
1c270 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72  wid <= CAST(t2.r
1c280 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
1c290 48 45 52 45 20 74 32 2e 61 3d 35 30 0a 20 20 20  HERE t2.a=50.   
1c2a0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1c2b0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
1c2c0 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
1c2d0 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
1c2e0 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
1c2f0 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
1c300 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
1c310 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
1c320 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e   boundary3-2.18.
1c330 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
1c340 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 2a 20      SELECT t1.* 
1c350 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52  FROM t1, t2 WHER
1c360 45 20 74 31 2e 72 6f 77 69 64 3d 2d 33 36 30 32  E t1.rowid=-3602
1c370 38 37 39 37 30 31 38 39 36 33 39 36 38 20 41 4e  8797018963968 AN
1c380 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a  D t2.a=t1.a.  }.
1c390 7d 20 7b 36 34 20 66 66 38 30 30 30 30 30 30 30  } {64 ff80000000
1c3a0 30 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20  000000}.do_test 
1c3b0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e 32  boundary3-2.18.2
1c3c0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1c3d0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a 20 46     SELECT t2.* F
1c3e0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55  ROM t1 JOIN t2 U
1c3f0 53 49 4e 47 28 61 29 20 57 48 45 52 45 20 78 3d  SING(a) WHERE x=
1c400 27 66 66 38 30 30 30 30 30 30 30 30 30 30 30 30  'ff8000000000000
1c410 30 27 0a 20 20 7d 0a 7d 20 7b 2d 33 36 30 32 38  0'.  }.} {-36028
1c420 37 39 37 30 31 38 39 36 33 39 36 38 20 36 34 7d  797018963968 64}
1c430 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1c440 79 33 2d 32 2e 31 38 2e 33 20 7b 0a 20 20 64 62  y3-2.18.3 {.  db
1c450 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1c460 43 54 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46  CT t1.rowid, x F
1c470 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
1c480 4e 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20  N t2.r=t1.rowid 
1c490 57 48 45 52 45 20 74 32 2e 61 3d 36 34 0a 20 20  WHERE t2.a=64.  
1c4a0 7d 0a 7d 20 7b 2d 33 36 30 32 38 37 39 37 30 31  }.} {-3602879701
1c4b0 38 39 36 33 39 36 38 20 66 66 38 30 30 30 30 30  8963968 ff800000
1c4c0 30 30 30 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73  00000000}.do_tes
1c4d0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38  t boundary3-2.18
1c4e0 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .gt.1 {.  db eva
1c4f0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
1c500 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
1c510 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
1c520 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
1c530 20 3e 20 2d 33 36 30 32 38 37 39 37 30 31 38 39   > -360287970189
1c540 36 33 39 36 38 20 4f 52 44 45 52 20 42 59 20 74  63968 ORDER BY t
1c550 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 33 20 34  2.a.  }.} {1 3 4
1c560 20 35 20 36 20 37 20 38 20 39 20 31 30 20 31 31   5 6 7 8 9 10 11
1c570 20 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20   12 13 14 15 16 
1c580 31 37 20 31 38 20 31 39 20 32 30 20 32 31 20 32  17 18 19 20 21 2
1c590 32 20 32 33 20 32 34 20 32 35 20 32 36 20 32 37  2 23 24 25 26 27
1c5a0 20 32 38 20 32 39 20 33 30 20 33 31 20 33 32 20   28 29 30 31 32 
1c5b0 33 33 20 33 34 20 33 35 20 33 36 20 33 37 20 33  33 34 35 36 37 3
1c5c0 38 20 33 39 20 34 30 20 34 31 20 34 32 20 34 33  8 39 40 41 42 43
1c5d0 20 34 34 20 34 35 20 34 36 20 34 37 20 34 38 20   44 45 46 47 48 
1c5e0 34 39 20 35 30 20 35 31 20 35 32 20 35 33 20 35  49 50 51 52 53 5
1c5f0 34 20 35 36 20 35 37 20 35 38 20 35 39 20 36 30  4 56 57 58 59 60
1c600 20 36 31 20 36 32 20 36 33 7d 0a 64 6f 5f 74 65   61 62 63}.do_te
1c610 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1c620 38 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20 65 76  8.gt.2 {.  db ev
1c630 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1c640 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
1c650 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
1c660 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
1c670 20 3e 20 2d 33 36 30 32 38 37 39 37 30 31 38 39   > -360287970189
1c680 36 33 39 36 38 20 4f 52 44 45 52 20 42 59 20 74  63968 ORDER BY t
1c690 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
1c6a0 36 33 20 36 32 20 36 31 20 36 30 20 35 39 20 35  63 62 61 60 59 5
1c6b0 38 20 35 37 20 35 36 20 35 34 20 35 33 20 35 32  8 57 56 54 53 52
1c6c0 20 35 31 20 35 30 20 34 39 20 34 38 20 34 37 20   51 50 49 48 47 
1c6d0 34 36 20 34 35 20 34 34 20 34 33 20 34 32 20 34  46 45 44 43 42 4
1c6e0 31 20 34 30 20 33 39 20 33 38 20 33 37 20 33 36  1 40 39 38 37 36
1c6f0 20 33 35 20 33 34 20 33 33 20 33 32 20 33 31 20   35 34 33 32 31 
1c700 33 30 20 32 39 20 32 38 20 32 37 20 32 36 20 32  30 29 28 27 26 2
1c710 35 20 32 34 20 32 33 20 32 32 20 32 31 20 32 30  5 24 23 22 21 20
1c720 20 31 39 20 31 38 20 31 37 20 31 36 20 31 35 20   19 18 17 16 15 
1c730 31 34 20 31 33 20 31 32 20 31 31 20 31 30 20 39  14 13 12 11 10 9
1c740 20 38 20 37 20 36 20 35 20 34 20 33 20 31 7d 0a   8 7 6 5 4 3 1}.
1c750 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1c760 33 2d 32 2e 31 38 2e 67 74 2e 33 20 7b 0a 20 20  3-2.18.gt.3 {.  
1c770 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1c780 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1c790 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1c7a0 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20  rowid > t2.r.   
1c7b0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 34 0a    WHERE t2.a=64.
1c7c0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
1c7d0 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 31  .rowid.  }.} {21
1c7e0 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
1c7f0 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
1c800 20 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20   52 33 38 59 60 
1c810 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
1c820 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38  61 8 16 23 50 48
1c830 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20   62 15 42 18 24 
1c840 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
1c850 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
1c860 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
1c870 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
1c880 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
1c890 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
1c8a0 32 2e 31 38 2e 67 74 2e 34 20 7b 0a 20 20 64 62  2.18.gt.4 {.  db
1c8b0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1c8c0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
1c8d0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
1c8e0 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20  wid > t2.r.     
1c8f0 57 48 45 52 45 20 74 32 2e 61 3d 36 34 0a 20 20  WHERE t2.a=64.  
1c900 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
1c910 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
1c920 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
1c930 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
1c940 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
1c950 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
1c960 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
1c970 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20   18 42 15 62 48 
1c980 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
1c990 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
1c9a0 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
1c9b0 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
1c9c0 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 7d   47 63 58 44 21}
1c9d0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1c9e0 79 33 2d 32 2e 31 38 2e 67 74 2e 35 20 7b 0a 20  y3-2.18.gt.5 {. 
1c9f0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1ca00 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
1ca10 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
1ca20 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
1ca30 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 34     WHERE t2.a=64
1ca40 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
1ca50 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31  .  }.} {59 60 41
1ca60 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31   5 31 4 49 30 61
1ca70 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36   8 16 23 50 48 6
1ca80 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
1ca90 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
1caa0 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
1cab0 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
1cac0 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
1cad0 34 35 20 31 37 20 32 38 20 33 20 32 31 20 34 34  45 17 28 3 21 44
1cae0 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
1caf0 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
1cb00 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20   33 38}.do_test 
1cb10 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e 67  boundary3-2.18.g
1cb20 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.1 {.  db eval 
1cb30 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
1cb40 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1cb50 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
1cb60 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e  WHERE t1.rowid >
1cb70 3d 20 2d 33 36 30 32 38 37 39 37 30 31 38 39 36  = -3602879701896
1cb80 33 39 36 38 20 4f 52 44 45 52 20 42 59 20 74 32  3968 ORDER BY t2
1cb90 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 33 20 34 20  .a.  }.} {1 3 4 
1cba0 35 20 36 20 37 20 38 20 39 20 31 30 20 31 31 20  5 6 7 8 9 10 11 
1cbb0 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31  12 13 14 15 16 1
1cbc0 37 20 31 38 20 31 39 20 32 30 20 32 31 20 32 32  7 18 19 20 21 22
1cbd0 20 32 33 20 32 34 20 32 35 20 32 36 20 32 37 20   23 24 25 26 27 
1cbe0 32 38 20 32 39 20 33 30 20 33 31 20 33 32 20 33  28 29 30 31 32 3
1cbf0 33 20 33 34 20 33 35 20 33 36 20 33 37 20 33 38  3 34 35 36 37 38
1cc00 20 33 39 20 34 30 20 34 31 20 34 32 20 34 33 20   39 40 41 42 43 
1cc10 34 34 20 34 35 20 34 36 20 34 37 20 34 38 20 34  44 45 46 47 48 4
1cc20 39 20 35 30 20 35 31 20 35 32 20 35 33 20 35 34  9 50 51 52 53 54
1cc30 20 35 36 20 35 37 20 35 38 20 35 39 20 36 30 20   56 57 58 59 60 
1cc40 36 31 20 36 32 20 36 33 20 36 34 7d 0a 64 6f 5f  61 62 63 64}.do_
1cc50 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1cc60 2e 31 38 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20  .18.ge.2 {.  db 
1cc70 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1cc80 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
1cc90 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
1cca0 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
1ccb0 69 64 20 3e 3d 20 2d 33 36 30 32 38 37 39 37 30  id >= -360287970
1ccc0 31 38 39 36 33 39 36 38 20 4f 52 44 45 52 20 42  18963968 ORDER B
1ccd0 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
1cce0 7d 20 7b 36 34 20 36 33 20 36 32 20 36 31 20 36  } {64 63 62 61 6
1ccf0 30 20 35 39 20 35 38 20 35 37 20 35 36 20 35 34  0 59 58 57 56 54
1cd00 20 35 33 20 35 32 20 35 31 20 35 30 20 34 39 20   53 52 51 50 49 
1cd10 34 38 20 34 37 20 34 36 20 34 35 20 34 34 20 34  48 47 46 45 44 4
1cd20 33 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38  3 42 41 40 39 38
1cd30 20 33 37 20 33 36 20 33 35 20 33 34 20 33 33 20   37 36 35 34 33 
1cd40 33 32 20 33 31 20 33 30 20 32 39 20 32 38 20 32  32 31 30 29 28 2
1cd50 37 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32  7 26 25 24 23 22
1cd60 20 32 31 20 32 30 20 31 39 20 31 38 20 31 37 20   21 20 19 18 17 
1cd70 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20 31  16 15 14 13 12 1
1cd80 31 20 31 30 20 39 20 38 20 37 20 36 20 35 20 34  1 10 9 8 7 6 5 4
1cd90 20 33 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   3 1}.do_test bo
1cda0 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e 67 65 2e  undary3-2.18.ge.
1cdb0 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
1cdc0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1cdd0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1cde0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74  ON t1.rowid >= t
1cdf0 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
1ce00 32 2e 61 3d 36 34 0a 20 20 20 20 20 4f 52 44 45  2.a=64.     ORDE
1ce10 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
1ce20 7d 0a 7d 20 7b 36 34 20 32 31 20 34 34 20 35 38  }.} {64 21 44 58
1ce30 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
1ce40 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
1ce50 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33   38 59 60 41 5 3
1ce60 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
1ce70 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
1ce80 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32   42 18 24 9 6 12
1ce90 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
1cea0 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
1ceb0 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
1cec0 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
1ced0 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
1cee0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e 67  boundary3-2.18.g
1cef0 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.4 {.  db eval 
1cf00 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1cf10 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1cf20 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
1cf30 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1cf40 20 74 32 2e 61 3d 36 34 0a 20 20 20 20 20 4f 52   t2.a=64.     OR
1cf50 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
1cf60 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
1cf70 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
1cf80 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
1cf90 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20   19 57 35 46 22 
1cfa0 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
1cfb0 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
1cfc0 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
1cfd0 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
1cfe0 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
1cff0 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
1d000 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
1d010 33 20 35 38 20 34 34 20 32 31 20 36 34 7d 0a 64  3 58 44 21 64}.d
1d020 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1d030 2d 32 2e 31 38 2e 67 65 2e 35 20 7b 0a 20 20 64  -2.18.ge.5 {.  d
1d040 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1d050 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
1d060 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
1d070 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
1d080 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 34 0a    WHERE t2.a=64.
1d090 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
1d0a0 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20    }.} {59 60 41 
1d0b0 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
1d0c0 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
1d0d0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
1d0e0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
1d0f0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
1d100 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
1d110 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
1d120 35 20 31 37 20 32 38 20 33 20 36 34 20 32 31 20  5 17 28 3 64 21 
1d130 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
1d140 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
1d150 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73  52 33 38}.do_tes
1d160 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38  t boundary3-2.18
1d170 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .lt.1 {.  db eva
1d180 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
1d190 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
1d1a0 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
1d1b0 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
1d1c0 20 3c 20 2d 33 36 30 32 38 37 39 37 30 31 38 39   < -360287970189
1d1d0 36 33 39 36 38 20 4f 52 44 45 52 20 42 59 20 74  63968 ORDER BY t
1d1e0 32 2e 61 0a 20 20 7d 0a 7d 20 7b 32 20 35 35 7d  2.a.  }.} {2 55}
1d1f0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1d200 79 33 2d 32 2e 31 38 2e 6c 74 2e 32 20 7b 0a 20  y3-2.18.lt.2 {. 
1d210 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1d220 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
1d230 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
1d240 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
1d250 2e 72 6f 77 69 64 20 3c 20 2d 33 36 30 32 38 37  .rowid < -360287
1d260 39 37 30 31 38 39 36 33 39 36 38 20 4f 52 44 45  97018963968 ORDE
1d270 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
1d280 20 7d 0a 7d 20 7b 35 35 20 32 7d 0a 64 6f 5f 74   }.} {55 2}.do_t
1d290 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1d2a0 31 38 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65  18.lt.3 {.  db e
1d2b0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1d2c0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
1d2d0 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
1d2e0 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48  d < t2.r.     WH
1d2f0 45 52 45 20 74 32 2e 61 3d 36 34 0a 20 20 20 20  ERE t2.a=64.    
1d300 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
1d310 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 7d 0a  id.  }.} {55 2}.
1d320 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1d330 33 2d 32 2e 31 38 2e 6c 74 2e 34 20 7b 0a 20 20  3-2.18.lt.4 {.  
1d340 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1d350 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1d360 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1d370 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20  rowid < t2.r.   
1d380 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 34 0a    WHERE t2.a=64.
1d390 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
1d3a0 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
1d3b0 7d 20 7b 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  } {2 55}.do_test
1d3c0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e   boundary3-2.18.
1d3d0 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.5 {.  db eval
1d3e0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
1d3f0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
1d400 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
1d410 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1d420 20 74 32 2e 61 3d 36 34 0a 20 20 20 20 20 4f 52   t2.a=64.     OR
1d430 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
1d440 35 35 20 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  55 2}.do_test bo
1d450 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e 6c 65 2e  undary3-2.18.le.
1d460 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
1d470 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
1d480 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1d490 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
1d4a0 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20  ERE t1.rowid <= 
1d4b0 2d 33 36 30 32 38 37 39 37 30 31 38 39 36 33 39  -360287970189639
1d4c0 36 38 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  68 ORDER BY t2.a
1d4d0 0a 20 20 7d 0a 7d 20 7b 32 20 35 35 20 36 34 7d  .  }.} {2 55 64}
1d4e0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1d4f0 79 33 2d 32 2e 31 38 2e 6c 65 2e 32 20 7b 0a 20  y3-2.18.le.2 {. 
1d500 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1d510 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
1d520 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
1d530 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
1d540 2e 72 6f 77 69 64 20 3c 3d 20 2d 33 36 30 32 38  .rowid <= -36028
1d550 37 39 37 30 31 38 39 36 33 39 36 38 20 4f 52 44  797018963968 ORD
1d560 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
1d570 20 20 7d 0a 7d 20 7b 36 34 20 35 35 20 32 7d 0a    }.} {64 55 2}.
1d580 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1d590 33 2d 32 2e 31 38 2e 6c 65 2e 33 20 7b 0a 20 20  3-2.18.le.3 {.  
1d5a0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1d5b0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1d5c0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1d5d0 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
1d5e0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 36 34     WHERE t2.a=64
1d5f0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
1d600 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
1d610 35 20 32 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20  5 2 64}.do_test 
1d620 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 38 2e 6c  boundary3-2.18.l
1d630 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.4 {.  db eval 
1d640 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1d650 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1d660 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
1d670 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1d680 20 74 32 2e 61 3d 36 34 0a 20 20 20 20 20 4f 52   t2.a=64.     OR
1d690 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
1d6a0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 32  DESC.  }.} {64 2
1d6b0 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
1d6c0 6e 64 61 72 79 33 2d 32 2e 31 38 2e 6c 65 2e 35  ndary3-2.18.le.5
1d6d0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1d6e0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
1d6f0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
1d700 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
1d710 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
1d720 2e 61 3d 36 34 0a 20 20 20 20 20 4f 52 44 45 52  .a=64.     ORDER
1d730 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 35 20   BY x.  }.} {55 
1d740 32 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 64}.do_test bo
1d750 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e 31 20 7b  undary3-2.19.1 {
1d760 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
1d770 20 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f   SELECT t1.* FRO
1d780 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74  M t1, t2 WHERE t
1d790 31 2e 72 6f 77 69 64 3d 36 35 35 33 35 20 41 4e  1.rowid=65535 AN
1d7a0 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a  D t2.a=t1.a.  }.
1d7b0 7d 20 7b 34 38 20 30 30 30 30 30 30 30 30 30 30  } {48 0000000000
1d7c0 30 30 66 66 66 66 7d 0a 64 6f 5f 74 65 73 74 20  00ffff}.do_test 
1d7d0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e 32  boundary3-2.19.2
1d7e0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1d7f0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a 20 46     SELECT t2.* F
1d800 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55  ROM t1 JOIN t2 U
1d810 53 49 4e 47 28 61 29 20 57 48 45 52 45 20 78 3d  SING(a) WHERE x=
1d820 27 30 30 30 30 30 30 30 30 30 30 30 30 66 66 66  '000000000000fff
1d830 66 27 0a 20 20 7d 0a 7d 20 7b 36 35 35 33 35 20  f'.  }.} {65535 
1d840 34 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  48}.do_test boun
1d850 64 61 72 79 33 2d 32 2e 31 39 2e 33 20 7b 0a 20  dary3-2.19.3 {. 
1d860 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1d870 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c 20  ELECT t1.rowid, 
1d880 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  x FROM t1 JOIN t
1d890 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f 77  2 ON t2.r=t1.row
1d8a0 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d 34 38  id WHERE t2.a=48
1d8b0 0a 20 20 7d 0a 7d 20 7b 36 35 35 33 35 20 30 30  .  }.} {65535 00
1d8c0 30 30 30 30 30 30 30 30 30 30 66 66 66 66 7d 0a  0000000000ffff}.
1d8d0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1d8e0 33 2d 32 2e 31 39 2e 67 74 2e 31 20 7b 0a 20 20  3-2.19.gt.1 {.  
1d8f0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1d900 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
1d910 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
1d920 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
1d930 2e 72 6f 77 69 64 20 3e 20 36 35 35 33 35 20 4f  .rowid > 65535 O
1d940 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
1d950 0a 7d 20 7b 33 20 36 20 37 20 39 20 31 30 20 31  .} {3 6 7 9 10 1
1d960 32 20 31 33 20 31 34 20 31 35 20 31 37 20 31 38  2 13 14 15 17 18
1d970 20 31 39 20 32 30 20 32 32 20 32 34 20 32 35 20   19 20 22 24 25 
1d980 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20 33  26 27 28 34 35 3
1d990 36 20 33 39 20 34 30 20 34 32 20 34 33 20 34 35  6 39 40 42 43 45
1d9a0 20 34 36 20 35 31 20 35 36 20 35 37 20 36 32 7d   46 51 56 57 62}
1d9b0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1d9c0 79 33 2d 32 2e 31 39 2e 67 74 2e 32 20 7b 0a 20  y3-2.19.gt.2 {. 
1d9d0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1d9e0 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
1d9f0 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
1da00 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
1da10 2e 72 6f 77 69 64 20 3e 20 36 35 35 33 35 20 4f  .rowid > 65535 O
1da20 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
1da30 43 0a 20 20 7d 0a 7d 20 7b 36 32 20 35 37 20 35  C.  }.} {62 57 5
1da40 36 20 35 31 20 34 36 20 34 35 20 34 33 20 34 32  6 51 46 45 43 42
1da50 20 34 30 20 33 39 20 33 36 20 33 35 20 33 34 20   40 39 36 35 34 
1da60 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20 32  28 27 26 25 24 2
1da70 32 20 32 30 20 31 39 20 31 38 20 31 37 20 31 35  2 20 19 18 17 15
1da80 20 31 34 20 31 33 20 31 32 20 31 30 20 39 20 37   14 13 12 10 9 7
1da90 20 36 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   6 3}.do_test bo
1daa0 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e 67 74 2e  undary3-2.19.gt.
1dab0 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
1dac0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1dad0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1dae0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32  ON t1.rowid > t2
1daf0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
1db00 2e 61 3d 34 38 0a 20 20 20 20 20 4f 52 44 45 52  .a=48.     ORDER
1db10 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
1db20 0a 7d 20 7b 36 32 20 31 35 20 34 32 20 31 38 20  .} {62 15 42 18 
1db30 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
1db40 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
1db50 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
1db60 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
1db70 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
1db80 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1db90 79 33 2d 32 2e 31 39 2e 67 74 2e 34 20 7b 0a 20  y3-2.19.gt.4 {. 
1dba0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1dbb0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
1dbc0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
1dbd0 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
1dbe0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 38     WHERE t2.a=48
1dbf0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
1dc00 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
1dc10 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
1dc20 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
1dc30 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
1dc40 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
1dc50 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
1dc60 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 7d   24 18 42 15 62}
1dc70 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1dc80 79 33 2d 32 2e 31 39 2e 67 74 2e 35 20 7b 0a 20  y3-2.19.gt.5 {. 
1dc90 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1dca0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
1dcb0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
1dcc0 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
1dcd0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 38     WHERE t2.a=48
1dce0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
1dcf0 0a 20 20 7d 0a 7d 20 7b 36 32 20 31 35 20 34 32  .  }.} {62 15 42
1dd00 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30   18 24 9 6 12 40
1dd10 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20   20 51 14 36 39 
1dd20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37  22 46 35 57 19 7
1dd30 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20   56 25 34 10 26 
1dd40 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32  13 43 27 45 17 2
1dd50 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  8 3}.do_test bou
1dd60 6e 64 61 72 79 33 2d 32 2e 31 39 2e 67 74 2e 31  ndary3-2.19.gt.1
1dd70 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
1dd80 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1dd90 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1dda0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41  ON t1.rowid > CA
1ddb0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
1ddc0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
1ddd0 3d 34 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =48.     ORDER B
1dde0 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
1ddf0 20 7b 36 32 20 31 35 20 34 32 20 31 38 20 32 34   {62 15 42 18 24
1de00 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
1de10 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
1de20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
1de30 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
1de40 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
1de50 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1de60 2d 32 2e 31 39 2e 67 74 2e 31 31 20 7b 0a 20 20  -2.19.gt.11 {.  
1de70 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1de80 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1de90 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1dea0 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e  rowid > CAST(t2.
1deb0 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
1dec0 57 48 45 52 45 20 74 32 2e 61 3d 34 38 0a 20 20  WHERE t2.a=48.  
1ded0 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
1dee0 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
1def0 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
1df00 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
1df10 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
1df20 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
1df30 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
1df40 20 31 38 20 34 32 20 31 35 20 36 32 7d 0a 64 6f   18 42 15 62}.do
1df50 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
1df60 32 2e 31 39 2e 67 65 2e 31 20 7b 0a 20 20 64 62  2.19.ge.1 {.  db
1df70 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1df80 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
1df90 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
1dfa0 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
1dfb0 6f 77 69 64 20 3e 3d 20 36 35 35 33 35 20 4f 52  owid >= 65535 OR
1dfc0 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
1dfd0 7d 20 7b 33 20 36 20 37 20 39 20 31 30 20 31 32  } {3 6 7 9 10 12
1dfe0 20 31 33 20 31 34 20 31 35 20 31 37 20 31 38 20   13 14 15 17 18 
1dff0 31 39 20 32 30 20 32 32 20 32 34 20 32 35 20 32  19 20 22 24 25 2
1e000 36 20 32 37 20 32 38 20 33 34 20 33 35 20 33 36  6 27 28 34 35 36
1e010 20 33 39 20 34 30 20 34 32 20 34 33 20 34 35 20   39 40 42 43 45 
1e020 34 36 20 34 38 20 35 31 20 35 36 20 35 37 20 36  46 48 51 56 57 6
1e030 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  2}.do_test bound
1e040 61 72 79 33 2d 32 2e 31 39 2e 67 65 2e 32 20 7b  ary3-2.19.ge.2 {
1e050 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
1e060 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
1e070 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
1e080 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
1e090 74 31 2e 72 6f 77 69 64 20 3e 3d 20 36 35 35 33  t1.rowid >= 6553
1e0a0 35 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20  5 ORDER BY t1.a 
1e0b0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32 20 35  DESC.  }.} {62 5
1e0c0 37 20 35 36 20 35 31 20 34 38 20 34 36 20 34 35  7 56 51 48 46 45
1e0d0 20 34 33 20 34 32 20 34 30 20 33 39 20 33 36 20   43 42 40 39 36 
1e0e0 33 35 20 33 34 20 32 38 20 32 37 20 32 36 20 32  35 34 28 27 26 2
1e0f0 35 20 32 34 20 32 32 20 32 30 20 31 39 20 31 38  5 24 22 20 19 18
1e100 20 31 37 20 31 35 20 31 34 20 31 33 20 31 32 20   17 15 14 13 12 
1e110 31 30 20 39 20 37 20 36 20 33 7d 0a 64 6f 5f 74  10 9 7 6 3}.do_t
1e120 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1e130 31 39 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65  19.ge.3 {.  db e
1e140 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1e150 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
1e160 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
1e170 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
1e180 48 45 52 45 20 74 32 2e 61 3d 34 38 0a 20 20 20  HERE t2.a=48.   
1e190 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1e1a0 77 69 64 0a 20 20 7d 0a 7d 20 7b 34 38 20 36 32  wid.  }.} {48 62
1e1b0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
1e1c0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
1e1d0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
1e1e0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
1e1f0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
1e200 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
1e210 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1e220 39 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20 65 76  9.ge.4 {.  db ev
1e230 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1e240 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
1e250 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
1e260 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
1e270 45 52 45 20 74 32 2e 61 3d 34 38 0a 20 20 20 20  ERE t2.a=48.    
1e280 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
1e290 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33  id DESC.  }.} {3
1e2a0 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20   28 17 45 27 43 
1e2b0 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35  13 26 10 34 25 5
1e2c0 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20  6 7 19 57 35 46 
1e2d0 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32  22 39 36 14 51 2
1e2e0 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31  0 40 12 6 9 24 1
1e2f0 38 20 34 32 20 31 35 20 36 32 20 34 38 7d 0a 64  8 42 15 62 48}.d
1e300 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1e310 2d 32 2e 31 39 2e 67 65 2e 35 20 7b 0a 20 20 64  -2.19.ge.5 {.  d
1e320 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1e330 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
1e340 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
1e350 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
1e360 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 38 0a    WHERE t2.a=48.
1e370 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
1e380 20 20 7d 0a 7d 20 7b 34 38 20 36 32 20 31 35 20    }.} {48 62 15 
1e390 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
1e3a0 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
1e3b0 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
1e3c0 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
1e3d0 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
1e3e0 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
1e3f0 6f 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e 67 65  oundary3-2.19.ge
1e400 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .10 {.  db eval 
1e410 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
1e420 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1e430 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
1e440 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
1e450 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
1e460 32 2e 61 3d 34 38 0a 20 20 20 20 20 4f 52 44 45  2.a=48.     ORDE
1e470 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
1e480 7d 0a 7d 20 7b 34 38 20 36 32 20 31 35 20 34 32  }.} {48 62 15 42
1e490 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30   18 24 9 6 12 40
1e4a0 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20   20 51 14 36 39 
1e4b0 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37  22 46 35 57 19 7
1e4c0 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20   56 25 34 10 26 
1e4d0 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32  13 43 27 45 17 2
1e4e0 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  8 3}.do_test bou
1e4f0 6e 64 61 72 79 33 2d 32 2e 31 39 2e 67 65 2e 31  ndary3-2.19.ge.1
1e500 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
1e510 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1e520 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1e530 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43  ON t1.rowid >= C
1e540 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
1e550 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
1e560 61 3d 34 38 0a 20 20 20 20 20 4f 52 44 45 52 20  a=48.     ORDER 
1e570 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43  BY t1.rowid DESC
1e580 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20  .  }.} {3 28 17 
1e590 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31  45 27 43 13 26 1
1e5a0 30 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20  0 34 25 56 7 19 
1e5b0 35 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33  57 35 46 22 39 3
1e5c0 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32  6 14 51 20 40 12
1e5d0 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35   6 9 24 18 42 15
1e5e0 20 36 32 20 34 38 7d 0a 64 6f 5f 74 65 73 74 20   62 48}.do_test 
1e5f0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e 6c  boundary3-2.19.l
1e600 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.1 {.  db eval 
1e610 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
1e620 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
1e630 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
1e640 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
1e650 20 36 35 35 33 35 20 4f 52 44 45 52 20 42 59 20   65535 ORDER BY 
1e660 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20  t2.a.  }.} {1 2 
1e670 34 20 35 20 38 20 31 31 20 31 36 20 32 31 20 32  4 5 8 11 16 21 2
1e680 33 20 32 39 20 33 30 20 33 31 20 33 32 20 33 33  3 29 30 31 32 33
1e690 20 33 37 20 33 38 20 34 31 20 34 34 20 34 37 20   37 38 41 44 47 
1e6a0 34 39 20 35 30 20 35 32 20 35 33 20 35 34 20 35  49 50 52 53 54 5
1e6b0 35 20 35 38 20 35 39 20 36 30 20 36 31 20 36 33  5 58 59 60 61 63
1e6c0 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
1e6d0 6e 64 61 72 79 33 2d 32 2e 31 39 2e 6c 74 2e 32  ndary3-2.19.lt.2
1e6e0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1e6f0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
1e700 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
1e710 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
1e720 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 36 35 35  E t1.rowid < 655
1e730 33 35 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61  35 ORDER BY t1.a
1e740 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20   DESC.  }.} {64 
1e750 36 33 20 36 31 20 36 30 20 35 39 20 35 38 20 35  63 61 60 59 58 5
1e760 35 20 35 34 20 35 33 20 35 32 20 35 30 20 34 39  5 54 53 52 50 49
1e770 20 34 37 20 34 34 20 34 31 20 33 38 20 33 37 20   47 44 41 38 37 
1e780 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20 32  33 32 31 30 29 2
1e790 33 20 32 31 20 31 36 20 31 31 20 38 20 35 20 34  3 21 16 11 8 5 4
1e7a0 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   2 1}.do_test bo
1e7b0 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e 6c 74 2e  undary3-2.19.lt.
1e7c0 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
1e7d0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1e7e0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1e7f0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
1e800 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
1e810 2e 61 3d 34 38 0a 20 20 20 20 20 4f 52 44 45 52  .a=48.     ORDER
1e820 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
1e830 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
1e840 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
1e850 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
1e860 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31  2 33 38 59 60 41
1e870 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31   5 31 4 49 30 61
1e880 20 38 20 31 36 20 32 33 20 35 30 7d 0a 64 6f 5f   8 16 23 50}.do_
1e890 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1e8a0 2e 31 39 2e 6c 74 2e 34 20 7b 0a 20 20 64 62 20  .19.lt.4 {.  db 
1e8b0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1e8c0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
1e8d0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
1e8e0 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57  id < t2.r.     W
1e8f0 48 45 52 45 20 74 32 2e 61 3d 34 38 0a 20 20 20  HERE t2.a=48.   
1e900 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1e910 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
1e920 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
1e930 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
1e940 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
1e950 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
1e960 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
1e970 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
1e980 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e   boundary3-2.19.
1e990 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.5 {.  db eval
1e9a0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
1e9b0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
1e9c0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
1e9d0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
1e9e0 20 74 32 2e 61 3d 34 38 0a 20 20 20 20 20 4f 52   t2.a=48.     OR
1e9f0 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
1ea00 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
1ea10 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
1ea20 20 35 30 20 35 35 20 32 20 36 34 20 32 31 20 34   50 55 2 64 21 4
1ea30 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
1ea40 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
1ea50 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74  2 33 38}.do_test
1ea60 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e   boundary3-2.19.
1ea70 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  lt.10 {.  db eva
1ea80 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
1ea90 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
1eaa0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
1eab0 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  < CAST(t2.r AS r
1eac0 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
1ead0 74 32 2e 61 3d 34 38 0a 20 20 20 20 20 4f 52 44  t2.a=48.     ORD
1eae0 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20  ER BY t1.rowid. 
1eaf0 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31   }.} {55 2 64 21
1eb00 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
1eb10 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
1eb20 20 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20   52 33 38 59 60 
1eb30 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
1eb40 36 31 20 38 20 31 36 20 32 33 20 35 30 7d 0a 64  61 8 16 23 50}.d
1eb50 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1eb60 2d 32 2e 31 39 2e 6c 74 2e 31 31 20 7b 0a 20 20  -2.19.lt.11 {.  
1eb70 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1eb80 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1eb90 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1eba0 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e  rowid < CAST(t2.
1ebb0 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
1ebc0 57 48 45 52 45 20 74 32 2e 61 3d 34 38 0a 20 20  WHERE t2.a=48.  
1ebd0 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
1ebe0 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
1ebf0 7b 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33  {50 23 16 8 61 3
1ec00 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36  0 49 4 31 5 41 6
1ec10 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33  0 59 38 33 52 53
1ec20 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31   54 32 29 37 1 1
1ec30 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31  1 47 63 58 44 21
1ec40 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73   64 2 55}.do_tes
1ec50 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 39  t boundary3-2.19
1ec60 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .le.1 {.  db eva
1ec70 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
1ec80 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
1ec90 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
1eca0 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
1ecb0 20 3c 3d 20 36 35 35 33 35 20 4f 52 44 45 52 20   <= 65535 ORDER 
1ecc0 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31  BY t2.a.  }.} {1
1ecd0 20 32 20 34 20 35 20 38 20 31 31 20 31 36 20 32   2 4 5 8 11 16 2
1ece0 31 20 32 33 20 32 39 20 33 30 20 33 31 20 33 32  1 23 29 30 31 32
1ecf0 20 33 33 20 33 37 20 33 38 20 34 31 20 34 34 20   33 37 38 41 44 
1ed00 34 37 20 34 38 20 34 39 20 35 30 20 35 32 20 35  47 48 49 50 52 5
1ed10 33 20 35 34 20 35 35 20 35 38 20 35 39 20 36 30  3 54 55 58 59 60
1ed20 20 36 31 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65   61 63 64}.do_te
1ed30 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1ed40 39 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20 65 76  9.le.2 {.  db ev
1ed50 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1ed60 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
1ed70 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
1ed80 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
1ed90 20 3c 3d 20 36 35 35 33 35 20 4f 52 44 45 52 20   <= 65535 ORDER 
1eda0 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
1edb0 0a 7d 20 7b 36 34 20 36 33 20 36 31 20 36 30 20  .} {64 63 61 60 
1edc0 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20 35  59 58 55 54 53 5
1edd0 32 20 35 30 20 34 39 20 34 38 20 34 37 20 34 34  2 50 49 48 47 44
1ede0 20 34 31 20 33 38 20 33 37 20 33 33 20 33 32 20   41 38 37 33 32 
1edf0 33 31 20 33 30 20 32 39 20 32 33 20 32 31 20 31  31 30 29 23 21 1
1ee00 36 20 31 31 20 38 20 35 20 34 20 32 20 31 7d 0a  6 11 8 5 4 2 1}.
1ee10 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1ee20 33 2d 32 2e 31 39 2e 6c 65 2e 33 20 7b 0a 20 20  3-2.19.le.3 {.  
1ee30 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1ee40 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1ee50 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1ee60 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
1ee70 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 38     WHERE t2.a=48
1ee80 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
1ee90 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
1eea0 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
1eeb0 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
1eec0 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
1eed0 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
1eee0 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
1eef0 20 32 33 20 35 30 20 34 38 7d 0a 64 6f 5f 74 65   23 50 48}.do_te
1ef00 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1ef10 39 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65 76  9.le.4 {.  db ev
1ef20 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1ef30 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
1ef40 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
1ef50 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
1ef60 45 52 45 20 74 32 2e 61 3d 34 38 0a 20 20 20 20  ERE t2.a=48.    
1ef70 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
1ef80 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34  id DESC.  }.} {4
1ef90 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
1efa0 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
1efb0 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
1efc0 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
1efd0 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
1efe0 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
1eff0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31  st boundary3-2.1
1f000 39 2e 6c 65 2e 35 20 7b 0a 20 20 64 62 20 65 76  9.le.5 {.  db ev
1f010 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1f020 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
1f030 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
1f040 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
1f050 45 52 45 20 74 32 2e 61 3d 34 38 0a 20 20 20 20  ERE t2.a=48.    
1f060 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a   ORDER BY x.  }.
1f070 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31  } {59 60 41 5 31
1f080 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
1f090 20 32 33 20 35 30 20 34 38 20 35 35 20 32 20 36   23 50 48 55 2 6
1f0a0 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
1f0b0 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
1f0c0 34 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64  4 53 52 33 38}.d
1f0d0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1f0e0 2d 32 2e 31 39 2e 6c 65 2e 31 30 20 7b 0a 20 20  -2.19.le.10 {.  
1f0f0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
1f100 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
1f110 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
1f120 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32  rowid <= CAST(t2
1f130 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
1f140 20 57 48 45 52 45 20 74 32 2e 61 3d 34 38 0a 20   WHERE t2.a=48. 
1f150 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
1f160 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20  rowid.  }.} {55 
1f170 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
1f180 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
1f190 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
1f1a0 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34   59 60 41 5 31 4
1f1b0 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32   49 30 61 8 16 2
1f1c0 33 20 35 30 20 34 38 7d 0a 64 6f 5f 74 65 73 74  3 50 48}.do_test
1f1d0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 31 39 2e   boundary3-2.19.
1f1e0 6c 65 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61  le.11 {.  db eva
1f1f0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
1f200 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
1f210 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
1f220 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  <= CAST(t2.r AS 
1f230 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
1f240 20 74 32 2e 61 3d 34 38 0a 20 20 20 20 20 4f 52   t2.a=48.     OR
1f250 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
1f260 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34 38 20 35  DESC.  }.} {48 5
1f270 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
1f280 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
1f290 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20 35  59 38 33 52 53 5
1f2a0 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31 20  4 32 29 37 1 11 
1f2b0 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
1f2c0 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
1f2d0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 30 2e 31  boundary3-2.20.1
1f2e0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1f2f0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 2a 20 46     SELECT t1.* F
1f300 52 4f 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45  ROM t1, t2 WHERE
1f310 20 74 31 2e 72 6f 77 69 64 3d 34 32 39 34 39 36   t1.rowid=429496
1f320 37 32 39 35 20 41 4e 44 20 74 32 2e 61 3d 74 31  7295 AND t2.a=t1
1f330 2e 61 0a 20 20 7d 0a 7d 20 7b 31 34 20 30 30 30  .a.  }.} {14 000
1f340 30 30 30 30 30 66 66 66 66 66 66 66 66 7d 0a 64  00000ffffffff}.d
1f350 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1f360 2d 32 2e 32 30 2e 32 20 7b 0a 20 20 64 62 20 65  -2.20.2 {.  db e
1f370 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1f380 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.* FROM t1 JO
1f390 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 20 57  IN t2 USING(a) W
1f3a0 48 45 52 45 20 78 3d 27 30 30 30 30 30 30 30 30  HERE x='00000000
1f3b0 66 66 66 66 66 66 66 66 27 0a 20 20 7d 0a 7d 20  ffffffff'.  }.} 
1f3c0 7b 34 32 39 34 39 36 37 32 39 35 20 31 34 7d 0a  {4294967295 14}.
1f3d0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1f3e0 33 2d 32 2e 32 30 2e 33 20 7b 0a 20 20 64 62 20  3-2.20.3 {.  db 
1f3f0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1f400 54 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52  T t1.rowid, x FR
1f410 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
1f420 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57   t2.r=t1.rowid W
1f430 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20 20 7d  HERE t2.a=14.  }
1f440 0a 7d 20 7b 34 32 39 34 39 36 37 32 39 35 20 30  .} {4294967295 0
1f450 30 30 30 30 30 30 30 66 66 66 66 66 66 66 66 7d  0000000ffffffff}
1f460 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1f470 79 33 2d 32 2e 32 30 2e 67 74 2e 31 20 7b 0a 20  y3-2.20.gt.1 {. 
1f480 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1f490 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
1f4a0 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
1f4b0 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
1f4c0 31 2e 72 6f 77 69 64 20 3e 20 34 32 39 34 39 36  1.rowid > 429496
1f4d0 37 32 39 35 20 4f 52 44 45 52 20 42 59 20 74 32  7295 ORDER BY t2
1f4e0 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 37 20 31 30  .a.  }.} {3 7 10
1f4f0 20 31 33 20 31 37 20 31 39 20 32 32 20 32 35 20   13 17 19 22 25 
1f500 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20 33  26 27 28 34 35 3
1f510 36 20 33 39 20 34 33 20 34 35 20 34 36 20 35 36  6 39 43 45 46 56
1f520 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   57}.do_test bou
1f530 6e 64 61 72 79 33 2d 32 2e 32 30 2e 67 74 2e 32  ndary3-2.20.gt.2
1f540 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1f550 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
1f560 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
1f570 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
1f580 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 34 32 39  E t1.rowid > 429
1f590 34 39 36 37 32 39 35 20 4f 52 44 45 52 20 42 59  4967295 ORDER BY
1f5a0 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
1f5b0 20 7b 35 37 20 35 36 20 34 36 20 34 35 20 34 33   {57 56 46 45 43
1f5c0 20 33 39 20 33 36 20 33 35 20 33 34 20 32 38 20   39 36 35 34 28 
1f5d0 32 37 20 32 36 20 32 35 20 32 32 20 31 39 20 31  27 26 25 22 19 1
1f5e0 37 20 31 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f  7 13 10 7 3}.do_
1f5f0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
1f600 2e 32 30 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20  .20.gt.3 {.  db 
1f610 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
1f620 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
1f630 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
1f640 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
1f650 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20 20 20  HERE t2.a=14.   
1f660 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1f670 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 36 20 33 39  wid.  }.} {36 39
1f680 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
1f690 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
1f6a0 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
1f6b0 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
1f6c0 75 6e 64 61 72 79 33 2d 32 2e 32 30 2e 67 74 2e  undary3-2.20.gt.
1f6d0 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
1f6e0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
1f6f0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
1f700 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32  ON t1.rowid > t2
1f710 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
1f720 2e 61 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52  .a=14.     ORDER
1f730 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
1f740 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37  C.  }.} {3 28 17
1f750 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20   45 27 43 13 26 
1f760 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31 39  10 34 25 56 7 19
1f770 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39 20   57 35 46 22 39 
1f780 33 36 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  36}.do_test boun
1f790 64 61 72 79 33 2d 32 2e 32 30 2e 67 74 2e 35 20  dary3-2.20.gt.5 
1f7a0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
1f7b0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
1f7c0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
1f7d0 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72   t1.rowid > t2.r
1f7e0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
1f7f0 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =14.     ORDER B
1f800 59 20 78 0a 20 20 7d 0a 7d 20 7b 33 36 20 33 39  Y x.  }.} {36 39
1f810 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
1f820 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
1f830 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
1f840 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
1f850 75 6e 64 61 72 79 33 2d 32 2e 32 30 2e 67 74 2e  undary3-2.20.gt.
1f860 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  10 {.  db eval {
1f870 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
1f880 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
1f890 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43   ON t1.rowid > C
1f8a0 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
1f8b0 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
1f8c0 61 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52 20  a=14.     ORDER 
1f8d0 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
1f8e0 7d 20 7b 33 36 20 33 39 20 32 32 20 34 36 20 33  } {36 39 22 46 3
1f8f0 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
1f900 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
1f910 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
1f920 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
1f930 32 2e 32 30 2e 67 74 2e 31 31 20 7b 0a 20 20 64  2.20.gt.11 {.  d
1f940 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1f950 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
1f960 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
1f970 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72  owid > CAST(t2.r
1f980 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
1f990 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20 20 20  HERE t2.a=14.   
1f9a0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1f9b0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
1f9c0 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
1f9d0 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
1f9e0 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
1f9f0 20 32 32 20 33 39 20 33 36 7d 0a 64 6f 5f 74 65   22 39 36}.do_te
1fa00 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
1fa10 30 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76  0.ge.1 {.  db ev
1fa20 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
1fa30 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
1fa40 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
1fa50 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
1fa60 64 20 3e 3d 20 34 32 39 34 39 36 37 32 39 35 20  d >= 4294967295 
1fa70 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20  ORDER BY t2.a.  
1fa80 7d 0a 7d 20 7b 33 20 37 20 31 30 20 31 33 20 31  }.} {3 7 10 13 1
1fa90 34 20 31 37 20 31 39 20 32 32 20 32 35 20 32 36  4 17 19 22 25 26
1faa0 20 32 37 20 32 38 20 33 34 20 33 35 20 33 36 20   27 28 34 35 36 
1fab0 33 39 20 34 33 20 34 35 20 34 36 20 35 36 20 35  39 43 45 46 56 5
1fac0 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  7}.do_test bound
1fad0 61 72 79 33 2d 32 2e 32 30 2e 67 65 2e 32 20 7b  ary3-2.20.ge.2 {
1fae0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
1faf0 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
1fb00 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
1fb10 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
1fb20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 34 32 39 34  t1.rowid >= 4294
1fb30 39 36 37 32 39 35 20 4f 52 44 45 52 20 42 59 20  967295 ORDER BY 
1fb40 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
1fb50 7b 35 37 20 35 36 20 34 36 20 34 35 20 34 33 20  {57 56 46 45 43 
1fb60 33 39 20 33 36 20 33 35 20 33 34 20 32 38 20 32  39 36 35 34 28 2
1fb70 37 20 32 36 20 32 35 20 32 32 20 31 39 20 31 37  7 26 25 22 19 17
1fb80 20 31 34 20 31 33 20 31 30 20 37 20 33 7d 0a 64   14 13 10 7 3}.d
1fb90 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
1fba0 2d 32 2e 32 30 2e 67 65 2e 33 20 7b 0a 20 20 64  -2.20.ge.3 {.  d
1fbb0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
1fbc0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
1fbd0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
1fbe0 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
1fbf0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 34 0a    WHERE t2.a=14.
1fc00 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
1fc10 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 31 34  .rowid.  }.} {14
1fc20 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
1fc30 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
1fc40 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
1fc50 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
1fc60 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
1fc70 32 30 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20 65  20.ge.4 {.  db e
1fc80 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
1fc90 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
1fca0 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
1fcb0 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
1fcc0 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20 20 20  HERE t2.a=14.   
1fcd0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
1fce0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
1fcf0 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
1fd00 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
1fd10 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
1fd20 20 32 32 20 33 39 20 33 36 20 31 34 7d 0a 64 6f   22 39 36 14}.do
1fd30 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
1fd40 32 2e 32 30 2e 67 65 2e 35 20 7b 0a 20 20 64 62  2.20.ge.5 {.  db
1fd50 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
1fd60 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
1fd70 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
1fd80 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20  wid >= t2.r.    
1fd90 20 57 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20   WHERE t2.a=14. 
1fda0 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
1fdb0 20 7d 0a 7d 20 7b 31 34 20 33 36 20 33 39 20 32   }.} {14 36 39 2
1fdc0 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
1fdd0 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
1fde0 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
1fdf0 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
1fe00 64 61 72 79 33 2d 32 2e 32 30 2e 67 65 2e 31 30  dary3-2.20.ge.10
1fe10 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
1fe20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
1fe30 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
1fe40 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41  N t1.rowid >= CA
1fe50 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
1fe60 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
1fe70 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =14.     ORDER B
1fe80 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
1fe90 20 7b 31 34 20 33 36 20 33 39 20 32 32 20 34 36   {14 36 39 22 46
1fea0 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
1feb0 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
1fec0 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
1fed0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
1fee0 33 2d 32 2e 32 30 2e 67 65 2e 31 31 20 7b 0a 20  3-2.20.ge.11 {. 
1fef0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1ff00 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
1ff10 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
1ff20 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74  .rowid >= CAST(t
1ff30 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
1ff40 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 34 0a    WHERE t2.a=14.
1ff50 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
1ff60 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
1ff70 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37  } {3 28 17 45 27
1ff80 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20   43 13 26 10 34 
1ff90 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35  25 56 7 19 57 35
1ffa0 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 7d   46 22 39 36 14}
1ffb0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
1ffc0 79 33 2d 32 2e 32 30 2e 6c 74 2e 31 20 7b 0a 20  y3-2.20.lt.1 {. 
1ffd0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
1ffe0 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
1fff0 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
20000 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
20010 31 2e 72 6f 77 69 64 20 3c 20 34 32 39 34 39 36  1.rowid < 429496
20020 37 32 39 35 20 4f 52 44 45 52 20 42 59 20 74 32  7295 ORDER BY t2
20030 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 34 20  .a.  }.} {1 2 4 
20040 35 20 36 20 38 20 39 20 31 31 20 31 32 20 31 35  5 6 8 9 11 12 15
20050 20 31 36 20 31 38 20 32 30 20 32 31 20 32 33 20   16 18 20 21 23 
20060 32 34 20 32 39 20 33 30 20 33 31 20 33 32 20 33  24 29 30 31 32 3
20070 33 20 33 37 20 33 38 20 34 30 20 34 31 20 34 32  3 37 38 40 41 42
20080 20 34 34 20 34 37 20 34 38 20 34 39 20 35 30 20   44 47 48 49 50 
20090 35 31 20 35 32 20 35 33 20 35 34 20 35 35 20 35  51 52 53 54 55 5
200a0 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36 33  8 59 60 61 62 63
200b0 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
200c0 6e 64 61 72 79 33 2d 32 2e 32 30 2e 6c 74 2e 32  ndary3-2.20.lt.2
200d0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
200e0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
200f0 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
20100 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
20110 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 34 32 39  E t1.rowid < 429
20120 34 39 36 37 32 39 35 20 4f 52 44 45 52 20 42 59  4967295 ORDER BY
20130 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
20140 20 7b 36 34 20 36 33 20 36 32 20 36 31 20 36 30   {64 63 62 61 60
20150 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20   59 58 55 54 53 
20160 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20 34  52 51 50 49 48 4
20170 37 20 34 34 20 34 32 20 34 31 20 34 30 20 33 38  7 44 42 41 40 38
20180 20 33 37 20 33 33 20 33 32 20 33 31 20 33 30 20   37 33 32 31 30 
20190 32 39 20 32 34 20 32 33 20 32 31 20 32 30 20 31  29 24 23 21 20 1
201a0 38 20 31 36 20 31 35 20 31 32 20 31 31 20 39 20  8 16 15 12 11 9 
201b0 38 20 36 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f  8 6 5 4 2 1}.do_
201c0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
201d0 2e 32 30 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20  .20.lt.3 {.  db 
201e0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
201f0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
20200 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
20210 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57  id < t2.r.     W
20220 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20 20 20  HERE t2.a=14.   
20230 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
20240 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20  wid.  }.} {55 2 
20250 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34  64 21 44 58 63 4
20260 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20  7 11 1 37 29 32 
20270 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35  54 53 52 33 38 5
20280 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
20290 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
202a0 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
202b0 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
202c0 30 20 35 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  0 51}.do_test bo
202d0 75 6e 64 61 72 79 33 2d 32 2e 32 30 2e 6c 74 2e  undary3-2.20.lt.
202e0 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
202f0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
20300 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
20310 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
20320 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
20330 2e 61 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52  .a=14.     ORDER
20340 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
20350 43 0a 20 20 7d 0a 7d 20 7b 35 31 20 32 30 20 34  C.  }.} {51 20 4
20360 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
20370 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
20380 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
20390 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
203a0 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
203b0 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
203c0 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
203d0 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
203e0 64 61 72 79 33 2d 32 2e 32 30 2e 6c 74 2e 35 20  dary3-2.20.lt.5 
203f0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
20400 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
20410 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
20420 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
20430 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
20440 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =14.     ORDER B
20450 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30  Y x.  }.} {59 60
20460 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
20470 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
20480 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
20490 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
204a0 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35   55 2 64 21 44 5
204b0 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
204c0 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
204d0 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 38}.do_test bo
204e0 75 6e 64 61 72 79 33 2d 32 2e 32 30 2e 6c 74 2e  undary3-2.20.lt.
204f0 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  10 {.  db eval {
20500 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
20510 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
20520 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 43   ON t1.rowid < C
20530 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
20540 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
20550 61 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52 20  a=14.     ORDER 
20560 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
20570 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
20580 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
20590 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
205a0 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
205b0 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
205c0 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
205d0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
205e0 20 31 32 20 34 30 20 32 30 20 35 31 7d 0a 64 6f   12 40 20 51}.do
205f0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
20600 32 2e 32 30 2e 6c 74 2e 31 31 20 7b 0a 20 20 64  2.20.lt.11 {.  d
20610 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
20620 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
20630 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
20640 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72  owid < CAST(t2.r
20650 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
20660 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20 20 20  HERE t2.a=14.   
20670 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
20680 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
20690 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
206a0 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
206b0 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
206c0 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
206d0 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
206e0 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
206f0 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
20700 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
20710 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
20720 30 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76  0.le.1 {.  db ev
20730 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
20740 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
20750 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
20760 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
20770 64 20 3c 3d 20 34 32 39 34 39 36 37 32 39 35 20  d <= 4294967295 
20780 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20  ORDER BY t2.a.  
20790 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 36 20 38  }.} {1 2 4 5 6 8
207a0 20 39 20 31 31 20 31 32 20 31 34 20 31 35 20 31   9 11 12 14 15 1
207b0 36 20 31 38 20 32 30 20 32 31 20 32 33 20 32 34  6 18 20 21 23 24
207c0 20 32 39 20 33 30 20 33 31 20 33 32 20 33 33 20   29 30 31 32 33 
207d0 33 37 20 33 38 20 34 30 20 34 31 20 34 32 20 34  37 38 40 41 42 4
207e0 34 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31  4 47 48 49 50 51
207f0 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38 20   52 53 54 55 58 
20800 35 39 20 36 30 20 36 31 20 36 32 20 36 33 20 36  59 60 61 62 63 6
20810 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  4}.do_test bound
20820 61 72 79 33 2d 32 2e 32 30 2e 6c 65 2e 32 20 7b  ary3-2.20.le.2 {
20830 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
20840 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
20850 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
20860 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
20870 74 31 2e 72 6f 77 69 64 20 3c 3d 20 34 32 39 34  t1.rowid <= 4294
20880 39 36 37 32 39 35 20 4f 52 44 45 52 20 42 59 20  967295 ORDER BY 
20890 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
208a0 7b 36 34 20 36 33 20 36 32 20 36 31 20 36 30 20  {64 63 62 61 60 
208b0 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20 35  59 58 55 54 53 5
208c0 32 20 35 31 20 35 30 20 34 39 20 34 38 20 34 37  2 51 50 49 48 47
208d0 20 34 34 20 34 32 20 34 31 20 34 30 20 33 38 20   44 42 41 40 38 
208e0 33 37 20 33 33 20 33 32 20 33 31 20 33 30 20 32  37 33 32 31 30 2
208f0 39 20 32 34 20 32 33 20 32 31 20 32 30 20 31 38  9 24 23 21 20 18
20900 20 31 36 20 31 35 20 31 34 20 31 32 20 31 31 20   16 15 14 12 11 
20910 39 20 38 20 36 20 35 20 34 20 32 20 31 7d 0a 64  9 8 6 5 4 2 1}.d
20920 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
20930 2d 32 2e 32 30 2e 6c 65 2e 33 20 7b 0a 20 20 64  -2.20.le.3 {.  d
20940 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
20950 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
20960 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
20970 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
20980 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 34 0a    WHERE t2.a=14.
20990 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
209a0 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
209b0 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
209c0 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
209d0 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
209e0 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20  8 59 60 41 5 31 
209f0 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
20a00 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
20a10 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
20a20 30 20 32 30 20 35 31 20 31 34 7d 0a 64 6f 5f 74  0 20 51 14}.do_t
20a30 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
20a40 32 30 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65  20.le.4 {.  db e
20a50 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
20a60 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
20a70 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
20a80 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d <= t2.r.     W
20a90 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20 20 20  HERE t2.a=14.   
20aa0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
20ab0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
20ac0 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36  14 51 20 40 12 6
20ad0 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36   9 24 18 42 15 6
20ae0 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20  2 48 50 23 16 8 
20af0 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20  61 30 49 4 31 5 
20b00 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35  41 60 59 38 33 5
20b10 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37  2 53 54 32 29 37
20b20 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34   1 11 47 63 58 4
20b30 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f  4 21 64 2 55}.do
20b40 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
20b50 32 2e 32 30 2e 6c 65 2e 35 20 7b 0a 20 20 64 62  2.20.le.5 {.  db
20b60 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
20b70 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
20b80 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
20b90 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20  wid <= t2.r.    
20ba0 20 57 48 45 52 45 20 74 32 2e 61 3d 31 34 0a 20   WHERE t2.a=14. 
20bb0 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
20bc0 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35   }.} {59 60 41 5
20bd0 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
20be0 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
20bf0 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20  15 42 18 24 9 6 
20c00 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 35  12 40 20 51 14 5
20c10 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
20c20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
20c30 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
20c40 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  38}.do_test boun
20c50 64 61 72 79 33 2d 32 2e 32 30 2e 6c 65 2e 31 30  dary3-2.20.le.10
20c60 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
20c70 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
20c80 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
20c90 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41  N t1.rowid <= CA
20ca0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
20cb0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
20cc0 3d 31 34 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =14.     ORDER B
20cd0 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
20ce0 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
20cf0 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
20d00 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
20d10 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
20d20 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
20d30 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
20d40 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20  15 42 18 24 9 6 
20d50 31 32 20 34 30 20 32 30 20 35 31 20 31 34 7d 0a  12 40 20 51 14}.
20d60 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
20d70 33 2d 32 2e 32 30 2e 6c 65 2e 31 31 20 7b 0a 20  3-2.20.le.11 {. 
20d80 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
20d90 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
20da0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
20db0 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74  .rowid <= CAST(t
20dc0 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
20dd0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 34 0a    WHERE t2.a=14.
20de0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
20df0 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
20e00 7d 20 7b 31 34 20 35 31 20 32 30 20 34 30 20 31  } {14 51 20 40 1
20e10 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
20e20 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
20e30 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31   8 61 30 49 4 31
20e40 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33   5 41 60 59 38 3
20e50 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
20e60 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
20e70 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
20e80 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
20e90 79 33 2d 32 2e 32 31 2e 31 20 7b 0a 20 20 64 62  y3-2.21.1 {.  db
20ea0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
20eb0 43 54 20 74 31 2e 2a 20 46 52 4f 4d 20 74 31 2c  CT t1.* FROM t1,
20ec0 20 74 32 20 57 48 45 52 45 20 74 31 2e 72 6f 77   t2 WHERE t1.row
20ed0 69 64 3d 31 30 39 39 35 31 31 36 32 37 37 37 35  id=1099511627775
20ee0 20 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20   AND t2.a=t1.a. 
20ef0 20 7d 0a 7d 20 7b 35 37 20 30 30 30 30 30 30 66   }.} {57 000000f
20f00 66 66 66 66 66 66 66 66 66 7d 0a 64 6f 5f 74 65  fffffffff}.do_te
20f10 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
20f20 31 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  1.2 {.  db eval 
20f30 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
20f40 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  * FROM t1 JOIN t
20f50 32 20 55 53 49 4e 47 28 61 29 20 57 48 45 52 45  2 USING(a) WHERE
20f60 20 78 3d 27 30 30 30 30 30 30 66 66 66 66 66 66   x='000000ffffff
20f70 66 66 66 66 27 0a 20 20 7d 0a 7d 20 7b 31 30 39  ffff'.  }.} {109
20f80 39 35 31 31 36 32 37 37 37 35 20 35 37 7d 0a 64  9511627775 57}.d
20f90 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
20fa0 2d 32 2e 32 31 2e 33 20 7b 0a 20 20 64 62 20 65  -2.21.3 {.  db e
20fb0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
20fc0 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f   t1.rowid, x FRO
20fd0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
20fe0 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57 48  t2.r=t1.rowid WH
20ff0 45 52 45 20 74 32 2e 61 3d 35 37 0a 20 20 7d 0a  ERE t2.a=57.  }.
21000 7d 20 7b 31 30 39 39 35 31 31 36 32 37 37 37 35  } {1099511627775
21010 20 30 30 30 30 30 30 66 66 66 66 66 66 66 66 66   000000fffffffff
21020 66 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  f}.do_test bound
21030 61 72 79 33 2d 32 2e 32 31 2e 67 74 2e 31 20 7b  ary3-2.21.gt.1 {
21040 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
21050 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
21060 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
21070 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45  NG(a).     WHERE
21080 20 74 31 2e 72 6f 77 69 64 20 3e 20 31 30 39 39   t1.rowid > 1099
21090 35 31 31 36 32 37 37 37 35 20 4f 52 44 45 52 20  511627775 ORDER 
210a0 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33  BY t2.a.  }.} {3
210b0 20 37 20 31 30 20 31 33 20 31 37 20 31 39 20 32   7 10 13 17 19 2
210c0 35 20 32 36 20 32 37 20 32 38 20 33 34 20 34 33  5 26 27 28 34 43
210d0 20 34 35 20 35 36 7d 0a 64 6f 5f 74 65 73 74 20   45 56}.do_test 
210e0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31 2e 67  boundary3-2.21.g
210f0 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.2 {.  db eval 
21100 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
21110 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
21120 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
21130 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20  HERE t1.rowid > 
21140 31 30 39 39 35 31 31 36 32 37 37 37 35 20 4f 52  1099511627775 OR
21150 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43  DER BY t1.a DESC
21160 0a 20 20 7d 0a 7d 20 7b 35 36 20 34 35 20 34 33  .  }.} {56 45 43
21170 20 33 34 20 32 38 20 32 37 20 32 36 20 32 35 20   34 28 27 26 25 
21180 31 39 20 31 37 20 31 33 20 31 30 20 37 20 33 7d  19 17 13 10 7 3}
21190 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
211a0 79 33 2d 32 2e 32 31 2e 67 74 2e 33 20 7b 0a 20  y3-2.21.gt.3 {. 
211b0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
211c0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
211d0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
211e0 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
211f0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 37     WHERE t2.a=57
21200 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
21210 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 31  1.rowid.  }.} {1
21220 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
21230 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
21240 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
21250 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31 2e 67  boundary3-2.21.g
21260 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.4 {.  db eval 
21270 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
21280 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
21290 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
212a0 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
212b0 74 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f 52 44  t2.a=57.     ORD
212c0 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
212d0 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
212e0 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
212f0 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
21300 31 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  19}.do_test boun
21310 64 61 72 79 33 2d 32 2e 32 31 2e 67 74 2e 35 20  dary3-2.21.gt.5 
21320 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
21330 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
21340 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
21350 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72   t1.rowid > t2.r
21360 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
21370 3d 35 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =57.     ORDER B
21380 59 20 78 0a 20 20 7d 0a 7d 20 7b 31 39 20 37 20  Y x.  }.} {19 7 
21390 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
213a0 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
213b0 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
213c0 64 61 72 79 33 2d 32 2e 32 31 2e 67 74 2e 31 30  dary3-2.21.gt.10
213d0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
213e0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
213f0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
21400 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53  N t1.rowid > CAS
21410 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a  T(t2.r AS real).
21420 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
21430 35 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  57.     ORDER BY
21440 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
21450 7b 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31  {19 7 56 25 34 1
21460 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
21470 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
21480 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31  t boundary3-2.21
21490 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76  .gt.11 {.  db ev
214a0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
214b0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
214c0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
214d0 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53 20   > CAST(t2.r AS 
214e0 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
214f0 20 74 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f 52   t2.a=57.     OR
21500 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
21510 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
21520 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
21530 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
21540 20 31 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   19}.do_test bou
21550 6e 64 61 72 79 33 2d 32 2e 32 31 2e 67 65 2e 31  ndary3-2.21.ge.1
21560 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
21570 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
21580 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55  ROM t1 JOIN t2 U
21590 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45  SING(a).     WHE
215a0 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 31  RE t1.rowid >= 1
215b0 30 39 39 35 31 31 36 32 37 37 37 35 20 4f 52 44  099511627775 ORD
215c0 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d  ER BY t2.a.  }.}
215d0 20 7b 33 20 37 20 31 30 20 31 33 20 31 37 20 31   {3 7 10 13 17 1
215e0 39 20 32 35 20 32 36 20 32 37 20 32 38 20 33 34  9 25 26 27 28 34
215f0 20 34 33 20 34 35 20 35 36 20 35 37 7d 0a 64 6f   43 45 56 57}.do
21600 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
21610 32 2e 32 31 2e 67 65 2e 32 20 7b 0a 20 20 64 62  2.21.ge.2 {.  db
21620 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
21630 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
21640 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
21650 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
21660 77 69 64 20 3e 3d 20 31 30 39 39 35 31 31 36 32  wid >= 109951162
21670 37 37 37 35 20 4f 52 44 45 52 20 42 59 20 74 31  7775 ORDER BY t1
21680 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 35  .a DESC.  }.} {5
21690 37 20 35 36 20 34 35 20 34 33 20 33 34 20 32 38  7 56 45 43 34 28
216a0 20 32 37 20 32 36 20 32 35 20 31 39 20 31 37 20   27 26 25 19 17 
216b0 31 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f 74 65  13 10 7 3}.do_te
216c0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
216d0 31 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65 76  1.ge.3 {.  db ev
216e0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
216f0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
21700 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
21710 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
21720 45 52 45 20 74 32 2e 61 3d 35 37 0a 20 20 20 20  ERE t2.a=57.    
21730 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
21740 69 64 0a 20 20 7d 0a 7d 20 7b 35 37 20 31 39 20  id.  }.} {57 19 
21750 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
21760 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
21770 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
21780 75 6e 64 61 72 79 33 2d 32 2e 32 31 2e 67 65 2e  undary3-2.21.ge.
21790 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
217a0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
217b0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
217c0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74  ON t1.rowid >= t
217d0 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
217e0 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f 52 44 45  2.a=57.     ORDE
217f0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
21800 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31  SC.  }.} {3 28 1
21810 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36  7 45 27 43 13 26
21820 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31   10 34 25 56 7 1
21830 39 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  9 57}.do_test bo
21840 75 6e 64 61 72 79 33 2d 32 2e 32 31 2e 67 65 2e  undary3-2.21.ge.
21850 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
21860 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
21870 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
21880 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74  ON t1.rowid >= t
21890 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
218a0 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f 52 44 45  2.a=57.     ORDE
218b0 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 37  R BY x.  }.} {57
218c0 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
218d0 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
218e0 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
218f0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31  t boundary3-2.21
21900 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76  .ge.10 {.  db ev
21910 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
21920 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
21930 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
21940 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53   >= CAST(t2.r AS
21950 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
21960 45 20 74 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f  E t2.a=57.     O
21970 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
21980 0a 20 20 7d 0a 7d 20 7b 35 37 20 31 39 20 37 20  .  }.} {57 19 7 
21990 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
219a0 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
219b0 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
219c0 64 61 72 79 33 2d 32 2e 32 31 2e 67 65 2e 31 31  dary3-2.21.ge.11
219d0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
219e0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
219f0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
21a00 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41  N t1.rowid >= CA
21a10 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
21a20 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
21a30 3d 35 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =57.     ORDER B
21a40 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
21a50 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
21a60 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
21a70 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
21a80 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  7}.do_test bound
21a90 61 72 79 33 2d 32 2e 32 31 2e 6c 74 2e 31 20 7b  ary3-2.21.lt.1 {
21aa0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
21ab0 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
21ac0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
21ad0 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45  NG(a).     WHERE
21ae0 20 74 31 2e 72 6f 77 69 64 20 3c 20 31 30 39 39   t1.rowid < 1099
21af0 35 31 31 36 32 37 37 37 35 20 4f 52 44 45 52 20  511627775 ORDER 
21b00 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31  BY t2.a.  }.} {1
21b10 20 32 20 34 20 35 20 36 20 38 20 39 20 31 31 20   2 4 5 6 8 9 11 
21b20 31 32 20 31 34 20 31 35 20 31 36 20 31 38 20 32  12 14 15 16 18 2
21b30 30 20 32 31 20 32 32 20 32 33 20 32 34 20 32 39  0 21 22 23 24 29
21b40 20 33 30 20 33 31 20 33 32 20 33 33 20 33 35 20   30 31 32 33 35 
21b50 33 36 20 33 37 20 33 38 20 33 39 20 34 30 20 34  36 37 38 39 40 4
21b60 31 20 34 32 20 34 34 20 34 36 20 34 37 20 34 38  1 42 44 46 47 48
21b70 20 34 39 20 35 30 20 35 31 20 35 32 20 35 33 20   49 50 51 52 53 
21b80 35 34 20 35 35 20 35 38 20 35 39 20 36 30 20 36  54 55 58 59 60 6
21b90 31 20 36 32 20 36 33 20 36 34 7d 0a 64 6f 5f 74  1 62 63 64}.do_t
21ba0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
21bb0 32 31 2e 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65  21.lt.2 {.  db e
21bc0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
21bd0 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41   t2.a FROM t2 NA
21be0 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20  TURAL JOIN t1.  
21bf0 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
21c00 64 20 3c 20 31 30 39 39 35 31 31 36 32 37 37 37  d < 109951162777
21c10 35 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20  5 ORDER BY t1.a 
21c20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36  DESC.  }.} {64 6
21c30 33 20 36 32 20 36 31 20 36 30 20 35 39 20 35 38  3 62 61 60 59 58
21c40 20 35 35 20 35 34 20 35 33 20 35 32 20 35 31 20   55 54 53 52 51 
21c50 35 30 20 34 39 20 34 38 20 34 37 20 34 36 20 34  50 49 48 47 46 4
21c60 34 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38  4 42 41 40 39 38
21c70 20 33 37 20 33 36 20 33 35 20 33 33 20 33 32 20   37 36 35 33 32 
21c80 33 31 20 33 30 20 32 39 20 32 34 20 32 33 20 32  31 30 29 24 23 2
21c90 32 20 32 31 20 32 30 20 31 38 20 31 36 20 31 35  2 21 20 18 16 15
21ca0 20 31 34 20 31 32 20 31 31 20 39 20 38 20 36 20   14 12 11 9 8 6 
21cb0 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74  5 4 2 1}.do_test
21cc0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31 2e   boundary3-2.21.
21cd0 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.3 {.  db eval
21ce0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
21cf0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
21d00 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
21d10 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
21d20 20 74 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f 52   t2.a=57.     OR
21d30 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
21d40 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
21d50 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
21d60 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
21d70 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36 30  3 52 33 38 59 60
21d80 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
21d90 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
21da0 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
21db0 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
21dc0 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
21dd0 33 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  35}.do_test boun
21de0 64 61 72 79 33 2d 32 2e 32 31 2e 6c 74 2e 34 20  dary3-2.21.lt.4 
21df0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
21e00 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
21e10 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
21e20 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
21e30 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
21e40 3d 35 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =57.     ORDER B
21e50 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
21e60 20 20 7d 0a 7d 20 7b 33 35 20 34 36 20 32 32 20    }.} {35 46 22 
21e70 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
21e80 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
21e90 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
21ea0 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
21eb0 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
21ec0 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
21ed0 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
21ee0 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
21ef0 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
21f00 64 61 72 79 33 2d 32 2e 32 31 2e 6c 74 2e 35 20  dary3-2.21.lt.5 
21f10 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
21f20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
21f30 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
21f40 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
21f50 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
21f60 3d 35 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =57.     ORDER B
21f70 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30  Y x.  }.} {59 60
21f80 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
21f90 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
21fa0 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
21fb0 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
21fc0 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
21fd0 33 35 20 35 35 20 32 20 36 34 20 32 31 20 34 34  35 55 2 64 21 44
21fe0 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
21ff0 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
22000 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20   33 38}.do_test 
22010 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31 2e 6c  boundary3-2.21.l
22020 74 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c  t.10 {.  db eval
22030 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
22040 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
22050 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
22060 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
22070 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
22080 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f 52 44 45  2.a=57.     ORDE
22090 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
220a0 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20  }.} {55 2 64 21 
220b0 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
220c0 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
220d0 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
220e0 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
220f0 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
22100 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
22110 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
22120 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
22130 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
22140 72 79 33 2d 32 2e 32 31 2e 6c 74 2e 31 31 20 7b  ry3-2.21.lt.11 {
22150 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
22160 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
22170 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
22180 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28  t1.rowid < CAST(
22190 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
221a0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 37     WHERE t2.a=57
221b0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
221c0 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
221d0 0a 7d 20 7b 33 35 20 34 36 20 32 32 20 33 39 20  .} {35 46 22 39 
221e0 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31  36 14 51 20 40 1
221f0 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
22200 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
22210 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31   8 61 30 49 4 31
22220 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33   5 41 60 59 38 3
22230 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
22240 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
22250 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
22260 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
22270 79 33 2d 32 2e 32 31 2e 6c 65 2e 31 20 7b 0a 20  y3-2.21.le.1 {. 
22280 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
22290 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
222a0 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
222b0 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
222c0 31 2e 72 6f 77 69 64 20 3c 3d 20 31 30 39 39 35  1.rowid <= 10995
222d0 31 31 36 32 37 37 37 35 20 4f 52 44 45 52 20 42  11627775 ORDER B
222e0 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20  Y t2.a.  }.} {1 
222f0 32 20 34 20 35 20 36 20 38 20 39 20 31 31 20 31  2 4 5 6 8 9 11 1
22300 32 20 31 34 20 31 35 20 31 36 20 31 38 20 32 30  2 14 15 16 18 20
22310 20 32 31 20 32 32 20 32 33 20 32 34 20 32 39 20   21 22 23 24 29 
22320 33 30 20 33 31 20 33 32 20 33 33 20 33 35 20 33  30 31 32 33 35 3
22330 36 20 33 37 20 33 38 20 33 39 20 34 30 20 34 31  6 37 38 39 40 41
22340 20 34 32 20 34 34 20 34 36 20 34 37 20 34 38 20   42 44 46 47 48 
22350 34 39 20 35 30 20 35 31 20 35 32 20 35 33 20 35  49 50 51 52 53 5
22360 34 20 35 35 20 35 37 20 35 38 20 35 39 20 36 30  4 55 57 58 59 60
22370 20 36 31 20 36 32 20 36 33 20 36 34 7d 0a 64 6f   61 62 63 64}.do
22380 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
22390 32 2e 32 31 2e 6c 65 2e 32 20 7b 0a 20 20 64 62  2.21.le.2 {.  db
223a0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
223b0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
223c0 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
223d0 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
223e0 77 69 64 20 3c 3d 20 31 30 39 39 35 31 31 36 32  wid <= 109951162
223f0 37 37 37 35 20 4f 52 44 45 52 20 42 59 20 74 31  7775 ORDER BY t1
22400 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36  .a DESC.  }.} {6
22410 34 20 36 33 20 36 32 20 36 31 20 36 30 20 35 39  4 63 62 61 60 59
22420 20 35 38 20 35 37 20 35 35 20 35 34 20 35 33 20   58 57 55 54 53 
22430 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20 34  52 51 50 49 48 4
22440 37 20 34 36 20 34 34 20 34 32 20 34 31 20 34 30  7 46 44 42 41 40
22450 20 33 39 20 33 38 20 33 37 20 33 36 20 33 35 20   39 38 37 36 35 
22460 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20 32  33 32 31 30 29 2
22470 34 20 32 33 20 32 32 20 32 31 20 32 30 20 31 38  4 23 22 21 20 18
22480 20 31 36 20 31 35 20 31 34 20 31 32 20 31 31 20   16 15 14 12 11 
22490 39 20 38 20 36 20 35 20 34 20 32 20 31 7d 0a 64  9 8 6 5 4 2 1}.d
224a0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
224b0 2d 32 2e 32 31 2e 6c 65 2e 33 20 7b 0a 20 20 64  -2.21.le.3 {.  d
224c0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
224d0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
224e0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
224f0 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
22500 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 37 0a    WHERE t2.a=57.
22510 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
22520 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
22530 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
22540 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
22550 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
22560 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20  8 59 60 41 5 31 
22570 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
22580 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
22590 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
225a0 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
225b0 20 32 32 20 34 36 20 33 35 20 35 37 7d 0a 64 6f   22 46 35 57}.do
225c0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
225d0 32 2e 32 31 2e 6c 65 2e 34 20 7b 0a 20 20 64 62  2.21.le.4 {.  db
225e0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
225f0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
22600 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
22610 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20  wid <= t2.r.    
22620 20 57 48 45 52 45 20 74 32 2e 61 3d 35 37 0a 20   WHERE t2.a=57. 
22630 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
22640 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
22650 20 7b 35 37 20 33 35 20 34 36 20 32 32 20 33 39   {57 35 46 22 39
22660 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20   36 14 51 20 40 
22670 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20  12 6 9 24 18 42 
22680 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31  15 62 48 50 23 1
22690 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33  6 8 61 30 49 4 3
226a0 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20  1 5 41 60 59 38 
226b0 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
226c0 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20  9 37 1 11 47 63 
226d0 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
226e0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
226f0 72 79 33 2d 32 2e 32 31 2e 6c 65 2e 35 20 7b 0a  ry3-2.21.le.5 {.
22700 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
22710 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
22720 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
22730 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a  1.rowid <= t2.r.
22740 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
22750 35 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  57.     ORDER BY
22760 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20   x.  }.} {59 60 
22770 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
22780 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38  61 8 16 23 50 48
22790 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20   62 15 42 18 24 
227a0 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
227b0 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
227c0 35 20 35 37 20 35 35 20 32 20 36 34 20 32 31 20  5 57 55 2 64 21 
227d0 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
227e0 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
227f0 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73  52 33 38}.do_tes
22800 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31  t boundary3-2.21
22810 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76  .le.10 {.  db ev
22820 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
22830 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
22840 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
22850 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53   <= CAST(t2.r AS
22860 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
22870 45 20 74 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f  E t2.a=57.     O
22880 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
22890 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
228a0 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
228b0 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
228c0 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36  53 52 33 38 59 6
228d0 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
228e0 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
228f0 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
22900 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
22910 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
22920 20 33 35 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20   35 57}.do_test 
22930 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 31 2e 6c  boundary3-2.21.l
22940 65 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  e.11 {.  db eval
22950 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
22960 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
22970 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
22980 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  = CAST(t2.r AS r
22990 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
229a0 74 32 2e 61 3d 35 37 0a 20 20 20 20 20 4f 52 44  t2.a=57.     ORD
229b0 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
229c0 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 33 35  ESC.  }.} {57 35
229d0 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
229e0 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
229f0 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
22a00 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
22a10 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
22a20 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
22a30 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
22a40 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
22a50 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
22a60 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
22a70 32 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  2.1 {.  db eval 
22a80 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
22a90 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57 48  * FROM t1, t2 WH
22aa0 45 52 45 20 74 31 2e 72 6f 77 69 64 3d 2d 38 33  ERE t1.rowid=-83
22ab0 38 38 36 30 38 20 41 4e 44 20 74 32 2e 61 3d 74  88608 AND t2.a=t
22ac0 31 2e 61 0a 20 20 7d 0a 7d 20 7b 33 37 20 66 66  1.a.  }.} {37 ff
22ad0 66 66 66 66 66 66 66 66 38 30 30 30 30 30 7d 0a  ffffffff800000}.
22ae0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
22af0 33 2d 32 2e 32 32 2e 32 20 7b 0a 20 20 64 62 20  3-2.22.2 {.  db 
22b00 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
22b10 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a  T t2.* FROM t1 J
22b20 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 20  OIN t2 USING(a) 
22b30 57 48 45 52 45 20 78 3d 27 66 66 66 66 66 66 66  WHERE x='fffffff
22b40 66 66 66 38 30 30 30 30 30 27 0a 20 20 7d 0a 7d  fff800000'.  }.}
22b50 20 7b 2d 38 33 38 38 36 30 38 20 33 37 7d 0a 64   {-8388608 37}.d
22b60 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
22b70 2d 32 2e 32 32 2e 33 20 7b 0a 20 20 64 62 20 65  -2.22.3 {.  db e
22b80 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
22b90 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f   t1.rowid, x FRO
22ba0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
22bb0 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57 48  t2.r=t1.rowid WH
22bc0 45 52 45 20 74 32 2e 61 3d 33 37 0a 20 20 7d 0a  ERE t2.a=37.  }.
22bd0 7d 20 7b 2d 38 33 38 38 36 30 38 20 66 66 66 66  } {-8388608 ffff
22be0 66 66 66 66 66 66 38 30 30 30 30 30 7d 0a 64 6f  ffffff800000}.do
22bf0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
22c00 32 2e 32 32 2e 67 74 2e 31 20 7b 0a 20 20 64 62  2.22.gt.1 {.  db
22c10 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
22c20 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
22c30 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
22c40 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
22c50 6f 77 69 64 20 3e 20 2d 38 33 38 38 36 30 38 20  owid > -8388608 
22c60 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20  ORDER BY t2.a.  
22c70 7d 0a 7d 20 7b 33 20 34 20 35 20 36 20 37 20 38  }.} {3 4 5 6 7 8
22c80 20 39 20 31 30 20 31 32 20 31 33 20 31 34 20 31   9 10 12 13 14 1
22c90 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32 30  5 16 17 18 19 20
22ca0 20 32 32 20 32 33 20 32 34 20 32 35 20 32 36 20   22 23 24 25 26 
22cb0 32 37 20 32 38 20 32 39 20 33 30 20 33 31 20 33  27 28 29 30 31 3
22cc0 32 20 33 33 20 33 34 20 33 35 20 33 36 20 33 38  2 33 34 35 36 38
22cd0 20 33 39 20 34 30 20 34 31 20 34 32 20 34 33 20   39 40 41 42 43 
22ce0 34 35 20 34 36 20 34 38 20 34 39 20 35 30 20 35  45 46 48 49 50 5
22cf0 31 20 35 32 20 35 33 20 35 34 20 35 36 20 35 37  1 52 53 54 56 57
22d00 20 35 39 20 36 30 20 36 31 20 36 32 7d 0a 64 6f   59 60 61 62}.do
22d10 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
22d20 32 2e 32 32 2e 67 74 2e 32 20 7b 0a 20 20 64 62  2.22.gt.2 {.  db
22d30 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
22d40 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
22d50 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
22d60 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
22d70 77 69 64 20 3e 20 2d 38 33 38 38 36 30 38 20 4f  wid > -8388608 O
22d80 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
22d90 43 0a 20 20 7d 0a 7d 20 7b 36 32 20 36 31 20 36  C.  }.} {62 61 6
22da0 30 20 35 39 20 35 37 20 35 36 20 35 34 20 35 33  0 59 57 56 54 53
22db0 20 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20   52 51 50 49 48 
22dc0 34 36 20 34 35 20 34 33 20 34 32 20 34 31 20 34  46 45 43 42 41 4
22dd0 30 20 33 39 20 33 38 20 33 36 20 33 35 20 33 34  0 39 38 36 35 34
22de0 20 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20   33 32 31 30 29 
22df0 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20 32  28 27 26 25 24 2
22e00 33 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37  3 22 20 19 18 17
22e10 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20   16 15 14 13 12 
22e20 31 30 20 39 20 38 20 37 20 36 20 35 20 34 20 33  10 9 8 7 6 5 4 3
22e30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
22e40 72 79 33 2d 32 2e 32 32 2e 67 74 2e 33 20 7b 0a  ry3-2.22.gt.3 {.
22e50 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
22e60 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
22e70 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
22e80 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20  1.rowid > t2.r. 
22e90 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
22ea0 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  7.     ORDER BY 
22eb0 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
22ec0 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
22ed0 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20  3 38 59 60 41 5 
22ee0 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
22ef0 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
22f00 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
22f10 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
22f20 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
22f30 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
22f40 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
22f50 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
22f60 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 32 2e   boundary3-2.22.
22f70 67 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  gt.4 {.  db eval
22f80 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
22f90 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
22fa0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
22fb0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
22fc0 20 74 32 2e 61 3d 33 37 0a 20 20 20 20 20 4f 52   t2.a=37.     OR
22fd0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
22fe0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
22ff0 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
23000 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
23010 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20   19 57 35 46 22 
23020 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
23030 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
23040 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
23050 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
23060 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
23070 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
23080 20 32 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   29}.do_test bou
23090 6e 64 61 72 79 33 2d 32 2e 32 32 2e 67 74 2e 35  ndary3-2.22.gt.5
230a0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
230b0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
230c0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
230d0 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e  N t1.rowid > t2.
230e0 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
230f0 61 3d 33 37 0a 20 20 20 20 20 4f 52 44 45 52 20  a=37.     ORDER 
23100 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  BY x.  }.} {59 6
23110 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
23120 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
23130 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
23140 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
23150 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
23160 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
23170 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
23180 20 32 37 20 34 35 20 31 37 20 32 38 20 33 20 32   27 45 17 28 3 2
23190 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
231a0 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   38}.do_test bou
231b0 6e 64 61 72 79 33 2d 32 2e 32 32 2e 67 74 2e 31  ndary3-2.22.gt.1
231c0 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
231d0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
231e0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
231f0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41  ON t1.rowid > CA
23200 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
23210 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
23220 3d 33 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =37.     ORDER B
23230 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
23240 20 7b 32 39 20 33 32 20 35 34 20 35 33 20 35 32   {29 32 54 53 52
23250 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
23260 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
23270 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
23280 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
23290 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
232a0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
232b0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
232c0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
232d0 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
232e0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
232f0 32 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62 20 65  2.gt.11 {.  db e
23300 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
23310 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
23320 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
23330 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53  d > CAST(t2.r AS
23340 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
23350 45 20 74 32 2e 61 3d 33 37 0a 20 20 20 20 20 4f  E t2.a=37.     O
23360 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
23370 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32   DESC.  }.} {3 2
23380 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33  8 17 45 27 43 13
23390 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20   26 10 34 25 56 
233a0 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32  7 19 57 35 46 22
233b0 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20   39 36 14 51 20 
233c0 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20  40 12 6 9 24 18 
233d0 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32  42 15 62 48 50 2
233e0 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
233f0 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
23400 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
23410 32 20 32 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 29}.do_test bo
23420 75 6e 64 61 72 79 33 2d 32 2e 32 32 2e 67 65 2e  undary3-2.22.ge.
23430 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
23440 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
23450 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
23460 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
23470 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
23480 2d 38 33 38 38 36 30 38 20 4f 52 44 45 52 20 42  -8388608 ORDER B
23490 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20  Y t2.a.  }.} {3 
234a0 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20 31  4 5 6 7 8 9 10 1
234b0 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31 37  2 13 14 15 16 17
234c0 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33 20   18 19 20 22 23 
234d0 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20 32  24 25 26 27 28 2
234e0 39 20 33 30 20 33 31 20 33 32 20 33 33 20 33 34  9 30 31 32 33 34
234f0 20 33 35 20 33 36 20 33 37 20 33 38 20 33 39 20   35 36 37 38 39 
23500 34 30 20 34 31 20 34 32 20 34 33 20 34 35 20 34  40 41 42 43 45 4
23510 36 20 34 38 20 34 39 20 35 30 20 35 31 20 35 32  6 48 49 50 51 52
23520 20 35 33 20 35 34 20 35 36 20 35 37 20 35 39 20   53 54 56 57 59 
23530 36 30 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65 73  60 61 62}.do_tes
23540 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 32  t boundary3-2.22
23550 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .ge.2 {.  db eva
23560 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
23570 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
23580 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
23590 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
235a0 3e 3d 20 2d 38 33 38 38 36 30 38 20 4f 52 44 45  >= -8388608 ORDE
235b0 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
235c0 20 7d 0a 7d 20 7b 36 32 20 36 31 20 36 30 20 35   }.} {62 61 60 5
235d0 39 20 35 37 20 35 36 20 35 34 20 35 33 20 35 32  9 57 56 54 53 52
235e0 20 35 31 20 35 30 20 34 39 20 34 38 20 34 36 20   51 50 49 48 46 
235f0 34 35 20 34 33 20 34 32 20 34 31 20 34 30 20 33  45 43 42 41 40 3
23600 39 20 33 38 20 33 37 20 33 36 20 33 35 20 33 34  9 38 37 36 35 34
23610 20 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20   33 32 31 30 29 
23620 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20 32  28 27 26 25 24 2
23630 33 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37  3 22 20 19 18 17
23640 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20   16 15 14 13 12 
23650 31 30 20 39 20 38 20 37 20 36 20 35 20 34 20 33  10 9 8 7 6 5 4 3
23660 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
23670 72 79 33 2d 32 2e 32 32 2e 67 65 2e 33 20 7b 0a  ry3-2.22.ge.3 {.
23680 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
23690 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
236a0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
236b0 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
236c0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
236d0 33 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  37.     ORDER BY
236e0 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
236f0 7b 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20  {37 29 32 54 53 
23700 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
23710 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
23720 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
23730 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
23740 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
23750 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
23760 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
23770 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
23780 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
23790 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
237a0 2e 32 32 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20  .22.ge.4 {.  db 
237b0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
237c0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
237d0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
237e0 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
237f0 57 48 45 52 45 20 74 32 2e 61 3d 33 37 0a 20 20  WHERE t2.a=37.  
23800 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
23810 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
23820 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
23830 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
23840 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
23850 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
23860 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
23870 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20   18 42 15 62 48 
23880 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
23890 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
238a0 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
238b0 35 34 20 33 32 20 32 39 20 33 37 7d 0a 64 6f 5f  54 32 29 37}.do_
238c0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
238d0 2e 32 32 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20  .22.ge.5 {.  db 
238e0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
238f0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
23900 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
23910 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
23920 57 48 45 52 45 20 74 32 2e 61 3d 33 37 0a 20 20  WHERE t2.a=37.  
23930 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
23940 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20  }.} {59 60 41 5 
23950 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
23960 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
23970 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
23980 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
23990 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
239a0 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
239b0 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
239c0 31 37 20 32 38 20 33 20 33 37 20 32 39 20 33 32  17 28 3 37 29 32
239d0 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d   54 53 52 33 38}
239e0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
239f0 79 33 2d 32 2e 32 32 2e 67 65 2e 31 30 20 7b 0a  y3-2.22.ge.10 {.
23a00 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
23a10 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
23a20 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
23a30 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
23a40 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
23a50 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 37     WHERE t2.a=37
23a60 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
23a70 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33  1.rowid.  }.} {3
23a80 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
23a90 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
23aa0 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
23ab0 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
23ac0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
23ad0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
23ae0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
23af0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
23b00 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
23b10 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
23b20 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
23b30 32 2e 67 65 2e 31 31 20 7b 0a 20 20 64 62 20 65  2.ge.11 {.  db e
23b40 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
23b50 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
23b60 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
23b70 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d >= CAST(t2.r A
23b80 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
23b90 52 45 20 74 32 2e 61 3d 33 37 0a 20 20 20 20 20  RE t2.a=37.     
23ba0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
23bb0 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
23bc0 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
23bd0 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
23be0 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32   7 19 57 35 46 2
23bf0 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
23c00 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
23c10 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20   42 15 62 48 50 
23c20 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39  23 16 8 61 30 49
23c30 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39   4 31 5 41 60 59
23c40 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20   38 33 52 53 54 
23c50 33 32 20 32 39 20 33 37 7d 0a 64 6f 5f 74 65 73  32 29 37}.do_tes
23c60 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 32  t boundary3-2.22
23c70 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .lt.1 {.  db eva
23c80 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
23c90 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
23ca0 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
23cb0 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
23cc0 20 3c 20 2d 38 33 38 38 36 30 38 20 4f 52 44 45   < -8388608 ORDE
23cd0 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20  R BY t2.a.  }.} 
23ce0 7b 31 20 32 20 31 31 20 32 31 20 34 34 20 34 37  {1 2 11 21 44 47
23cf0 20 35 35 20 35 38 20 36 33 20 36 34 7d 0a 64 6f   55 58 63 64}.do
23d00 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
23d10 32 2e 32 32 2e 6c 74 2e 32 20 7b 0a 20 20 64 62  2.22.lt.2 {.  db
23d20 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
23d30 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
23d40 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
23d50 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
23d60 77 69 64 20 3c 20 2d 38 33 38 38 36 30 38 20 4f  wid < -8388608 O
23d70 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
23d80 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 35  C.  }.} {64 63 5
23d90 38 20 35 35 20 34 37 20 34 34 20 32 31 20 31 31  8 55 47 44 21 11
23da0 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   2 1}.do_test bo
23db0 75 6e 64 61 72 79 33 2d 32 2e 32 32 2e 6c 74 2e  undary3-2.22.lt.
23dc0 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
23dd0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
23de0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
23df0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
23e00 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
23e10 2e 61 3d 33 37 0a 20 20 20 20 20 4f 52 44 45 52  .a=37.     ORDER
23e20 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
23e30 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
23e40 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 7d  4 58 63 47 11 1}
23e50 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
23e60 79 33 2d 32 2e 32 32 2e 6c 74 2e 34 20 7b 0a 20  y3-2.22.lt.4 {. 
23e70 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
23e80 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
23e90 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
23ea0 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20  .rowid < t2.r.  
23eb0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 37     WHERE t2.a=37
23ec0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
23ed0 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
23ee0 0a 7d 20 7b 31 20 31 31 20 34 37 20 36 33 20 35  .} {1 11 47 63 5
23ef0 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
23f00 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
23f10 79 33 2d 32 2e 32 32 2e 6c 74 2e 35 20 7b 0a 20  y3-2.22.lt.5 {. 
23f20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
23f30 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
23f40 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
23f50 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20  .rowid < t2.r.  
23f60 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 37     WHERE t2.a=37
23f70 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
23f80 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
23f90 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
23fa0 31 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  1 1}.do_test bou
23fb0 6e 64 61 72 79 33 2d 32 2e 32 32 2e 6c 74 2e 31  ndary3-2.22.lt.1
23fc0 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
23fd0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
23fe0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
23ff0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 43 41  ON t1.rowid < CA
24000 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
24010 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
24020 3d 33 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =37.     ORDER B
24030 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
24040 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
24050 35 38 20 36 33 20 34 37 20 31 31 20 31 7d 0a 64  58 63 47 11 1}.d
24060 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
24070 2d 32 2e 32 32 2e 6c 74 2e 31 31 20 7b 0a 20 20  -2.22.lt.11 {.  
24080 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
24090 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
240a0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
240b0 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e  rowid < CAST(t2.
240c0 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
240d0 57 48 45 52 45 20 74 32 2e 61 3d 33 37 0a 20 20  WHERE t2.a=37.  
240e0 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
240f0 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
24100 7b 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34  {1 11 47 63 58 4
24110 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f  4 21 64 2 55}.do
24120 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
24130 32 2e 32 32 2e 6c 65 2e 31 20 7b 0a 20 20 64 62  2.22.le.1 {.  db
24140 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
24150 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
24160 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
24170 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
24180 6f 77 69 64 20 3c 3d 20 2d 38 33 38 38 36 30 38  owid <= -8388608
24190 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
241a0 20 7d 0a 7d 20 7b 31 20 32 20 31 31 20 32 31 20   }.} {1 2 11 21 
241b0 33 37 20 34 34 20 34 37 20 35 35 20 35 38 20 36  37 44 47 55 58 6
241c0 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 64}.do_test bo
241d0 75 6e 64 61 72 79 33 2d 32 2e 32 32 2e 6c 65 2e  undary3-2.22.le.
241e0 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
241f0 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
24200 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20  FROM t2 NATURAL 
24210 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45  JOIN t1.     WHE
24220 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 2d  RE t1.rowid <= -
24230 38 33 38 38 36 30 38 20 4f 52 44 45 52 20 42 59  8388608 ORDER BY
24240 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
24250 20 7b 36 34 20 36 33 20 35 38 20 35 35 20 34 37   {64 63 58 55 47
24260 20 34 34 20 33 37 20 32 31 20 31 31 20 32 20 31   44 37 21 11 2 1
24270 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
24280 72 79 33 2d 32 2e 32 32 2e 6c 65 2e 33 20 7b 0a  ry3-2.22.le.3 {.
24290 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
242a0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
242b0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
242c0 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a  1.rowid <= t2.r.
242d0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
242e0 33 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  37.     ORDER BY
242f0 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
24300 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35  {55 2 64 21 44 5
24310 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 7d  8 63 47 11 1 37}
24320 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
24330 79 33 2d 32 2e 32 32 2e 6c 65 2e 34 20 7b 0a 20  y3-2.22.le.4 {. 
24340 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
24350 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
24360 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
24370 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
24380 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
24390 37 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  7.     ORDER BY 
243a0 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
243b0 7d 0a 7d 20 7b 33 37 20 31 20 31 31 20 34 37 20  }.} {37 1 11 47 
243c0 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
243d0 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
243e0 6e 64 61 72 79 33 2d 32 2e 32 32 2e 6c 65 2e 35  ndary3-2.22.le.5
243f0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
24400 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
24410 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
24420 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
24430 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
24440 2e 61 3d 33 37 0a 20 20 20 20 20 4f 52 44 45 52  .a=37.     ORDER
24450 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 35 20   BY x.  }.} {55 
24460 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
24470 20 34 37 20 31 31 20 31 20 33 37 7d 0a 64 6f 5f   47 11 1 37}.do_
24480 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
24490 2e 32 32 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62  .22.le.10 {.  db
244a0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
244b0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
244c0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
244d0 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72  wid <= CAST(t2.r
244e0 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
244f0 48 45 52 45 20 74 32 2e 61 3d 33 37 0a 20 20 20  HERE t2.a=37.   
24500 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
24510 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20  wid.  }.} {55 2 
24520 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34  64 21 44 58 63 4
24530 37 20 31 31 20 31 20 33 37 7d 0a 64 6f 5f 74 65  7 11 1 37}.do_te
24540 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
24550 32 2e 6c 65 2e 31 31 20 7b 0a 20 20 64 62 20 65  2.le.11 {.  db e
24560 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
24570 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
24580 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
24590 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d <= CAST(t2.r A
245a0 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
245b0 52 45 20 74 32 2e 61 3d 33 37 0a 20 20 20 20 20  RE t2.a=37.     
245c0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
245d0 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 37  d DESC.  }.} {37
245e0 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34   1 11 47 63 58 4
245f0 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f  4 21 64 2 55}.do
24600 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
24610 32 2e 32 33 2e 31 20 7b 0a 20 20 64 62 20 65 76  2.23.1 {.  db ev
24620 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
24630 74 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32  t1.* FROM t1, t2
24640 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d   WHERE t1.rowid=
24650 35 34 39 37 35 35 38 31 33 38 38 38 20 41 4e 44  549755813888 AND
24660 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d   t2.a=t1.a.  }.}
24670 20 7b 33 35 20 30 30 30 30 30 30 38 30 30 30 30   {35 00000080000
24680 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62  00000}.do_test b
24690 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33 2e 32 20  oundary3-2.23.2 
246a0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
246b0 20 20 53 45 4c 45 43 54 20 74 32 2e 2a 20 46 52    SELECT t2.* FR
246c0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
246d0 49 4e 47 28 61 29 20 57 48 45 52 45 20 78 3d 27  ING(a) WHERE x='
246e0 30 30 30 30 30 30 38 30 30 30 30 30 30 30 30 30  0000008000000000
246f0 27 0a 20 20 7d 0a 7d 20 7b 35 34 39 37 35 35 38  '.  }.} {5497558
24700 31 33 38 38 38 20 33 35 7d 0a 64 6f 5f 74 65 73  13888 35}.do_tes
24710 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33  t boundary3-2.23
24720 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
24730 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 72  .    SELECT t1.r
24740 6f 77 69 64 2c 20 78 20 46 52 4f 4d 20 74 31 20  owid, x FROM t1 
24750 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 32 2e 72 3d  JOIN t2 ON t2.r=
24760 74 31 2e 72 6f 77 69 64 20 57 48 45 52 45 20 74  t1.rowid WHERE t
24770 32 2e 61 3d 33 35 0a 20 20 7d 0a 7d 20 7b 35 34  2.a=35.  }.} {54
24780 39 37 35 35 38 31 33 38 38 38 20 30 30 30 30 30  9755813888 00000
24790 30 38 30 30 30 30 30 30 30 30 30 7d 0a 64 6f 5f  08000000000}.do_
247a0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
247b0 2e 32 33 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20  .23.gt.1 {.  db 
247c0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
247d0 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
247e0 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
247f0 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
24800 77 69 64 20 3e 20 35 34 39 37 35 35 38 31 33 38  wid > 5497558138
24810 38 38 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  88 ORDER BY t2.a
24820 0a 20 20 7d 0a 7d 20 7b 33 20 37 20 31 30 20 31  .  }.} {3 7 10 1
24830 33 20 31 37 20 31 39 20 32 35 20 32 36 20 32 37  3 17 19 25 26 27
24840 20 32 38 20 33 34 20 34 33 20 34 35 20 35 36 20   28 34 43 45 56 
24850 35 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  57}.do_test boun
24860 64 61 72 79 33 2d 32 2e 32 33 2e 67 74 2e 32 20  dary3-2.23.gt.2 
24870 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
24880 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
24890 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f  OM t2 NATURAL JO
248a0 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45  IN t1.     WHERE
248b0 20 74 31 2e 72 6f 77 69 64 20 3e 20 35 34 39 37   t1.rowid > 5497
248c0 35 35 38 31 33 38 38 38 20 4f 52 44 45 52 20 42  55813888 ORDER B
248d0 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
248e0 7d 20 7b 35 37 20 35 36 20 34 35 20 34 33 20 33  } {57 56 45 43 3
248f0 34 20 32 38 20 32 37 20 32 36 20 32 35 20 31 39  4 28 27 26 25 19
24900 20 31 37 20 31 33 20 31 30 20 37 20 33 7d 0a 64   17 13 10 7 3}.d
24910 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
24920 2d 32 2e 32 33 2e 67 74 2e 33 20 7b 0a 20 20 64  -2.23.gt.3 {.  d
24930 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
24940 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
24950 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
24960 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20  owid > t2.r.    
24970 20 57 48 45 52 45 20 74 32 2e 61 3d 33 35 0a 20   WHERE t2.a=35. 
24980 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
24990 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 37 20  rowid.  }.} {57 
249a0 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
249b0 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
249c0 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
249d0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33 2e   boundary3-2.23.
249e0 67 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  gt.4 {.  db eval
249f0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
24a00 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
24a10 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
24a20 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
24a30 20 74 32 2e 61 3d 33 35 0a 20 20 20 20 20 4f 52   t2.a=35.     OR
24a40 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
24a50 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
24a60 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
24a70 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
24a80 20 31 39 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20   19 57}.do_test 
24a90 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33 2e 67  boundary3-2.23.g
24aa0 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.5 {.  db eval 
24ab0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
24ac0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
24ad0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
24ae0 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
24af0 74 32 2e 61 3d 33 35 0a 20 20 20 20 20 4f 52 44  t2.a=35.     ORD
24b00 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35  ER BY x.  }.} {5
24b10 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
24b20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
24b30 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
24b40 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
24b50 33 2e 67 74 2e 31 30 20 7b 0a 20 20 64 62 20 65  3.gt.10 {.  db e
24b60 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
24b70 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
24b80 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
24b90 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53  d > CAST(t2.r AS
24ba0 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
24bb0 45 20 74 32 2e 61 3d 33 35 0a 20 20 20 20 20 4f  E t2.a=35.     O
24bc0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
24bd0 0a 20 20 7d 0a 7d 20 7b 35 37 20 31 39 20 37 20  .  }.} {57 19 7 
24be0 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
24bf0 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
24c00 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
24c10 64 61 72 79 33 2d 32 2e 32 33 2e 67 74 2e 31 31  dary3-2.23.gt.11
24c20 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
24c30 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
24c40 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
24c50 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53  N t1.rowid > CAS
24c60 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a  T(t2.r AS real).
24c70 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
24c80 33 35 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  35.     ORDER BY
24c90 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
24ca0 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
24cb0 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20   27 43 13 26 10 
24cc0 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37  34 25 56 7 19 57
24cd0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
24ce0 72 79 33 2d 32 2e 32 33 2e 67 65 2e 31 20 7b 0a  ry3-2.23.ge.1 {.
24cf0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
24d00 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
24d10 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
24d20 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
24d30 74 31 2e 72 6f 77 69 64 20 3e 3d 20 35 34 39 37  t1.rowid >= 5497
24d40 35 35 38 31 33 38 38 38 20 4f 52 44 45 52 20 42  55813888 ORDER B
24d50 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20  Y t2.a.  }.} {3 
24d60 37 20 31 30 20 31 33 20 31 37 20 31 39 20 32 35  7 10 13 17 19 25
24d70 20 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20   26 27 28 34 35 
24d80 34 33 20 34 35 20 35 36 20 35 37 7d 0a 64 6f 5f  43 45 56 57}.do_
24d90 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
24da0 2e 32 33 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20  .23.ge.2 {.  db 
24db0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
24dc0 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
24dd0 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
24de0 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
24df0 69 64 20 3e 3d 20 35 34 39 37 35 35 38 31 33 38  id >= 5497558138
24e00 38 38 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61  88 ORDER BY t1.a
24e10 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 37 20   DESC.  }.} {57 
24e20 35 36 20 34 35 20 34 33 20 33 35 20 33 34 20 32  56 45 43 35 34 2
24e30 38 20 32 37 20 32 36 20 32 35 20 31 39 20 31 37  8 27 26 25 19 17
24e40 20 31 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f 74   13 10 7 3}.do_t
24e50 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
24e60 32 33 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65  23.ge.3 {.  db e
24e70 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
24e80 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
24e90 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
24ea0 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
24eb0 48 45 52 45 20 74 32 2e 61 3d 33 35 0a 20 20 20  HERE t2.a=35.   
24ec0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
24ed0 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 35 20 35 37  wid.  }.} {35 57
24ee0 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
24ef0 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
24f00 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
24f10 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33  t boundary3-2.23
24f20 2e 67 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61  .ge.4 {.  db eva
24f30 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
24f40 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
24f50 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
24f60 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  >= t2.r.     WHE
24f70 52 45 20 74 32 2e 61 3d 33 35 0a 20 20 20 20 20  RE t2.a=35.     
24f80 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
24f90 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
24fa0 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
24fb0 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
24fc0 20 37 20 31 39 20 35 37 20 33 35 7d 0a 64 6f 5f   7 19 57 35}.do_
24fd0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
24fe0 2e 32 33 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20  .23.ge.5 {.  db 
24ff0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
25000 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
25010 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
25020 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
25030 57 48 45 52 45 20 74 32 2e 61 3d 33 35 0a 20 20  WHERE t2.a=35.  
25040 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
25050 7d 0a 7d 20 7b 33 35 20 35 37 20 31 39 20 37 20  }.} {35 57 19 7 
25060 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
25070 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
25080 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
25090 64 61 72 79 33 2d 32 2e 32 33 2e 67 65 2e 31 30  dary3-2.23.ge.10
250a0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
250b0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
250c0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
250d0 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41  N t1.rowid >= CA
250e0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
250f0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
25100 3d 33 35 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =35.     ORDER B
25110 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
25120 20 7b 33 35 20 35 37 20 31 39 20 37 20 35 36 20   {35 57 19 7 56 
25130 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
25140 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
25150 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
25160 79 33 2d 32 2e 32 33 2e 67 65 2e 31 31 20 7b 0a  y3-2.23.ge.11 {.
25170 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
25180 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
25190 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
251a0 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
251b0 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
251c0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 35     WHERE t2.a=35
251d0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
251e0 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
251f0 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
25200 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
25210 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
25220 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  5}.do_test bound
25230 61 72 79 33 2d 32 2e 32 33 2e 6c 74 2e 31 20 7b  ary3-2.23.lt.1 {
25240 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
25250 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
25260 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
25270 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45  NG(a).     WHERE
25280 20 74 31 2e 72 6f 77 69 64 20 3c 20 35 34 39 37   t1.rowid < 5497
25290 35 35 38 31 33 38 38 38 20 4f 52 44 45 52 20 42  55813888 ORDER B
252a0 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20  Y t2.a.  }.} {1 
252b0 32 20 34 20 35 20 36 20 38 20 39 20 31 31 20 31  2 4 5 6 8 9 11 1
252c0 32 20 31 34 20 31 35 20 31 36 20 31 38 20 32 30  2 14 15 16 18 20
252d0 20 32 31 20 32 32 20 32 33 20 32 34 20 32 39 20   21 22 23 24 29 
252e0 33 30 20 33 31 20 33 32 20 33 33 20 33 36 20 33  30 31 32 33 36 3
252f0 37 20 33 38 20 33 39 20 34 30 20 34 31 20 34 32  7 38 39 40 41 42
25300 20 34 34 20 34 36 20 34 37 20 34 38 20 34 39 20   44 46 47 48 49 
25310 35 30 20 35 31 20 35 32 20 35 33 20 35 34 20 35  50 51 52 53 54 5
25320 35 20 35 38 20 35 39 20 36 30 20 36 31 20 36 32  5 58 59 60 61 62
25330 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20   63 64}.do_test 
25340 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33 2e 6c  boundary3-2.23.l
25350 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.2 {.  db eval 
25360 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
25370 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
25380 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
25390 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20  HERE t1.rowid < 
253a0 35 34 39 37 35 35 38 31 33 38 38 38 20 4f 52 44  549755813888 ORD
253b0 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
253c0 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36 32 20    }.} {64 63 62 
253d0 36 31 20 36 30 20 35 39 20 35 38 20 35 35 20 35  61 60 59 58 55 5
253e0 34 20 35 33 20 35 32 20 35 31 20 35 30 20 34 39  4 53 52 51 50 49
253f0 20 34 38 20 34 37 20 34 36 20 34 34 20 34 32 20   48 47 46 44 42 
25400 34 31 20 34 30 20 33 39 20 33 38 20 33 37 20 33  41 40 39 38 37 3
25410 36 20 33 33 20 33 32 20 33 31 20 33 30 20 32 39  6 33 32 31 30 29
25420 20 32 34 20 32 33 20 32 32 20 32 31 20 32 30 20   24 23 22 21 20 
25430 31 38 20 31 36 20 31 35 20 31 34 20 31 32 20 31  18 16 15 14 12 1
25440 31 20 39 20 38 20 36 20 35 20 34 20 32 20 31 7d  1 9 8 6 5 4 2 1}
25450 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
25460 79 33 2d 32 2e 32 33 2e 6c 74 2e 33 20 7b 0a 20  y3-2.23.lt.3 {. 
25470 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
25480 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
25490 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
254a0 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20  .rowid < t2.r.  
254b0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 35     WHERE t2.a=35
254c0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
254d0 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
254e0 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
254f0 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
25500 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
25510 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
25520 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
25530 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
25540 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
25550 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
25560 39 20 32 32 20 34 36 7d 0a 64 6f 5f 74 65 73 74  9 22 46}.do_test
25570 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33 2e   boundary3-2.23.
25580 6c 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.4 {.  db eval
25590 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
255a0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
255b0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
255c0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
255d0 20 74 32 2e 61 3d 33 35 0a 20 20 20 20 20 4f 52   t2.a=35.     OR
255e0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
255f0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34 36 20 32  DESC.  }.} {46 2
25600 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
25610 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
25620 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20   42 15 62 48 50 
25630 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39  23 16 8 61 30 49
25640 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39   4 31 5 41 60 59
25650 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20   38 33 52 53 54 
25660 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
25670 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
25680 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
25690 75 6e 64 61 72 79 33 2d 32 2e 32 33 2e 6c 74 2e  undary3-2.23.lt.
256a0 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  5 {.  db eval {.
256b0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
256c0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
256d0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
256e0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
256f0 2e 61 3d 33 35 0a 20 20 20 20 20 4f 52 44 45 52  .a=35.     ORDER
25700 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20   BY x.  }.} {59 
25710 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
25720 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
25730 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
25740 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
25750 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
25760 36 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20  6 55 2 64 21 44 
25770 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
25780 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
25790 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62  33 38}.do_test b
257a0 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33 2e 6c 74  oundary3-2.23.lt
257b0 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .10 {.  db eval 
257c0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
257d0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
257e0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
257f0 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
25800 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
25810 2e 61 3d 33 35 0a 20 20 20 20 20 4f 52 44 45 52  .a=35.     ORDER
25820 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
25830 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
25840 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
25850 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
25860 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31  2 33 38 59 60 41
25870 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31   5 31 4 49 30 61
25880 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36   8 16 23 50 48 6
25890 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
258a0 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
258b0 20 33 36 20 33 39 20 32 32 20 34 36 7d 0a 64 6f   36 39 22 46}.do
258c0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
258d0 32 2e 32 33 2e 6c 74 2e 31 31 20 7b 0a 20 20 64  2.23.lt.11 {.  d
258e0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
258f0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
25900 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
25910 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72  owid < CAST(t2.r
25920 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
25930 48 45 52 45 20 74 32 2e 61 3d 33 35 0a 20 20 20  HERE t2.a=35.   
25940 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
25950 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
25960 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35  46 22 39 36 14 5
25970 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32  1 20 40 12 6 9 2
25980 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38  4 18 42 15 62 48
25990 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33   50 23 16 8 61 3
259a0 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36  0 49 4 31 5 41 6
259b0 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33  0 59 38 33 52 53
259c0 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31   54 32 29 37 1 1
259d0 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31  1 47 63 58 44 21
259e0 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73   64 2 55}.do_tes
259f0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 33  t boundary3-2.23
25a00 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .le.1 {.  db eva
25a10 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
25a20 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
25a30 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
25a40 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
25a50 20 3c 3d 20 35 34 39 37 35 35 38 31 33 38 38 38   <= 549755813888
25a60 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
25a70 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 36 20   }.} {1 2 4 5 6 
25a80 38 20 39 20 31 31 20 31 32 20 31 34 20 31 35 20  8 9 11 12 14 15 
25a90 31 36 20 31 38 20 32 30 20 32 31 20 32 32 20 32  16 18 20 21 22 2
25aa0 33 20 32 34 20 32 39 20 33 30 20 33 31 20 33 32  3 24 29 30 31 32
25ab0 20 33 33 20 33 35 20 33 36 20 33 37 20 33 38 20   33 35 36 37 38 
25ac0 33 39 20 34 30 20 34 31 20 34 32 20 34 34 20 34  39 40 41 42 44 4
25ad0 36 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31  6 47 48 49 50 51
25ae0 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38 20   52 53 54 55 58 
25af0 35 39 20 36 30 20 36 31 20 36 32 20 36 33 20 36  59 60 61 62 63 6
25b00 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  4}.do_test bound
25b10 61 72 79 33 2d 32 2e 32 33 2e 6c 65 2e 32 20 7b  ary3-2.23.le.2 {
25b20 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
25b30 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
25b40 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
25b50 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
25b60 74 31 2e 72 6f 77 69 64 20 3c 3d 20 35 34 39 37  t1.rowid <= 5497
25b70 35 35 38 31 33 38 38 38 20 4f 52 44 45 52 20 42  55813888 ORDER B
25b80 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
25b90 7d 20 7b 36 34 20 36 33 20 36 32 20 36 31 20 36  } {64 63 62 61 6
25ba0 30 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33  0 59 58 55 54 53
25bb0 20 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20   52 51 50 49 48 
25bc0 34 37 20 34 36 20 34 34 20 34 32 20 34 31 20 34  47 46 44 42 41 4
25bd0 30 20 33 39 20 33 38 20 33 37 20 33 36 20 33 35  0 39 38 37 36 35
25be0 20 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20   33 32 31 30 29 
25bf0 32 34 20 32 33 20 32 32 20 32 31 20 32 30 20 31  24 23 22 21 20 1
25c00 38 20 31 36 20 31 35 20 31 34 20 31 32 20 31 31  8 16 15 14 12 11
25c10 20 39 20 38 20 36 20 35 20 34 20 32 20 31 7d 0a   9 8 6 5 4 2 1}.
25c20 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
25c30 33 2d 32 2e 32 33 2e 6c 65 2e 33 20 7b 0a 20 20  3-2.23.le.3 {.  
25c40 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
25c50 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
25c60 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
25c70 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
25c80 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 35     WHERE t2.a=35
25c90 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
25ca0 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
25cb0 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
25cc0 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
25cd0 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
25ce0 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
25cf0 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
25d00 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
25d10 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
25d20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
25d30 39 20 32 32 20 34 36 20 33 35 7d 0a 64 6f 5f 74  9 22 46 35}.do_t
25d40 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
25d50 32 33 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65  23.le.4 {.  db e
25d60 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
25d70 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
25d80 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
25d90 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d <= t2.r.     W
25da0 48 45 52 45 20 74 32 2e 61 3d 33 35 0a 20 20 20  HERE t2.a=35.   
25db0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
25dc0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
25dd0 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
25de0 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
25df0 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
25e00 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
25e10 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
25e20 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
25e30 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
25e40 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
25e50 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
25e60 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
25e70 2e 32 33 2e 6c 65 2e 35 20 7b 0a 20 20 64 62 20  .23.le.5 {.  db 
25e80 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
25e90 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
25ea0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
25eb0 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20  id <= t2.r.     
25ec0 57 48 45 52 45 20 74 32 2e 61 3d 33 35 0a 20 20  WHERE t2.a=35.  
25ed0 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
25ee0 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20  }.} {59 60 41 5 
25ef0 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
25f00 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
25f10 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
25f20 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
25f30 20 33 39 20 32 32 20 34 36 20 33 35 20 35 35 20   39 22 46 35 55 
25f40 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
25f50 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
25f60 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
25f70 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
25f80 72 79 33 2d 32 2e 32 33 2e 6c 65 2e 31 30 20 7b  ry3-2.23.le.10 {
25f90 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
25fa0 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
25fb0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
25fc0 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54  t1.rowid <= CAST
25fd0 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
25fe0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
25ff0 35 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  5.     ORDER BY 
26000 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
26010 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
26020 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
26030 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
26040 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33   38 59 60 41 5 3
26050 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
26060 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
26070 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32   42 18 24 9 6 12
26080 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
26090 33 39 20 32 32 20 34 36 20 33 35 7d 0a 64 6f 5f  39 22 46 35}.do_
260a0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
260b0 2e 32 33 2e 6c 65 2e 31 31 20 7b 0a 20 20 64 62  .23.le.11 {.  db
260c0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
260d0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
260e0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
260f0 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72  wid <= CAST(t2.r
26100 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
26110 48 45 52 45 20 74 32 2e 61 3d 33 35 0a 20 20 20  HERE t2.a=35.   
26120 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
26130 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
26140 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
26150 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
26160 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
26170 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
26180 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
26190 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
261a0 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
261b0 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
261c0 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
261d0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
261e0 2e 32 34 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .24.1 {.  db eva
261f0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
26200 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32 20  1.* FROM t1, t2 
26210 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d 38  WHERE t1.rowid=8
26220 33 38 38 36 30 37 20 41 4e 44 20 74 32 2e 61 3d  388607 AND t2.a=
26230 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 31 38 20 30  t1.a.  }.} {18 0
26240 30 30 30 30 30 30 30 30 30 37 66 66 66 66 66 7d  0000000007fffff}
26250 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
26260 79 33 2d 32 2e 32 34 2e 32 20 7b 0a 20 20 64 62  y3-2.24.2 {.  db
26270 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
26280 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20  CT t2.* FROM t1 
26290 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
262a0 20 57 48 45 52 45 20 78 3d 27 30 30 30 30 30 30   WHERE x='000000
262b0 30 30 30 30 37 66 66 66 66 66 27 0a 20 20 7d 0a  00007fffff'.  }.
262c0 7d 20 7b 38 33 38 38 36 30 37 20 31 38 7d 0a 64  } {8388607 18}.d
262d0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
262e0 2d 32 2e 32 34 2e 33 20 7b 0a 20 20 64 62 20 65  -2.24.3 {.  db e
262f0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
26300 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f   t1.rowid, x FRO
26310 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
26320 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57 48  t2.r=t1.rowid WH
26330 45 52 45 20 74 32 2e 61 3d 31 38 0a 20 20 7d 0a  ERE t2.a=18.  }.
26340 7d 20 7b 38 33 38 38 36 30 37 20 30 30 30 30 30  } {8388607 00000
26350 30 30 30 30 30 37 66 66 66 66 66 7d 0a 64 6f 5f  000007fffff}.do_
26360 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
26370 2e 32 34 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20  .24.gt.1 {.  db 
26380 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
26390 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
263a0 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
263b0 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
263c0 77 69 64 20 3e 20 38 33 38 38 36 30 37 20 4f 52  wid > 8388607 OR
263d0 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
263e0 7d 20 7b 33 20 36 20 37 20 39 20 31 30 20 31 32  } {3 6 7 9 10 12
263f0 20 31 33 20 31 34 20 31 37 20 31 39 20 32 30 20   13 14 17 19 20 
26400 32 32 20 32 34 20 32 35 20 32 36 20 32 37 20 32  22 24 25 26 27 2
26410 38 20 33 34 20 33 35 20 33 36 20 33 39 20 34 30  8 34 35 36 39 40
26420 20 34 33 20 34 35 20 34 36 20 35 31 20 35 36 20   43 45 46 51 56 
26430 35 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  57}.do_test boun
26440 64 61 72 79 33 2d 32 2e 32 34 2e 67 74 2e 32 20  dary3-2.24.gt.2 
26450 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
26460 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
26470 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f  OM t2 NATURAL JO
26480 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45  IN t1.     WHERE
26490 20 74 31 2e 72 6f 77 69 64 20 3e 20 38 33 38 38   t1.rowid > 8388
264a0 36 30 37 20 4f 52 44 45 52 20 42 59 20 74 31 2e  607 ORDER BY t1.
264b0 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 37  a DESC.  }.} {57
264c0 20 35 36 20 35 31 20 34 36 20 34 35 20 34 33 20   56 51 46 45 43 
264d0 34 30 20 33 39 20 33 36 20 33 35 20 33 34 20 32  40 39 36 35 34 2
264e0 38 20 32 37 20 32 36 20 32 35 20 32 34 20 32 32  8 27 26 25 24 22
264f0 20 32 30 20 31 39 20 31 37 20 31 34 20 31 33 20   20 19 17 14 13 
26500 31 32 20 31 30 20 39 20 37 20 36 20 33 7d 0a 64  12 10 9 7 6 3}.d
26510 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
26520 2d 32 2e 32 34 2e 67 74 2e 33 20 7b 0a 20 20 64  -2.24.gt.3 {.  d
26530 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
26540 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
26550 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
26560 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20  owid > t2.r.    
26570 20 57 48 45 52 45 20 74 32 2e 61 3d 31 38 0a 20   WHERE t2.a=18. 
26580 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
26590 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 34 20  rowid.  }.} {24 
265a0 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
265b0 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
265c0 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
265d0 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
265e0 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
265f0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
26600 32 2e 32 34 2e 67 74 2e 34 20 7b 0a 20 20 64 62  2.24.gt.4 {.  db
26610 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
26620 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
26630 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
26640 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20  wid > t2.r.     
26650 57 48 45 52 45 20 74 32 2e 61 3d 31 38 0a 20 20  WHERE t2.a=18.  
26660 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
26670 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
26680 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
26690 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
266a0 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
266b0 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
266c0 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
266d0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
266e0 72 79 33 2d 32 2e 32 34 2e 67 74 2e 35 20 7b 0a  ry3-2.24.gt.5 {.
266f0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
26700 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
26710 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
26720 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20  1.rowid > t2.r. 
26730 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31      WHERE t2.a=1
26740 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  8.     ORDER BY 
26750 78 0a 20 20 7d 0a 7d 20 7b 32 34 20 39 20 36 20  x.  }.} {24 9 6 
26760 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33  12 40 20 51 14 3
26770 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
26780 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
26790 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
267a0 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
267b0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 34  t boundary3-2.24
267c0 2e 67 74 2e 31 30 20 7b 0a 20 20 64 62 20 65 76  .gt.10 {.  db ev
267d0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
267e0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
267f0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
26800 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53 20   > CAST(t2.r AS 
26810 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
26820 20 74 32 2e 61 3d 31 38 0a 20 20 20 20 20 4f 52   t2.a=18.     OR
26830 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
26840 20 20 7d 0a 7d 20 7b 32 34 20 39 20 36 20 31 32    }.} {24 9 6 12
26850 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
26860 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
26870 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
26880 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
26890 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
268a0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 34 2e 67  boundary3-2.24.g
268b0 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  t.11 {.  db eval
268c0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
268d0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
268e0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
268f0 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
26900 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
26910 32 2e 61 3d 31 38 0a 20 20 20 20 20 4f 52 44 45  2.a=18.     ORDE
26920 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
26930 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31  SC.  }.} {3 28 1
26940 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36  7 45 27 43 13 26
26950 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31   10 34 25 56 7 1
26960 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39  9 57 35 46 22 39
26970 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20   36 14 51 20 40 
26980 31 32 20 36 20 39 20 32 34 7d 0a 64 6f 5f 74 65  12 6 9 24}.do_te
26990 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
269a0 34 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76  4.ge.1 {.  db ev
269b0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
269c0 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
269d0 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
269e0 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
269f0 64 20 3e 3d 20 38 33 38 38 36 30 37 20 4f 52 44  d >= 8388607 ORD
26a00 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d  ER BY t2.a.  }.}
26a10 20 7b 33 20 36 20 37 20 39 20 31 30 20 31 32 20   {3 6 7 9 10 12 
26a20 31 33 20 31 34 20 31 37 20 31 38 20 31 39 20 32  13 14 17 18 19 2
26a30 30 20 32 32 20 32 34 20 32 35 20 32 36 20 32 37  0 22 24 25 26 27
26a40 20 32 38 20 33 34 20 33 35 20 33 36 20 33 39 20   28 34 35 36 39 
26a50 34 30 20 34 33 20 34 35 20 34 36 20 35 31 20 35  40 43 45 46 51 5
26a60 36 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  6 57}.do_test bo
26a70 75 6e 64 61 72 79 33 2d 32 2e 32 34 2e 67 65 2e  undary3-2.24.ge.
26a80 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
26a90 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
26aa0 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20  FROM t2 NATURAL 
26ab0 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45  JOIN t1.     WHE
26ac0 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 38  RE t1.rowid >= 8
26ad0 33 38 38 36 30 37 20 4f 52 44 45 52 20 42 59 20  388607 ORDER BY 
26ae0 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20  t1.a DESC.  }.} 
26af0 7b 35 37 20 35 36 20 35 31 20 34 36 20 34 35 20  {57 56 51 46 45 
26b00 34 33 20 34 30 20 33 39 20 33 36 20 33 35 20 33  43 40 39 36 35 3
26b10 34 20 32 38 20 32 37 20 32 36 20 32 35 20 32 34  4 28 27 26 25 24
26b20 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37 20   22 20 19 18 17 
26b30 31 34 20 31 33 20 31 32 20 31 30 20 39 20 37 20  14 13 12 10 9 7 
26b40 36 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  6 3}.do_test bou
26b50 6e 64 61 72 79 33 2d 32 2e 32 34 2e 67 65 2e 33  ndary3-2.24.ge.3
26b60 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
26b70 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
26b80 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
26b90 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32  N t1.rowid >= t2
26ba0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
26bb0 2e 61 3d 31 38 0a 20 20 20 20 20 4f 52 44 45 52  .a=18.     ORDER
26bc0 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
26bd0 0a 7d 20 7b 31 38 20 32 34 20 39 20 36 20 31 32  .} {18 24 9 6 12
26be0 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
26bf0 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
26c00 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
26c10 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
26c20 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
26c30 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 34 2e 67  boundary3-2.24.g
26c40 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.4 {.  db eval 
26c50 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
26c60 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
26c70 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
26c80 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
26c90 20 74 32 2e 61 3d 31 38 0a 20 20 20 20 20 4f 52   t2.a=18.     OR
26ca0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
26cb0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
26cc0 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
26cd0 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
26ce0 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20   19 57 35 46 22 
26cf0 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
26d00 30 20 31 32 20 36 20 39 20 32 34 20 31 38 7d 0a  0 12 6 9 24 18}.
26d10 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
26d20 33 2d 32 2e 32 34 2e 67 65 2e 35 20 7b 0a 20 20  3-2.24.ge.5 {.  
26d30 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
26d40 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
26d50 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
26d60 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20  rowid >= t2.r.  
26d70 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 38     WHERE t2.a=18
26d80 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
26d90 0a 20 20 7d 0a 7d 20 7b 31 38 20 32 34 20 39 20  .  }.} {18 24 9 
26da0 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
26db0 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
26dc0 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
26dd0 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
26de0 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
26df0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
26e00 32 34 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20  24.ge.10 {.  db 
26e10 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
26e20 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
26e30 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
26e40 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20  id >= CAST(t2.r 
26e50 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
26e60 45 52 45 20 74 32 2e 61 3d 31 38 0a 20 20 20 20  ERE t2.a=18.    
26e70 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
26e80 69 64 0a 20 20 7d 0a 7d 20 7b 31 38 20 32 34 20  id.  }.} {18 24 
26e90 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
26ea0 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33  14 36 39 22 46 3
26eb0 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20  5 57 19 7 56 25 
26ec0 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32  34 10 26 13 43 2
26ed0 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f  7 45 17 28 3}.do
26ee0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
26ef0 32 2e 32 34 2e 67 65 2e 31 31 20 7b 0a 20 20 64  2.24.ge.11 {.  d
26f00 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
26f10 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
26f20 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
26f30 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e  owid >= CAST(t2.
26f40 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
26f50 57 48 45 52 45 20 74 32 2e 61 3d 31 38 0a 20 20  WHERE t2.a=18.  
26f60 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
26f70 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
26f80 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34  {3 28 17 45 27 4
26f90 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35  3 13 26 10 34 25
26fa0 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34   56 7 19 57 35 4
26fb0 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31  6 22 39 36 14 51
26fc0 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34   20 40 12 6 9 24
26fd0 20 31 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   18}.do_test bou
26fe0 6e 64 61 72 79 33 2d 32 2e 32 34 2e 6c 74 2e 31  ndary3-2.24.lt.1
26ff0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
27000 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
27010 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55  ROM t1 JOIN t2 U
27020 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45  SING(a).     WHE
27030 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 38 33  RE t1.rowid < 83
27040 38 38 36 30 37 20 4f 52 44 45 52 20 42 59 20 74  88607 ORDER BY t
27050 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 34  2.a.  }.} {1 2 4
27060 20 35 20 38 20 31 31 20 31 35 20 31 36 20 32 31   5 8 11 15 16 21
27070 20 32 33 20 32 39 20 33 30 20 33 31 20 33 32 20   23 29 30 31 32 
27080 33 33 20 33 37 20 33 38 20 34 31 20 34 32 20 34  33 37 38 41 42 4
27090 34 20 34 37 20 34 38 20 34 39 20 35 30 20 35 32  4 47 48 49 50 52
270a0 20 35 33 20 35 34 20 35 35 20 35 38 20 35 39 20   53 54 55 58 59 
270b0 36 30 20 36 31 20 36 32 20 36 33 20 36 34 7d 0a  60 61 62 63 64}.
270c0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
270d0 33 2d 32 2e 32 34 2e 6c 74 2e 32 20 7b 0a 20 20  3-2.24.lt.2 {.  
270e0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
270f0 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
27100 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74  2 NATURAL JOIN t
27110 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  1.     WHERE t1.
27120 72 6f 77 69 64 20 3c 20 38 33 38 38 36 30 37 20  rowid < 8388607 
27130 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45  ORDER BY t1.a DE
27140 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20  SC.  }.} {64 63 
27150 36 32 20 36 31 20 36 30 20 35 39 20 35 38 20 35  62 61 60 59 58 5
27160 35 20 35 34 20 35 33 20 35 32 20 35 30 20 34 39  5 54 53 52 50 49
27170 20 34 38 20 34 37 20 34 34 20 34 32 20 34 31 20   48 47 44 42 41 
27180 33 38 20 33 37 20 33 33 20 33 32 20 33 31 20 33  38 37 33 32 31 3
27190 30 20 32 39 20 32 33 20 32 31 20 31 36 20 31 35  0 29 23 21 16 15
271a0 20 31 31 20 38 20 35 20 34 20 32 20 31 7d 0a 64   11 8 5 4 2 1}.d
271b0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
271c0 2d 32 2e 32 34 2e 6c 74 2e 33 20 7b 0a 20 20 64  -2.24.lt.3 {.  d
271d0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
271e0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
271f0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
27200 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20  owid < t2.r.    
27210 20 57 48 45 52 45 20 74 32 2e 61 3d 31 38 0a 20   WHERE t2.a=18. 
27220 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
27230 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20  rowid.  }.} {55 
27240 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
27250 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
27260 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
27270 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34   59 60 41 5 31 4
27280 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32   49 30 61 8 16 2
27290 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32  3 50 48 62 15 42
272a0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
272b0 72 79 33 2d 32 2e 32 34 2e 6c 74 2e 34 20 7b 0a  ry3-2.24.lt.4 {.
272c0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
272d0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
272e0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
272f0 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20  1.rowid < t2.r. 
27300 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31      WHERE t2.a=1
27310 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  8.     ORDER BY 
27320 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
27330 7d 0a 7d 20 7b 34 32 20 31 35 20 36 32 20 34 38  }.} {42 15 62 48
27340 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33   50 23 16 8 61 3
27350 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36  0 49 4 31 5 41 6
27360 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33  0 59 38 33 52 53
27370 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31   54 32 29 37 1 1
27380 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31  1 47 63 58 44 21
27390 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73   64 2 55}.do_tes
273a0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 34  t boundary3-2.24
273b0 2e 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61  .lt.5 {.  db eva
273c0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
273d0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
273e0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
273f0 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  < t2.r.     WHER
27400 45 20 74 32 2e 61 3d 31 38 0a 20 20 20 20 20 4f  E t2.a=18.     O
27410 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20  RDER BY x.  }.} 
27420 7b 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34  {59 60 41 5 31 4
27430 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32   49 30 61 8 16 2
27440 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32  3 50 48 62 15 42
27450 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35   55 2 64 21 44 5
27460 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
27470 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
27480 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 38}.do_test bo
27490 75 6e 64 61 72 79 33 2d 32 2e 32 34 2e 6c 74 2e  undary3-2.24.lt.
274a0 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  10 {.  db eval {
274b0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
274c0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
274d0 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 43   ON t1.rowid < C
274e0 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
274f0 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
27500 61 3d 31 38 0a 20 20 20 20 20 4f 52 44 45 52 20  a=18.     ORDER 
27510 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
27520 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
27530 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
27540 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
27550 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
27560 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
27570 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
27580 20 31 35 20 34 32 7d 0a 64 6f 5f 74 65 73 74 20   15 42}.do_test 
27590 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 34 2e 6c  boundary3-2.24.l
275a0 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  t.11 {.  db eval
275b0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
275c0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
275d0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
275e0 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
275f0 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
27600 32 2e 61 3d 31 38 0a 20 20 20 20 20 4f 52 44 45  2.a=18.     ORDE
27610 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
27620 53 43 0a 20 20 7d 0a 7d 20 7b 34 32 20 31 35 20  SC.  }.} {42 15 
27630 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38  62 48 50 23 16 8
27640 20 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35   61 30 49 4 31 5
27650 20 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20   41 60 59 38 33 
27660 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33  52 53 54 32 29 3
27670 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20  7 1 11 47 63 58 
27680 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64  44 21 64 2 55}.d
27690 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
276a0 2d 32 2e 32 34 2e 6c 65 2e 31 20 7b 0a 20 20 64  -2.24.le.1 {.  d
276b0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
276c0 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31  ECT t2.a FROM t1
276d0 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
276e0 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  ).     WHERE t1.
276f0 72 6f 77 69 64 20 3c 3d 20 38 33 38 38 36 30 37  rowid <= 8388607
27700 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
27710 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 38 20   }.} {1 2 4 5 8 
27720 31 31 20 31 35 20 31 36 20 31 38 20 32 31 20 32  11 15 16 18 21 2
27730 33 20 32 39 20 33 30 20 33 31 20 33 32 20 33 33  3 29 30 31 32 33
27740 20 33 37 20 33 38 20 34 31 20 34 32 20 34 34 20   37 38 41 42 44 
27750 34 37 20 34 38 20 34 39 20 35 30 20 35 32 20 35  47 48 49 50 52 5
27760 33 20 35 34 20 35 35 20 35 38 20 35 39 20 36 30  3 54 55 58 59 60
27770 20 36 31 20 36 32 20 36 33 20 36 34 7d 0a 64 6f   61 62 63 64}.do
27780 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
27790 32 2e 32 34 2e 6c 65 2e 32 20 7b 0a 20 20 64 62  2.24.le.2 {.  db
277a0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
277b0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
277c0 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
277d0 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
277e0 77 69 64 20 3c 3d 20 38 33 38 38 36 30 37 20 4f  wid <= 8388607 O
277f0 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
27800 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36  C.  }.} {64 63 6
27810 32 20 36 31 20 36 30 20 35 39 20 35 38 20 35 35  2 61 60 59 58 55
27820 20 35 34 20 35 33 20 35 32 20 35 30 20 34 39 20   54 53 52 50 49 
27830 34 38 20 34 37 20 34 34 20 34 32 20 34 31 20 33  48 47 44 42 41 3
27840 38 20 33 37 20 33 33 20 33 32 20 33 31 20 33 30  8 37 33 32 31 30
27850 20 32 39 20 32 33 20 32 31 20 31 38 20 31 36 20   29 23 21 18 16 
27860 31 35 20 31 31 20 38 20 35 20 34 20 32 20 31 7d  15 11 8 5 4 2 1}
27870 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
27880 79 33 2d 32 2e 32 34 2e 6c 65 2e 33 20 7b 0a 20  y3-2.24.le.3 {. 
27890 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
278a0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
278b0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
278c0 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
278d0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31      WHERE t2.a=1
278e0 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  8.     ORDER BY 
278f0 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
27900 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
27910 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
27920 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
27930 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33   38 59 60 41 5 3
27940 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
27950 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
27960 20 34 32 20 31 38 7d 0a 64 6f 5f 74 65 73 74 20   42 18}.do_test 
27970 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 34 2e 6c  boundary3-2.24.l
27980 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.4 {.  db eval 
27990 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
279a0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
279b0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
279c0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
279d0 20 74 32 2e 61 3d 31 38 0a 20 20 20 20 20 4f 52   t2.a=18.     OR
279e0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
279f0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 31 38 20 34  DESC.  }.} {18 4
27a00 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
27a10 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
27a20 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
27a30 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
27a40 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
27a50 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
27a60 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
27a70 64 61 72 79 33 2d 32 2e 32 34 2e 6c 65 2e 35 20  dary3-2.24.le.5 
27a80 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
27a90 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
27aa0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
27ab0 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e   t1.rowid <= t2.
27ac0 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
27ad0 61 3d 31 38 0a 20 20 20 20 20 4f 52 44 45 52 20  a=18.     ORDER 
27ae0 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  BY x.  }.} {59 6
27af0 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
27b00 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
27b10 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 35  48 62 15 42 18 5
27b20 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
27b30 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
27b40 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
27b50 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  38}.do_test boun
27b60 64 61 72 79 33 2d 32 2e 32 34 2e 6c 65 2e 31 30  dary3-2.24.le.10
27b70 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
27b80 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
27b90 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
27ba0 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41  N t1.rowid <= CA
27bb0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
27bc0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
27bd0 3d 31 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =18.     ORDER B
27be0 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
27bf0 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
27c00 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
27c10 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
27c20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
27c30 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
27c40 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
27c50 31 35 20 34 32 20 31 38 7d 0a 64 6f 5f 74 65 73  15 42 18}.do_tes
27c60 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 34  t boundary3-2.24
27c70 2e 6c 65 2e 31 31 20 7b 0a 20 20 64 62 20 65 76  .le.11 {.  db ev
27c80 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
27c90 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
27ca0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
27cb0 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53   <= CAST(t2.r AS
27cc0 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
27cd0 45 20 74 32 2e 61 3d 31 38 0a 20 20 20 20 20 4f  E t2.a=18.     O
27ce0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
27cf0 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 31 38 20   DESC.  }.} {18 
27d00 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32  42 15 62 48 50 2
27d10 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
27d20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
27d30 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
27d40 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
27d50 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
27d60 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
27d70 6e 64 61 72 79 33 2d 32 2e 32 35 2e 31 20 7b 0a  ndary3-2.25.1 {.
27d80 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
27d90 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d  SELECT t1.* FROM
27da0 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74 31   t1, t2 WHERE t1
27db0 2e 72 6f 77 69 64 3d 2d 33 20 41 4e 44 20 74 32  .rowid=-3 AND t2
27dc0 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 35  .a=t1.a.  }.} {5
27dd0 32 20 66 66 66 66 66 66 66 66 66 66 66 66 66 66  2 ffffffffffffff
27de0 66 64 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  fd}.do_test boun
27df0 64 61 72 79 33 2d 32 2e 32 35 2e 32 20 7b 0a 20  dary3-2.25.2 {. 
27e00 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
27e10 45 4c 45 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20  ELECT t2.* FROM 
27e20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
27e30 28 61 29 20 57 48 45 52 45 20 78 3d 27 66 66 66  (a) WHERE x='fff
27e40 66 66 66 66 66 66 66 66 66 66 66 66 64 27 0a 20  ffffffffffffd'. 
27e50 20 7d 0a 7d 20 7b 2d 33 20 35 32 7d 0a 64 6f 5f   }.} {-3 52}.do_
27e60 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
27e70 2e 32 35 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .25.3 {.  db eva
27e80 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
27e90 31 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f 4d 20  1.rowid, x FROM 
27ea0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 32  t1 JOIN t2 ON t2
27eb0 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57 48 45 52  .r=t1.rowid WHER
27ec0 45 20 74 32 2e 61 3d 35 32 0a 20 20 7d 0a 7d 20  E t2.a=52.  }.} 
27ed0 7b 2d 33 20 66 66 66 66 66 66 66 66 66 66 66 66  {-3 ffffffffffff
27ee0 66 66 66 64 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  fffd}.do_test bo
27ef0 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67 74 2e  undary3-2.25.gt.
27f00 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
27f10 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
27f20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
27f30 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
27f40 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 2d  ERE t1.rowid > -
27f50 33 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  3 ORDER BY t2.a.
27f60 20 20 7d 0a 7d 20 7b 33 20 34 20 35 20 36 20 37    }.} {3 4 5 6 7
27f70 20 38 20 39 20 31 30 20 31 32 20 31 33 20 31 34   8 9 10 12 13 14
27f80 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20   15 16 17 18 19 
27f90 32 30 20 32 32 20 32 33 20 32 34 20 32 35 20 32  20 22 23 24 25 2
27fa0 36 20 32 37 20 32 38 20 33 30 20 33 31 20 33 33  6 27 28 30 31 33
27fb0 20 33 34 20 33 35 20 33 36 20 33 38 20 33 39 20   34 35 36 38 39 
27fc0 34 30 20 34 31 20 34 32 20 34 33 20 34 35 20 34  40 41 42 43 45 4
27fd0 36 20 34 38 20 34 39 20 35 30 20 35 31 20 35 36  6 48 49 50 51 56
27fe0 20 35 37 20 35 39 20 36 30 20 36 31 20 36 32 7d   57 59 60 61 62}
27ff0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
28000 79 33 2d 32 2e 32 35 2e 67 74 2e 32 20 7b 0a 20  y3-2.25.gt.2 {. 
28010 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
28020 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
28030 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
28040 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
28050 2e 72 6f 77 69 64 20 3e 20 2d 33 20 4f 52 44 45  .rowid > -3 ORDE
28060 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
28070 20 7d 0a 7d 20 7b 36 32 20 36 31 20 36 30 20 35   }.} {62 61 60 5
28080 39 20 35 37 20 35 36 20 35 31 20 35 30 20 34 39  9 57 56 51 50 49
28090 20 34 38 20 34 36 20 34 35 20 34 33 20 34 32 20   48 46 45 43 42 
280a0 34 31 20 34 30 20 33 39 20 33 38 20 33 36 20 33  41 40 39 38 36 3
280b0 35 20 33 34 20 33 33 20 33 31 20 33 30 20 32 38  5 34 33 31 30 28
280c0 20 32 37 20 32 36 20 32 35 20 32 34 20 32 33 20   27 26 25 24 23 
280d0 32 32 20 32 30 20 31 39 20 31 38 20 31 37 20 31  22 20 19 18 17 1
280e0 36 20 31 35 20 31 34 20 31 33 20 31 32 20 31 30  6 15 14 13 12 10
280f0 20 39 20 38 20 37 20 36 20 35 20 34 20 33 7d 0a   9 8 7 6 5 4 3}.
28100 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
28110 33 2d 32 2e 32 35 2e 67 74 2e 33 20 7b 0a 20 20  3-2.25.gt.3 {.  
28120 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
28130 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
28140 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
28150 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20  rowid > t2.r.   
28160 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 32 0a    WHERE t2.a=52.
28170 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
28180 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 33  .rowid.  }.} {33
28190 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33   38 59 60 41 5 3
281a0 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
281b0 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
281c0 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32   42 18 24 9 6 12
281d0 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
281e0 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
281f0 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
28200 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
28210 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
28220 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67  boundary3-2.25.g
28230 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.4 {.  db eval 
28240 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
28250 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
28260 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
28270 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
28280 74 32 2e 61 3d 35 32 0a 20 20 20 20 20 4f 52 44  t2.a=52.     ORD
28290 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
282a0 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
282b0 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
282c0 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
282d0 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
282e0 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
282f0 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
28300 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20   15 62 48 50 23 
28310 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20  16 8 61 30 49 4 
28320 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38  31 5 41 60 59 38
28330 20 33 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   33}.do_test bou
28340 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67 74 2e 35  ndary3-2.25.gt.5
28350 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
28360 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
28370 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
28380 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e  N t1.rowid > t2.
28390 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
283a0 61 3d 35 32 0a 20 20 20 20 20 4f 52 44 45 52 20  a=52.     ORDER 
283b0 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  BY x.  }.} {59 6
283c0 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
283d0 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
283e0 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
283f0 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
28400 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
28410 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
28420 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
28430 20 32 37 20 34 35 20 31 37 20 32 38 20 33 20 33   27 45 17 28 3 3
28440 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 38}.do_test bo
28450 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67 74 2e  undary3-2.25.gt.
28460 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  10 {.  db eval {
28470 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
28480 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
28490 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43   ON t1.rowid > C
284a0 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
284b0 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
284c0 61 3d 35 32 0a 20 20 20 20 20 4f 52 44 45 52 20  a=52.     ORDER 
284d0 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
284e0 7d 20 7b 33 33 20 33 38 20 35 39 20 36 30 20 34  } {33 38 59 60 4
284f0 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
28500 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
28510 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
28520 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
28530 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
28540 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
28550 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
28560 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
28570 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
28580 2e 32 35 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62  .25.gt.11 {.  db
28590 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
285a0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
285b0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
285c0 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20  wid > CAST(t2.r 
285d0 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
285e0 45 52 45 20 74 32 2e 61 3d 35 32 0a 20 20 20 20  ERE t2.a=52.    
285f0 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
28600 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33  id DESC.  }.} {3
28610 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20   28 17 45 27 43 
28620 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35  13 26 10 34 25 5
28630 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20  6 7 19 57 35 46 
28640 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32  22 39 36 14 51 2
28650 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31  0 40 12 6 9 24 1
28660 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30  8 42 15 62 48 50
28670 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34   23 16 8 61 30 4
28680 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35  9 4 31 5 41 60 5
28690 39 20 33 38 20 33 33 7d 0a 64 6f 5f 74 65 73 74  9 38 33}.do_test
286a0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e   boundary3-2.25.
286b0 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  ge.1 {.  db eval
286c0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
286d0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
286e0 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20  t2 USING(a).    
286f0 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
28700 3e 3d 20 2d 33 20 4f 52 44 45 52 20 42 59 20 74  >= -3 ORDER BY t
28710 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 34 20 35  2.a.  }.} {3 4 5
28720 20 36 20 37 20 38 20 39 20 31 30 20 31 32 20 31   6 7 8 9 10 12 1
28730 33 20 31 34 20 31 35 20 31 36 20 31 37 20 31 38  3 14 15 16 17 18
28740 20 31 39 20 32 30 20 32 32 20 32 33 20 32 34 20   19 20 22 23 24 
28750 32 35 20 32 36 20 32 37 20 32 38 20 33 30 20 33  25 26 27 28 30 3
28760 31 20 33 33 20 33 34 20 33 35 20 33 36 20 33 38  1 33 34 35 36 38
28770 20 33 39 20 34 30 20 34 31 20 34 32 20 34 33 20   39 40 41 42 43 
28780 34 35 20 34 36 20 34 38 20 34 39 20 35 30 20 35  45 46 48 49 50 5
28790 31 20 35 32 20 35 36 20 35 37 20 35 39 20 36 30  1 52 56 57 59 60
287a0 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20   61 62}.do_test 
287b0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67  boundary3-2.25.g
287c0 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.2 {.  db eval 
287d0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
287e0 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
287f0 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
28800 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d  HERE t1.rowid >=
28810 20 2d 33 20 4f 52 44 45 52 20 42 59 20 74 31 2e   -3 ORDER BY t1.
28820 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32  a DESC.  }.} {62
28830 20 36 31 20 36 30 20 35 39 20 35 37 20 35 36 20   61 60 59 57 56 
28840 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20 34  52 51 50 49 48 4
28850 36 20 34 35 20 34 33 20 34 32 20 34 31 20 34 30  6 45 43 42 41 40
28860 20 33 39 20 33 38 20 33 36 20 33 35 20 33 34 20   39 38 36 35 34 
28870 33 33 20 33 31 20 33 30 20 32 38 20 32 37 20 32  33 31 30 28 27 2
28880 36 20 32 35 20 32 34 20 32 33 20 32 32 20 32 30  6 25 24 23 22 20
28890 20 31 39 20 31 38 20 31 37 20 31 36 20 31 35 20   19 18 17 16 15 
288a0 31 34 20 31 33 20 31 32 20 31 30 20 39 20 38 20  14 13 12 10 9 8 
288b0 37 20 36 20 35 20 34 20 33 7d 0a 64 6f 5f 74 65  7 6 5 4 3}.do_te
288c0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
288d0 35 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65 76  5.ge.3 {.  db ev
288e0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
288f0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
28900 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
28910 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   >= t2.r.     WH
28920 45 52 45 20 74 32 2e 61 3d 35 32 0a 20 20 20 20  ERE t2.a=52.    
28930 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
28940 69 64 0a 20 20 7d 0a 7d 20 7b 35 32 20 33 33 20  id.  }.} {52 33 
28950 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
28960 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
28970 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
28980 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
28990 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
289a0 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
289b0 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
289c0 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
289d0 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
289e0 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67 65  oundary3-2.25.ge
289f0 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
28a00 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
28a10 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
28a20 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
28a30 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
28a40 74 32 2e 61 3d 35 32 0a 20 20 20 20 20 4f 52 44  t2.a=52.     ORD
28a50 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
28a60 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
28a70 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
28a80 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
28a90 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
28aa0 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
28ab0 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
28ac0 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20   15 62 48 50 23 
28ad0 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20  16 8 61 30 49 4 
28ae0 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38  31 5 41 60 59 38
28af0 20 33 33 20 35 32 7d 0a 64 6f 5f 74 65 73 74 20   33 52}.do_test 
28b00 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67  boundary3-2.25.g
28b10 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.5 {.  db eval 
28b20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
28b30 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
28b40 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
28b50 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
28b60 20 74 32 2e 61 3d 35 32 0a 20 20 20 20 20 4f 52   t2.a=52.     OR
28b70 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
28b80 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
28b90 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
28ba0 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
28bb0 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
28bc0 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
28bd0 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
28be0 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
28bf0 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
28c00 20 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f   3 52 33 38}.do_
28c10 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
28c20 2e 32 35 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62  .25.ge.10 {.  db
28c30 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
28c40 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
28c50 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
28c60 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72  wid >= CAST(t2.r
28c70 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
28c80 48 45 52 45 20 74 32 2e 61 3d 35 32 0a 20 20 20  HERE t2.a=52.   
28c90 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
28ca0 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 32 20 33 33  wid.  }.} {52 33
28cb0 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33   38 59 60 41 5 3
28cc0 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
28cd0 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
28ce0 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32   42 18 24 9 6 12
28cf0 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
28d00 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
28d10 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
28d20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
28d30 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
28d40 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 67  boundary3-2.25.g
28d50 65 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  e.11 {.  db eval
28d60 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
28d70 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
28d80 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
28d90 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  = CAST(t2.r AS r
28da0 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
28db0 74 32 2e 61 3d 35 32 0a 20 20 20 20 20 4f 52 44  t2.a=52.     ORD
28dc0 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
28dd0 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
28de0 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
28df0 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
28e00 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
28e10 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
28e20 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
28e30 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20   15 62 48 50 23 
28e40 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20  16 8 61 30 49 4 
28e50 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38  31 5 41 60 59 38
28e60 20 33 33 20 35 32 7d 0a 64 6f 5f 74 65 73 74 20   33 52}.do_test 
28e70 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 6c  boundary3-2.25.l
28e80 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.1 {.  db eval 
28e90 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
28ea0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
28eb0 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
28ec0 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
28ed0 20 2d 33 20 4f 52 44 45 52 20 42 59 20 74 32 2e   -3 ORDER BY t2.
28ee0 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 31 31 20  a.  }.} {1 2 11 
28ef0 32 31 20 32 39 20 33 32 20 33 37 20 34 34 20 34  21 29 32 37 44 4
28f00 37 20 35 33 20 35 34 20 35 35 20 35 38 20 36 33  7 53 54 55 58 63
28f10 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
28f20 6e 64 61 72 79 33 2d 32 2e 32 35 2e 6c 74 2e 32  ndary3-2.25.lt.2
28f30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
28f40 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
28f50 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
28f60 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
28f70 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 2d 33 20  E t1.rowid < -3 
28f80 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45  ORDER BY t1.a DE
28f90 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20  SC.  }.} {64 63 
28fa0 35 38 20 35 35 20 35 34 20 35 33 20 34 37 20 34  58 55 54 53 47 4
28fb0 34 20 33 37 20 33 32 20 32 39 20 32 31 20 31 31  4 37 32 29 21 11
28fc0 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   2 1}.do_test bo
28fd0 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 6c 74 2e  undary3-2.25.lt.
28fe0 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
28ff0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
29000 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
29010 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
29020 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
29030 2e 61 3d 35 32 0a 20 20 20 20 20 4f 52 44 45 52  .a=52.     ORDER
29040 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
29050 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
29060 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
29070 33 37 20 32 39 20 33 32 20 35 34 20 35 33 7d 0a  37 29 32 54 53}.
29080 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
29090 33 2d 32 2e 32 35 2e 6c 74 2e 34 20 7b 0a 20 20  3-2.25.lt.4 {.  
290a0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
290b0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
290c0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
290d0 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20  rowid < t2.r.   
290e0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 32 0a    WHERE t2.a=52.
290f0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
29100 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
29110 7d 20 7b 35 33 20 35 34 20 33 32 20 32 39 20 33  } {53 54 32 29 3
29120 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20  7 1 11 47 63 58 
29130 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64  44 21 64 2 55}.d
29140 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
29150 2d 32 2e 32 35 2e 6c 74 2e 35 20 7b 0a 20 20 64  -2.25.lt.5 {.  d
29160 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
29170 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
29180 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
29190 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20  owid < t2.r.    
291a0 20 57 48 45 52 45 20 74 32 2e 61 3d 35 32 0a 20   WHERE t2.a=52. 
291b0 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
291c0 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31   }.} {55 2 64 21
291d0 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
291e0 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
291f0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
29200 72 79 33 2d 32 2e 32 35 2e 6c 74 2e 31 30 20 7b  ry3-2.25.lt.10 {
29210 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
29220 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
29230 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
29240 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28  t1.rowid < CAST(
29250 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
29260 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 32     WHERE t2.a=52
29270 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
29280 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
29290 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
292a0 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
292b0 20 33 32 20 35 34 20 35 33 7d 0a 64 6f 5f 74 65   32 54 53}.do_te
292c0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
292d0 35 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62 20 65  5.lt.11 {.  db e
292e0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
292f0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
29300 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
29310 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53  d < CAST(t2.r AS
29320 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
29330 45 20 74 32 2e 61 3d 35 32 0a 20 20 20 20 20 4f  E t2.a=52.     O
29340 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
29350 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 33 20   DESC.  }.} {53 
29360 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
29370 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
29380 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
29390 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e   boundary3-2.25.
293a0 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  le.1 {.  db eval
293b0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
293c0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
293d0 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20  t2 USING(a).    
293e0 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
293f0 3c 3d 20 2d 33 20 4f 52 44 45 52 20 42 59 20 74  <= -3 ORDER BY t
29400 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 31  2.a.  }.} {1 2 1
29410 31 20 32 31 20 32 39 20 33 32 20 33 37 20 34 34  1 21 29 32 37 44
29420 20 34 37 20 35 32 20 35 33 20 35 34 20 35 35 20   47 52 53 54 55 
29430 35 38 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73  58 63 64}.do_tes
29440 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35  t boundary3-2.25
29450 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .le.2 {.  db eva
29460 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
29470 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
29480 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
29490 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
294a0 3c 3d 20 2d 33 20 4f 52 44 45 52 20 42 59 20 74  <= -3 ORDER BY t
294b0 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
294c0 36 34 20 36 33 20 35 38 20 35 35 20 35 34 20 35  64 63 58 55 54 5
294d0 33 20 35 32 20 34 37 20 34 34 20 33 37 20 33 32  3 52 47 44 37 32
294e0 20 32 39 20 32 31 20 31 31 20 32 20 31 7d 0a 64   29 21 11 2 1}.d
294f0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
29500 2d 32 2e 32 35 2e 6c 65 2e 33 20 7b 0a 20 20 64  -2.25.le.3 {.  d
29510 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
29520 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
29530 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
29540 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
29550 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 32 0a    WHERE t2.a=52.
29560 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
29570 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
29580 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
29590 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
295a0 33 32 20 35 34 20 35 33 20 35 32 7d 0a 64 6f 5f  32 54 53 52}.do_
295b0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
295c0 2e 32 35 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20  .25.le.4 {.  db 
295d0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
295e0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
295f0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
29600 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20  id <= t2.r.     
29610 57 48 45 52 45 20 74 32 2e 61 3d 35 32 0a 20 20  WHERE t2.a=52.  
29620 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
29630 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
29640 7b 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20  {52 53 54 32 29 
29650 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38  37 1 11 47 63 58
29660 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a   44 21 64 2 55}.
29670 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
29680 33 2d 32 2e 32 35 2e 6c 65 2e 35 20 7b 0a 20 20  3-2.25.le.5 {.  
29690 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
296a0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
296b0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
296c0 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20  rowid <= t2.r.  
296d0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 32     WHERE t2.a=52
296e0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
296f0 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
29700 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
29710 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
29720 35 33 20 35 32 7d 0a 64 6f 5f 74 65 73 74 20 62  53 52}.do_test b
29730 6f 75 6e 64 61 72 79 33 2d 32 2e 32 35 2e 6c 65  oundary3-2.25.le
29740 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .10 {.  db eval 
29750 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
29760 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
29770 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
29780 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
29790 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
297a0 32 2e 61 3d 35 32 0a 20 20 20 20 20 4f 52 44 45  2.a=52.     ORDE
297b0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
297c0 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20  }.} {55 2 64 21 
297d0 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
297e0 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
297f0 35 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  52}.do_test boun
29800 64 61 72 79 33 2d 32 2e 32 35 2e 6c 65 2e 31 31  dary3-2.25.le.11
29810 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
29820 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
29830 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
29840 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41  N t1.rowid <= CA
29850 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
29860 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
29870 3d 35 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =52.     ORDER B
29880 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
29890 20 20 7d 0a 7d 20 7b 35 32 20 35 33 20 35 34 20    }.} {52 53 54 
298a0 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
298b0 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
298c0 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
298d0 75 6e 64 61 72 79 33 2d 32 2e 32 36 2e 31 20 7b  undary3-2.26.1 {
298e0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
298f0 20 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f   SELECT t1.* FRO
29900 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74  M t1, t2 WHERE t
29910 31 2e 72 6f 77 69 64 3d 30 20 41 4e 44 20 74 32  1.rowid=0 AND t2
29920 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 35  .a=t1.a.  }.} {5
29930 39 20 30 30 30 30 30 30 30 30 30 30 30 30 30 30  9 00000000000000
29940 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  00}.do_test boun
29950 64 61 72 79 33 2d 32 2e 32 36 2e 32 20 7b 0a 20  dary3-2.26.2 {. 
29960 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
29970 45 4c 45 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20  ELECT t2.* FROM 
29980 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
29990 28 61 29 20 57 48 45 52 45 20 78 3d 27 30 30 30  (a) WHERE x='000
299a0 30 30 30 30 30 30 30 30 30 30 30 30 30 27 0a 20  0000000000000'. 
299b0 20 7d 0a 7d 20 7b 30 20 35 39 7d 0a 64 6f 5f 74   }.} {0 59}.do_t
299c0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
299d0 32 36 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  26.3 {.  db eval
299e0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
299f0 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f 4d 20 74  .rowid, x FROM t
29a00 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 32 2e  1 JOIN t2 ON t2.
29a10 72 3d 74 31 2e 72 6f 77 69 64 20 57 48 45 52 45  r=t1.rowid WHERE
29a20 20 74 32 2e 61 3d 35 39 0a 20 20 7d 0a 7d 20 7b   t2.a=59.  }.} {
29a30 30 20 30 30 30 30 30 30 30 30 30 30 30 30 30 30  0 00000000000000
29a40 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  00}.do_test boun
29a50 64 61 72 79 33 2d 32 2e 32 36 2e 67 74 2e 31 20  dary3-2.26.gt.1 
29a60 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
29a70 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
29a80 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
29a90 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
29aa0 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 30 20 4f  E t1.rowid > 0 O
29ab0 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
29ac0 0a 7d 20 7b 33 20 34 20 35 20 36 20 37 20 38 20  .} {3 4 5 6 7 8 
29ad0 39 20 31 30 20 31 32 20 31 33 20 31 34 20 31 35  9 10 12 13 14 15
29ae0 20 31 36 20 31 37 20 31 38 20 31 39 20 32 30 20   16 17 18 19 20 
29af0 32 32 20 32 33 20 32 34 20 32 35 20 32 36 20 32  22 23 24 25 26 2
29b00 37 20 32 38 20 33 30 20 33 31 20 33 34 20 33 35  7 28 30 31 34 35
29b10 20 33 36 20 33 39 20 34 30 20 34 31 20 34 32 20   36 39 40 41 42 
29b20 34 33 20 34 35 20 34 36 20 34 38 20 34 39 20 35  43 45 46 48 49 5
29b30 30 20 35 31 20 35 36 20 35 37 20 36 30 20 36 31  0 51 56 57 60 61
29b40 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   62}.do_test bou
29b50 6e 64 61 72 79 33 2d 32 2e 32 36 2e 67 74 2e 32  ndary3-2.26.gt.2
29b60 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
29b70 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
29b80 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
29b90 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
29ba0 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 30 20 4f  E t1.rowid > 0 O
29bb0 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53  RDER BY t1.a DES
29bc0 43 0a 20 20 7d 0a 7d 20 7b 36 32 20 36 31 20 36  C.  }.} {62 61 6
29bd0 30 20 35 37 20 35 36 20 35 31 20 35 30 20 34 39  0 57 56 51 50 49
29be0 20 34 38 20 34 36 20 34 35 20 34 33 20 34 32 20   48 46 45 43 42 
29bf0 34 31 20 34 30 20 33 39 20 33 36 20 33 35 20 33  41 40 39 36 35 3
29c00 34 20 33 31 20 33 30 20 32 38 20 32 37 20 32 36  4 31 30 28 27 26
29c10 20 32 35 20 32 34 20 32 33 20 32 32 20 32 30 20   25 24 23 22 20 
29c20 31 39 20 31 38 20 31 37 20 31 36 20 31 35 20 31  19 18 17 16 15 1
29c30 34 20 31 33 20 31 32 20 31 30 20 39 20 38 20 37  4 13 12 10 9 8 7
29c40 20 36 20 35 20 34 20 33 7d 0a 64 6f 5f 74 65 73   6 5 4 3}.do_tes
29c50 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 36  t boundary3-2.26
29c60 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .gt.3 {.  db eva
29c70 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
29c80 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
29c90 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
29ca0 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
29cb0 45 20 74 32 2e 61 3d 35 39 0a 20 20 20 20 20 4f  E t2.a=59.     O
29cc0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
29cd0 0a 20 20 7d 0a 7d 20 7b 36 30 20 34 31 20 35 20  .  }.} {60 41 5 
29ce0 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
29cf0 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
29d00 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
29d10 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
29d20 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
29d30 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
29d40 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
29d50 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
29d60 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 36 2e   boundary3-2.26.
29d70 67 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  gt.4 {.  db eval
29d80 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
29d90 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
29da0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e  t2 ON t1.rowid >
29db0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
29dc0 20 74 32 2e 61 3d 35 39 0a 20 20 20 20 20 4f 52   t2.a=59.     OR
29dd0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
29de0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
29df0 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
29e00 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
29e10 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20   19 57 35 46 22 
29e20 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
29e30 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
29e40 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
29e50 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
29e60 20 33 31 20 35 20 34 31 20 36 30 7d 0a 64 6f 5f   31 5 41 60}.do_
29e70 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
29e80 2e 32 36 2e 67 74 2e 35 20 7b 0a 20 20 64 62 20  .26.gt.5 {.  db 
29e90 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
29ea0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
29eb0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
29ec0 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
29ed0 48 45 52 45 20 74 32 2e 61 3d 35 39 0a 20 20 20  HERE t2.a=59.   
29ee0 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
29ef0 0a 7d 20 7b 36 30 20 34 31 20 35 20 33 31 20 34  .} {60 41 5 31 4
29f00 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32   49 30 61 8 16 2
29f10 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32  3 50 48 62 15 42
29f20 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30   18 24 9 6 12 40
29f30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20   20 51 14 36 39 
29f40 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37  22 46 35 57 19 7
29f50 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20   56 25 34 10 26 
29f60 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32  13 43 27 45 17 2
29f70 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  8 3}.do_test bou
29f80 6e 64 61 72 79 33 2d 32 2e 32 36 2e 67 74 2e 31  ndary3-2.26.gt.1
29f90 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
29fa0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
29fb0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
29fc0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41  ON t1.rowid > CA
29fd0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
29fe0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
29ff0 3d 35 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =59.     ORDER B
2a000 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
2a010 20 7b 36 30 20 34 31 20 35 20 33 31 20 34 20 34   {60 41 5 31 4 4
2a020 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
2a030 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
2a040 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
2a050 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
2a060 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
2a070 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
2a080 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
2a090 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
2a0a0 61 72 79 33 2d 32 2e 32 36 2e 67 74 2e 31 31 20  ary3-2.26.gt.11 
2a0b0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2a0c0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
2a0d0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2a0e0 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54   t1.rowid > CAST
2a0f0 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
2a100 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35      WHERE t2.a=5
2a110 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
2a120 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
2a130 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
2a140 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
2a150 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
2a160 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
2a170 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
2a180 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
2a190 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
2a1a0 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
2a1b0 31 20 36 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  1 60}.do_test bo
2a1c0 75 6e 64 61 72 79 33 2d 32 2e 32 36 2e 67 65 2e  undary3-2.26.ge.
2a1d0 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
2a1e0 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
2a1f0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
2a200 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
2a210 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
2a220 30 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  0 ORDER BY t2.a.
2a230 20 20 7d 0a 7d 20 7b 33 20 34 20 35 20 36 20 37    }.} {3 4 5 6 7
2a240 20 38 20 39 20 31 30 20 31 32 20 31 33 20 31 34   8 9 10 12 13 14
2a250 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20   15 16 17 18 19 
2a260 32 30 20 32 32 20 32 33 20 32 34 20 32 35 20 32  20 22 23 24 25 2
2a270 36 20 32 37 20 32 38 20 33 30 20 33 31 20 33 34  6 27 28 30 31 34
2a280 20 33 35 20 33 36 20 33 39 20 34 30 20 34 31 20   35 36 39 40 41 
2a290 34 32 20 34 33 20 34 35 20 34 36 20 34 38 20 34  42 43 45 46 48 4
2a2a0 39 20 35 30 20 35 31 20 35 36 20 35 37 20 35 39  9 50 51 56 57 59
2a2b0 20 36 30 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65   60 61 62}.do_te
2a2c0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2a2d0 36 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20 65 76  6.ge.2 {.  db ev
2a2e0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2a2f0 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
2a300 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
2a310 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
2a320 20 3e 3d 20 30 20 4f 52 44 45 52 20 42 59 20 74   >= 0 ORDER BY t
2a330 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
2a340 36 32 20 36 31 20 36 30 20 35 39 20 35 37 20 35  62 61 60 59 57 5
2a350 36 20 35 31 20 35 30 20 34 39 20 34 38 20 34 36  6 51 50 49 48 46
2a360 20 34 35 20 34 33 20 34 32 20 34 31 20 34 30 20   45 43 42 41 40 
2a370 33 39 20 33 36 20 33 35 20 33 34 20 33 31 20 33  39 36 35 34 31 3
2a380 30 20 32 38 20 32 37 20 32 36 20 32 35 20 32 34  0 28 27 26 25 24
2a390 20 32 33 20 32 32 20 32 30 20 31 39 20 31 38 20   23 22 20 19 18 
2a3a0 31 37 20 31 36 20 31 35 20 31 34 20 31 33 20 31  17 16 15 14 13 1
2a3b0 32 20 31 30 20 39 20 38 20 37 20 36 20 35 20 34  2 10 9 8 7 6 5 4
2a3c0 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
2a3d0 64 61 72 79 33 2d 32 2e 32 36 2e 67 65 2e 33 20  dary3-2.26.ge.3 
2a3e0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2a3f0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
2a400 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2a410 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e   t1.rowid >= t2.
2a420 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
2a430 61 3d 35 39 0a 20 20 20 20 20 4f 52 44 45 52 20  a=59.     ORDER 
2a440 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
2a450 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31  } {59 60 41 5 31
2a460 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
2a470 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
2a480 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
2a490 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
2a4a0 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
2a4b0 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
2a4c0 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
2a4d0 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
2a4e0 6f 75 6e 64 61 72 79 33 2d 32 2e 32 36 2e 67 65  oundary3-2.26.ge
2a4f0 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
2a500 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
2a510 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
2a520 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
2a530 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
2a540 74 32 2e 61 3d 35 39 0a 20 20 20 20 20 4f 52 44  t2.a=59.     ORD
2a550 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
2a560 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
2a570 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
2a580 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
2a590 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
2a5a0 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
2a5b0 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
2a5c0 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20   15 62 48 50 23 
2a5d0 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20  16 8 61 30 49 4 
2a5e0 33 31 20 35 20 34 31 20 36 30 20 35 39 7d 0a 64  31 5 41 60 59}.d
2a5f0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2a600 2d 32 2e 32 36 2e 67 65 2e 35 20 7b 0a 20 20 64  -2.26.ge.5 {.  d
2a610 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2a620 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
2a630 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
2a640 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
2a650 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 39 0a    WHERE t2.a=59.
2a660 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
2a670 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20    }.} {59 60 41 
2a680 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
2a690 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
2a6a0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
2a6b0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
2a6c0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
2a6d0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
2a6e0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
2a6f0 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
2a700 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2a710 36 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20 65  6.ge.10 {.  db e
2a720 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2a730 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2a740 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2a750 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d >= CAST(t2.r A
2a760 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
2a770 52 45 20 74 32 2e 61 3d 35 39 0a 20 20 20 20 20  RE t2.a=59.     
2a780 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
2a790 64 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  d.  }.} {59 60 4
2a7a0 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
2a7b0 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
2a7c0 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
2a7d0 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
2a7e0 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
2a7f0 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
2a800 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
2a810 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
2a820 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2a830 2e 32 36 2e 67 65 2e 31 31 20 7b 0a 20 20 64 62  .26.ge.11 {.  db
2a840 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
2a850 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
2a860 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
2a870 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72  wid >= CAST(t2.r
2a880 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
2a890 48 45 52 45 20 74 32 2e 61 3d 35 39 0a 20 20 20  HERE t2.a=59.   
2a8a0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
2a8b0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
2a8c0 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
2a8d0 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
2a8e0 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
2a8f0 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
2a900 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
2a910 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
2a920 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
2a930 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
2a940 35 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  59}.do_test boun
2a950 64 61 72 79 33 2d 32 2e 32 36 2e 6c 74 2e 31 20  dary3-2.26.lt.1 
2a960 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2a970 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
2a980 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
2a990 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
2a9a0 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 30 20 4f  E t1.rowid < 0 O
2a9b0 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
2a9c0 0a 7d 20 7b 31 20 32 20 31 31 20 32 31 20 32 39  .} {1 2 11 21 29
2a9d0 20 33 32 20 33 33 20 33 37 20 33 38 20 34 34 20   32 33 37 38 44 
2a9e0 34 37 20 35 32 20 35 33 20 35 34 20 35 35 20 35  47 52 53 54 55 5
2a9f0 38 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74  8 63 64}.do_test
2aa00 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 36 2e   boundary3-2.26.
2aa10 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.2 {.  db eval
2aa20 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
2aa30 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52  .a FROM t2 NATUR
2aa40 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20  AL JOIN t1.     
2aa50 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
2aa60 20 30 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61   0 ORDER BY t1.a
2aa70 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20   DESC.  }.} {64 
2aa80 36 33 20 35 38 20 35 35 20 35 34 20 35 33 20 35  63 58 55 54 53 5
2aa90 32 20 34 37 20 34 34 20 33 38 20 33 37 20 33 33  2 47 44 38 37 33
2aaa0 20 33 32 20 32 39 20 32 31 20 31 31 20 32 20 31   32 29 21 11 2 1
2aab0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2aac0 72 79 33 2d 32 2e 32 36 2e 6c 74 2e 33 20 7b 0a  ry3-2.26.lt.3 {.
2aad0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2aae0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2aaf0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2ab00 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20  1.rowid < t2.r. 
2ab10 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35      WHERE t2.a=5
2ab20 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
2ab30 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
2ab40 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
2ab50 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
2ab60 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
2ab70 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   38}.do_test bou
2ab80 6e 64 61 72 79 33 2d 32 2e 32 36 2e 6c 74 2e 34  ndary3-2.26.lt.4
2ab90 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2aba0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
2abb0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
2abc0 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
2abd0 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
2abe0 61 3d 35 39 0a 20 20 20 20 20 4f 52 44 45 52 20  a=59.     ORDER 
2abf0 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43  BY t1.rowid DESC
2ac00 0a 20 20 7d 0a 7d 20 7b 33 38 20 33 33 20 35 32  .  }.} {38 33 52
2ac10 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
2ac20 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
2ac30 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
2ac40 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2ac50 2e 32 36 2e 6c 74 2e 35 20 7b 0a 20 20 64 62 20  .26.lt.5 {.  db 
2ac60 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2ac70 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
2ac80 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
2ac90 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57  id < t2.r.     W
2aca0 48 45 52 45 20 74 32 2e 61 3d 35 39 0a 20 20 20  HERE t2.a=59.   
2acb0 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
2acc0 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34  .} {55 2 64 21 4
2acd0 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20  4 58 63 47 11 1 
2ace0 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35  37 29 32 54 53 5
2acf0 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74  2 33 38}.do_test
2ad00 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 36 2e   boundary3-2.26.
2ad10 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  lt.10 {.  db eva
2ad20 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2ad30 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2ad40 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2ad50 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  < CAST(t2.r AS r
2ad60 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
2ad70 74 32 2e 61 3d 35 39 0a 20 20 20 20 20 4f 52 44  t2.a=59.     ORD
2ad80 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20  ER BY t1.rowid. 
2ad90 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31   }.} {55 2 64 21
2ada0 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
2adb0 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
2adc0 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65   52 33 38}.do_te
2add0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2ade0 36 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62 20 65  6.lt.11 {.  db e
2adf0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2ae00 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2ae10 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2ae20 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53  d < CAST(t2.r AS
2ae30 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
2ae40 45 20 74 32 2e 61 3d 35 39 0a 20 20 20 20 20 4f  E t2.a=59.     O
2ae50 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
2ae60 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 38 20   DESC.  }.} {38 
2ae70 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
2ae80 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20  9 37 1 11 47 63 
2ae90 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
2aea0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2aeb0 72 79 33 2d 32 2e 32 36 2e 6c 65 2e 31 20 7b 0a  ry3-2.26.le.1 {.
2aec0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2aed0 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
2aee0 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
2aef0 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
2af00 74 31 2e 72 6f 77 69 64 20 3c 3d 20 30 20 4f 52  t1.rowid <= 0 OR
2af10 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
2af20 7d 20 7b 31 20 32 20 31 31 20 32 31 20 32 39 20  } {1 2 11 21 29 
2af30 33 32 20 33 33 20 33 37 20 33 38 20 34 34 20 34  32 33 37 38 44 4
2af40 37 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38  7 52 53 54 55 58
2af50 20 35 39 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65   59 63 64}.do_te
2af60 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2af70 36 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20 65 76  6.le.2 {.  db ev
2af80 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2af90 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
2afa0 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
2afb0 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
2afc0 20 3c 3d 20 30 20 4f 52 44 45 52 20 42 59 20 74   <= 0 ORDER BY t
2afd0 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
2afe0 36 34 20 36 33 20 35 39 20 35 38 20 35 35 20 35  64 63 59 58 55 5
2aff0 34 20 35 33 20 35 32 20 34 37 20 34 34 20 33 38  4 53 52 47 44 38
2b000 20 33 37 20 33 33 20 33 32 20 32 39 20 32 31 20   37 33 32 29 21 
2b010 31 31 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20  11 2 1}.do_test 
2b020 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 36 2e 6c  boundary3-2.26.l
2b030 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
2b040 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
2b050 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
2b060 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
2b070 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
2b080 20 74 32 2e 61 3d 35 39 0a 20 20 20 20 20 4f 52   t2.a=59.     OR
2b090 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
2b0a0 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
2b0b0 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
2b0c0 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
2b0d0 33 20 35 32 20 33 33 20 33 38 20 35 39 7d 0a 64  3 52 33 38 59}.d
2b0e0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2b0f0 2d 32 2e 32 36 2e 6c 65 2e 34 20 7b 0a 20 20 64  -2.26.le.4 {.  d
2b100 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2b110 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
2b120 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
2b130 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
2b140 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 39 0a    WHERE t2.a=59.
2b150 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
2b160 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
2b170 7d 20 7b 35 39 20 33 38 20 33 33 20 35 32 20 35  } {59 38 33 52 5
2b180 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
2b190 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
2b1a0 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
2b1b0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2b1c0 36 2e 6c 65 2e 35 20 7b 0a 20 20 64 62 20 65 76  6.le.5 {.  db ev
2b1d0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2b1e0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
2b1f0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
2b200 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
2b210 45 52 45 20 74 32 2e 61 3d 35 39 0a 20 20 20 20  ERE t2.a=59.    
2b220 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a   ORDER BY x.  }.
2b230 7d 20 7b 35 39 20 35 35 20 32 20 36 34 20 32 31  } {59 55 2 64 21
2b240 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
2b250 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
2b260 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65   52 33 38}.do_te
2b270 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2b280 36 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65  6.le.10 {.  db e
2b290 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2b2a0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2b2b0 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2b2c0 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d <= CAST(t2.r A
2b2d0 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
2b2e0 52 45 20 74 32 2e 61 3d 35 39 0a 20 20 20 20 20  RE t2.a=59.     
2b2f0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
2b300 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
2b310 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
2b320 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
2b330 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 7d   53 52 33 38 59}
2b340 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2b350 79 33 2d 32 2e 32 36 2e 6c 65 2e 31 31 20 7b 0a  y3-2.26.le.11 {.
2b360 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2b370 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2b380 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2b390 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28  1.rowid <= CAST(
2b3a0 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
2b3b0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 39     WHERE t2.a=59
2b3c0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
2b3d0 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
2b3e0 0a 7d 20 7b 35 39 20 33 38 20 33 33 20 35 32 20  .} {59 38 33 52 
2b3f0 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31  53 54 32 29 37 1
2b400 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20   11 47 63 58 44 
2b410 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74  21 64 2 55}.do_t
2b420 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
2b430 32 37 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c  27.1 {.  db eval
2b440 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
2b450 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32 20 57  .* FROM t1, t2 W
2b460 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d 2d 31  HERE t1.rowid=-1
2b470 20 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20   AND t2.a=t1.a. 
2b480 20 7d 0a 7d 20 7b 33 38 20 66 66 66 66 66 66 66   }.} {38 fffffff
2b490 66 66 66 66 66 66 66 66 66 7d 0a 64 6f 5f 74 65  fffffffff}.do_te
2b4a0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2b4b0 37 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  7.2 {.  db eval 
2b4c0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
2b4d0 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  * FROM t1 JOIN t
2b4e0 32 20 55 53 49 4e 47 28 61 29 20 57 48 45 52 45  2 USING(a) WHERE
2b4f0 20 78 3d 27 66 66 66 66 66 66 66 66 66 66 66 66   x='ffffffffffff
2b500 66 66 66 66 27 0a 20 20 7d 0a 7d 20 7b 2d 31 20  ffff'.  }.} {-1 
2b510 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  38}.do_test boun
2b520 64 61 72 79 33 2d 32 2e 32 37 2e 33 20 7b 0a 20  dary3-2.27.3 {. 
2b530 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2b540 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c 20  ELECT t1.rowid, 
2b550 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  x FROM t1 JOIN t
2b560 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f 77  2 ON t2.r=t1.row
2b570 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d 33 38  id WHERE t2.a=38
2b580 0a 20 20 7d 0a 7d 20 7b 2d 31 20 66 66 66 66 66  .  }.} {-1 fffff
2b590 66 66 66 66 66 66 66 66 66 66 66 7d 0a 64 6f 5f  fffffffffff}.do_
2b5a0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2b5b0 2e 32 37 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20  .27.gt.1 {.  db 
2b5c0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2b5d0 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t2.a FROM t1 J
2b5e0 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a  OIN t2 USING(a).
2b5f0 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
2b600 77 69 64 20 3e 20 2d 31 20 4f 52 44 45 52 20 42  wid > -1 ORDER B
2b610 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20  Y t2.a.  }.} {3 
2b620 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20 31  4 5 6 7 8 9 10 1
2b630 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31 37  2 13 14 15 16 17
2b640 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33 20   18 19 20 22 23 
2b650 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20 33  24 25 26 27 28 3
2b660 30 20 33 31 20 33 34 20 33 35 20 33 36 20 33 39  0 31 34 35 36 39
2b670 20 34 30 20 34 31 20 34 32 20 34 33 20 34 35 20   40 41 42 43 45 
2b680 34 36 20 34 38 20 34 39 20 35 30 20 35 31 20 35  46 48 49 50 51 5
2b690 36 20 35 37 20 35 39 20 36 30 20 36 31 20 36 32  6 57 59 60 61 62
2b6a0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2b6b0 72 79 33 2d 32 2e 32 37 2e 67 74 2e 32 20 7b 0a  ry3-2.27.gt.2 {.
2b6c0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2b6d0 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
2b6e0 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e   t2 NATURAL JOIN
2b6f0 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74   t1.     WHERE t
2b700 31 2e 72 6f 77 69 64 20 3e 20 2d 31 20 4f 52 44  1.rowid > -1 ORD
2b710 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
2b720 20 20 7d 0a 7d 20 7b 36 32 20 36 31 20 36 30 20    }.} {62 61 60 
2b730 35 39 20 35 37 20 35 36 20 35 31 20 35 30 20 34  59 57 56 51 50 4
2b740 39 20 34 38 20 34 36 20 34 35 20 34 33 20 34 32  9 48 46 45 43 42
2b750 20 34 31 20 34 30 20 33 39 20 33 36 20 33 35 20   41 40 39 36 35 
2b760 33 34 20 33 31 20 33 30 20 32 38 20 32 37 20 32  34 31 30 28 27 2
2b770 36 20 32 35 20 32 34 20 32 33 20 32 32 20 32 30  6 25 24 23 22 20
2b780 20 31 39 20 31 38 20 31 37 20 31 36 20 31 35 20   19 18 17 16 15 
2b790 31 34 20 31 33 20 31 32 20 31 30 20 39 20 38 20  14 13 12 10 9 8 
2b7a0 37 20 36 20 35 20 34 20 33 7d 0a 64 6f 5f 74 65  7 6 5 4 3}.do_te
2b7b0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2b7c0 37 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76  7.gt.3 {.  db ev
2b7d0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2b7e0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
2b7f0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
2b800 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
2b810 52 45 20 74 32 2e 61 3d 33 38 0a 20 20 20 20 20  RE t2.a=38.     
2b820 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
2b830 64 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  d.  }.} {59 60 4
2b840 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
2b850 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
2b860 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
2b870 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
2b880 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
2b890 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
2b8a0 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
2b8b0 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
2b8c0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2b8d0 2e 32 37 2e 67 74 2e 34 20 7b 0a 20 20 64 62 20  .27.gt.4 {.  db 
2b8e0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2b8f0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
2b900 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
2b910 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57  id > t2.r.     W
2b920 48 45 52 45 20 74 32 2e 61 3d 33 38 0a 20 20 20  HERE t2.a=38.   
2b930 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
2b940 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
2b950 33 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33  3 28 17 45 27 43
2b960 20 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20   13 26 10 34 25 
2b970 35 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36  56 7 19 57 35 46
2b980 20 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20   22 39 36 14 51 
2b990 32 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20  20 40 12 6 9 24 
2b9a0 31 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35  18 42 15 62 48 5
2b9b0 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30 20  0 23 16 8 61 30 
2b9c0 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30 20  49 4 31 5 41 60 
2b9d0 35 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  59}.do_test boun
2b9e0 64 61 72 79 33 2d 32 2e 32 37 2e 67 74 2e 35 20  dary3-2.27.gt.5 
2b9f0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2ba00 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
2ba10 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2ba20 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72   t1.rowid > t2.r
2ba30 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
2ba40 3d 33 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =38.     ORDER B
2ba50 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30  Y x.  }.} {59 60
2ba60 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
2ba70 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
2ba80 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
2ba90 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
2baa0 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
2bab0 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
2bac0 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
2bad0 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
2bae0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2baf0 2d 32 2e 32 37 2e 67 74 2e 31 30 20 7b 0a 20 20  -2.27.gt.10 {.  
2bb00 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2bb10 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
2bb20 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
2bb30 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e  rowid > CAST(t2.
2bb40 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
2bb50 57 48 45 52 45 20 74 32 2e 61 3d 33 38 0a 20 20  WHERE t2.a=38.  
2bb60 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
2bb70 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  owid.  }.} {59 6
2bb80 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
2bb90 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
2bba0 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
2bbb0 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
2bbc0 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
2bbd0 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
2bbe0 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
2bbf0 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
2bc00 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
2bc10 33 2d 32 2e 32 37 2e 67 74 2e 31 31 20 7b 0a 20  3-2.27.gt.11 {. 
2bc20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2bc30 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
2bc40 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
2bc50 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32  .rowid > CAST(t2
2bc60 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
2bc70 20 57 48 45 52 45 20 74 32 2e 61 3d 33 38 0a 20   WHERE t2.a=38. 
2bc80 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
2bc90 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
2bca0 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20   {3 28 17 45 27 
2bcb0 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32  43 13 26 10 34 2
2bcc0 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20  5 56 7 19 57 35 
2bcd0 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35  46 22 39 36 14 5
2bce0 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32  1 20 40 12 6 9 2
2bcf0 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38  4 18 42 15 62 48
2bd00 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33   50 23 16 8 61 3
2bd10 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36  0 49 4 31 5 41 6
2bd20 30 20 35 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  0 59}.do_test bo
2bd30 75 6e 64 61 72 79 33 2d 32 2e 32 37 2e 67 65 2e  undary3-2.27.ge.
2bd40 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
2bd50 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
2bd60 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
2bd70 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
2bd80 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
2bd90 2d 31 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  -1 ORDER BY t2.a
2bda0 0a 20 20 7d 0a 7d 20 7b 33 20 34 20 35 20 36 20  .  }.} {3 4 5 6 
2bdb0 37 20 38 20 39 20 31 30 20 31 32 20 31 33 20 31  7 8 9 10 12 13 1
2bdc0 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
2bdd0 20 32 30 20 32 32 20 32 33 20 32 34 20 32 35 20   20 22 23 24 25 
2bde0 32 36 20 32 37 20 32 38 20 33 30 20 33 31 20 33  26 27 28 30 31 3
2bdf0 34 20 33 35 20 33 36 20 33 38 20 33 39 20 34 30  4 35 36 38 39 40
2be00 20 34 31 20 34 32 20 34 33 20 34 35 20 34 36 20   41 42 43 45 46 
2be10 34 38 20 34 39 20 35 30 20 35 31 20 35 36 20 35  48 49 50 51 56 5
2be20 37 20 35 39 20 36 30 20 36 31 20 36 32 7d 0a 64  7 59 60 61 62}.d
2be30 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2be40 2d 32 2e 32 37 2e 67 65 2e 32 20 7b 0a 20 20 64  -2.27.ge.2 {.  d
2be50 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2be60 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32  ECT t2.a FROM t2
2be70 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31   NATURAL JOIN t1
2be80 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
2be90 6f 77 69 64 20 3e 3d 20 2d 31 20 4f 52 44 45 52  owid >= -1 ORDER
2bea0 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20   BY t1.a DESC.  
2beb0 7d 0a 7d 20 7b 36 32 20 36 31 20 36 30 20 35 39  }.} {62 61 60 59
2bec0 20 35 37 20 35 36 20 35 31 20 35 30 20 34 39 20   57 56 51 50 49 
2bed0 34 38 20 34 36 20 34 35 20 34 33 20 34 32 20 34  48 46 45 43 42 4
2bee0 31 20 34 30 20 33 39 20 33 38 20 33 36 20 33 35  1 40 39 38 36 35
2bef0 20 33 34 20 33 31 20 33 30 20 32 38 20 32 37 20   34 31 30 28 27 
2bf00 32 36 20 32 35 20 32 34 20 32 33 20 32 32 20 32  26 25 24 23 22 2
2bf10 30 20 31 39 20 31 38 20 31 37 20 31 36 20 31 35  0 19 18 17 16 15
2bf20 20 31 34 20 31 33 20 31 32 20 31 30 20 39 20 38   14 13 12 10 9 8
2bf30 20 37 20 36 20 35 20 34 20 33 7d 0a 64 6f 5f 74   7 6 5 4 3}.do_t
2bf40 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
2bf50 32 37 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65  27.ge.3 {.  db e
2bf60 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2bf70 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2bf80 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2bf90 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
2bfa0 48 45 52 45 20 74 32 2e 61 3d 33 38 0a 20 20 20  HERE t2.a=38.   
2bfb0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
2bfc0 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 38 20 35 39  wid.  }.} {38 59
2bfd0 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
2bfe0 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35   30 61 8 16 23 5
2bff0 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38  0 48 62 15 42 18
2c000 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30   24 9 6 12 40 20
2c010 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20   51 14 36 39 22 
2c020 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36  46 35 57 19 7 56
2c030 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20   25 34 10 26 13 
2c040 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33  43 27 45 17 28 3
2c050 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2c060 72 79 33 2d 32 2e 32 37 2e 67 65 2e 34 20 7b 0a  ry3-2.27.ge.4 {.
2c070 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2c080 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2c090 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2c0a0 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
2c0b0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
2c0c0 33 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  38.     ORDER BY
2c0d0 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
2c0e0 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
2c0f0 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20   27 43 13 26 10 
2c100 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37  34 25 56 7 19 57
2c110 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20   35 46 22 39 36 
2c120 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36  14 51 20 40 12 6
2c130 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36   9 24 18 42 15 6
2c140 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20  2 48 50 23 16 8 
2c150 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20  61 30 49 4 31 5 
2c160 34 31 20 36 30 20 35 39 20 33 38 7d 0a 64 6f 5f  41 60 59 38}.do_
2c170 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2c180 2e 32 37 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20  .27.ge.5 {.  db 
2c190 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2c1a0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
2c1b0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
2c1c0 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
2c1d0 57 48 45 52 45 20 74 32 2e 61 3d 33 38 0a 20 20  WHERE t2.a=38.  
2c1e0 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
2c1f0 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20  }.} {59 60 41 5 
2c200 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
2c210 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
2c220 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
2c230 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
2c240 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
2c250 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
2c260 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
2c270 31 37 20 32 38 20 33 20 33 38 7d 0a 64 6f 5f 74  17 28 3 38}.do_t
2c280 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
2c290 32 37 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62 20  27.ge.10 {.  db 
2c2a0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2c2b0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
2c2c0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
2c2d0 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20  id >= CAST(t2.r 
2c2e0 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
2c2f0 45 52 45 20 74 32 2e 61 3d 33 38 0a 20 20 20 20  ERE t2.a=38.    
2c300 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
2c310 69 64 0a 20 20 7d 0a 7d 20 7b 33 38 20 35 39 20  id.  }.} {38 59 
2c320 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
2c330 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
2c340 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
2c350 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
2c360 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
2c370 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
2c380 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
2c390 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
2c3a0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2c3b0 79 33 2d 32 2e 32 37 2e 67 65 2e 31 31 20 7b 0a  y3-2.27.ge.11 {.
2c3c0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2c3d0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2c3e0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2c3f0 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
2c400 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
2c410 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 38     WHERE t2.a=38
2c420 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
2c430 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
2c440 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32  .} {3 28 17 45 2
2c450 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34  7 43 13 26 10 34
2c460 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33   25 56 7 19 57 3
2c470 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34  5 46 22 39 36 14
2c480 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39   51 20 40 12 6 9
2c490 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20   24 18 42 15 62 
2c4a0 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31  48 50 23 16 8 61
2c4b0 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31   30 49 4 31 5 41
2c4c0 20 36 30 20 35 39 20 33 38 7d 0a 64 6f 5f 74 65   60 59 38}.do_te
2c4d0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2c4e0 37 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20 65 76  7.lt.1 {.  db ev
2c4f0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2c500 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
2c510 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
2c520 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
2c530 64 20 3c 20 2d 31 20 4f 52 44 45 52 20 42 59 20  d < -1 ORDER BY 
2c540 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20  t2.a.  }.} {1 2 
2c550 31 31 20 32 31 20 32 39 20 33 32 20 33 33 20 33  11 21 29 32 33 3
2c560 37 20 34 34 20 34 37 20 35 32 20 35 33 20 35 34  7 44 47 52 53 54
2c570 20 35 35 20 35 38 20 36 33 20 36 34 7d 0a 64 6f   55 58 63 64}.do
2c580 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2c590 32 2e 32 37 2e 6c 74 2e 32 20 7b 0a 20 20 64 62  2.27.lt.2 {.  db
2c5a0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
2c5b0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
2c5c0 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
2c5d0 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
2c5e0 77 69 64 20 3c 20 2d 31 20 4f 52 44 45 52 20 42  wid < -1 ORDER B
2c5f0 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
2c600 7d 20 7b 36 34 20 36 33 20 35 38 20 35 35 20 35  } {64 63 58 55 5
2c610 34 20 35 33 20 35 32 20 34 37 20 34 34 20 33 37  4 53 52 47 44 37
2c620 20 33 33 20 33 32 20 32 39 20 32 31 20 31 31 20   33 32 29 21 11 
2c630 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  2 1}.do_test bou
2c640 6e 64 61 72 79 33 2d 32 2e 32 37 2e 6c 74 2e 33  ndary3-2.27.lt.3
2c650 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2c660 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
2c670 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
2c680 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
2c690 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
2c6a0 61 3d 33 38 0a 20 20 20 20 20 4f 52 44 45 52 20  a=38.     ORDER 
2c6b0 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
2c6c0 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34  } {55 2 64 21 44
2c6d0 20 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33   58 63 47 11 1 3
2c6e0 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
2c6f0 20 33 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   33}.do_test bou
2c700 6e 64 61 72 79 33 2d 32 2e 32 37 2e 6c 74 2e 34  ndary3-2.27.lt.4
2c710 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2c720 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
2c730 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
2c740 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e  N t1.rowid < t2.
2c750 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
2c760 61 3d 33 38 0a 20 20 20 20 20 4f 52 44 45 52 20  a=38.     ORDER 
2c770 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43  BY t1.rowid DESC
2c780 0a 20 20 7d 0a 7d 20 7b 33 33 20 35 32 20 35 33  .  }.} {33 52 53
2c790 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31   54 32 29 37 1 1
2c7a0 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31  1 47 63 58 44 21
2c7b0 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73   64 2 55}.do_tes
2c7c0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 37  t boundary3-2.27
2c7d0 2e 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61  .lt.5 {.  db eva
2c7e0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2c7f0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2c800 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2c810 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  < t2.r.     WHER
2c820 45 20 74 32 2e 61 3d 33 38 0a 20 20 20 20 20 4f  E t2.a=38.     O
2c830 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20  RDER BY x.  }.} 
2c840 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35  {55 2 64 21 44 5
2c850 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20  8 63 47 11 1 37 
2c860 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33  29 32 54 53 52 3
2c870 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
2c880 61 72 79 33 2d 32 2e 32 37 2e 6c 74 2e 31 30 20  ary3-2.27.lt.10 
2c890 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2c8a0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
2c8b0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2c8c0 20 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54   t1.rowid < CAST
2c8d0 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
2c8e0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
2c8f0 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  8.     ORDER BY 
2c900 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
2c910 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
2c920 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
2c930 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
2c940 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2c950 72 79 33 2d 32 2e 32 37 2e 6c 74 2e 31 31 20 7b  ry3-2.27.lt.11 {
2c960 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
2c970 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
2c980 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
2c990 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28  t1.rowid < CAST(
2c9a0 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
2c9b0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 38     WHERE t2.a=38
2c9c0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
2c9d0 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d  1.rowid DESC.  }
2c9e0 0a 7d 20 7b 33 33 20 35 32 20 35 33 20 35 34 20  .} {33 52 53 54 
2c9f0 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
2ca00 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
2ca10 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
2ca20 75 6e 64 61 72 79 33 2d 32 2e 32 37 2e 6c 65 2e  undary3-2.27.le.
2ca30 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
2ca40 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
2ca50 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
2ca60 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
2ca70 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20  ERE t1.rowid <= 
2ca80 2d 31 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  -1 ORDER BY t2.a
2ca90 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 31 31 20 32  .  }.} {1 2 11 2
2caa0 31 20 32 39 20 33 32 20 33 33 20 33 37 20 33 38  1 29 32 33 37 38
2cab0 20 34 34 20 34 37 20 35 32 20 35 33 20 35 34 20   44 47 52 53 54 
2cac0 35 35 20 35 38 20 36 33 20 36 34 7d 0a 64 6f 5f  55 58 63 64}.do_
2cad0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2cae0 2e 32 37 2e 6c 65 2e 32 20 7b 0a 20 20 64 62 20  .27.le.2 {.  db 
2caf0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2cb00 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
2cb10 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
2cb20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
2cb30 69 64 20 3c 3d 20 2d 31 20 4f 52 44 45 52 20 42  id <= -1 ORDER B
2cb40 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
2cb50 7d 20 7b 36 34 20 36 33 20 35 38 20 35 35 20 35  } {64 63 58 55 5
2cb60 34 20 35 33 20 35 32 20 34 37 20 34 34 20 33 38  4 53 52 47 44 38
2cb70 20 33 37 20 33 33 20 33 32 20 32 39 20 32 31 20   37 33 32 29 21 
2cb80 31 31 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20  11 2 1}.do_test 
2cb90 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 37 2e 6c  boundary3-2.27.l
2cba0 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
2cbb0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
2cbc0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
2cbd0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
2cbe0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
2cbf0 20 74 32 2e 61 3d 33 38 0a 20 20 20 20 20 4f 52   t2.a=38.     OR
2cc00 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
2cc10 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
2cc20 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
2cc30 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
2cc40 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74  3 52 33 38}.do_t
2cc50 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
2cc60 32 37 2e 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65  27.le.4 {.  db e
2cc70 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2cc80 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2cc90 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2cca0 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d <= t2.r.     W
2ccb0 48 45 52 45 20 74 32 2e 61 3d 33 38 0a 20 20 20  HERE t2.a=38.   
2ccc0 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
2ccd0 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  wid DESC.  }.} {
2cce0 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
2ccf0 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
2cd00 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
2cd10 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
2cd20 6e 64 61 72 79 33 2d 32 2e 32 37 2e 6c 65 2e 35  ndary3-2.27.le.5
2cd30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2cd40 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
2cd50 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
2cd60 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
2cd70 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
2cd80 2e 61 3d 33 38 0a 20 20 20 20 20 4f 52 44 45 52  .a=38.     ORDER
2cd90 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 35 20   BY x.  }.} {55 
2cda0 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
2cdb0 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
2cdc0 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
2cdd0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2cde0 72 79 33 2d 32 2e 32 37 2e 6c 65 2e 31 30 20 7b  ry3-2.27.le.10 {
2cdf0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
2ce00 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
2ce10 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
2ce20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54  t1.rowid <= CAST
2ce30 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
2ce40 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
2ce50 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  8.     ORDER BY 
2ce60 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
2ce70 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
2ce80 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
2ce90 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
2cea0 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   38}.do_test bou
2ceb0 6e 64 61 72 79 33 2d 32 2e 32 37 2e 6c 65 2e 31  ndary3-2.27.le.1
2cec0 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
2ced0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
2cee0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
2cef0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43  ON t1.rowid <= C
2cf00 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
2cf10 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
2cf20 61 3d 33 38 0a 20 20 20 20 20 4f 52 44 45 52 20  a=38.     ORDER 
2cf30 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43  BY t1.rowid DESC
2cf40 0a 20 20 7d 0a 7d 20 7b 33 38 20 33 33 20 35 32  .  }.} {38 33 52
2cf50 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
2cf60 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
2cf70 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
2cf80 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
2cf90 2e 32 38 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .28.1 {.  db eva
2cfa0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2cfb0 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32 20  1.* FROM t1, t2 
2cfc0 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d 2d  WHERE t1.rowid=-
2cfd0 32 20 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a  2 AND t2.a=t1.a.
2cfe0 20 20 7d 0a 7d 20 7b 33 33 20 66 66 66 66 66 66    }.} {33 ffffff
2cff0 66 66 66 66 66 66 66 66 66 65 7d 0a 64 6f 5f 74  fffffffffe}.do_t
2d000 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
2d010 32 38 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c  28.2 {.  db eval
2d020 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
2d030 2e 2a 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .* FROM t1 JOIN 
2d040 74 32 20 55 53 49 4e 47 28 61 29 20 57 48 45 52  t2 USING(a) WHER
2d050 45 20 78 3d 27 66 66 66 66 66 66 66 66 66 66 66  E x='fffffffffff
2d060 66 66 66 66 65 27 0a 20 20 7d 0a 7d 20 7b 2d 32  ffffe'.  }.} {-2
2d070 20 33 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   33}.do_test bou
2d080 6e 64 61 72 79 33 2d 32 2e 32 38 2e 33 20 7b 0a  ndary3-2.28.3 {.
2d090 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2d0a0 53 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c  SELECT t1.rowid,
2d0b0 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20   x FROM t1 JOIN 
2d0c0 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f  t2 ON t2.r=t1.ro
2d0d0 77 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d 33  wid WHERE t2.a=3
2d0e0 33 0a 20 20 7d 0a 7d 20 7b 2d 32 20 66 66 66 66  3.  }.} {-2 ffff
2d0f0 66 66 66 66 66 66 66 66 66 66 66 65 7d 0a 64 6f  fffffffffffe}.do
2d100 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2d110 32 2e 32 38 2e 67 74 2e 31 20 7b 0a 20 20 64 62  2.28.gt.1 {.  db
2d120 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
2d130 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
2d140 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
2d150 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
2d160 6f 77 69 64 20 3e 20 2d 32 20 4f 52 44 45 52 20  owid > -2 ORDER 
2d170 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33  BY t2.a.  }.} {3
2d180 20 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20   4 5 6 7 8 9 10 
2d190 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31  12 13 14 15 16 1
2d1a0 37 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33  7 18 19 20 22 23
2d1b0 20 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20   24 25 26 27 28 
2d1c0 33 30 20 33 31 20 33 34 20 33 35 20 33 36 20 33  30 31 34 35 36 3
2d1d0 38 20 33 39 20 34 30 20 34 31 20 34 32 20 34 33  8 39 40 41 42 43
2d1e0 20 34 35 20 34 36 20 34 38 20 34 39 20 35 30 20   45 46 48 49 50 
2d1f0 35 31 20 35 36 20 35 37 20 35 39 20 36 30 20 36  51 56 57 59 60 6
2d200 31 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  1 62}.do_test bo
2d210 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 67 74 2e  undary3-2.28.gt.
2d220 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
2d230 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
2d240 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20  FROM t2 NATURAL 
2d250 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45  JOIN t1.     WHE
2d260 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 2d 32  RE t1.rowid > -2
2d270 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
2d280 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32 20 36 31  ESC.  }.} {62 61
2d290 20 36 30 20 35 39 20 35 37 20 35 36 20 35 31 20   60 59 57 56 51 
2d2a0 35 30 20 34 39 20 34 38 20 34 36 20 34 35 20 34  50 49 48 46 45 4
2d2b0 33 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38  3 42 41 40 39 38
2d2c0 20 33 36 20 33 35 20 33 34 20 33 31 20 33 30 20   36 35 34 31 30 
2d2d0 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20 32  28 27 26 25 24 2
2d2e0 33 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37  3 22 20 19 18 17
2d2f0 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20   16 15 14 13 12 
2d300 31 30 20 39 20 38 20 37 20 36 20 35 20 34 20 33  10 9 8 7 6 5 4 3
2d310 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2d320 72 79 33 2d 32 2e 32 38 2e 67 74 2e 33 20 7b 0a  ry3-2.28.gt.3 {.
2d330 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2d340 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2d350 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2d360 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20  1.rowid > t2.r. 
2d370 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
2d380 33 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  3.     ORDER BY 
2d390 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
2d3a0 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
2d3b0 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
2d3c0 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
2d3d0 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
2d3e0 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
2d3f0 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
2d400 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
2d410 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
2d420 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
2d430 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 67 74  oundary3-2.28.gt
2d440 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
2d450 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
2d460 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
2d470 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74   ON t1.rowid > t
2d480 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
2d490 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52 44 45  2.a=33.     ORDE
2d4a0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
2d4b0 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31  SC.  }.} {3 28 1
2d4c0 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36  7 45 27 43 13 26
2d4d0 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31   10 34 25 56 7 1
2d4e0 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39  9 57 35 46 22 39
2d4f0 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20   36 14 51 20 40 
2d500 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20  12 6 9 24 18 42 
2d510 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31  15 62 48 50 23 1
2d520 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33  6 8 61 30 49 4 3
2d530 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 7d  1 5 41 60 59 38}
2d540 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2d550 79 33 2d 32 2e 32 38 2e 67 74 2e 35 20 7b 0a 20  y3-2.28.gt.5 {. 
2d560 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2d570 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
2d580 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
2d590 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
2d5a0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 33     WHERE t2.a=33
2d5b0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
2d5c0 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31  .  }.} {59 60 41
2d5d0 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31   5 31 4 49 30 61
2d5e0 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36   8 16 23 50 48 6
2d5f0 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
2d600 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
2d610 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
2d620 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
2d630 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
2d640 34 35 20 31 37 20 32 38 20 33 20 33 38 7d 0a 64  45 17 28 3 38}.d
2d650 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2d660 2d 32 2e 32 38 2e 67 74 2e 31 30 20 7b 0a 20 20  -2.28.gt.10 {.  
2d670 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2d680 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
2d690 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
2d6a0 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e  rowid > CAST(t2.
2d6b0 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
2d6c0 57 48 45 52 45 20 74 32 2e 61 3d 33 33 0a 20 20  WHERE t2.a=33.  
2d6d0 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
2d6e0 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 38 20 35  owid.  }.} {38 5
2d6f0 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
2d700 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
2d710 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
2d720 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
2d730 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
2d740 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
2d750 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
2d760 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
2d770 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
2d780 61 72 79 33 2d 32 2e 32 38 2e 67 74 2e 31 31 20  ary3-2.28.gt.11 
2d790 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2d7a0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
2d7b0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2d7c0 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54   t1.rowid > CAST
2d7d0 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
2d7e0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
2d7f0 33 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  3.     ORDER BY 
2d800 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
2d810 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
2d820 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
2d830 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
2d840 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
2d850 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
2d860 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
2d870 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
2d880 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
2d890 31 20 36 30 20 35 39 20 33 38 7d 0a 64 6f 5f 74  1 60 59 38}.do_t
2d8a0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
2d8b0 32 38 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65  28.ge.1 {.  db e
2d8c0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2d8d0 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.a FROM t1 JO
2d8e0 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20  IN t2 USING(a). 
2d8f0 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
2d900 69 64 20 3e 3d 20 2d 32 20 4f 52 44 45 52 20 42  id >= -2 ORDER B
2d910 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20  Y t2.a.  }.} {3 
2d920 34 20 35 20 36 20 37 20 38 20 39 20 31 30 20 31  4 5 6 7 8 9 10 1
2d930 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31 37  2 13 14 15 16 17
2d940 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33 20   18 19 20 22 23 
2d950 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20 33  24 25 26 27 28 3
2d960 30 20 33 31 20 33 33 20 33 34 20 33 35 20 33 36  0 31 33 34 35 36
2d970 20 33 38 20 33 39 20 34 30 20 34 31 20 34 32 20   38 39 40 41 42 
2d980 34 33 20 34 35 20 34 36 20 34 38 20 34 39 20 35  43 45 46 48 49 5
2d990 30 20 35 31 20 35 36 20 35 37 20 35 39 20 36 30  0 51 56 57 59 60
2d9a0 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20   61 62}.do_test 
2d9b0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 67  boundary3-2.28.g
2d9c0 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.2 {.  db eval 
2d9d0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
2d9e0 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
2d9f0 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
2da00 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d  HERE t1.rowid >=
2da10 20 2d 32 20 4f 52 44 45 52 20 42 59 20 74 31 2e   -2 ORDER BY t1.
2da20 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32  a DESC.  }.} {62
2da30 20 36 31 20 36 30 20 35 39 20 35 37 20 35 36 20   61 60 59 57 56 
2da40 35 31 20 35 30 20 34 39 20 34 38 20 34 36 20 34  51 50 49 48 46 4
2da50 35 20 34 33 20 34 32 20 34 31 20 34 30 20 33 39  5 43 42 41 40 39
2da60 20 33 38 20 33 36 20 33 35 20 33 34 20 33 33 20   38 36 35 34 33 
2da70 33 31 20 33 30 20 32 38 20 32 37 20 32 36 20 32  31 30 28 27 26 2
2da80 35 20 32 34 20 32 33 20 32 32 20 32 30 20 31 39  5 24 23 22 20 19
2da90 20 31 38 20 31 37 20 31 36 20 31 35 20 31 34 20   18 17 16 15 14 
2daa0 31 33 20 31 32 20 31 30 20 39 20 38 20 37 20 36  13 12 10 9 8 7 6
2dab0 20 35 20 34 20 33 7d 0a 64 6f 5f 74 65 73 74 20   5 4 3}.do_test 
2dac0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 67  boundary3-2.28.g
2dad0 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
2dae0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
2daf0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
2db00 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
2db10 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
2db20 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52   t2.a=33.     OR
2db30 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
2db40 20 20 7d 0a 7d 20 7b 33 33 20 33 38 20 35 39 20    }.} {33 38 59 
2db50 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
2db60 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
2db70 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
2db80 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
2db90 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
2dba0 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
2dbb0 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
2dbc0 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
2dbd0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2dbe0 79 33 2d 32 2e 32 38 2e 67 65 2e 34 20 7b 0a 20  y3-2.28.ge.4 {. 
2dbf0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2dc00 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
2dc10 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
2dc20 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20  .rowid >= t2.r. 
2dc30 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
2dc40 33 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  3.     ORDER BY 
2dc50 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
2dc60 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
2dc70 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
2dc80 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
2dc90 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
2dca0 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
2dcb0 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
2dcc0 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
2dcd0 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
2dce0 31 20 36 30 20 35 39 20 33 38 20 33 33 7d 0a 64  1 60 59 38 33}.d
2dcf0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2dd00 2d 32 2e 32 38 2e 67 65 2e 35 20 7b 0a 20 20 64  -2.28.ge.5 {.  d
2dd10 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2dd20 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
2dd30 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
2dd40 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20  owid >= t2.r.   
2dd50 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 33 0a    WHERE t2.a=33.
2dd60 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
2dd70 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20    }.} {59 60 41 
2dd80 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
2dd90 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
2dda0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
2ddb0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
2ddc0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
2ddd0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
2dde0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
2ddf0 35 20 31 37 20 32 38 20 33 20 33 33 20 33 38 7d  5 17 28 3 33 38}
2de00 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2de10 79 33 2d 32 2e 32 38 2e 67 65 2e 31 30 20 7b 0a  y3-2.28.ge.10 {.
2de20 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2de30 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2de40 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2de50 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
2de60 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
2de70 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 33     WHERE t2.a=33
2de80 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
2de90 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33  1.rowid.  }.} {3
2dea0 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20  3 38 59 60 41 5 
2deb0 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20  31 4 49 30 61 8 
2dec0 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
2ded0 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
2dee0 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
2def0 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
2df00 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
2df10 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
2df20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
2df30 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e   boundary3-2.28.
2df40 67 65 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61  ge.11 {.  db eva
2df50 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2df60 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2df70 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2df80 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  >= CAST(t2.r AS 
2df90 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
2dfa0 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52   t2.a=33.     OR
2dfb0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
2dfc0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38  DESC.  }.} {3 28
2dfd0 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20   17 45 27 43 13 
2dfe0 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37  26 10 34 25 56 7
2dff0 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20   19 57 35 46 22 
2e000 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34  39 36 14 51 20 4
2e010 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
2e020 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
2e030 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
2e040 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
2e050 38 20 33 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  8 33}.do_test bo
2e060 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 6c 74 2e  undary3-2.28.lt.
2e070 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
2e080 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
2e090 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
2e0a0 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
2e0b0 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 2d  ERE t1.rowid < -
2e0c0 32 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  2 ORDER BY t2.a.
2e0d0 20 20 7d 0a 7d 20 7b 31 20 32 20 31 31 20 32 31    }.} {1 2 11 21
2e0e0 20 32 39 20 33 32 20 33 37 20 34 34 20 34 37 20   29 32 37 44 47 
2e0f0 35 32 20 35 33 20 35 34 20 35 35 20 35 38 20 36  52 53 54 55 58 6
2e100 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 64}.do_test bo
2e110 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 6c 74 2e  undary3-2.28.lt.
2e120 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
2e130 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
2e140 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20  FROM t2 NATURAL 
2e150 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45  JOIN t1.     WHE
2e160 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 2d 32  RE t1.rowid < -2
2e170 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
2e180 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33  ESC.  }.} {64 63
2e190 20 35 38 20 35 35 20 35 34 20 35 33 20 35 32 20   58 55 54 53 52 
2e1a0 34 37 20 34 34 20 33 37 20 33 32 20 32 39 20 32  47 44 37 32 29 2
2e1b0 31 20 31 31 20 32 20 31 7d 0a 64 6f 5f 74 65 73  1 11 2 1}.do_tes
2e1c0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38  t boundary3-2.28
2e1d0 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .lt.3 {.  db eva
2e1e0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2e1f0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2e200 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2e210 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  < t2.r.     WHER
2e220 45 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f  E t2.a=33.     O
2e230 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
2e240 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
2e250 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
2e260 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
2e270 35 33 20 35 32 7d 0a 64 6f 5f 74 65 73 74 20 62  53 52}.do_test b
2e280 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 6c 74  oundary3-2.28.lt
2e290 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
2e2a0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
2e2b0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
2e2c0 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74   ON t1.rowid < t
2e2d0 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
2e2e0 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52 44 45  2.a=33.     ORDE
2e2f0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
2e300 53 43 0a 20 20 7d 0a 7d 20 7b 35 32 20 35 33 20  SC.  }.} {52 53 
2e310 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
2e320 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
2e330 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
2e340 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e   boundary3-2.28.
2e350 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.5 {.  db eval
2e360 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
2e370 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
2e380 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
2e390 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
2e3a0 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52   t2.a=33.     OR
2e3b0 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
2e3c0 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
2e3d0 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
2e3e0 39 20 33 32 20 35 34 20 35 33 20 35 32 7d 0a 64  9 32 54 53 52}.d
2e3f0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2e400 2d 32 2e 32 38 2e 6c 74 2e 31 30 20 7b 0a 20 20  -2.28.lt.10 {.  
2e410 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2e420 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
2e430 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
2e440 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e  rowid < CAST(t2.
2e450 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
2e460 57 48 45 52 45 20 74 32 2e 61 3d 33 33 0a 20 20  WHERE t2.a=33.  
2e470 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
2e480 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32  owid.  }.} {55 2
2e490 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
2e4a0 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
2e4b0 20 35 34 20 35 33 20 35 32 7d 0a 64 6f 5f 74 65   54 53 52}.do_te
2e4c0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2e4d0 38 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62 20 65  8.lt.11 {.  db e
2e4e0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2e4f0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2e500 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2e510 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53  d < CAST(t2.r AS
2e520 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
2e530 45 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f  E t2.a=33.     O
2e540 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
2e550 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 32 20   DESC.  }.} {52 
2e560 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31  53 54 32 29 37 1
2e570 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20   11 47 63 58 44 
2e580 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74  21 64 2 55}.do_t
2e590 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
2e5a0 32 38 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65  28.le.1 {.  db e
2e5b0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2e5c0 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.a FROM t1 JO
2e5d0 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20  IN t2 USING(a). 
2e5e0 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
2e5f0 69 64 20 3c 3d 20 2d 32 20 4f 52 44 45 52 20 42  id <= -2 ORDER B
2e600 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20  Y t2.a.  }.} {1 
2e610 32 20 31 31 20 32 31 20 32 39 20 33 32 20 33 33  2 11 21 29 32 33
2e620 20 33 37 20 34 34 20 34 37 20 35 32 20 35 33 20   37 44 47 52 53 
2e630 35 34 20 35 35 20 35 38 20 36 33 20 36 34 7d 0a  54 55 58 63 64}.
2e640 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
2e650 33 2d 32 2e 32 38 2e 6c 65 2e 32 20 7b 0a 20 20  3-2.28.le.2 {.  
2e660 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2e670 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
2e680 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74  2 NATURAL JOIN t
2e690 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  1.     WHERE t1.
2e6a0 72 6f 77 69 64 20 3c 3d 20 2d 32 20 4f 52 44 45  rowid <= -2 ORDE
2e6b0 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
2e6c0 20 7d 0a 7d 20 7b 36 34 20 36 33 20 35 38 20 35   }.} {64 63 58 5
2e6d0 35 20 35 34 20 35 33 20 35 32 20 34 37 20 34 34  5 54 53 52 47 44
2e6e0 20 33 37 20 33 33 20 33 32 20 32 39 20 32 31 20   37 33 32 29 21 
2e6f0 31 31 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20  11 2 1}.do_test 
2e700 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e 6c  boundary3-2.28.l
2e710 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.3 {.  db eval 
2e720 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
2e730 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
2e740 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
2e750 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
2e760 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52   t2.a=33.     OR
2e770 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
2e780 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
2e790 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
2e7a0 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
2e7b0 33 20 35 32 20 33 33 7d 0a 64 6f 5f 74 65 73 74  3 52 33}.do_test
2e7c0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e   boundary3-2.28.
2e7d0 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  le.4 {.  db eval
2e7e0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
2e7f0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
2e800 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
2e810 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  = t2.r.     WHER
2e820 45 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f  E t2.a=33.     O
2e830 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
2e840 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 33 20   DESC.  }.} {33 
2e850 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33  52 53 54 32 29 3
2e860 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20  7 1 11 47 63 58 
2e870 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64  44 21 64 2 55}.d
2e880 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2e890 2d 32 2e 32 38 2e 6c 65 2e 35 20 7b 0a 20 20 64  -2.28.le.5 {.  d
2e8a0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2e8b0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
2e8c0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
2e8d0 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
2e8e0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 33 0a    WHERE t2.a=33.
2e8f0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a       ORDER BY x.
2e900 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
2e910 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
2e920 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
2e930 33 20 35 32 20 33 33 7d 0a 64 6f 5f 74 65 73 74  3 52 33}.do_test
2e940 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e   boundary3-2.28.
2e950 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  le.10 {.  db eva
2e960 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2e970 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2e980 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2e990 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  <= CAST(t2.r AS 
2e9a0 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
2e9b0 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52   t2.a=33.     OR
2e9c0 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
2e9d0 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32    }.} {55 2 64 2
2e9e0 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
2e9f0 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
2ea00 33 20 35 32 20 33 33 7d 0a 64 6f 5f 74 65 73 74  3 52 33}.do_test
2ea10 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 38 2e   boundary3-2.28.
2ea20 6c 65 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61  le.11 {.  db eva
2ea30 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
2ea40 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
2ea50 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
2ea60 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  <= CAST(t2.r AS 
2ea70 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
2ea80 20 74 32 2e 61 3d 33 33 0a 20 20 20 20 20 4f 52   t2.a=33.     OR
2ea90 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20  DER BY t1.rowid 
2eaa0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 33 20 35  DESC.  }.} {33 5
2eab0 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37  2 53 54 32 29 37
2eac0 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34   1 11 47 63 58 4
2ead0 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f  4 21 64 2 55}.do
2eae0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2eaf0 32 2e 32 39 2e 31 20 7b 0a 20 20 64 62 20 65 76  2.29.1 {.  db ev
2eb00 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2eb10 74 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32  t1.* FROM t1, t2
2eb20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d   WHERE t1.rowid=
2eb30 32 30 39 37 31 35 32 20 41 4e 44 20 74 32 2e 61  2097152 AND t2.a
2eb40 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 34 32 20  =t1.a.  }.} {42 
2eb50 30 30 30 30 30 30 30 30 30 30 32 30 30 30 30 30  0000000000200000
2eb60 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2eb70 72 79 33 2d 32 2e 32 39 2e 32 20 7b 0a 20 20 64  ry3-2.29.2 {.  d
2eb80 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2eb90 45 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31  ECT t2.* FROM t1
2eba0 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
2ebb0 29 20 57 48 45 52 45 20 78 3d 27 30 30 30 30 30  ) WHERE x='00000
2ebc0 30 30 30 30 30 32 30 30 30 30 30 27 0a 20 20 7d  00000200000'.  }
2ebd0 0a 7d 20 7b 32 30 39 37 31 35 32 20 34 32 7d 0a  .} {2097152 42}.
2ebe0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
2ebf0 33 2d 32 2e 32 39 2e 33 20 7b 0a 20 20 64 62 20  3-2.29.3 {.  db 
2ec00 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
2ec10 54 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52  T t1.rowid, x FR
2ec20 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2ec30 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57   t2.r=t1.rowid W
2ec40 48 45 52 45 20 74 32 2e 61 3d 34 32 0a 20 20 7d  HERE t2.a=42.  }
2ec50 0a 7d 20 7b 32 30 39 37 31 35 32 20 30 30 30 30  .} {2097152 0000
2ec60 30 30 30 30 30 30 32 30 30 30 30 30 7d 0a 64 6f  000000200000}.do
2ec70 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
2ec80 32 2e 32 39 2e 67 74 2e 31 20 7b 0a 20 20 64 62  2.29.gt.1 {.  db
2ec90 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
2eca0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
2ecb0 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
2ecc0 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
2ecd0 6f 77 69 64 20 3e 20 32 30 39 37 31 35 32 20 4f  owid > 2097152 O
2ece0 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
2ecf0 0a 7d 20 7b 33 20 36 20 37 20 39 20 31 30 20 31  .} {3 6 7 9 10 1
2ed00 32 20 31 33 20 31 34 20 31 37 20 31 38 20 31 39  2 13 14 17 18 19
2ed10 20 32 30 20 32 32 20 32 34 20 32 35 20 32 36 20   20 22 24 25 26 
2ed20 32 37 20 32 38 20 33 34 20 33 35 20 33 36 20 33  27 28 34 35 36 3
2ed30 39 20 34 30 20 34 33 20 34 35 20 34 36 20 35 31  9 40 43 45 46 51
2ed40 20 35 36 20 35 37 7d 0a 64 6f 5f 74 65 73 74 20   56 57}.do_test 
2ed50 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 39 2e 67  boundary3-2.29.g
2ed60 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.2 {.  db eval 
2ed70 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
2ed80 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
2ed90 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
2eda0 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20  HERE t1.rowid > 
2edb0 32 30 39 37 31 35 32 20 4f 52 44 45 52 20 42 59  2097152 ORDER BY
2edc0 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
2edd0 20 7b 35 37 20 35 36 20 35 31 20 34 36 20 34 35   {57 56 51 46 45
2ede0 20 34 33 20 34 30 20 33 39 20 33 36 20 33 35 20   43 40 39 36 35 
2edf0 33 34 20 32 38 20 32 37 20 32 36 20 32 35 20 32  34 28 27 26 25 2
2ee00 34 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37  4 22 20 19 18 17
2ee10 20 31 34 20 31 33 20 31 32 20 31 30 20 39 20 37   14 13 12 10 9 7
2ee20 20 36 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   6 3}.do_test bo
2ee30 75 6e 64 61 72 79 33 2d 32 2e 32 39 2e 67 74 2e  undary3-2.29.gt.
2ee40 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
2ee50 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
2ee60 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
2ee70 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32  ON t1.rowid > t2
2ee80 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
2ee90 2e 61 3d 34 32 0a 20 20 20 20 20 4f 52 44 45 52  .a=42.     ORDER
2eea0 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
2eeb0 0a 7d 20 7b 31 38 20 32 34 20 39 20 36 20 31 32  .} {18 24 9 6 12
2eec0 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
2eed0 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
2eee0 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
2eef0 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
2ef00 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20  7 28 3}.do_test 
2ef10 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 39 2e 67  boundary3-2.29.g
2ef20 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.4 {.  db eval 
2ef30 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
2ef40 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
2ef50 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
2ef60 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
2ef70 74 32 2e 61 3d 34 32 0a 20 20 20 20 20 4f 52 44  t2.a=42.     ORD
2ef80 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
2ef90 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
2efa0 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
2efb0 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
2efc0 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
2efd0 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
2efe0 20 31 32 20 36 20 39 20 32 34 20 31 38 7d 0a 64   12 6 9 24 18}.d
2eff0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2f000 2d 32 2e 32 39 2e 67 74 2e 35 20 7b 0a 20 20 64  -2.29.gt.5 {.  d
2f010 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2f020 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
2f030 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
2f040 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20  owid > t2.r.    
2f050 20 57 48 45 52 45 20 74 32 2e 61 3d 34 32 0a 20   WHERE t2.a=42. 
2f060 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
2f070 20 7d 0a 7d 20 7b 31 38 20 32 34 20 39 20 36 20   }.} {18 24 9 6 
2f080 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33  12 40 20 51 14 3
2f090 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
2f0a0 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
2f0b0 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
2f0c0 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
2f0d0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 39  t boundary3-2.29
2f0e0 2e 67 74 2e 31 30 20 7b 0a 20 20 64 62 20 65 76  .gt.10 {.  db ev
2f0f0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
2f100 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
2f110 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
2f120 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53 20   > CAST(t2.r AS 
2f130 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
2f140 20 74 32 2e 61 3d 34 32 0a 20 20 20 20 20 4f 52   t2.a=42.     OR
2f150 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
2f160 20 20 7d 0a 7d 20 7b 31 38 20 32 34 20 39 20 36    }.} {18 24 9 6
2f170 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
2f180 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
2f190 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
2f1a0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
2f1b0 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
2f1c0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
2f1d0 39 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62 20 65  9.gt.11 {.  db e
2f1e0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
2f1f0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
2f200 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
2f210 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53  d > CAST(t2.r AS
2f220 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
2f230 45 20 74 32 2e 61 3d 34 32 0a 20 20 20 20 20 4f  E t2.a=42.     O
2f240 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
2f250 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32   DESC.  }.} {3 2
2f260 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33  8 17 45 27 43 13
2f270 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20   26 10 34 25 56 
2f280 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32  7 19 57 35 46 22
2f290 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20   39 36 14 51 20 
2f2a0 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38 7d  40 12 6 9 24 18}
2f2b0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2f2c0 79 33 2d 32 2e 32 39 2e 67 65 2e 31 20 7b 0a 20  y3-2.29.ge.1 {. 
2f2d0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2f2e0 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
2f2f0 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47  t1 JOIN t2 USING
2f300 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  (a).     WHERE t
2f310 31 2e 72 6f 77 69 64 20 3e 3d 20 32 30 39 37 31  1.rowid >= 20971
2f320 35 32 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  52 ORDER BY t2.a
2f330 0a 20 20 7d 0a 7d 20 7b 33 20 36 20 37 20 39 20  .  }.} {3 6 7 9 
2f340 31 30 20 31 32 20 31 33 20 31 34 20 31 37 20 31  10 12 13 14 17 1
2f350 38 20 31 39 20 32 30 20 32 32 20 32 34 20 32 35  8 19 20 22 24 25
2f360 20 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20   26 27 28 34 35 
2f370 33 36 20 33 39 20 34 30 20 34 32 20 34 33 20 34  36 39 40 42 43 4
2f380 35 20 34 36 20 35 31 20 35 36 20 35 37 7d 0a 64  5 46 51 56 57}.d
2f390 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
2f3a0 2d 32 2e 32 39 2e 67 65 2e 32 20 7b 0a 20 20 64  -2.29.ge.2 {.  d
2f3b0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
2f3c0 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32  ECT t2.a FROM t2
2f3d0 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31   NATURAL JOIN t1
2f3e0 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
2f3f0 6f 77 69 64 20 3e 3d 20 32 30 39 37 31 35 32 20  owid >= 2097152 
2f400 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44 45  ORDER BY t1.a DE
2f410 53 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 35 36 20  SC.  }.} {57 56 
2f420 35 31 20 34 36 20 34 35 20 34 33 20 34 32 20 34  51 46 45 43 42 4
2f430 30 20 33 39 20 33 36 20 33 35 20 33 34 20 32 38  0 39 36 35 34 28
2f440 20 32 37 20 32 36 20 32 35 20 32 34 20 32 32 20   27 26 25 24 22 
2f450 32 30 20 31 39 20 31 38 20 31 37 20 31 34 20 31  20 19 18 17 14 1
2f460 33 20 31 32 20 31 30 20 39 20 37 20 36 20 33 7d  3 12 10 9 7 6 3}
2f470 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2f480 79 33 2d 32 2e 32 39 2e 67 65 2e 33 20 7b 0a 20  y3-2.29.ge.3 {. 
2f490 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
2f4a0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
2f4b0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
2f4c0 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20  .rowid >= t2.r. 
2f4d0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34      WHERE t2.a=4
2f4e0 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  2.     ORDER BY 
2f4f0 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
2f500 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
2f510 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
2f520 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
2f530 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
2f540 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
2f550 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
2f560 6f 75 6e 64 61 72 79 33 2d 32 2e 32 39 2e 67 65  oundary3-2.29.ge
2f570 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
2f580 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
2f590 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
2f5a0 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
2f5b0 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
2f5c0 74 32 2e 61 3d 34 32 0a 20 20 20 20 20 4f 52 44  t2.a=42.     ORD
2f5d0 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
2f5e0 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
2f5f0 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
2f600 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
2f610 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
2f620 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
2f630 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
2f640 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2f650 72 79 33 2d 32 2e 32 39 2e 67 65 2e 35 20 7b 0a  ry3-2.29.ge.5 {.
2f660 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2f670 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2f680 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2f690 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
2f6a0 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
2f6b0 34 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  42.     ORDER BY
2f6c0 20 78 0a 20 20 7d 0a 7d 20 7b 34 32 20 31 38 20   x.  }.} {42 18 
2f6d0 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
2f6e0 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
2f6f0 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
2f700 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
2f710 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
2f720 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2f730 79 33 2d 32 2e 32 39 2e 67 65 2e 31 30 20 7b 0a  y3-2.29.ge.10 {.
2f740 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2f750 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2f760 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2f770 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
2f780 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
2f790 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 32     WHERE t2.a=42
2f7a0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
2f7b0 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 34  1.rowid.  }.} {4
2f7c0 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
2f7d0 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
2f7e0 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
2f7f0 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
2f800 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
2f810 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
2f820 75 6e 64 61 72 79 33 2d 32 2e 32 39 2e 67 65 2e  undary3-2.29.ge.
2f830 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  11 {.  db eval {
2f840 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
2f850 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
2f860 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
2f870 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
2f880 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
2f890 2e 61 3d 34 32 0a 20 20 20 20 20 4f 52 44 45 52  .a=42.     ORDER
2f8a0 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
2f8b0 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37  C.  }.} {3 28 17
2f8c0 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20   45 27 43 13 26 
2f8d0 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31 39  10 34 25 56 7 19
2f8e0 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39 20   57 35 46 22 39 
2f8f0 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31  36 14 51 20 40 1
2f900 32 20 36 20 39 20 32 34 20 31 38 20 34 32 7d 0a  2 6 9 24 18 42}.
2f910 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
2f920 33 2d 32 2e 32 39 2e 6c 74 2e 31 20 7b 0a 20 20  3-2.29.lt.1 {.  
2f930 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
2f940 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
2f950 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
2f960 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
2f970 2e 72 6f 77 69 64 20 3c 20 32 30 39 37 31 35 32  .rowid < 2097152
2f980 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
2f990 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 38 20   }.} {1 2 4 5 8 
2f9a0 31 31 20 31 35 20 31 36 20 32 31 20 32 33 20 32  11 15 16 21 23 2
2f9b0 39 20 33 30 20 33 31 20 33 32 20 33 33 20 33 37  9 30 31 32 33 37
2f9c0 20 33 38 20 34 31 20 34 34 20 34 37 20 34 38 20   38 41 44 47 48 
2f9d0 34 39 20 35 30 20 35 32 20 35 33 20 35 34 20 35  49 50 52 53 54 5
2f9e0 35 20 35 38 20 35 39 20 36 30 20 36 31 20 36 32  5 58 59 60 61 62
2f9f0 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20   63 64}.do_test 
2fa00 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 39 2e 6c  boundary3-2.29.l
2fa10 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.2 {.  db eval 
2fa20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
2fa30 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41  a FROM t2 NATURA
2fa40 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57  L JOIN t1.     W
2fa50 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20  HERE t1.rowid < 
2fa60 32 30 39 37 31 35 32 20 4f 52 44 45 52 20 42 59  2097152 ORDER BY
2fa70 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
2fa80 20 7b 36 34 20 36 33 20 36 32 20 36 31 20 36 30   {64 63 62 61 60
2fa90 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20   59 58 55 54 53 
2faa0 35 32 20 35 30 20 34 39 20 34 38 20 34 37 20 34  52 50 49 48 47 4
2fab0 34 20 34 31 20 33 38 20 33 37 20 33 33 20 33 32  4 41 38 37 33 32
2fac0 20 33 31 20 33 30 20 32 39 20 32 33 20 32 31 20   31 30 29 23 21 
2fad0 31 36 20 31 35 20 31 31 20 38 20 35 20 34 20 32  16 15 11 8 5 4 2
2fae0 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   1}.do_test boun
2faf0 64 61 72 79 33 2d 32 2e 32 39 2e 6c 74 2e 33 20  dary3-2.29.lt.3 
2fb00 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2fb10 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
2fb20 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2fb30 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
2fb40 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
2fb50 3d 34 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =42.     ORDER B
2fb60 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
2fb70 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
2fb80 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
2fb90 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
2fba0 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
2fbb0 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
2fbc0 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
2fbd0 31 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  15}.do_test boun
2fbe0 64 61 72 79 33 2d 32 2e 32 39 2e 6c 74 2e 34 20  dary3-2.29.lt.4 
2fbf0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
2fc00 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
2fc10 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
2fc20 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
2fc30 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
2fc40 3d 34 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =42.     ORDER B
2fc50 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
2fc60 20 20 7d 0a 7d 20 7b 31 35 20 36 32 20 34 38 20    }.} {15 62 48 
2fc70 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33 30  50 23 16 8 61 30
2fc80 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36 30   49 4 31 5 41 60
2fc90 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33 20   59 38 33 52 53 
2fca0 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31 31  54 32 29 37 1 11
2fcb0 20 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20   47 63 58 44 21 
2fcc0 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74  64 2 55}.do_test
2fcd0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32 39 2e   boundary3-2.29.
2fce0 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.5 {.  db eval
2fcf0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
2fd00 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
2fd10 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
2fd20 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
2fd30 20 74 32 2e 61 3d 34 32 0a 20 20 20 20 20 4f 52   t2.a=42.     OR
2fd40 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
2fd50 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
2fd60 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
2fd70 20 35 30 20 34 38 20 36 32 20 31 35 20 35 35 20   50 48 62 15 55 
2fd80 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
2fd90 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
2fda0 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
2fdb0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
2fdc0 72 79 33 2d 32 2e 32 39 2e 6c 74 2e 31 30 20 7b  ry3-2.29.lt.10 {
2fdd0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
2fde0 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
2fdf0 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
2fe00 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28  t1.rowid < CAST(
2fe10 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
2fe20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 32     WHERE t2.a=42
2fe30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
2fe40 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
2fe50 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
2fe60 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
2fe70 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
2fe80 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
2fe90 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
2fea0 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 7d   23 50 48 62 15}
2feb0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
2fec0 79 33 2d 32 2e 32 39 2e 6c 74 2e 31 31 20 7b 0a  y3-2.29.lt.11 {.
2fed0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
2fee0 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
2fef0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
2ff00 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74  1.rowid < CAST(t
2ff10 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
2ff20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 32 0a    WHERE t2.a=42.
2ff30 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
2ff40 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
2ff50 7d 20 7b 31 35 20 36 32 20 34 38 20 35 30 20 32  } {15 62 48 50 2
2ff60 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
2ff70 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
2ff80 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
2ff90 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20  2 29 37 1 11 47 
2ffa0 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32  63 58 44 21 64 2
2ffb0 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   55}.do_test bou
2ffc0 6e 64 61 72 79 33 2d 32 2e 32 39 2e 6c 65 2e 31  ndary3-2.29.le.1
2ffd0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
2ffe0 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
2fff0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55  ROM t1 JOIN t2 U
30000 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45  SING(a).     WHE
30010 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 32  RE t1.rowid <= 2
30020 30 39 37 31 35 32 20 4f 52 44 45 52 20 42 59 20  097152 ORDER BY 
30030 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20 32 20  t2.a.  }.} {1 2 
30040 34 20 35 20 38 20 31 31 20 31 35 20 31 36 20 32  4 5 8 11 15 16 2
30050 31 20 32 33 20 32 39 20 33 30 20 33 31 20 33 32  1 23 29 30 31 32
30060 20 33 33 20 33 37 20 33 38 20 34 31 20 34 32 20   33 37 38 41 42 
30070 34 34 20 34 37 20 34 38 20 34 39 20 35 30 20 35  44 47 48 49 50 5
30080 32 20 35 33 20 35 34 20 35 35 20 35 38 20 35 39  2 53 54 55 58 59
30090 20 36 30 20 36 31 20 36 32 20 36 33 20 36 34 7d   60 61 62 63 64}
300a0 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
300b0 79 33 2d 32 2e 32 39 2e 6c 65 2e 32 20 7b 0a 20  y3-2.29.le.2 {. 
300c0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
300d0 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20  ELECT t2.a FROM 
300e0 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20  t2 NATURAL JOIN 
300f0 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  t1.     WHERE t1
30100 2e 72 6f 77 69 64 20 3c 3d 20 32 30 39 37 31 35  .rowid <= 209715
30110 32 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20  2 ORDER BY t1.a 
30120 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 34 20 36  DESC.  }.} {64 6
30130 33 20 36 32 20 36 31 20 36 30 20 35 39 20 35 38  3 62 61 60 59 58
30140 20 35 35 20 35 34 20 35 33 20 35 32 20 35 30 20   55 54 53 52 50 
30150 34 39 20 34 38 20 34 37 20 34 34 20 34 32 20 34  49 48 47 44 42 4
30160 31 20 33 38 20 33 37 20 33 33 20 33 32 20 33 31  1 38 37 33 32 31
30170 20 33 30 20 32 39 20 32 33 20 32 31 20 31 36 20   30 29 23 21 16 
30180 31 35 20 31 31 20 38 20 35 20 34 20 32 20 31 7d  15 11 8 5 4 2 1}
30190 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
301a0 79 33 2d 32 2e 32 39 2e 6c 65 2e 33 20 7b 0a 20  y3-2.29.le.3 {. 
301b0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
301c0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
301d0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
301e0 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
301f0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34      WHERE t2.a=4
30200 32 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  2.     ORDER BY 
30210 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
30220 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
30230 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
30240 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
30250 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33   38 59 60 41 5 3
30260 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
30270 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
30280 20 34 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   42}.do_test bou
30290 6e 64 61 72 79 33 2d 32 2e 32 39 2e 6c 65 2e 34  ndary3-2.29.le.4
302a0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
302b0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
302c0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
302d0 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
302e0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
302f0 2e 61 3d 34 32 0a 20 20 20 20 20 4f 52 44 45 52  .a=42.     ORDER
30300 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
30310 43 0a 20 20 7d 0a 7d 20 7b 34 32 20 31 35 20 36  C.  }.} {42 15 6
30320 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20  2 48 50 23 16 8 
30330 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20  61 30 49 4 31 5 
30340 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35  41 60 59 38 33 5
30350 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37  2 53 54 32 29 37
30360 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34   1 11 47 63 58 4
30370 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f  4 21 64 2 55}.do
30380 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
30390 32 2e 32 39 2e 6c 65 2e 35 20 7b 0a 20 20 64 62  2.29.le.5 {.  db
303a0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
303b0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
303c0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
303d0 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20  wid <= t2.r.    
303e0 20 57 48 45 52 45 20 74 32 2e 61 3d 34 32 0a 20   WHERE t2.a=42. 
303f0 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
30400 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35   }.} {59 60 41 5
30410 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
30420 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
30430 31 35 20 34 32 20 35 35 20 32 20 36 34 20 32 31  15 42 55 2 64 21
30440 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
30450 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
30460 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65   52 33 38}.do_te
30470 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 32  st boundary3-2.2
30480 39 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65  9.le.10 {.  db e
30490 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
304a0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
304b0 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
304c0 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d <= CAST(t2.r A
304d0 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
304e0 52 45 20 74 32 2e 61 3d 34 32 0a 20 20 20 20 20  RE t2.a=42.     
304f0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
30500 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
30510 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
30520 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
30530 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
30540 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
30550 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
30560 20 34 38 20 36 32 20 31 35 20 34 32 7d 0a 64 6f   48 62 15 42}.do
30570 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
30580 32 2e 32 39 2e 6c 65 2e 31 31 20 7b 0a 20 20 64  2.29.le.11 {.  d
30590 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
305a0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
305b0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
305c0 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e  owid <= CAST(t2.
305d0 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
305e0 57 48 45 52 45 20 74 32 2e 61 3d 34 32 0a 20 20  WHERE t2.a=42.  
305f0 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
30600 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20  owid DESC.  }.} 
30610 7b 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20  {42 15 62 48 50 
30620 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39  23 16 8 61 30 49
30630 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39   4 31 5 41 60 59
30640 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20   38 33 52 53 54 
30650 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
30660 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
30670 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
30680 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e 31 20 7b  undary3-2.30.1 {
30690 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
306a0 20 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f   SELECT t1.* FRO
306b0 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74  M t1, t2 WHERE t
306c0 31 2e 72 6f 77 69 64 3d 31 32 38 20 41 4e 44 20  1.rowid=128 AND 
306d0 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20  t2.a=t1.a.  }.} 
306e0 7b 34 39 20 30 30 30 30 30 30 30 30 30 30 30 30  {49 000000000000
306f0 30 30 38 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  0080}.do_test bo
30700 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e 32 20 7b  undary3-2.30.2 {
30710 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
30720 20 53 45 4c 45 43 54 20 74 32 2e 2a 20 46 52 4f   SELECT t2.* FRO
30730 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
30740 4e 47 28 61 29 20 57 48 45 52 45 20 78 3d 27 30  NG(a) WHERE x='0
30750 30 30 30 30 30 30 30 30 30 30 30 30 30 38 30 27  000000000000080'
30760 0a 20 20 7d 0a 7d 20 7b 31 32 38 20 34 39 7d 0a  .  }.} {128 49}.
30770 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
30780 33 2d 32 2e 33 30 2e 33 20 7b 0a 20 20 64 62 20  3-2.30.3 {.  db 
30790 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
307a0 54 20 74 31 2e 72 6f 77 69 64 2c 20 78 20 46 52  T t1.rowid, x FR
307b0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
307c0 20 74 32 2e 72 3d 74 31 2e 72 6f 77 69 64 20 57   t2.r=t1.rowid W
307d0 48 45 52 45 20 74 32 2e 61 3d 34 39 0a 20 20 7d  HERE t2.a=49.  }
307e0 0a 7d 20 7b 31 32 38 20 30 30 30 30 30 30 30 30  .} {128 00000000
307f0 30 30 30 30 30 30 38 30 7d 0a 64 6f 5f 74 65 73  00000080}.do_tes
30800 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 30  t boundary3-2.30
30810 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .gt.1 {.  db eva
30820 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
30830 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
30840 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
30850 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
30860 20 3e 20 31 32 38 20 4f 52 44 45 52 20 42 59 20   > 128 ORDER BY 
30870 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 36 20  t2.a.  }.} {3 6 
30880 37 20 38 20 39 20 31 30 20 31 32 20 31 33 20 31  7 8 9 10 12 13 1
30890 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31 39  4 15 16 17 18 19
308a0 20 32 30 20 32 32 20 32 33 20 32 34 20 32 35 20   20 22 23 24 25 
308b0 32 36 20 32 37 20 32 38 20 33 30 20 33 34 20 33  26 27 28 30 34 3
308c0 35 20 33 36 20 33 39 20 34 30 20 34 32 20 34 33  5 36 39 40 42 43
308d0 20 34 35 20 34 36 20 34 38 20 35 30 20 35 31 20   45 46 48 50 51 
308e0 35 36 20 35 37 20 36 31 20 36 32 7d 0a 64 6f 5f  56 57 61 62}.do_
308f0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
30900 2e 33 30 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20  .30.gt.2 {.  db 
30910 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
30920 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
30930 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
30940 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
30950 69 64 20 3e 20 31 32 38 20 4f 52 44 45 52 20 42  id > 128 ORDER B
30960 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a  Y t1.a DESC.  }.
30970 7d 20 7b 36 32 20 36 31 20 35 37 20 35 36 20 35  } {62 61 57 56 5
30980 31 20 35 30 20 34 38 20 34 36 20 34 35 20 34 33  1 50 48 46 45 43
30990 20 34 32 20 34 30 20 33 39 20 33 36 20 33 35 20   42 40 39 36 35 
309a0 33 34 20 33 30 20 32 38 20 32 37 20 32 36 20 32  34 30 28 27 26 2
309b0 35 20 32 34 20 32 33 20 32 32 20 32 30 20 31 39  5 24 23 22 20 19
309c0 20 31 38 20 31 37 20 31 36 20 31 35 20 31 34 20   18 17 16 15 14 
309d0 31 33 20 31 32 20 31 30 20 39 20 38 20 37 20 36  13 12 10 9 8 7 6
309e0 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
309f0 64 61 72 79 33 2d 32 2e 33 30 2e 67 74 2e 33 20  dary3-2.30.gt.3 
30a00 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
30a10 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
30a20 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
30a30 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72   t1.rowid > t2.r
30a40 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
30a50 3d 34 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =49.     ORDER B
30a60 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
30a70 20 7b 33 30 20 36 31 20 38 20 31 36 20 32 33 20   {30 61 8 16 23 
30a80 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
30a90 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
30aa0 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
30ab0 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
30ac0 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
30ad0 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
30ae0 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
30af0 61 72 79 33 2d 32 2e 33 30 2e 67 74 2e 34 20 7b  ary3-2.30.gt.4 {
30b00 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
30b10 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
30b20 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
30b30 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a  t1.rowid > t2.r.
30b40 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
30b50 34 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  49.     ORDER BY
30b60 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
30b70 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
30b80 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20   27 43 13 26 10 
30b90 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37  34 25 56 7 19 57
30ba0 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20   35 46 22 39 36 
30bb0 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36  14 51 20 40 12 6
30bc0 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36   9 24 18 42 15 6
30bd0 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20  2 48 50 23 16 8 
30be0 36 31 20 33 30 7d 0a 64 6f 5f 74 65 73 74 20 62  61 30}.do_test b
30bf0 6f 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e 67 74  oundary3-2.30.gt
30c00 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .5 {.  db eval {
30c10 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
30c20 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
30c30 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74   ON t1.rowid > t
30c40 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
30c50 32 2e 61 3d 34 39 0a 20 20 20 20 20 4f 52 44 45  2.a=49.     ORDE
30c60 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 33 30  R BY x.  }.} {30
30c70 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
30c80 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
30c90 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
30ca0 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
30cb0 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
30cc0 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
30cd0 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
30ce0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
30cf0 2d 32 2e 33 30 2e 67 74 2e 31 30 20 7b 0a 20 20  -2.30.gt.10 {.  
30d00 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
30d10 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
30d20 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
30d30 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e  rowid > CAST(t2.
30d40 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
30d50 57 48 45 52 45 20 74 32 2e 61 3d 34 39 0a 20 20  WHERE t2.a=49.  
30d60 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
30d70 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 30 20 36  owid.  }.} {30 6
30d80 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
30d90 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
30da0 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
30db0 34 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35  4 36 39 22 46 35
30dc0 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
30dd0 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
30de0 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
30df0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
30e00 2e 33 30 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62  .30.gt.11 {.  db
30e10 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
30e20 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
30e30 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
30e40 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20  wid > CAST(t2.r 
30e50 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
30e60 45 52 45 20 74 32 2e 61 3d 34 39 0a 20 20 20 20  ERE t2.a=49.    
30e70 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
30e80 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33  id DESC.  }.} {3
30e90 20 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20   28 17 45 27 43 
30ea0 31 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35  13 26 10 34 25 5
30eb0 36 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20  6 7 19 57 35 46 
30ec0 32 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32  22 39 36 14 51 2
30ed0 30 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31  0 40 12 6 9 24 1
30ee0 38 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30  8 42 15 62 48 50
30ef0 20 32 33 20 31 36 20 38 20 36 31 20 33 30 7d 0a   23 16 8 61 30}.
30f00 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
30f10 33 2d 32 2e 33 30 2e 67 65 2e 31 20 7b 0a 20 20  3-2.30.ge.1 {.  
30f20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
30f30 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
30f40 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
30f50 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
30f60 2e 72 6f 77 69 64 20 3e 3d 20 31 32 38 20 4f 52  .rowid >= 128 OR
30f70 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a  DER BY t2.a.  }.
30f80 7d 20 7b 33 20 36 20 37 20 38 20 39 20 31 30 20  } {3 6 7 8 9 10 
30f90 31 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31  12 13 14 15 16 1
30fa0 37 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33  7 18 19 20 22 23
30fb0 20 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20   24 25 26 27 28 
30fc0 33 30 20 33 34 20 33 35 20 33 36 20 33 39 20 34  30 34 35 36 39 4
30fd0 30 20 34 32 20 34 33 20 34 35 20 34 36 20 34 38  0 42 43 45 46 48
30fe0 20 34 39 20 35 30 20 35 31 20 35 36 20 35 37 20   49 50 51 56 57 
30ff0 36 31 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20 62  61 62}.do_test b
31000 6f 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e 67 65  oundary3-2.30.ge
31010 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
31020 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
31030 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
31040 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
31050 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
31060 31 32 38 20 4f 52 44 45 52 20 42 59 20 74 31 2e  128 ORDER BY t1.
31070 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32  a DESC.  }.} {62
31080 20 36 31 20 35 37 20 35 36 20 35 31 20 35 30 20   61 57 56 51 50 
31090 34 39 20 34 38 20 34 36 20 34 35 20 34 33 20 34  49 48 46 45 43 4
310a0 32 20 34 30 20 33 39 20 33 36 20 33 35 20 33 34  2 40 39 36 35 34
310b0 20 33 30 20 32 38 20 32 37 20 32 36 20 32 35 20   30 28 27 26 25 
310c0 32 34 20 32 33 20 32 32 20 32 30 20 31 39 20 31  24 23 22 20 19 1
310d0 38 20 31 37 20 31 36 20 31 35 20 31 34 20 31 33  8 17 16 15 14 13
310e0 20 31 32 20 31 30 20 39 20 38 20 37 20 36 20 33   12 10 9 8 7 6 3
310f0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
31100 72 79 33 2d 32 2e 33 30 2e 67 65 2e 33 20 7b 0a  ry3-2.30.ge.3 {.
31110 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
31120 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
31130 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
31140 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a  1.rowid >= t2.r.
31150 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
31160 34 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  49.     ORDER BY
31170 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20   t1.rowid.  }.} 
31180 7b 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32  {49 30 61 8 16 2
31190 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32  3 50 48 62 15 42
311a0 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30   18 24 9 6 12 40
311b0 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20   20 51 14 36 39 
311c0 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37  22 46 35 57 19 7
311d0 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20   56 25 34 10 26 
311e0 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32  13 43 27 45 17 2
311f0 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75  8 3}.do_test bou
31200 6e 64 61 72 79 33 2d 32 2e 33 30 2e 67 65 2e 34  ndary3-2.30.ge.4
31210 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
31220 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
31230 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
31240 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32  N t1.rowid >= t2
31250 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
31260 2e 61 3d 34 39 0a 20 20 20 20 20 4f 52 44 45 52  .a=49.     ORDER
31270 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
31280 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37  C.  }.} {3 28 17
31290 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20   45 27 43 13 26 
312a0 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31 39  10 34 25 56 7 19
312b0 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39 20   57 35 46 22 39 
312c0 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31  36 14 51 20 40 1
312d0 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
312e0 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
312f0 20 38 20 36 31 20 33 30 20 34 39 7d 0a 64 6f 5f   8 61 30 49}.do_
31300 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
31310 2e 33 30 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20  .30.ge.5 {.  db 
31320 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
31330 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
31340 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
31350 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
31360 57 48 45 52 45 20 74 32 2e 61 3d 34 39 0a 20 20  WHERE t2.a=49.  
31370 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
31380 7d 0a 7d 20 7b 34 39 20 33 30 20 36 31 20 38 20  }.} {49 30 61 8 
31390 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31  16 23 50 48 62 1
313a0 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31  5 42 18 24 9 6 1
313b0 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36  2 40 20 51 14 36
313c0 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20   39 22 46 35 57 
313d0 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
313e0 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
313f0 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
31400 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e   boundary3-2.30.
31410 67 65 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61  ge.10 {.  db eva
31420 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
31430 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
31440 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
31450 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41 53 20  >= CAST(t2.r AS 
31460 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45  real).     WHERE
31470 20 74 32 2e 61 3d 34 39 0a 20 20 20 20 20 4f 52   t2.a=49.     OR
31480 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a  DER BY t1.rowid.
31490 20 20 7d 0a 7d 20 7b 34 39 20 33 30 20 36 31 20    }.} {49 30 61 
314a0 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
314b0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
314c0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
314d0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
314e0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
314f0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
31500 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
31510 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
31520 30 2e 67 65 2e 31 31 20 7b 0a 20 20 64 62 20 65  0.ge.11 {.  db e
31530 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
31540 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
31550 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
31560 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d >= CAST(t2.r A
31570 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
31580 52 45 20 74 32 2e 61 3d 34 39 0a 20 20 20 20 20  RE t2.a=49.     
31590 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
315a0 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20  d DESC.  }.} {3 
315b0 32 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31  28 17 45 27 43 1
315c0 33 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36  3 26 10 34 25 56
315d0 20 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32   7 19 57 35 46 2
315e0 32 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30  2 39 36 14 51 20
315f0 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
31600 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20   42 15 62 48 50 
31610 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39  23 16 8 61 30 49
31620 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
31630 72 79 33 2d 32 2e 33 30 2e 6c 74 2e 31 20 7b 0a  ry3-2.30.lt.1 {.
31640 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
31650 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
31660 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e   t1 JOIN t2 USIN
31670 47 28 61 29 0a 20 20 20 20 20 57 48 45 52 45 20  G(a).     WHERE 
31680 74 31 2e 72 6f 77 69 64 20 3c 20 31 32 38 20 4f  t1.rowid < 128 O
31690 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
316a0 0a 7d 20 7b 31 20 32 20 34 20 35 20 31 31 20 32  .} {1 2 4 5 11 2
316b0 31 20 32 39 20 33 31 20 33 32 20 33 33 20 33 37  1 29 31 32 33 37
316c0 20 33 38 20 34 31 20 34 34 20 34 37 20 35 32 20   38 41 44 47 52 
316d0 35 33 20 35 34 20 35 35 20 35 38 20 35 39 20 36  53 54 55 58 59 6
316e0 30 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74  0 63 64}.do_test
316f0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e   boundary3-2.30.
31700 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.2 {.  db eval
31710 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
31720 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52  .a FROM t2 NATUR
31730 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20  AL JOIN t1.     
31740 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
31750 20 31 32 38 20 4f 52 44 45 52 20 42 59 20 74 31   128 ORDER BY t1
31760 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36  .a DESC.  }.} {6
31770 34 20 36 33 20 36 30 20 35 39 20 35 38 20 35 35  4 63 60 59 58 55
31780 20 35 34 20 35 33 20 35 32 20 34 37 20 34 34 20   54 53 52 47 44 
31790 34 31 20 33 38 20 33 37 20 33 33 20 33 32 20 33  41 38 37 33 32 3
317a0 31 20 32 39 20 32 31 20 31 31 20 35 20 34 20 32  1 29 21 11 5 4 2
317b0 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   1}.do_test boun
317c0 64 61 72 79 33 2d 32 2e 33 30 2e 6c 74 2e 33 20  dary3-2.30.lt.3 
317d0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
317e0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
317f0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
31800 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72   t1.rowid < t2.r
31810 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
31820 3d 34 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =49.     ORDER B
31830 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
31840 20 7b 35 35 20 32 20 36 34 20 32 31 20 34 34 20   {55 2 64 21 44 
31850 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
31860 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
31870 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
31880 20 33 31 20 34 7d 0a 64 6f 5f 74 65 73 74 20 62   31 4}.do_test b
31890 6f 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e 6c 74  oundary3-2.30.lt
318a0 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
318b0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
318c0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
318d0 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74   ON t1.rowid < t
318e0 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
318f0 32 2e 61 3d 34 39 0a 20 20 20 20 20 4f 52 44 45  2.a=49.     ORDE
31900 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
31910 53 43 0a 20 20 7d 0a 7d 20 7b 34 20 33 31 20 35  SC.  }.} {4 31 5
31920 20 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20   41 60 59 38 33 
31930 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33  52 53 54 32 29 3
31940 37 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20  7 1 11 47 63 58 
31950 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64  44 21 64 2 55}.d
31960 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
31970 2d 32 2e 33 30 2e 6c 74 2e 35 20 7b 0a 20 20 64  -2.30.lt.5 {.  d
31980 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
31990 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
319a0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
319b0 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20  owid < t2.r.    
319c0 20 57 48 45 52 45 20 74 32 2e 61 3d 34 39 0a 20   WHERE t2.a=49. 
319d0 20 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20      ORDER BY x. 
319e0 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35   }.} {59 60 41 5
319f0 20 33 31 20 34 20 35 35 20 32 20 36 34 20 32 31   31 4 55 2 64 21
31a00 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
31a10 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
31a20 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74 65   52 33 38}.do_te
31a30 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
31a40 30 2e 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20 65  0.lt.10 {.  db e
31a50 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
31a60 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
31a70 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
31a80 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41 53  d < CAST(t2.r AS
31a90 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
31aa0 45 20 74 32 2e 61 3d 34 39 0a 20 20 20 20 20 4f  E t2.a=49.     O
31ab0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
31ac0 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
31ad0 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
31ae0 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
31af0 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36  53 52 33 38 59 6
31b00 30 20 34 31 20 35 20 33 31 20 34 7d 0a 64 6f 5f  0 41 5 31 4}.do_
31b10 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
31b20 2e 33 30 2e 6c 74 2e 31 31 20 7b 0a 20 20 64 62  .30.lt.11 {.  db
31b30 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
31b40 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
31b50 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
31b60 77 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20  wid < CAST(t2.r 
31b70 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48  AS real).     WH
31b80 45 52 45 20 74 32 2e 61 3d 34 39 0a 20 20 20 20  ERE t2.a=49.    
31b90 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
31ba0 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 34  id DESC.  }.} {4
31bb0 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
31bc0 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
31bd0 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
31be0 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
31bf0 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
31c00 64 61 72 79 33 2d 32 2e 33 30 2e 6c 65 2e 31 20  dary3-2.30.le.1 
31c10 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
31c20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
31c30 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
31c40 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
31c50 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 31 32  E t1.rowid <= 12
31c60 38 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a  8 ORDER BY t2.a.
31c70 20 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 31    }.} {1 2 4 5 1
31c80 31 20 32 31 20 32 39 20 33 31 20 33 32 20 33 33  1 21 29 31 32 33
31c90 20 33 37 20 33 38 20 34 31 20 34 34 20 34 37 20   37 38 41 44 47 
31ca0 34 39 20 35 32 20 35 33 20 35 34 20 35 35 20 35  49 52 53 54 55 5
31cb0 38 20 35 39 20 36 30 20 36 33 20 36 34 7d 0a 64  8 59 60 63 64}.d
31cc0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
31cd0 2d 32 2e 33 30 2e 6c 65 2e 32 20 7b 0a 20 20 64  -2.30.le.2 {.  d
31ce0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
31cf0 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32  ECT t2.a FROM t2
31d00 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31   NATURAL JOIN t1
31d10 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
31d20 6f 77 69 64 20 3c 3d 20 31 32 38 20 4f 52 44 45  owid <= 128 ORDE
31d30 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
31d40 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36 30 20 35   }.} {64 63 60 5
31d50 39 20 35 38 20 35 35 20 35 34 20 35 33 20 35 32  9 58 55 54 53 52
31d60 20 34 39 20 34 37 20 34 34 20 34 31 20 33 38 20   49 47 44 41 38 
31d70 33 37 20 33 33 20 33 32 20 33 31 20 32 39 20 32  37 33 32 31 29 2
31d80 31 20 31 31 20 35 20 34 20 32 20 31 7d 0a 64 6f  1 11 5 4 2 1}.do
31d90 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
31da0 32 2e 33 30 2e 6c 65 2e 33 20 7b 0a 20 20 64 62  2.30.le.3 {.  db
31db0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
31dc0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
31dd0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
31de0 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20  wid <= t2.r.    
31df0 20 57 48 45 52 45 20 74 32 2e 61 3d 34 39 0a 20   WHERE t2.a=49. 
31e00 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
31e10 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20  rowid.  }.} {55 
31e20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
31e30 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33   47 11 1 37 29 3
31e40 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38  2 54 53 52 33 38
31e50 20 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34   59 60 41 5 31 4
31e60 20 34 39 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   49}.do_test bou
31e70 6e 64 61 72 79 33 2d 32 2e 33 30 2e 6c 65 2e 34  ndary3-2.30.le.4
31e80 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
31e90 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
31ea0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
31eb0 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
31ec0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
31ed0 2e 61 3d 34 39 0a 20 20 20 20 20 4f 52 44 45 52  .a=49.     ORDER
31ee0 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
31ef0 43 0a 20 20 7d 0a 7d 20 7b 34 39 20 34 20 33 31  C.  }.} {49 4 31
31f00 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33   5 41 60 59 38 3
31f10 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
31f20 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
31f30 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
31f40 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
31f50 79 33 2d 32 2e 33 30 2e 6c 65 2e 35 20 7b 0a 20  y3-2.30.le.5 {. 
31f60 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
31f70 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
31f80 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
31f90 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
31fa0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34      WHERE t2.a=4
31fb0 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
31fc0 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  x.  }.} {59 60 4
31fd0 31 20 35 20 33 31 20 34 20 34 39 20 35 35 20 32  1 5 31 4 49 55 2
31fe0 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20   64 21 44 58 63 
31ff0 34 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32  47 11 1 37 29 32
32000 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d   54 53 52 33 38}
32010 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
32020 79 33 2d 32 2e 33 30 2e 6c 65 2e 31 30 20 7b 0a  y3-2.30.le.10 {.
32030 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
32040 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
32050 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
32060 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28  1.rowid <= CAST(
32070 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
32080 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 34 39     WHERE t2.a=49
32090 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
320a0 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35  1.rowid.  }.} {5
320b0 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20  5 2 64 21 44 58 
320c0 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
320d0 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
320e0 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
320f0 20 34 20 34 39 7d 0a 64 6f 5f 74 65 73 74 20 62   4 49}.do_test b
32100 6f 75 6e 64 61 72 79 33 2d 32 2e 33 30 2e 6c 65  oundary3-2.30.le
32110 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .11 {.  db eval 
32120 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
32130 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
32140 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
32150 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
32160 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
32170 32 2e 61 3d 34 39 0a 20 20 20 20 20 4f 52 44 45  2.a=49.     ORDE
32180 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
32190 53 43 0a 20 20 7d 0a 7d 20 7b 34 39 20 34 20 33  SC.  }.} {49 4 3
321a0 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20  1 5 41 60 59 38 
321b0 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
321c0 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20  9 37 1 11 47 63 
321d0 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
321e0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
321f0 72 79 33 2d 32 2e 33 31 2e 31 20 7b 0a 20 20 64  ry3-2.31.1 {.  d
32200 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
32210 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d 20 74 31  ECT t1.* FROM t1
32220 2c 20 74 32 20 57 48 45 52 45 20 74 31 2e 72 6f  , t2 WHERE t1.ro
32230 77 69 64 3d 32 35 35 20 41 4e 44 20 74 32 2e 61  wid=255 AND t2.a
32240 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20 7b 33 30 20  =t1.a.  }.} {30 
32250 30 30 30 30 30 30 30 30 30 30 30 30 30 30 66 66  00000000000000ff
32260 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
32270 72 79 33 2d 32 2e 33 31 2e 32 20 7b 0a 20 20 64  ry3-2.31.2 {.  d
32280 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
32290 45 43 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31  ECT t2.* FROM t1
322a0 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
322b0 29 20 57 48 45 52 45 20 78 3d 27 30 30 30 30 30  ) WHERE x='00000
322c0 30 30 30 30 30 30 30 30 30 66 66 27 0a 20 20 7d  000000000ff'.  }
322d0 0a 7d 20 7b 32 35 35 20 33 30 7d 0a 64 6f 5f 74  .} {255 30}.do_t
322e0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
322f0 33 31 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  31.3 {.  db eval
32300 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
32310 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f 4d 20 74  .rowid, x FROM t
32320 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 32 2e  1 JOIN t2 ON t2.
32330 72 3d 74 31 2e 72 6f 77 69 64 20 57 48 45 52 45  r=t1.rowid WHERE
32340 20 74 32 2e 61 3d 33 30 0a 20 20 7d 0a 7d 20 7b   t2.a=30.  }.} {
32350 32 35 35 20 30 30 30 30 30 30 30 30 30 30 30 30  255 000000000000
32360 30 30 66 66 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  00ff}.do_test bo
32370 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 67 74 2e  undary3-2.31.gt.
32380 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
32390 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
323a0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
323b0 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48  USING(a).     WH
323c0 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 32  ERE t1.rowid > 2
323d0 35 35 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  55 ORDER BY t2.a
323e0 0a 20 20 7d 0a 7d 20 7b 33 20 36 20 37 20 38 20  .  }.} {3 6 7 8 
323f0 39 20 31 30 20 31 32 20 31 33 20 31 34 20 31 35  9 10 12 13 14 15
32400 20 31 36 20 31 37 20 31 38 20 31 39 20 32 30 20   16 17 18 19 20 
32410 32 32 20 32 33 20 32 34 20 32 35 20 32 36 20 32  22 23 24 25 26 2
32420 37 20 32 38 20 33 34 20 33 35 20 33 36 20 33 39  7 28 34 35 36 39
32430 20 34 30 20 34 32 20 34 33 20 34 35 20 34 36 20   40 42 43 45 46 
32440 34 38 20 35 30 20 35 31 20 35 36 20 35 37 20 36  48 50 51 56 57 6
32450 31 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  1 62}.do_test bo
32460 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 67 74 2e  undary3-2.31.gt.
32470 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  2 {.  db eval {.
32480 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20      SELECT t2.a 
32490 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20  FROM t2 NATURAL 
324a0 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45  JOIN t1.     WHE
324b0 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 20 32 35  RE t1.rowid > 25
324c0 35 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20  5 ORDER BY t1.a 
324d0 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 32 20 36  DESC.  }.} {62 6
324e0 31 20 35 37 20 35 36 20 35 31 20 35 30 20 34 38  1 57 56 51 50 48
324f0 20 34 36 20 34 35 20 34 33 20 34 32 20 34 30 20   46 45 43 42 40 
32500 33 39 20 33 36 20 33 35 20 33 34 20 32 38 20 32  39 36 35 34 28 2
32510 37 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32  7 26 25 24 23 22
32520 20 32 30 20 31 39 20 31 38 20 31 37 20 31 36 20   20 19 18 17 16 
32530 31 35 20 31 34 20 31 33 20 31 32 20 31 30 20 39  15 14 13 12 10 9
32540 20 38 20 37 20 36 20 33 7d 0a 64 6f 5f 74 65 73   8 7 6 3}.do_tes
32550 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 31  t boundary3-2.31
32560 2e 67 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .gt.3 {.  db eva
32570 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
32580 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
32590 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
325a0 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
325b0 45 20 74 32 2e 61 3d 33 30 0a 20 20 20 20 20 4f  E t2.a=30.     O
325c0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
325d0 0a 20 20 7d 0a 7d 20 7b 36 31 20 38 20 31 36 20  .  }.} {61 8 16 
325e0 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
325f0 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
32600 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
32610 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
32620 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
32630 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
32640 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  28 3}.do_test bo
32650 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 67 74 2e  undary3-2.31.gt.
32660 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
32670 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
32680 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
32690 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74 32  ON t1.rowid > t2
326a0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
326b0 2e 61 3d 33 30 0a 20 20 20 20 20 4f 52 44 45 52  .a=30.     ORDER
326c0 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
326d0 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37  C.  }.} {3 28 17
326e0 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20   45 27 43 13 26 
326f0 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31 39  10 34 25 56 7 19
32700 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39 20   57 35 46 22 39 
32710 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31  36 14 51 20 40 1
32720 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
32730 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
32740 20 38 20 36 31 7d 0a 64 6f 5f 74 65 73 74 20 62   8 61}.do_test b
32750 6f 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 67 74  oundary3-2.31.gt
32760 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .5 {.  db eval {
32770 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
32780 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
32790 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74   ON t1.rowid > t
327a0 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
327b0 32 2e 61 3d 33 30 0a 20 20 20 20 20 4f 52 44 45  2.a=30.     ORDE
327c0 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 36 31  R BY x.  }.} {61
327d0 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36   8 16 23 50 48 6
327e0 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
327f0 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
32800 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
32810 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
32820 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
32830 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74  45 17 28 3}.do_t
32840 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
32850 33 31 2e 67 74 2e 31 30 20 7b 0a 20 20 64 62 20  31.gt.10 {.  db 
32860 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
32870 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
32880 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
32890 69 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41  id > CAST(t2.r A
328a0 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
328b0 52 45 20 74 32 2e 61 3d 33 30 0a 20 20 20 20 20  RE t2.a=30.     
328c0 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
328d0 64 0a 20 20 7d 0a 7d 20 7b 36 31 20 38 20 31 36  d.  }.} {61 8 16
328e0 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
328f0 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
32900 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
32910 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
32920 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
32930 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
32940 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
32950 6f 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 67 74  oundary3-2.31.gt
32960 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .11 {.  db eval 
32970 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
32980 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
32990 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
329a0 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
329b0 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
329c0 2e 61 3d 33 30 0a 20 20 20 20 20 4f 52 44 45 52  .a=30.     ORDER
329d0 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
329e0 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37  C.  }.} {3 28 17
329f0 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36 20   45 27 43 13 26 
32a00 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31 39  10 34 25 56 7 19
32a10 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39 20   57 35 46 22 39 
32a20 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31  36 14 51 20 40 1
32a30 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
32a40 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
32a50 20 38 20 36 31 7d 0a 64 6f 5f 74 65 73 74 20 62   8 61}.do_test b
32a60 6f 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 67 65  oundary3-2.31.ge
32a70 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .1 {.  db eval {
32a80 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
32a90 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
32aa0 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20 57   USING(a).     W
32ab0 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d  HERE t1.rowid >=
32ac0 20 32 35 35 20 4f 52 44 45 52 20 42 59 20 74 32   255 ORDER BY t2
32ad0 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 36 20 37 20  .a.  }.} {3 6 7 
32ae0 38 20 39 20 31 30 20 31 32 20 31 33 20 31 34 20  8 9 10 12 13 14 
32af0 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32  15 16 17 18 19 2
32b00 30 20 32 32 20 32 33 20 32 34 20 32 35 20 32 36  0 22 23 24 25 26
32b10 20 32 37 20 32 38 20 33 30 20 33 34 20 33 35 20   27 28 30 34 35 
32b20 33 36 20 33 39 20 34 30 20 34 32 20 34 33 20 34  36 39 40 42 43 4
32b30 35 20 34 36 20 34 38 20 35 30 20 35 31 20 35 36  5 46 48 50 51 56
32b40 20 35 37 20 36 31 20 36 32 7d 0a 64 6f 5f 74 65   57 61 62}.do_te
32b50 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
32b60 31 2e 67 65 2e 32 20 7b 0a 20 20 64 62 20 65 76  1.ge.2 {.  db ev
32b70 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
32b80 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
32b90 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
32ba0 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
32bb0 20 3e 3d 20 32 35 35 20 4f 52 44 45 52 20 42 59   >= 255 ORDER BY
32bc0 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
32bd0 20 7b 36 32 20 36 31 20 35 37 20 35 36 20 35 31   {62 61 57 56 51
32be0 20 35 30 20 34 38 20 34 36 20 34 35 20 34 33 20   50 48 46 45 43 
32bf0 34 32 20 34 30 20 33 39 20 33 36 20 33 35 20 33  42 40 39 36 35 3
32c00 34 20 33 30 20 32 38 20 32 37 20 32 36 20 32 35  4 30 28 27 26 25
32c10 20 32 34 20 32 33 20 32 32 20 32 30 20 31 39 20   24 23 22 20 19 
32c20 31 38 20 31 37 20 31 36 20 31 35 20 31 34 20 31  18 17 16 15 14 1
32c30 33 20 31 32 20 31 30 20 39 20 38 20 37 20 36 20  3 12 10 9 8 7 6 
32c40 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
32c50 61 72 79 33 2d 32 2e 33 31 2e 67 65 2e 33 20 7b  ary3-2.31.ge.3 {
32c60 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
32c70 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
32c80 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
32c90 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72  t1.rowid >= t2.r
32ca0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
32cb0 3d 33 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =30.     ORDER B
32cc0 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d  Y t1.rowid.  }.}
32cd0 20 7b 33 30 20 36 31 20 38 20 31 36 20 32 33 20   {30 61 8 16 23 
32ce0 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
32cf0 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
32d00 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
32d10 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
32d20 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
32d30 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
32d40 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
32d50 61 72 79 33 2d 32 2e 33 31 2e 67 65 2e 34 20 7b  ary3-2.31.ge.4 {
32d60 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
32d70 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
32d80 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
32d90 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72  t1.rowid >= t2.r
32da0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
32db0 3d 33 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =30.     ORDER B
32dc0 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
32dd0 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
32de0 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
32df0 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
32e00 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36  7 35 46 22 39 36
32e10 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20   14 51 20 40 12 
32e20 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20  6 9 24 18 42 15 
32e30 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38  62 48 50 23 16 8
32e40 20 36 31 20 33 30 7d 0a 64 6f 5f 74 65 73 74 20   61 30}.do_test 
32e50 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 67  boundary3-2.31.g
32e60 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.5 {.  db eval 
32e70 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
32e80 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
32e90 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
32ea0 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
32eb0 20 74 32 2e 61 3d 33 30 0a 20 20 20 20 20 4f 52   t2.a=30.     OR
32ec0 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
32ed0 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
32ee0 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
32ef0 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
32f00 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
32f10 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
32f20 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
32f30 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
32f40 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
32f50 79 33 2d 32 2e 33 31 2e 67 65 2e 31 30 20 7b 0a  y3-2.31.ge.10 {.
32f60 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
32f70 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
32f80 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
32f90 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28  1.rowid >= CAST(
32fa0 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20  t2.r AS real).  
32fb0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 30     WHERE t2.a=30
32fc0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74  .     ORDER BY t
32fd0 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 33  1.rowid.  }.} {3
32fe0 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20  0 61 8 16 23 50 
32ff0 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32  48 62 15 42 18 2
33000 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35  4 9 6 12 40 20 5
33010 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36  1 14 36 39 22 46
33020 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32   35 57 19 7 56 2
33030 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33  5 34 10 26 13 43
33040 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a   27 45 17 28 3}.
33050 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
33060 33 2d 32 2e 33 31 2e 67 65 2e 31 31 20 7b 0a 20  3-2.31.ge.11 {. 
33070 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
33080 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
33090 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
330a0 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74  .rowid >= CAST(t
330b0 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
330c0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 30 0a    WHERE t2.a=30.
330d0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
330e0 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
330f0 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37  } {3 28 17 45 27
33100 20 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20   43 13 26 10 34 
33110 32 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35  25 56 7 19 57 35
33120 20 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20   46 22 39 36 14 
33130 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
33140 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
33150 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
33160 33 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  30}.do_test boun
33170 64 61 72 79 33 2d 32 2e 33 31 2e 6c 74 2e 31 20  dary3-2.31.lt.1 
33180 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
33190 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
331a0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
331b0 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
331c0 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 32 35 35  E t1.rowid < 255
331d0 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
331e0 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20 31 31   }.} {1 2 4 5 11
331f0 20 32 31 20 32 39 20 33 31 20 33 32 20 33 33 20   21 29 31 32 33 
33200 33 37 20 33 38 20 34 31 20 34 34 20 34 37 20 34  37 38 41 44 47 4
33210 39 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38  9 52 53 54 55 58
33220 20 35 39 20 36 30 20 36 33 20 36 34 7d 0a 64 6f   59 60 63 64}.do
33230 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
33240 32 2e 33 31 2e 6c 74 2e 32 20 7b 0a 20 20 64 62  2.31.lt.2 {.  db
33250 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
33260 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20  CT t2.a FROM t2 
33270 4e 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a  NATURAL JOIN t1.
33280 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f       WHERE t1.ro
33290 77 69 64 20 3c 20 32 35 35 20 4f 52 44 45 52 20  wid < 255 ORDER 
332a0 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
332b0 0a 7d 20 7b 36 34 20 36 33 20 36 30 20 35 39 20  .} {64 63 60 59 
332c0 35 38 20 35 35 20 35 34 20 35 33 20 35 32 20 34  58 55 54 53 52 4
332d0 39 20 34 37 20 34 34 20 34 31 20 33 38 20 33 37  9 47 44 41 38 37
332e0 20 33 33 20 33 32 20 33 31 20 32 39 20 32 31 20   33 32 31 29 21 
332f0 31 31 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74  11 5 4 2 1}.do_t
33300 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
33310 33 31 2e 6c 74 2e 33 20 7b 0a 20 20 64 62 20 65  31.lt.3 {.  db e
33320 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
33330 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
33340 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
33350 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48  d < t2.r.     WH
33360 45 52 45 20 74 32 2e 61 3d 33 30 0a 20 20 20 20  ERE t2.a=30.    
33370 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
33380 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36  id.  }.} {55 2 6
33390 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
333a0 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
333b0 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
333c0 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
333d0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
333e0 72 79 33 2d 32 2e 33 31 2e 6c 74 2e 34 20 7b 0a  ry3-2.31.lt.4 {.
333f0 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
33400 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
33410 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
33420 31 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20  1.rowid < t2.r. 
33430 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
33440 30 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  0.     ORDER BY 
33450 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
33460 7d 0a 7d 20 7b 34 39 20 34 20 33 31 20 35 20 34  }.} {49 4 31 5 4
33470 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
33480 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
33490 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34 34  1 11 47 63 58 44
334a0 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f   21 64 2 55}.do_
334b0 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
334c0 2e 33 31 2e 6c 74 2e 35 20 7b 0a 20 20 64 62 20  .31.lt.5 {.  db 
334d0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
334e0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
334f0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
33500 69 64 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57  id < t2.r.     W
33510 48 45 52 45 20 74 32 2e 61 3d 33 30 0a 20 20 20  HERE t2.a=30.   
33520 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
33530 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33  .} {59 60 41 5 3
33540 31 20 34 20 34 39 20 35 35 20 32 20 36 34 20 32  1 4 49 55 2 64 2
33550 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31  1 44 58 63 47 11
33560 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
33570 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f 74  3 52 33 38}.do_t
33580 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
33590 33 31 2e 6c 74 2e 31 30 20 7b 0a 20 20 64 62 20  31.lt.10 {.  db 
335a0 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
335b0 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
335c0 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
335d0 69 64 20 3c 20 43 41 53 54 28 74 32 2e 72 20 41  id < CAST(t2.r A
335e0 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
335f0 52 45 20 74 32 2e 61 3d 33 30 0a 20 20 20 20 20  RE t2.a=30.     
33600 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
33610 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
33620 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
33630 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34  11 1 37 29 32 54
33640 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39 20   53 52 33 38 59 
33650 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 7d  60 41 5 31 4 49}
33660 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
33670 79 33 2d 32 2e 33 31 2e 6c 74 2e 31 31 20 7b 0a  y3-2.31.lt.11 {.
33680 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
33690 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
336a0 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
336b0 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74  1.rowid < CAST(t
336c0 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
336d0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 30 0a    WHERE t2.a=30.
336e0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
336f0 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
33700 7d 20 7b 34 39 20 34 20 33 31 20 35 20 34 31 20  } {49 4 31 5 41 
33710 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
33720 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
33730 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
33740 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
33750 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
33760 31 2e 6c 65 2e 31 20 7b 0a 20 20 64 62 20 65 76  1.le.1 {.  db ev
33770 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
33780 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
33790 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
337a0 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
337b0 64 20 3c 3d 20 32 35 35 20 4f 52 44 45 52 20 42  d <= 255 ORDER B
337c0 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31 20  Y t2.a.  }.} {1 
337d0 32 20 34 20 35 20 31 31 20 32 31 20 32 39 20 33  2 4 5 11 21 29 3
337e0 30 20 33 31 20 33 32 20 33 33 20 33 37 20 33 38  0 31 32 33 37 38
337f0 20 34 31 20 34 34 20 34 37 20 34 39 20 35 32 20   41 44 47 49 52 
33800 35 33 20 35 34 20 35 35 20 35 38 20 35 39 20 36  53 54 55 58 59 6
33810 30 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74  0 63 64}.do_test
33820 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e   boundary3-2.31.
33830 6c 65 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c  le.2 {.  db eval
33840 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
33850 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52  .a FROM t2 NATUR
33860 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20  AL JOIN t1.     
33870 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
33880 3d 20 32 35 35 20 4f 52 44 45 52 20 42 59 20 74  = 255 ORDER BY t
33890 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
338a0 36 34 20 36 33 20 36 30 20 35 39 20 35 38 20 35  64 63 60 59 58 5
338b0 35 20 35 34 20 35 33 20 35 32 20 34 39 20 34 37  5 54 53 52 49 47
338c0 20 34 34 20 34 31 20 33 38 20 33 37 20 33 33 20   44 41 38 37 33 
338d0 33 32 20 33 31 20 33 30 20 32 39 20 32 31 20 31  32 31 30 29 21 1
338e0 31 20 35 20 34 20 32 20 31 7d 0a 64 6f 5f 74 65  1 5 4 2 1}.do_te
338f0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
33900 31 2e 6c 65 2e 33 20 7b 0a 20 20 64 62 20 65 76  1.le.3 {.  db ev
33910 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
33920 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
33930 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
33940 20 3c 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48   <= t2.r.     WH
33950 45 52 45 20 74 32 2e 61 3d 33 30 0a 20 20 20 20  ERE t2.a=30.    
33960 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77   ORDER BY t1.row
33970 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36  id.  }.} {55 2 6
33980 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37  4 21 44 58 63 47
33990 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
339a0 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35 39  4 53 52 33 38 59
339b0 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39   60 41 5 31 4 49
339c0 20 33 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   30}.do_test bou
339d0 6e 64 61 72 79 33 2d 32 2e 33 31 2e 6c 65 2e 34  ndary3-2.31.le.4
339e0 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
339f0 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
33a00 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
33a10 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32  N t1.rowid <= t2
33a20 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
33a30 2e 61 3d 33 30 0a 20 20 20 20 20 4f 52 44 45 52  .a=30.     ORDER
33a40 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
33a50 43 0a 20 20 7d 0a 7d 20 7b 33 30 20 34 39 20 34  C.  }.} {30 49 4
33a60 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
33a70 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
33a80 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
33a90 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
33aa0 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
33ab0 64 61 72 79 33 2d 32 2e 33 31 2e 6c 65 2e 35 20  dary3-2.31.le.5 
33ac0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
33ad0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
33ae0 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
33af0 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e   t1.rowid <= t2.
33b00 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  r.     WHERE t2.
33b10 61 3d 33 30 0a 20 20 20 20 20 4f 52 44 45 52 20  a=30.     ORDER 
33b20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36  BY x.  }.} {59 6
33b30 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33  0 41 5 31 4 49 3
33b40 30 20 35 35 20 32 20 36 34 20 32 31 20 34 34 20  0 55 2 64 21 44 
33b50 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
33b60 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
33b70 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62  33 38}.do_test b
33b80 6f 75 6e 64 61 72 79 33 2d 32 2e 33 31 2e 6c 65  oundary3-2.31.le
33b90 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .10 {.  db eval 
33ba0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
33bb0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
33bc0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
33bd0 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
33be0 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
33bf0 32 2e 61 3d 33 30 0a 20 20 20 20 20 4f 52 44 45  2.a=30.     ORDE
33c00 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
33c10 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20  }.} {55 2 64 21 
33c20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
33c30 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
33c40 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
33c50 31 20 35 20 33 31 20 34 20 34 39 20 33 30 7d 0a  1 5 31 4 49 30}.
33c60 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
33c70 33 2d 32 2e 33 31 2e 6c 65 2e 31 31 20 7b 0a 20  3-2.31.le.11 {. 
33c80 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
33c90 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
33ca0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
33cb0 2e 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74  .rowid <= CAST(t
33cc0 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
33cd0 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 30 0a    WHERE t2.a=30.
33ce0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
33cf0 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
33d00 7d 20 7b 33 30 20 34 39 20 34 20 33 31 20 35 20  } {30 49 4 31 5 
33d10 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35  41 60 59 38 33 5
33d20 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37  2 53 54 32 29 37
33d30 20 31 20 31 31 20 34 37 20 36 33 20 35 38 20 34   1 11 47 63 58 4
33d40 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64 6f  4 21 64 2 55}.do
33d50 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
33d60 32 2e 33 32 2e 31 20 7b 0a 20 20 64 62 20 65 76  2.32.1 {.  db ev
33d70 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
33d80 74 31 2e 2a 20 46 52 4f 4d 20 74 31 2c 20 74 32  t1.* FROM t1, t2
33d90 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 3d   WHERE t1.rowid=
33da0 2d 32 31 34 37 34 38 33 36 34 38 20 41 4e 44 20  -2147483648 AND 
33db0 74 32 2e 61 3d 74 31 2e 61 0a 20 20 7d 0a 7d 20  t2.a=t1.a.  }.} 
33dc0 7b 31 31 20 66 66 66 66 66 66 66 66 38 30 30 30  {11 ffffffff8000
33dd0 30 30 30 30 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  0000}.do_test bo
33de0 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 32 20 7b  undary3-2.32.2 {
33df0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
33e00 20 53 45 4c 45 43 54 20 74 32 2e 2a 20 46 52 4f   SELECT t2.* FRO
33e10 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53 49  M t1 JOIN t2 USI
33e20 4e 47 28 61 29 20 57 48 45 52 45 20 78 3d 27 66  NG(a) WHERE x='f
33e30 66 66 66 66 66 66 66 38 30 30 30 30 30 30 30 27  fffffff80000000'
33e40 0a 20 20 7d 0a 7d 20 7b 2d 32 31 34 37 34 38 33  .  }.} {-2147483
33e50 36 34 38 20 31 31 7d 0a 64 6f 5f 74 65 73 74 20  648 11}.do_test 
33e60 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 33  boundary3-2.32.3
33e70 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
33e80 20 20 20 53 45 4c 45 43 54 20 74 31 2e 72 6f 77     SELECT t1.row
33e90 69 64 2c 20 78 20 46 52 4f 4d 20 74 31 20 4a 4f  id, x FROM t1 JO
33ea0 49 4e 20 74 32 20 4f 4e 20 74 32 2e 72 3d 74 31  IN t2 ON t2.r=t1
33eb0 2e 72 6f 77 69 64 20 57 48 45 52 45 20 74 32 2e  .rowid WHERE t2.
33ec0 61 3d 31 31 0a 20 20 7d 0a 7d 20 7b 2d 32 31 34  a=11.  }.} {-214
33ed0 37 34 38 33 36 34 38 20 66 66 66 66 66 66 66 66  7483648 ffffffff
33ee0 38 30 30 30 30 30 30 30 7d 0a 64 6f 5f 74 65 73  80000000}.do_tes
33ef0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32  t boundary3-2.32
33f00 2e 67 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61  .gt.1 {.  db eva
33f10 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
33f20 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  2.a FROM t1 JOIN
33f30 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20   t2 USING(a).   
33f40 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
33f50 20 3e 20 2d 32 31 34 37 34 38 33 36 34 38 20 4f   > -2147483648 O
33f60 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
33f70 0a 7d 20 7b 31 20 33 20 34 20 35 20 36 20 37 20  .} {1 3 4 5 6 7 
33f80 38 20 39 20 31 30 20 31 32 20 31 33 20 31 34 20  8 9 10 12 13 14 
33f90 31 35 20 31 36 20 31 37 20 31 38 20 31 39 20 32  15 16 17 18 19 2
33fa0 30 20 32 32 20 32 33 20 32 34 20 32 35 20 32 36  0 22 23 24 25 26
33fb0 20 32 37 20 32 38 20 32 39 20 33 30 20 33 31 20   27 28 29 30 31 
33fc0 33 32 20 33 33 20 33 34 20 33 35 20 33 36 20 33  32 33 34 35 36 3
33fd0 37 20 33 38 20 33 39 20 34 30 20 34 31 20 34 32  7 38 39 40 41 42
33fe0 20 34 33 20 34 35 20 34 36 20 34 38 20 34 39 20   43 45 46 48 49 
33ff0 35 30 20 35 31 20 35 32 20 35 33 20 35 34 20 35  50 51 52 53 54 5
34000 36 20 35 37 20 35 39 20 36 30 20 36 31 20 36 32  6 57 59 60 61 62
34010 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
34020 72 79 33 2d 32 2e 33 32 2e 67 74 2e 32 20 7b 0a  ry3-2.32.gt.2 {.
34030 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
34040 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d  SELECT t2.a FROM
34050 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49 4e   t2 NATURAL JOIN
34060 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20 74   t1.     WHERE t
34070 31 2e 72 6f 77 69 64 20 3e 20 2d 32 31 34 37 34  1.rowid > -21474
34080 38 33 36 34 38 20 4f 52 44 45 52 20 42 59 20 74  83648 ORDER BY t
34090 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b  1.a DESC.  }.} {
340a0 36 32 20 36 31 20 36 30 20 35 39 20 35 37 20 35  62 61 60 59 57 5
340b0 36 20 35 34 20 35 33 20 35 32 20 35 31 20 35 30  6 54 53 52 51 50
340c0 20 34 39 20 34 38 20 34 36 20 34 35 20 34 33 20   49 48 46 45 43 
340d0 34 32 20 34 31 20 34 30 20 33 39 20 33 38 20 33  42 41 40 39 38 3
340e0 37 20 33 36 20 33 35 20 33 34 20 33 33 20 33 32  7 36 35 34 33 32
340f0 20 33 31 20 33 30 20 32 39 20 32 38 20 32 37 20   31 30 29 28 27 
34100 32 36 20 32 35 20 32 34 20 32 33 20 32 32 20 32  26 25 24 23 22 2
34110 30 20 31 39 20 31 38 20 31 37 20 31 36 20 31 35  0 19 18 17 16 15
34120 20 31 34 20 31 33 20 31 32 20 31 30 20 39 20 38   14 13 12 10 9 8
34130 20 37 20 36 20 35 20 34 20 33 20 31 7d 0a 64 6f   7 6 5 4 3 1}.do
34140 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
34150 32 2e 33 32 2e 67 74 2e 33 20 7b 0a 20 20 64 62  2.32.gt.3 {.  db
34160 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
34170 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
34180 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
34190 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20 20 20  wid > t2.r.     
341a0 57 48 45 52 45 20 74 32 2e 61 3d 31 31 0a 20 20  WHERE t2.a=11.  
341b0 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
341c0 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 31 20 33 37  owid.  }.} {1 37
341d0 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
341e0 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20 35  33 38 59 60 41 5
341f0 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20 38   31 4 49 30 61 8
34200 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32 20   16 23 50 48 62 
34210 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36 20  15 42 18 24 9 6 
34220 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20 33  12 40 20 51 14 3
34230 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35 37  6 39 22 46 35 57
34240 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31   19 7 56 25 34 1
34250 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35  0 26 13 43 27 45
34260 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73   17 28 3}.do_tes
34270 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32  t boundary3-2.32
34280 2e 67 74 2e 34 20 7b 0a 20 20 64 62 20 65 76 61  .gt.4 {.  db eva
34290 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
342a0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
342b0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
342c0 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  > t2.r.     WHER
342d0 45 20 74 32 2e 61 3d 31 31 0a 20 20 20 20 20 4f  E t2.a=11.     O
342e0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
342f0 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32   DESC.  }.} {3 2
34300 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33  8 17 45 27 43 13
34310 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20   26 10 34 25 56 
34320 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32  7 19 57 35 46 22
34330 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20   39 36 14 51 20 
34340 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20  40 12 6 9 24 18 
34350 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32  42 15 62 48 50 2
34360 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
34370 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
34380 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
34390 32 20 32 39 20 33 37 20 31 7d 0a 64 6f 5f 74 65  2 29 37 1}.do_te
343a0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
343b0 32 2e 67 74 2e 35 20 7b 0a 20 20 64 62 20 65 76  2.gt.5 {.  db ev
343c0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
343d0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
343e0 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
343f0 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
34400 52 45 20 74 32 2e 61 3d 31 31 0a 20 20 20 20 20  RE t2.a=11.     
34410 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
34420 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31 20   {59 60 41 5 31 
34430 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
34440 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
34450 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
34460 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33 39  0 20 51 14 36 39
34470 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39 20   22 46 35 57 19 
34480 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32 36  7 56 25 34 10 26
34490 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37 20   13 43 27 45 17 
344a0 32 38 20 33 20 31 20 33 37 20 32 39 20 33 32 20  28 3 1 37 29 32 
344b0 35 34 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a  54 53 52 33 38}.
344c0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
344d0 33 2d 32 2e 33 32 2e 67 74 2e 31 30 20 7b 0a 20  3-2.32.gt.10 {. 
344e0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
344f0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
34500 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
34510 2e 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32  .rowid > CAST(t2
34520 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
34530 20 57 48 45 52 45 20 74 32 2e 61 3d 31 31 0a 20   WHERE t2.a=11. 
34540 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
34550 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 31 20 33  rowid.  }.} {1 3
34560 37 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32  7 29 32 54 53 52
34570 20 33 33 20 33 38 20 35 39 20 36 30 20 34 31 20   33 38 59 60 41 
34580 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31 20  5 31 4 49 30 61 
34590 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36 32  8 16 23 50 48 62
345a0 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20 36   15 42 18 24 9 6
345b0 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34 20   12 40 20 51 14 
345c0 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20 35  36 39 22 46 35 5
345d0 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34 20  7 19 7 56 25 34 
345e0 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20 34  10 26 13 43 27 4
345f0 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65  5 17 28 3}.do_te
34600 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
34610 32 2e 67 74 2e 31 31 20 7b 0a 20 20 64 62 20 65  2.gt.11 {.  db e
34620 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
34630 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
34640 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
34650 64 20 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53  d > CAST(t2.r AS
34660 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52   real).     WHER
34670 45 20 74 32 2e 61 3d 31 31 0a 20 20 20 20 20 4f  E t2.a=11.     O
34680 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
34690 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32   DESC.  }.} {3 2
346a0 38 20 31 37 20 34 35 20 32 37 20 34 33 20 31 33  8 17 45 27 43 13
346b0 20 32 36 20 31 30 20 33 34 20 32 35 20 35 36 20   26 10 34 25 56 
346c0 37 20 31 39 20 35 37 20 33 35 20 34 36 20 32 32  7 19 57 35 46 22
346d0 20 33 39 20 33 36 20 31 34 20 35 31 20 32 30 20   39 36 14 51 20 
346e0 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20  40 12 6 9 24 18 
346f0 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32  42 15 62 48 50 2
34700 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20  3 16 8 61 30 49 
34710 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20  4 31 5 41 60 59 
34720 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33  38 33 52 53 54 3
34730 32 20 32 39 20 33 37 20 31 7d 0a 64 6f 5f 74 65  2 29 37 1}.do_te
34740 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
34750 32 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65 76  2.ge.1 {.  db ev
34760 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
34770 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t2.a FROM t1 JOI
34780 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20 20  N t2 USING(a).  
34790 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69     WHERE t1.rowi
347a0 64 20 3e 3d 20 2d 32 31 34 37 34 38 33 36 34 38  d >= -2147483648
347b0 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20   ORDER BY t2.a. 
347c0 20 7d 0a 7d 20 7b 31 20 33 20 34 20 35 20 36 20   }.} {1 3 4 5 6 
347d0 37 20 38 20 39 20 31 30 20 31 31 20 31 32 20 31  7 8 9 10 11 12 1
347e0 33 20 31 34 20 31 35 20 31 36 20 31 37 20 31 38  3 14 15 16 17 18
347f0 20 31 39 20 32 30 20 32 32 20 32 33 20 32 34 20   19 20 22 23 24 
34800 32 35 20 32 36 20 32 37 20 32 38 20 32 39 20 33  25 26 27 28 29 3
34810 30 20 33 31 20 33 32 20 33 33 20 33 34 20 33 35  0 31 32 33 34 35
34820 20 33 36 20 33 37 20 33 38 20 33 39 20 34 30 20   36 37 38 39 40 
34830 34 31 20 34 32 20 34 33 20 34 35 20 34 36 20 34  41 42 43 45 46 4
34840 38 20 34 39 20 35 30 20 35 31 20 35 32 20 35 33  8 49 50 51 52 53
34850 20 35 34 20 35 36 20 35 37 20 35 39 20 36 30 20   54 56 57 59 60 
34860 36 31 20 36 32 7d 0a 64 6f 5f 74 65 73 74 20 62  61 62}.do_test b
34870 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 67 65  oundary3-2.32.ge
34880 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
34890 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
348a0 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
348b0 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
348c0 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20  ERE t1.rowid >= 
348d0 2d 32 31 34 37 34 38 33 36 34 38 20 4f 52 44 45  -2147483648 ORDE
348e0 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20  R BY t1.a DESC. 
348f0 20 7d 0a 7d 20 7b 36 32 20 36 31 20 36 30 20 35   }.} {62 61 60 5
34900 39 20 35 37 20 35 36 20 35 34 20 35 33 20 35 32  9 57 56 54 53 52
34910 20 35 31 20 35 30 20 34 39 20 34 38 20 34 36 20   51 50 49 48 46 
34920 34 35 20 34 33 20 34 32 20 34 31 20 34 30 20 33  45 43 42 41 40 3
34930 39 20 33 38 20 33 37 20 33 36 20 33 35 20 33 34  9 38 37 36 35 34
34940 20 33 33 20 33 32 20 33 31 20 33 30 20 32 39 20   33 32 31 30 29 
34950 32 38 20 32 37 20 32 36 20 32 35 20 32 34 20 32  28 27 26 25 24 2
34960 33 20 32 32 20 32 30 20 31 39 20 31 38 20 31 37  3 22 20 19 18 17
34970 20 31 36 20 31 35 20 31 34 20 31 33 20 31 32 20   16 15 14 13 12 
34980 31 31 20 31 30 20 39 20 38 20 37 20 36 20 35 20  11 10 9 8 7 6 5 
34990 34 20 33 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62  4 3 1}.do_test b
349a0 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 67 65  oundary3-2.32.ge
349b0 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .3 {.  db eval {
349c0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
349d0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
349e0 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
349f0 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
34a00 74 32 2e 61 3d 31 31 0a 20 20 20 20 20 4f 52 44  t2.a=11.     ORD
34a10 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20  ER BY t1.rowid. 
34a20 20 7d 0a 7d 20 7b 31 31 20 31 20 33 37 20 32 39   }.} {11 1 37 29
34a30 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
34a40 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
34a50 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
34a60 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
34a70 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
34a80 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
34a90 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
34aa0 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
34ab0 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
34ac0 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
34ad0 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 67 65  oundary3-2.32.ge
34ae0 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
34af0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
34b00 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
34b10 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
34b20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
34b30 74 32 2e 61 3d 31 31 0a 20 20 20 20 20 4f 52 44  t2.a=11.     ORD
34b40 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
34b50 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
34b60 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
34b70 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
34b80 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
34b90 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
34ba0 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
34bb0 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20   15 62 48 50 23 
34bc0 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20  16 8 61 30 49 4 
34bd0 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38  31 5 41 60 59 38
34be0 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20   33 52 53 54 32 
34bf0 32 39 20 33 37 20 31 20 31 31 7d 0a 64 6f 5f 74  29 37 1 11}.do_t
34c00 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
34c10 33 32 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20 65  32.ge.5 {.  db e
34c20 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
34c30 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
34c40 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
34c50 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57  d >= t2.r.     W
34c60 48 45 52 45 20 74 32 2e 61 3d 31 31 0a 20 20 20  HERE t2.a=11.   
34c70 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d    ORDER BY x.  }
34c80 0a 7d 20 7b 35 39 20 36 30 20 34 31 20 35 20 33  .} {59 60 41 5 3
34c90 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
34ca0 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
34cb0 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32   42 18 24 9 6 12
34cc0 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20   40 20 51 14 36 
34cd0 33 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31  39 22 46 35 57 1
34ce0 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20  9 7 56 25 34 10 
34cf0 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31  26 13 43 27 45 1
34d00 37 20 32 38 20 33 20 31 31 20 31 20 33 37 20 32  7 28 3 11 1 37 2
34d10 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
34d20 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   38}.do_test bou
34d30 6e 64 61 72 79 33 2d 32 2e 33 32 2e 67 65 2e 31  ndary3-2.32.ge.1
34d40 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  0 {.  db eval {.
34d50 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
34d60 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
34d70 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43  ON t1.rowid >= C
34d80 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c  AST(t2.r AS real
34d90 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e  ).     WHERE t2.
34da0 61 3d 31 31 0a 20 20 20 20 20 4f 52 44 45 52 20  a=11.     ORDER 
34db0 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a  BY t1.rowid.  }.
34dc0 7d 20 7b 31 31 20 31 20 33 37 20 32 39 20 33 32  } {11 1 37 29 32
34dd0 20 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20   54 53 52 33 38 
34de0 35 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20  59 60 41 5 31 4 
34df0 34 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33  49 30 61 8 16 23
34e00 20 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20   50 48 62 15 42 
34e10 31 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20  18 24 9 6 12 40 
34e20 32 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32  20 51 14 36 39 2
34e30 32 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20  2 46 35 57 19 7 
34e40 35 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31  56 25 34 10 26 1
34e50 33 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38  3 43 27 45 17 28
34e60 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e   3}.do_test boun
34e70 64 61 72 79 33 2d 32 2e 33 32 2e 67 65 2e 31 31  dary3-2.32.ge.11
34e80 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
34e90 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
34ea0 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
34eb0 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41  N t1.rowid >= CA
34ec0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
34ed0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
34ee0 3d 31 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =11.     ORDER B
34ef0 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
34f00 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34    }.} {3 28 17 4
34f10 35 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30  5 27 43 13 26 10
34f20 20 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35   34 25 56 7 19 5
34f30 37 20 33 35 20 34 36 20 32 32 20 33 39 20 33 36  7 35 46 22 39 36
34f40 20 31 34 20 35 31 20 32 30 20 34 30 20 31 32 20   14 51 20 40 12 
34f50 36 20 39 20 32 34 20 31 38 20 34 32 20 31 35 20  6 9 24 18 42 15 
34f60 36 32 20 34 38 20 35 30 20 32 33 20 31 36 20 38  62 48 50 23 16 8
34f70 20 36 31 20 33 30 20 34 39 20 34 20 33 31 20 35   61 30 49 4 31 5
34f80 20 34 31 20 36 30 20 35 39 20 33 38 20 33 33 20   41 60 59 38 33 
34f90 35 32 20 35 33 20 35 34 20 33 32 20 32 39 20 33  52 53 54 32 29 3
34fa0 37 20 31 20 31 31 7d 0a 64 6f 5f 74 65 73 74 20  7 1 11}.do_test 
34fb0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 6c  boundary3-2.32.l
34fc0 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.1 {.  db eval 
34fd0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
34fe0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
34ff0 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
35000 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
35010 20 2d 32 31 34 37 34 38 33 36 34 38 20 4f 52 44   -2147483648 ORD
35020 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d  ER BY t2.a.  }.}
35030 20 7b 32 20 32 31 20 34 34 20 34 37 20 35 35 20   {2 21 44 47 55 
35040 35 38 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73  58 63 64}.do_tes
35050 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32  t boundary3-2.32
35060 2e 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61  .lt.2 {.  db eva
35070 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
35080 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55  2.a FROM t2 NATU
35090 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20  RAL JOIN t1.    
350a0 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20   WHERE t1.rowid 
350b0 3c 20 2d 32 31 34 37 34 38 33 36 34 38 20 4f 52  < -2147483648 OR
350c0 44 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43  DER BY t1.a DESC
350d0 0a 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 35 38  .  }.} {64 63 58
350e0 20 35 35 20 34 37 20 34 34 20 32 31 20 32 7d 0a   55 47 44 21 2}.
350f0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
35100 33 2d 32 2e 33 32 2e 6c 74 2e 33 20 7b 0a 20 20  3-2.32.lt.3 {.  
35110 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
35120 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
35130 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
35140 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20 20  rowid < t2.r.   
35150 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 31 0a    WHERE t2.a=11.
35160 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
35170 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
35180 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
35190 33 20 34 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  3 47}.do_test bo
351a0 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 6c 74 2e  undary3-2.32.lt.
351b0 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  4 {.  db eval {.
351c0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
351d0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
351e0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.rowid < t2
351f0 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
35200 2e 61 3d 31 31 0a 20 20 20 20 20 4f 52 44 45 52  .a=11.     ORDER
35210 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53   BY t1.rowid DES
35220 43 0a 20 20 7d 0a 7d 20 7b 34 37 20 36 33 20 35  C.  }.} {47 63 5
35230 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
35240 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
35250 79 33 2d 32 2e 33 32 2e 6c 74 2e 35 20 7b 0a 20  y3-2.32.lt.5 {. 
35260 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
35270 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
35280 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
35290 2e 72 6f 77 69 64 20 3c 20 74 32 2e 72 0a 20 20  .rowid < t2.r.  
352a0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 31     WHERE t2.a=11
352b0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
352c0 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20  .  }.} {55 2 64 
352d0 32 31 20 34 34 20 35 38 20 36 33 20 34 37 7d 0a  21 44 58 63 47}.
352e0 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
352f0 33 2d 32 2e 33 32 2e 6c 74 2e 31 30 20 7b 0a 20  3-2.32.lt.10 {. 
35300 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
35310 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
35320 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
35330 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74 32  .rowid < CAST(t2
35340 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
35350 20 57 48 45 52 45 20 74 32 2e 61 3d 31 31 0a 20   WHERE t2.a=11. 
35360 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
35370 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20  rowid.  }.} {55 
35380 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36 33  2 64 21 44 58 63
35390 20 34 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   47}.do_test bou
353a0 6e 64 61 72 79 33 2d 32 2e 33 32 2e 6c 74 2e 31  ndary3-2.32.lt.1
353b0 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  1 {.  db eval {.
353c0 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
353d0 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
353e0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 43 41  ON t1.rowid < CA
353f0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
35400 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
35410 3d 31 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =11.     ORDER B
35420 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
35430 20 20 7d 0a 7d 20 7b 34 37 20 36 33 20 35 38 20    }.} {47 63 58 
35440 34 34 20 32 31 20 36 34 20 32 20 35 35 7d 0a 64  44 21 64 2 55}.d
35450 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
35460 2d 32 2e 33 32 2e 6c 65 2e 31 20 7b 0a 20 20 64  -2.32.le.1 {.  d
35470 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
35480 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31  ECT t2.a FROM t1
35490 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61   JOIN t2 USING(a
354a0 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e  ).     WHERE t1.
354b0 72 6f 77 69 64 20 3c 3d 20 2d 32 31 34 37 34 38  rowid <= -214748
354c0 33 36 34 38 20 4f 52 44 45 52 20 42 59 20 74 32  3648 ORDER BY t2
354d0 2e 61 0a 20 20 7d 0a 7d 20 7b 32 20 31 31 20 32  .a.  }.} {2 11 2
354e0 31 20 34 34 20 34 37 20 35 35 20 35 38 20 36 33  1 44 47 55 58 63
354f0 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   64}.do_test bou
35500 6e 64 61 72 79 33 2d 32 2e 33 32 2e 6c 65 2e 32  ndary3-2.32.le.2
35510 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
35520 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46     SELECT t2.a F
35530 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a  ROM t2 NATURAL J
35540 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52  OIN t1.     WHER
35550 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 2d 32  E t1.rowid <= -2
35560 31 34 37 34 38 33 36 34 38 20 4f 52 44 45 52 20  147483648 ORDER 
35570 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
35580 0a 7d 20 7b 36 34 20 36 33 20 35 38 20 35 35 20  .} {64 63 58 55 
35590 34 37 20 34 34 20 32 31 20 31 31 20 32 7d 0a 64  47 44 21 11 2}.d
355a0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
355b0 2d 32 2e 33 32 2e 6c 65 2e 33 20 7b 0a 20 20 64  -2.32.le.3 {.  d
355c0 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
355d0 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31  ECT t1.a FROM t1
355e0 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72   JOIN t2 ON t1.r
355f0 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20 20 20  owid <= t2.r.   
35600 20 20 57 48 45 52 45 20 74 32 2e 61 3d 31 31 0a    WHERE t2.a=11.
35610 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
35620 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35  .rowid.  }.} {55
35630 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
35640 33 20 34 37 20 31 31 7d 0a 64 6f 5f 74 65 73 74  3 47 11}.do_test
35650 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e   boundary3-2.32.
35660 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  le.4 {.  db eval
35670 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
35680 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
35690 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
356a0 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  = t2.r.     WHER
356b0 45 20 74 32 2e 61 3d 31 31 0a 20 20 20 20 20 4f  E t2.a=11.     O
356c0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
356d0 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 31 31 20   DESC.  }.} {11 
356e0 34 37 20 36 33 20 35 38 20 34 34 20 32 31 20 36  47 63 58 44 21 6
356f0 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20  4 2 55}.do_test 
35700 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 32 2e 6c  boundary3-2.32.l
35710 65 2e 35 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  e.5 {.  db eval 
35720 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
35730 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
35740 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d  2 ON t1.rowid <=
35750 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45   t2.r.     WHERE
35760 20 74 32 2e 61 3d 31 31 0a 20 20 20 20 20 4f 52   t2.a=11.     OR
35770 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b  DER BY x.  }.} {
35780 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
35790 20 36 33 20 34 37 20 31 31 7d 0a 64 6f 5f 74 65   63 47 11}.do_te
357a0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
357b0 32 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62 20 65  2.le.10 {.  db e
357c0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
357d0 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t1.a FROM t1 JO
357e0 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69  IN t2 ON t1.rowi
357f0 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72 20 41  d <= CAST(t2.r A
35800 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57 48 45  S real).     WHE
35810 52 45 20 74 32 2e 61 3d 31 31 0a 20 20 20 20 20  RE t2.a=11.     
35820 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
35830 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34  d.  }.} {55 2 64
35840 20 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20   21 44 58 63 47 
35850 31 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  11}.do_test boun
35860 64 61 72 79 33 2d 32 2e 33 32 2e 6c 65 2e 31 31  dary3-2.32.le.11
35870 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
35880 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
35890 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
358a0 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 43 41  N t1.rowid <= CA
358b0 53 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29  ST(t2.r AS real)
358c0 0a 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61  .     WHERE t2.a
358d0 3d 31 31 0a 20 20 20 20 20 4f 52 44 45 52 20 42  =11.     ORDER B
358e0 59 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a  Y t1.rowid DESC.
358f0 20 20 7d 0a 7d 20 7b 31 31 20 34 37 20 36 33 20    }.} {11 47 63 
35900 35 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35  58 44 21 64 2 55
35910 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
35920 72 79 33 2d 32 2e 33 33 2e 31 20 7b 0a 20 20 64  ry3-2.33.1 {.  d
35930 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c  b eval {.    SEL
35940 45 43 54 20 74 31 2e 2a 20 46 52 4f 4d 20 74 31  ECT t1.* FROM t1
35950 2c 20 74 32 20 57 48 45 52 45 20 74 31 2e 72 6f  , t2 WHERE t1.ro
35960 77 69 64 3d 33 34 33 35 39 37 33 38 33 36 37 20  wid=34359738367 
35970 41 4e 44 20 74 32 2e 61 3d 74 31 2e 61 0a 20 20  AND t2.a=t1.a.  
35980 7d 0a 7d 20 7b 33 39 20 30 30 30 30 30 30 30 37  }.} {39 00000007
35990 66 66 66 66 66 66 66 66 7d 0a 64 6f 5f 74 65 73  ffffffff}.do_tes
359a0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33  t boundary3-2.33
359b0 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
359c0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 2a  .    SELECT t2.*
359d0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
359e0 20 55 53 49 4e 47 28 61 29 20 57 48 45 52 45 20   USING(a) WHERE 
359f0 78 3d 27 30 30 30 30 30 30 30 37 66 66 66 66 66  x='00000007fffff
35a00 66 66 66 27 0a 20 20 7d 0a 7d 20 7b 33 34 33 35  fff'.  }.} {3435
35a10 39 37 33 38 33 36 37 20 33 39 7d 0a 64 6f 5f 74  9738367 39}.do_t
35a20 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
35a30 33 33 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c  33.3 {.  db eval
35a40 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
35a50 2e 72 6f 77 69 64 2c 20 78 20 46 52 4f 4d 20 74  .rowid, x FROM t
35a60 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 32 2e  1 JOIN t2 ON t2.
35a70 72 3d 74 31 2e 72 6f 77 69 64 20 57 48 45 52 45  r=t1.rowid WHERE
35a80 20 74 32 2e 61 3d 33 39 0a 20 20 7d 0a 7d 20 7b   t2.a=39.  }.} {
35a90 33 34 33 35 39 37 33 38 33 36 37 20 30 30 30 30  34359738367 0000
35aa0 30 30 30 37 66 66 66 66 66 66 66 66 7d 0a 64 6f  0007ffffffff}.do
35ab0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
35ac0 32 2e 33 33 2e 67 74 2e 31 20 7b 0a 20 20 64 62  2.33.gt.1 {.  db
35ad0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
35ae0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
35af0 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
35b00 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
35b10 6f 77 69 64 20 3e 20 33 34 33 35 39 37 33 38 33  owid > 343597383
35b20 36 37 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  67 ORDER BY t2.a
35b30 0a 20 20 7d 0a 7d 20 7b 33 20 37 20 31 30 20 31  .  }.} {3 7 10 1
35b40 33 20 31 37 20 31 39 20 32 32 20 32 35 20 32 36  3 17 19 22 25 26
35b50 20 32 37 20 32 38 20 33 34 20 33 35 20 34 33 20   27 28 34 35 43 
35b60 34 35 20 34 36 20 35 36 20 35 37 7d 0a 64 6f 5f  45 46 56 57}.do_
35b70 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
35b80 2e 33 33 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20  .33.gt.2 {.  db 
35b90 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
35ba0 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e  T t2.a FROM t2 N
35bb0 41 54 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20  ATURAL JOIN t1. 
35bc0 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
35bd0 69 64 20 3e 20 33 34 33 35 39 37 33 38 33 36 37  id > 34359738367
35be0 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
35bf0 45 53 43 0a 20 20 7d 0a 7d 20 7b 35 37 20 35 36  ESC.  }.} {57 56
35c00 20 34 36 20 34 35 20 34 33 20 33 35 20 33 34 20   46 45 43 35 34 
35c10 32 38 20 32 37 20 32 36 20 32 35 20 32 32 20 31  28 27 26 25 22 1
35c20 39 20 31 37 20 31 33 20 31 30 20 37 20 33 7d 0a  9 17 13 10 7 3}.
35c30 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
35c40 33 2d 32 2e 33 33 2e 67 74 2e 33 20 7b 0a 20 20  3-2.33.gt.3 {.  
35c50 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
35c60 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
35c70 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
35c80 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20 20  rowid > t2.r.   
35c90 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 39 0a    WHERE t2.a=39.
35ca0 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
35cb0 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 32 32  .rowid.  }.} {22
35cc0 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
35cd0 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
35ce0 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
35cf0 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
35d00 61 72 79 33 2d 32 2e 33 33 2e 67 74 2e 34 20 7b  ary3-2.33.gt.4 {
35d10 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
35d20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f   SELECT t1.a FRO
35d30 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20  M t1 JOIN t2 ON 
35d40 74 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a  t1.rowid > t2.r.
35d50 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
35d60 33 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  39.     ORDER BY
35d70 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
35d80 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
35d90 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20   27 43 13 26 10 
35da0 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37  34 25 56 7 19 57
35db0 20 33 35 20 34 36 20 32 32 7d 0a 64 6f 5f 74 65   35 46 22}.do_te
35dc0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
35dd0 33 2e 67 74 2e 35 20 7b 0a 20 20 64 62 20 65 76  3.gt.5 {.  db ev
35de0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
35df0 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
35e00 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
35e10 20 3e 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   > t2.r.     WHE
35e20 52 45 20 74 32 2e 61 3d 33 39 0a 20 20 20 20 20  RE t2.a=39.     
35e30 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
35e40 20 7b 32 32 20 34 36 20 33 35 20 35 37 20 31 39   {22 46 35 57 19
35e50 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
35e60 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
35e70 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
35e80 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33 2e 67 74  oundary3-2.33.gt
35e90 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .10 {.  db eval 
35ea0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
35eb0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
35ec0 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20  2 ON t1.rowid > 
35ed0 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65 61  CAST(t2.r AS rea
35ee0 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  l).     WHERE t2
35ef0 2e 61 3d 33 39 0a 20 20 20 20 20 4f 52 44 45 52  .a=39.     ORDER
35f00 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20 7d   BY t1.rowid.  }
35f10 0a 7d 20 7b 32 32 20 34 36 20 33 35 20 35 37 20  .} {22 46 35 57 
35f20 31 39 20 37 20 35 36 20 32 35 20 33 34 20 31 30  19 7 56 25 34 10
35f30 20 32 36 20 31 33 20 34 33 20 32 37 20 34 35 20   26 13 43 27 45 
35f40 31 37 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74  17 28 3}.do_test
35f50 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33 2e   boundary3-2.33.
35f60 67 74 2e 31 31 20 7b 0a 20 20 64 62 20 65 76 61  gt.11 {.  db eva
35f70 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
35f80 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
35f90 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
35fa0 3e 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72  > CAST(t2.r AS r
35fb0 65 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20  eal).     WHERE 
35fc0 74 32 2e 61 3d 33 39 0a 20 20 20 20 20 4f 52 44  t2.a=39.     ORD
35fd0 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
35fe0 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
35ff0 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
36000 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
36010 31 39 20 35 37 20 33 35 20 34 36 20 32 32 7d 0a  19 57 35 46 22}.
36020 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
36030 33 2d 32 2e 33 33 2e 67 65 2e 31 20 7b 0a 20 20  3-2.33.ge.1 {.  
36040 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
36050 4c 45 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74  LECT t2.a FROM t
36060 31 20 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28  1 JOIN t2 USING(
36070 61 29 0a 20 20 20 20 20 57 48 45 52 45 20 74 31  a).     WHERE t1
36080 2e 72 6f 77 69 64 20 3e 3d 20 33 34 33 35 39 37  .rowid >= 343597
36090 33 38 33 36 37 20 4f 52 44 45 52 20 42 59 20 74  38367 ORDER BY t
360a0 32 2e 61 0a 20 20 7d 0a 7d 20 7b 33 20 37 20 31  2.a.  }.} {3 7 1
360b0 30 20 31 33 20 31 37 20 31 39 20 32 32 20 32 35  0 13 17 19 22 25
360c0 20 32 36 20 32 37 20 32 38 20 33 34 20 33 35 20   26 27 28 34 35 
360d0 33 39 20 34 33 20 34 35 20 34 36 20 35 36 20 35  39 43 45 46 56 5
360e0 37 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  7}.do_test bound
360f0 61 72 79 33 2d 32 2e 33 33 2e 67 65 2e 32 20 7b  ary3-2.33.ge.2 {
36100 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
36110 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
36120 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
36130 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
36140 74 31 2e 72 6f 77 69 64 20 3e 3d 20 33 34 33 35  t1.rowid >= 3435
36150 39 37 33 38 33 36 37 20 4f 52 44 45 52 20 42 59  9738367 ORDER BY
36160 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
36170 20 7b 35 37 20 35 36 20 34 36 20 34 35 20 34 33   {57 56 46 45 43
36180 20 33 39 20 33 35 20 33 34 20 32 38 20 32 37 20   39 35 34 28 27 
36190 32 36 20 32 35 20 32 32 20 31 39 20 31 37 20 31  26 25 22 19 17 1
361a0 33 20 31 30 20 37 20 33 7d 0a 64 6f 5f 74 65 73  3 10 7 3}.do_tes
361b0 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33  t boundary3-2.33
361c0 2e 67 65 2e 33 20 7b 0a 20 20 64 62 20 65 76 61  .ge.3 {.  db eva
361d0 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74  l {.    SELECT t
361e0 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e  1.a FROM t1 JOIN
361f0 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20   t2 ON t1.rowid 
36200 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45  >= t2.r.     WHE
36210 52 45 20 74 32 2e 61 3d 33 39 0a 20 20 20 20 20  RE t2.a=39.     
36220 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69  ORDER BY t1.rowi
36230 64 0a 20 20 7d 0a 7d 20 7b 33 39 20 32 32 20 34  d.  }.} {39 22 4
36240 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
36250 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
36260 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 7d  3 27 45 17 28 3}
36270 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
36280 79 33 2d 32 2e 33 33 2e 67 65 2e 34 20 7b 0a 20  y3-2.33.ge.4 {. 
36290 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
362a0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
362b0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
362c0 2e 72 6f 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20  .rowid >= t2.r. 
362d0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
362e0 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
362f0 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
36300 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
36310 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
36320 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
36330 33 35 20 34 36 20 32 32 20 33 39 7d 0a 64 6f 5f  35 46 22 39}.do_
36340 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
36350 2e 33 33 2e 67 65 2e 35 20 7b 0a 20 20 64 62 20  .33.ge.5 {.  db 
36360 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
36370 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a  T t1.a FROM t1 J
36380 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77  OIN t2 ON t1.row
36390 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20 20  id >= t2.r.     
363a0 57 48 45 52 45 20 74 32 2e 61 3d 33 39 0a 20 20  WHERE t2.a=39.  
363b0 20 20 20 4f 52 44 45 52 20 42 59 20 78 0a 20 20     ORDER BY x.  
363c0 7d 0a 7d 20 7b 33 39 20 32 32 20 34 36 20 33 35  }.} {39 22 46 35
363d0 20 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33   57 19 7 56 25 3
363e0 34 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37  4 10 26 13 43 27
363f0 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64 6f 5f   45 17 28 3}.do_
36400 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
36410 2e 33 33 2e 67 65 2e 31 30 20 7b 0a 20 20 64 62  .33.ge.10 {.  db
36420 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
36430 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
36440 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
36450 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32 2e 72  wid >= CAST(t2.r
36460 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
36470 48 45 52 45 20 74 32 2e 61 3d 33 39 0a 20 20 20  HERE t2.a=39.   
36480 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
36490 77 69 64 0a 20 20 7d 0a 7d 20 7b 33 39 20 32 32  wid.  }.} {39 22
364a0 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
364b0 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
364c0 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
364d0 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
364e0 61 72 79 33 2d 32 2e 33 33 2e 67 65 2e 31 31 20  ary3-2.33.ge.11 
364f0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
36500 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
36510 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
36520 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 43 41 53   t1.rowid >= CAS
36530 54 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a  T(t2.r AS real).
36540 20 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d       WHERE t2.a=
36550 33 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59  39.     ORDER BY
36560 20 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20   t1.rowid DESC. 
36570 20 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35   }.} {3 28 17 45
36580 20 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20   27 43 13 26 10 
36590 33 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37  34 25 56 7 19 57
365a0 20 33 35 20 34 36 20 32 32 20 33 39 7d 0a 64 6f   35 46 22 39}.do
365b0 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
365c0 32 2e 33 33 2e 6c 74 2e 31 20 7b 0a 20 20 64 62  2.33.lt.1 {.  db
365d0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
365e0 43 54 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20  CT t2.a FROM t1 
365f0 4a 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29  JOIN t2 USING(a)
36600 0a 20 20 20 20 20 57 48 45 52 45 20 74 31 2e 72  .     WHERE t1.r
36610 6f 77 69 64 20 3c 20 33 34 33 35 39 37 33 38 33  owid < 343597383
36620 36 37 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  67 ORDER BY t2.a
36630 0a 20 20 7d 0a 7d 20 7b 31 20 32 20 34 20 35 20  .  }.} {1 2 4 5 
36640 36 20 38 20 39 20 31 31 20 31 32 20 31 34 20 31  6 8 9 11 12 14 1
36650 35 20 31 36 20 31 38 20 32 30 20 32 31 20 32 33  5 16 18 20 21 23
36660 20 32 34 20 32 39 20 33 30 20 33 31 20 33 32 20   24 29 30 31 32 
36670 33 33 20 33 36 20 33 37 20 33 38 20 34 30 20 34  33 36 37 38 40 4
36680 31 20 34 32 20 34 34 20 34 37 20 34 38 20 34 39  1 42 44 47 48 49
36690 20 35 30 20 35 31 20 35 32 20 35 33 20 35 34 20   50 51 52 53 54 
366a0 35 35 20 35 38 20 35 39 20 36 30 20 36 31 20 36  55 58 59 60 61 6
366b0 32 20 36 33 20 36 34 7d 0a 64 6f 5f 74 65 73 74  2 63 64}.do_test
366c0 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33 2e   boundary3-2.33.
366d0 6c 74 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c  lt.2 {.  db eval
366e0 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32   {.    SELECT t2
366f0 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52  .a FROM t2 NATUR
36700 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20  AL JOIN t1.     
36710 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c  WHERE t1.rowid <
36720 20 33 34 33 35 39 37 33 38 33 36 37 20 4f 52 44   34359738367 ORD
36730 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
36740 20 20 7d 0a 7d 20 7b 36 34 20 36 33 20 36 32 20    }.} {64 63 62 
36750 36 31 20 36 30 20 35 39 20 35 38 20 35 35 20 35  61 60 59 58 55 5
36760 34 20 35 33 20 35 32 20 35 31 20 35 30 20 34 39  4 53 52 51 50 49
36770 20 34 38 20 34 37 20 34 34 20 34 32 20 34 31 20   48 47 44 42 41 
36780 34 30 20 33 38 20 33 37 20 33 36 20 33 33 20 33  40 38 37 36 33 3
36790 32 20 33 31 20 33 30 20 32 39 20 32 34 20 32 33  2 31 30 29 24 23
367a0 20 32 31 20 32 30 20 31 38 20 31 36 20 31 35 20   21 20 18 16 15 
367b0 31 34 20 31 32 20 31 31 20 39 20 38 20 36 20 35  14 12 11 9 8 6 5
367c0 20 34 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20   4 2 1}.do_test 
367d0 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33 2e 6c  boundary3-2.33.l
367e0 74 2e 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.3 {.  db eval 
367f0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
36800 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
36810 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20  2 ON t1.rowid < 
36820 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
36830 74 32 2e 61 3d 33 39 0a 20 20 20 20 20 4f 52 44  t2.a=39.     ORD
36840 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20  ER BY t1.rowid. 
36850 20 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31   }.} {55 2 64 21
36860 20 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20   44 58 63 47 11 
36870 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33  1 37 29 32 54 53
36880 20 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20   52 33 38 59 60 
36890 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20  41 5 31 4 49 30 
368a0 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38  61 8 16 23 50 48
368b0 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20   62 15 42 18 24 
368c0 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20  9 6 12 40 20 51 
368d0 31 34 20 33 36 7d 0a 64 6f 5f 74 65 73 74 20 62  14 36}.do_test b
368e0 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33 2e 6c 74  oundary3-2.33.lt
368f0 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
36900 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
36910 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
36920 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74   ON t1.rowid < t
36930 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
36940 32 2e 61 3d 33 39 0a 20 20 20 20 20 4f 52 44 45  2.a=39.     ORDE
36950 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
36960 53 43 0a 20 20 7d 0a 7d 20 7b 33 36 20 31 34 20  SC.  }.} {36 14 
36970 35 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20  51 20 40 12 6 9 
36980 32 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34  24 18 42 15 62 4
36990 38 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20  8 50 23 16 8 61 
369a0 33 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20  30 49 4 31 5 41 
369b0 36 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35  60 59 38 33 52 5
369c0 33 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20  3 54 32 29 37 1 
369d0 31 31 20 34 37 20 36 33 20 35 38 20 34 34 20 32  11 47 63 58 44 2
369e0 31 20 36 34 20 32 20 35 35 7d 0a 64 6f 5f 74 65  1 64 2 55}.do_te
369f0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
36a00 33 2e 6c 74 2e 35 20 7b 0a 20 20 64 62 20 65 76  3.lt.5 {.  db ev
36a10 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
36a20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49  t1.a FROM t1 JOI
36a30 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64  N t2 ON t1.rowid
36a40 20 3c 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45   < t2.r.     WHE
36a50 52 45 20 74 32 2e 61 3d 33 39 0a 20 20 20 20 20  RE t2.a=39.     
36a60 4f 52 44 45 52 20 42 59 20 78 0a 20 20 7d 0a 7d  ORDER BY x.  }.}
36a70 20 7b 35 39 20 36 30 20 34 31 20 35 20 33 31 20   {59 60 41 5 31 
36a80 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36 20  4 49 30 61 8 16 
36a90 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20 34  23 50 48 62 15 4
36aa0 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20 34  2 18 24 9 6 12 4
36ab0 30 20 32 30 20 35 31 20 31 34 20 33 36 20 35 35  0 20 51 14 36 55
36ac0 20 32 20 36 34 20 32 31 20 34 34 20 35 38 20 36   2 64 21 44 58 6
36ad0 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39 20  3 47 11 1 37 29 
36ae0 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20 33  32 54 53 52 33 3
36af0 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  8}.do_test bound
36b00 61 72 79 33 2d 32 2e 33 33 2e 6c 74 2e 31 30 20  ary3-2.33.lt.10 
36b10 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
36b20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
36b30 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
36b40 20 74 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54   t1.rowid < CAST
36b50 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
36b60 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
36b70 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
36b80 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
36b90 35 35 20 32 20 36 34 20 32 31 20 34 34 20 35 38  55 2 64 21 44 58
36ba0 20 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32   63 47 11 1 37 2
36bb0 39 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33  9 32 54 53 52 33
36bc0 20 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33   38 59 60 41 5 3
36bd0 31 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31  1 4 49 30 61 8 1
36be0 36 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35  6 23 50 48 62 15
36bf0 20 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32   42 18 24 9 6 12
36c00 20 34 30 20 32 30 20 35 31 20 31 34 20 33 36 7d   40 20 51 14 36}
36c10 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
36c20 79 33 2d 32 2e 33 33 2e 6c 74 2e 31 31 20 7b 0a  y3-2.33.lt.11 {.
36c30 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
36c40 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
36c50 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
36c60 31 2e 72 6f 77 69 64 20 3c 20 43 41 53 54 28 74  1.rowid < CAST(t
36c70 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20  2.r AS real).   
36c80 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33 39 0a    WHERE t2.a=39.
36c90 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31       ORDER BY t1
36ca0 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a  .rowid DESC.  }.
36cb0 7d 20 7b 33 36 20 31 34 20 35 31 20 32 30 20 34  } {36 14 51 20 4
36cc0 30 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34  0 12 6 9 24 18 4
36cd0 32 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33  2 15 62 48 50 23
36ce0 20 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34   16 8 61 30 49 4
36cf0 20 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33   31 5 41 60 59 3
36d00 38 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32  8 33 52 53 54 32
36d10 20 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36   29 37 1 11 47 6
36d20 33 20 35 38 20 34 34 20 32 31 20 36 34 20 32 20  3 58 44 21 64 2 
36d30 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  55}.do_test boun
36d40 64 61 72 79 33 2d 32 2e 33 33 2e 6c 65 2e 31 20  dary3-2.33.le.1 
36d50 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
36d60 20 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52    SELECT t2.a FR
36d70 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 55 53  OM t1 JOIN t2 US
36d80 49 4e 47 28 61 29 0a 20 20 20 20 20 57 48 45 52  ING(a).     WHER
36d90 45 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 33 34  E t1.rowid <= 34
36da0 33 35 39 37 33 38 33 36 37 20 4f 52 44 45 52 20  359738367 ORDER 
36db0 42 59 20 74 32 2e 61 0a 20 20 7d 0a 7d 20 7b 31  BY t2.a.  }.} {1
36dc0 20 32 20 34 20 35 20 36 20 38 20 39 20 31 31 20   2 4 5 6 8 9 11 
36dd0 31 32 20 31 34 20 31 35 20 31 36 20 31 38 20 32  12 14 15 16 18 2
36de0 30 20 32 31 20 32 33 20 32 34 20 32 39 20 33 30  0 21 23 24 29 30
36df0 20 33 31 20 33 32 20 33 33 20 33 36 20 33 37 20   31 32 33 36 37 
36e00 33 38 20 33 39 20 34 30 20 34 31 20 34 32 20 34  38 39 40 41 42 4
36e10 34 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31  4 47 48 49 50 51
36e20 20 35 32 20 35 33 20 35 34 20 35 35 20 35 38 20   52 53 54 55 58 
36e30 35 39 20 36 30 20 36 31 20 36 32 20 36 33 20 36  59 60 61 62 63 6
36e40 34 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  4}.do_test bound
36e50 61 72 79 33 2d 32 2e 33 33 2e 6c 65 2e 32 20 7b  ary3-2.33.le.2 {
36e60 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
36e70 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
36e80 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
36e90 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
36ea0 74 31 2e 72 6f 77 69 64 20 3c 3d 20 33 34 33 35  t1.rowid <= 3435
36eb0 39 37 33 38 33 36 37 20 4f 52 44 45 52 20 42 59  9738367 ORDER BY
36ec0 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d 0a 7d   t1.a DESC.  }.}
36ed0 20 7b 36 34 20 36 33 20 36 32 20 36 31 20 36 30   {64 63 62 61 60
36ee0 20 35 39 20 35 38 20 35 35 20 35 34 20 35 33 20   59 58 55 54 53 
36ef0 35 32 20 35 31 20 35 30 20 34 39 20 34 38 20 34  52 51 50 49 48 4
36f00 37 20 34 34 20 34 32 20 34 31 20 34 30 20 33 39  7 44 42 41 40 39
36f10 20 33 38 20 33 37 20 33 36 20 33 33 20 33 32 20   38 37 36 33 32 
36f20 33 31 20 33 30 20 32 39 20 32 34 20 32 33 20 32  31 30 29 24 23 2
36f30 31 20 32 30 20 31 38 20 31 36 20 31 35 20 31 34  1 20 18 16 15 14
36f40 20 31 32 20 31 31 20 39 20 38 20 36 20 35 20 34   12 11 9 8 6 5 4
36f50 20 32 20 31 7d 0a 64 6f 5f 74 65 73 74 20 62 6f   2 1}.do_test bo
36f60 75 6e 64 61 72 79 33 2d 32 2e 33 33 2e 6c 65 2e  undary3-2.33.le.
36f70 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
36f80 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
36f90 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
36fa0 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 3d 20 74  ON t1.rowid <= t
36fb0 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
36fc0 32 2e 61 3d 33 39 0a 20 20 20 20 20 4f 52 44 45  2.a=39.     ORDE
36fd0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
36fe0 7d 0a 7d 20 7b 35 35 20 32 20 36 34 20 32 31 20  }.} {55 2 64 21 
36ff0 34 34 20 35 38 20 36 33 20 34 37 20 31 31 20 31  44 58 63 47 11 1
37000 20 33 37 20 32 39 20 33 32 20 35 34 20 35 33 20   37 29 32 54 53 
37010 35 32 20 33 33 20 33 38 20 35 39 20 36 30 20 34  52 33 38 59 60 4
37020 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
37030 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
37040 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
37050 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
37060 34 20 33 36 20 33 39 7d 0a 64 6f 5f 74 65 73 74  4 36 39}.do_test
37070 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 33 2e   boundary3-2.33.
37080 6c 65 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c  le.4 {.  db eval
37090 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31   {.    SELECT t1
370a0 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20  .a FROM t1 JOIN 
370b0 74 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c  t2 ON t1.rowid <
370c0 3d 20 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52  = t2.r.     WHER
370d0 45 20 74 32 2e 61 3d 33 39 0a 20 20 20 20 20 4f  E t2.a=39.     O
370e0 52 44 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64  RDER BY t1.rowid
370f0 20 44 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 39 20   DESC.  }.} {39 
37100 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20 31  36 14 51 20 40 1
37110 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20 31  2 6 9 24 18 42 1
37120 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31 36  5 62 48 50 23 16
37130 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33 31   8 61 30 49 4 31
37140 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20 33   5 41 60 59 38 3
37150 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32 39  3 52 53 54 32 29
37160 20 33 37 20 31 20 31 31 20 34 37 20 36 33 20 35   37 1 11 47 63 5
37170 38 20 34 34 20 32 31 20 36 34 20 32 20 35 35 7d  8 44 21 64 2 55}
37180 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
37190 79 33 2d 32 2e 33 33 2e 6c 65 2e 35 20 7b 0a 20  y3-2.33.le.5 {. 
371a0 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
371b0 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
371c0 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
371d0 2e 72 6f 77 69 64 20 3c 3d 20 74 32 2e 72 0a 20  .rowid <= t2.r. 
371e0 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 33      WHERE t2.a=3
371f0 39 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  9.     ORDER BY 
37200 78 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34  x.  }.} {59 60 4
37210 31 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36  1 5 31 4 49 30 6
37220 31 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20  1 8 16 23 50 48 
37230 36 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39  62 15 42 18 24 9
37240 20 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31   6 12 40 20 51 1
37250 34 20 33 36 20 33 39 20 35 35 20 32 20 36 34 20  4 36 39 55 2 64 
37260 32 31 20 34 34 20 35 38 20 36 33 20 34 37 20 31  21 44 58 63 47 1
37270 31 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20  1 1 37 29 32 54 
37280 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64 6f 5f  53 52 33 38}.do_
37290 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32  test boundary3-2
372a0 2e 33 33 2e 6c 65 2e 31 30 20 7b 0a 20 20 64 62  .33.le.10 {.  db
372b0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
372c0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
372d0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
372e0 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32 2e 72  wid <= CAST(t2.r
372f0 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20 57   AS real).     W
37300 48 45 52 45 20 74 32 2e 61 3d 33 39 0a 20 20 20  HERE t2.a=39.   
37310 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72 6f    ORDER BY t1.ro
37320 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 35 20 32 20  wid.  }.} {55 2 
37330 36 34 20 32 31 20 34 34 20 35 38 20 36 33 20 34  64 21 44 58 63 4
37340 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20  7 11 1 37 29 32 
37350 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35  54 53 52 33 38 5
37360 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
37370 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
37380 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
37390 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
373a0 30 20 35 31 20 31 34 20 33 36 20 33 39 7d 0a 64  0 51 14 36 39}.d
373b0 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
373c0 2d 32 2e 33 33 2e 6c 65 2e 31 31 20 7b 0a 20 20  -2.33.le.11 {.  
373d0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
373e0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
373f0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
37400 72 6f 77 69 64 20 3c 3d 20 43 41 53 54 28 74 32  rowid <= CAST(t2
37410 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
37420 20 57 48 45 52 45 20 74 32 2e 61 3d 33 39 0a 20   WHERE t2.a=39. 
37430 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
37440 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
37450 20 7b 33 39 20 33 36 20 31 34 20 35 31 20 32 30   {39 36 14 51 20
37460 20 34 30 20 31 32 20 36 20 39 20 32 34 20 31 38   40 12 6 9 24 18
37470 20 34 32 20 31 35 20 36 32 20 34 38 20 35 30 20   42 15 62 48 50 
37480 32 33 20 31 36 20 38 20 36 31 20 33 30 20 34 39  23 16 8 61 30 49
37490 20 34 20 33 31 20 35 20 34 31 20 36 30 20 35 39   4 31 5 41 60 59
374a0 20 33 38 20 33 33 20 35 32 20 35 33 20 35 34 20   38 33 52 53 54 
374b0 33 32 20 32 39 20 33 37 20 31 20 31 31 20 34 37  32 29 37 1 11 47
374c0 20 36 33 20 35 38 20 34 34 20 32 31 20 36 34 20   63 58 44 21 64 
374d0 32 20 35 35 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  2 55}.do_test bo
374e0 75 6e 64 61 72 79 33 2d 32 2e 33 34 2e 31 20 7b  undary3-2.34.1 {
374f0 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
37500 20 53 45 4c 45 43 54 20 74 31 2e 2a 20 46 52 4f   SELECT t1.* FRO
37510 4d 20 74 31 2c 20 74 32 20 57 48 45 52 45 20 74  M t1, t2 WHERE t
37520 31 2e 72 6f 77 69 64 3d 2d 35 34 39 37 35 35 38  1.rowid=-5497558
37530 31 33 38 38 39 20 41 4e 44 20 74 32 2e 61 3d 74  13889 AND t2.a=t
37540 31 2e 61 0a 20 20 7d 0a 7d 20 7b 35 38 20 66 66  1.a.  }.} {58 ff
37550 66 66 66 66 37 66 66 66 66 66 66 66 66 66 7d 0a  ffff7fffffffff}.
37560 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79  do_test boundary
37570 33 2d 32 2e 33 34 2e 32 20 7b 0a 20 20 64 62 20  3-2.34.2 {.  db 
37580 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43  eval {.    SELEC
37590 54 20 74 32 2e 2a 20 46 52 4f 4d 20 74 31 20 4a  T t2.* FROM t1 J
375a0 4f 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 20  OIN t2 USING(a) 
375b0 57 48 45 52 45 20 78 3d 27 66 66 66 66 66 66 37  WHERE x='ffffff7
375c0 66 66 66 66 66 66 66 66 66 27 0a 20 20 7d 0a 7d  fffffffff'.  }.}
375d0 20 7b 2d 35 34 39 37 35 35 38 31 33 38 38 39 20   {-549755813889 
375e0 35 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e  58}.do_test boun
375f0 64 61 72 79 33 2d 32 2e 33 34 2e 33 20 7b 0a 20  dary3-2.34.3 {. 
37600 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
37610 45 4c 45 43 54 20 74 31 2e 72 6f 77 69 64 2c 20  ELECT t1.rowid, 
37620 78 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  x FROM t1 JOIN t
37630 32 20 4f 4e 20 74 32 2e 72 3d 74 31 2e 72 6f 77  2 ON t2.r=t1.row
37640 69 64 20 57 48 45 52 45 20 74 32 2e 61 3d 35 38  id WHERE t2.a=58
37650 0a 20 20 7d 0a 7d 20 7b 2d 35 34 39 37 35 35 38  .  }.} {-5497558
37660 31 33 38 38 39 20 66 66 66 66 66 66 37 66 66 66  13889 ffffff7fff
37670 66 66 66 66 66 66 7d 0a 64 6f 5f 74 65 73 74 20  ffffff}.do_test 
37680 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33 34 2e 67  boundary3-2.34.g
37690 74 2e 31 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  t.1 {.  db eval 
376a0 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e  {.    SELECT t2.
376b0 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
376c0 32 20 55 53 49 4e 47 28 61 29 0a 20 20 20 20 20  2 USING(a).     
376d0 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3e  WHERE t1.rowid >
376e0 20 2d 35 34 39 37 35 35 38 31 33 38 38 39 20 4f   -549755813889 O
376f0 52 44 45 52 20 42 59 20 74 32 2e 61 0a 20 20 7d  RDER BY t2.a.  }
37700 0a 7d 20 7b 31 20 33 20 34 20 35 20 36 20 37 20  .} {1 3 4 5 6 7 
37710 38 20 39 20 31 30 20 31 31 20 31 32 20 31 33 20  8 9 10 11 12 13 
37720 31 34 20 31 35 20 31 36 20 31 37 20 31 38 20 31  14 15 16 17 18 1
37730 39 20 32 30 20 32 32 20 32 33 20 32 34 20 32 35  9 20 22 23 24 25
37740 20 32 36 20 32 37 20 32 38 20 32 39 20 33 30 20   26 27 28 29 30 
37750 33 31 20 33 32 20 33 33 20 33 34 20 33 35 20 33  31 32 33 34 35 3
37760 36 20 33 37 20 33 38 20 33 39 20 34 30 20 34 31  6 37 38 39 40 41
37770 20 34 32 20 34 33 20 34 35 20 34 36 20 34 37 20   42 43 45 46 47 
37780 34 38 20 34 39 20 35 30 20 35 31 20 35 32 20 35  48 49 50 51 52 5
37790 33 20 35 34 20 35 36 20 35 37 20 35 39 20 36 30  3 54 56 57 59 60
377a0 20 36 31 20 36 32 20 36 33 7d 0a 64 6f 5f 74 65   61 62 63}.do_te
377b0 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e 33  st boundary3-2.3
377c0 34 2e 67 74 2e 32 20 7b 0a 20 20 64 62 20 65 76  4.gt.2 {.  db ev
377d0 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54 20  al {.    SELECT 
377e0 74 32 2e 61 20 46 52 4f 4d 20 74 32 20 4e 41 54  t2.a FROM t2 NAT
377f0 55 52 41 4c 20 4a 4f 49 4e 20 74 31 0a 20 20 20  URAL JOIN t1.   
37800 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77 69 64    WHERE t1.rowid
37810 20 3e 20 2d 35 34 39 37 35 35 38 31 33 38 38 39   > -549755813889
37820 20 4f 52 44 45 52 20 42 59 20 74 31 2e 61 20 44   ORDER BY t1.a D
37830 45 53 43 0a 20 20 7d 0a 7d 20 7b 36 33 20 36 32  ESC.  }.} {63 62
37840 20 36 31 20 36 30 20 35 39 20 35 37 20 35 36 20   61 60 59 57 56 
37850 35 34 20 35 33 20 35 32 20 35 31 20 35 30 20 34  54 53 52 51 50 4
37860 39 20 34 38 20 34 37 20 34 36 20 34 35 20 34 33  9 48 47 46 45 43
37870 20 34 32 20 34 31 20 34 30 20 33 39 20 33 38 20   42 41 40 39 38 
37880 33 37 20 33 36 20 33 35 20 33 34 20 33 33 20 33  37 36 35 34 33 3
37890 32 20 33 31 20 33 30 20 32 39 20 32 38 20 32 37  2 31 30 29 28 27
378a0 20 32 36 20 32 35 20 32 34 20 32 33 20 32 32 20   26 25 24 23 22 
378b0 32 30 20 31 39 20 31 38 20 31 37 20 31 36 20 31  20 19 18 17 16 1
378c0 35 20 31 34 20 31 33 20 31 32 20 31 31 20 31 30  5 14 13 12 11 10
378d0 20 39 20 38 20 37 20 36 20 35 20 34 20 33 20 31   9 8 7 6 5 4 3 1
378e0 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61  }.do_test bounda
378f0 72 79 33 2d 32 2e 33 34 2e 67 74 2e 33 20 7b 0a  ry3-2.34.gt.3 {.
37900 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20    db eval {.    
37910 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d  SELECT t1.a FROM
37920 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74   t1 JOIN t2 ON t
37930 31 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20  1.rowid > t2.r. 
37940 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35      WHERE t2.a=5
37950 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  8.     ORDER BY 
37960 74 31 2e 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b  t1.rowid.  }.} {
37970 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
37980 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
37990 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
379a0 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
379b0 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
379c0 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
379d0 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
379e0 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
379f0 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
37a00 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
37a10 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
37a20 6f 75 6e 64 61 72 79 33 2d 32 2e 33 34 2e 67 74  oundary3-2.34.gt
37a30 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
37a40 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
37a50 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
37a60 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 20 74   ON t1.rowid > t
37a70 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74  2.r.     WHERE t
37a80 32 2e 61 3d 35 38 0a 20 20 20 20 20 4f 52 44 45  2.a=58.     ORDE
37a90 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44 45  R BY t1.rowid DE
37aa0 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20 31  SC.  }.} {3 28 1
37ab0 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32 36  7 45 27 43 13 26
37ac0 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20 31   10 34 25 56 7 1
37ad0 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33 39  9 57 35 46 22 39
37ae0 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30 20   36 14 51 20 40 
37af0 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32 20  12 6 9 24 18 42 
37b00 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20 31  15 62 48 50 23 1
37b10 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20 33  6 8 61 30 49 4 3
37b20 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38 20  1 5 41 60 59 38 
37b30 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20 32  33 52 53 54 32 2
37b40 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33 7d  9 37 1 11 47 63}
37b50 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72  .do_test boundar
37b60 79 33 2d 32 2e 33 34 2e 67 74 2e 35 20 7b 0a 20  y3-2.34.gt.5 {. 
37b70 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53   db eval {.    S
37b80 45 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20  ELECT t1.a FROM 
37b90 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31  t1 JOIN t2 ON t1
37ba0 2e 72 6f 77 69 64 20 3e 20 74 32 2e 72 0a 20 20  .rowid > t2.r.  
37bb0 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35 38     WHERE t2.a=58
37bc0 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20 78  .     ORDER BY x
37bd0 0a 20 20 7d 0a 7d 20 7b 35 39 20 36 30 20 34 31  .  }.} {59 60 41
37be0 20 35 20 33 31 20 34 20 34 39 20 33 30 20 36 31   5 31 4 49 30 61
37bf0 20 38 20 31 36 20 32 33 20 35 30 20 34 38 20 36   8 16 23 50 48 6
37c00 32 20 31 35 20 34 32 20 31 38 20 32 34 20 39 20  2 15 42 18 24 9 
37c10 36 20 31 32 20 34 30 20 32 30 20 35 31 20 31 34  6 12 40 20 51 14
37c20 20 33 36 20 33 39 20 32 32 20 34 36 20 33 35 20   36 39 22 46 35 
37c30 35 37 20 31 39 20 37 20 35 36 20 32 35 20 33 34  57 19 7 56 25 34
37c40 20 31 30 20 32 36 20 31 33 20 34 33 20 32 37 20   10 26 13 43 27 
37c50 34 35 20 31 37 20 32 38 20 33 20 36 33 20 34 37  45 17 28 3 63 47
37c60 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20 35   11 1 37 29 32 5
37c70 34 20 35 33 20 35 32 20 33 33 20 33 38 7d 0a 64  4 53 52 33 38}.d
37c80 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
37c90 2d 32 2e 33 34 2e 67 74 2e 31 30 20 7b 0a 20 20  -2.34.gt.10 {.  
37ca0 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
37cb0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
37cc0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
37cd0 72 6f 77 69 64 20 3e 20 43 41 53 54 28 74 32 2e  rowid > CAST(t2.
37ce0 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20 20  r AS real).     
37cf0 57 48 45 52 45 20 74 32 2e 61 3d 35 38 0a 20 20  WHERE t2.a=58.  
37d00 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e 72     ORDER BY t1.r
37d10 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 36 33 20 34  owid.  }.} {63 4
37d20 37 20 31 31 20 31 20 33 37 20 32 39 20 33 32 20  7 11 1 37 29 32 
37d30 35 34 20 35 33 20 35 32 20 33 33 20 33 38 20 35  54 53 52 33 38 5
37d40 39 20 36 30 20 34 31 20 35 20 33 31 20 34 20 34  9 60 41 5 31 4 4
37d50 39 20 33 30 20 36 31 20 38 20 31 36 20 32 33 20  9 30 61 8 16 23 
37d60 35 30 20 34 38 20 36 32 20 31 35 20 34 32 20 31  50 48 62 15 42 1
37d70 38 20 32 34 20 39 20 36 20 31 32 20 34 30 20 32  8 24 9 6 12 40 2
37d80 30 20 35 31 20 31 34 20 33 36 20 33 39 20 32 32  0 51 14 36 39 22
37d90 20 34 36 20 33 35 20 35 37 20 31 39 20 37 20 35   46 35 57 19 7 5
37da0 36 20 32 35 20 33 34 20 31 30 20 32 36 20 31 33  6 25 34 10 26 13
37db0 20 34 33 20 32 37 20 34 35 20 31 37 20 32 38 20   43 27 45 17 28 
37dc0 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
37dd0 61 72 79 33 2d 32 2e 33 34 2e 67 74 2e 31 31 20  ary3-2.34.gt.11 
37de0 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20  {.  db eval {.  
37df0 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46 52    SELECT t1.a FR
37e00 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f 4e  OM t1 JOIN t2 ON
37e10 20 74 31 2e 72 6f 77 69 64 20 3e 20 43 41 53 54   t1.rowid > CAST
37e20 28 74 32 2e 72 20 41 53 20 72 65 61 6c 29 0a 20  (t2.r AS real). 
37e30 20 20 20 20 57 48 45 52 45 20 74 32 2e 61 3d 35      WHERE t2.a=5
37e40 38 0a 20 20 20 20 20 4f 52 44 45 52 20 42 59 20  8.     ORDER BY 
37e50 74 31 2e 72 6f 77 69 64 20 44 45 53 43 0a 20 20  t1.rowid DESC.  
37e60 7d 0a 7d 20 7b 33 20 32 38 20 31 37 20 34 35 20  }.} {3 28 17 45 
37e70 32 37 20 34 33 20 31 33 20 32 36 20 31 30 20 33  27 43 13 26 10 3
37e80 34 20 32 35 20 35 36 20 37 20 31 39 20 35 37 20  4 25 56 7 19 57 
37e90 33 35 20 34 36 20 32 32 20 33 39 20 33 36 20 31  35 46 22 39 36 1
37ea0 34 20 35 31 20 32 30 20 34 30 20 31 32 20 36 20  4 51 20 40 12 6 
37eb0 39 20 32 34 20 31 38 20 34 32 20 31 35 20 36 32  9 24 18 42 15 62
37ec0 20 34 38 20 35 30 20 32 33 20 31 36 20 38 20 36   48 50 23 16 8 6
37ed0 31 20 33 30 20 34 39 20 34 20 33 31 20 35 20 34  1 30 49 4 31 5 4
37ee0 31 20 36 30 20 35 39 20 33 38 20 33 33 20 35 32  1 60 59 38 33 52
37ef0 20 35 33 20 35 34 20 33 32 20 32 39 20 33 37 20   53 54 32 29 37 
37f00 31 20 31 31 20 34 37 20 36 33 7d 0a 64 6f 5f 74  1 11 47 63}.do_t
37f10 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
37f20 33 34 2e 67 65 2e 31 20 7b 0a 20 20 64 62 20 65  34.ge.1 {.  db e
37f30 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
37f40 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.a FROM t1 JO
37f50 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20  IN t2 USING(a). 
37f60 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
37f70 69 64 20 3e 3d 20 2d 35 34 39 37 35 35 38 31 33  id >= -549755813
37f80 38 38 39 20 4f 52 44 45 52 20 42 59 20 74 32 2e  889 ORDER BY t2.
37f90 61 0a 20 20 7d 0a 7d 20 7b 31 20 33 20 34 20 35  a.  }.} {1 3 4 5
37fa0 20 36 20 37 20 38 20 39 20 31 30 20 31 31 20 31   6 7 8 9 10 11 1
37fb0 32 20 31 33 20 31 34 20 31 35 20 31 36 20 31 37  2 13 14 15 16 17
37fc0 20 31 38 20 31 39 20 32 30 20 32 32 20 32 33 20   18 19 20 22 23 
37fd0 32 34 20 32 35 20 32 36 20 32 37 20 32 38 20 32  24 25 26 27 28 2
37fe0 39 20 33 30 20 33 31 20 33 32 20 33 33 20 33 34  9 30 31 32 33 34
37ff0 20 33 35 20 33 36 20 33 37 20 33 38 20 33 39 20   35 36 37 38 39 
38000 34 30 20 34 31 20 34 32 20 34 33 20 34 35 20 34  40 41 42 43 45 4
38010 36 20 34 37 20 34 38 20 34 39 20 35 30 20 35 31  6 47 48 49 50 51
38020 20 35 32 20 35 33 20 35 34 20 35 36 20 35 37 20   52 53 54 56 57 
38030 35 38 20 35 39 20 36 30 20 36 31 20 36 32 20 36  58 59 60 61 62 6
38040 33 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75 6e 64  3}.do_test bound
38050 61 72 79 33 2d 32 2e 33 34 2e 67 65 2e 32 20 7b  ary3-2.34.ge.2 {
38060 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20 20 20  .  db eval {.   
38070 20 53 45 4c 45 43 54 20 74 32 2e 61 20 46 52 4f   SELECT t2.a FRO
38080 4d 20 74 32 20 4e 41 54 55 52 41 4c 20 4a 4f 49  M t2 NATURAL JOI
38090 4e 20 74 31 0a 20 20 20 20 20 57 48 45 52 45 20  N t1.     WHERE 
380a0 74 31 2e 72 6f 77 69 64 20 3e 3d 20 2d 35 34 39  t1.rowid >= -549
380b0 37 35 35 38 31 33 38 38 39 20 4f 52 44 45 52 20  755813889 ORDER 
380c0 42 59 20 74 31 2e 61 20 44 45 53 43 0a 20 20 7d  BY t1.a DESC.  }
380d0 0a 7d 20 7b 36 33 20 36 32 20 36 31 20 36 30 20  .} {63 62 61 60 
380e0 35 39 20 35 38 20 35 37 20 35 36 20 35 34 20 35  59 58 57 56 54 5
380f0 33 20 35 32 20 35 31 20 35 30 20 34 39 20 34 38  3 52 51 50 49 48
38100 20 34 37 20 34 36 20 34 35 20 34 33 20 34 32 20   47 46 45 43 42 
38110 34 31 20 34 30 20 33 39 20 33 38 20 33 37 20 33  41 40 39 38 37 3
38120 36 20 33 35 20 33 34 20 33 33 20 33 32 20 33 31  6 35 34 33 32 31
38130 20 33 30 20 32 39 20 32 38 20 32 37 20 32 36 20   30 29 28 27 26 
38140 32 35 20 32 34 20 32 33 20 32 32 20 32 30 20 31  25 24 23 22 20 1
38150 39 20 31 38 20 31 37 20 31 36 20 31 35 20 31 34  9 18 17 16 15 14
38160 20 31 33 20 31 32 20 31 31 20 31 30 20 39 20 38   13 12 11 10 9 8
38170 20 37 20 36 20 35 20 34 20 33 20 31 7d 0a 64 6f   7 6 5 4 3 1}.do
38180 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d  _test boundary3-
38190 32 2e 33 34 2e 67 65 2e 33 20 7b 0a 20 20 64 62  2.34.ge.3 {.  db
381a0 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45   eval {.    SELE
381b0 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74 31 20  CT t1.a FROM t1 
381c0 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e 72 6f  JOIN t2 ON t1.ro
381d0 77 69 64 20 3e 3d 20 74 32 2e 72 0a 20 20 20 20  wid >= t2.r.    
381e0 20 57 48 45 52 45 20 74 32 2e 61 3d 35 38 0a 20   WHERE t2.a=58. 
381f0 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
38200 72 6f 77 69 64 0a 20 20 7d 0a 7d 20 7b 35 38 20  rowid.  }.} {58 
38210 36 33 20 34 37 20 31 31 20 31 20 33 37 20 32 39  63 47 11 1 37 29
38220 20 33 32 20 35 34 20 35 33 20 35 32 20 33 33 20   32 54 53 52 33 
38230 33 38 20 35 39 20 36 30 20 34 31 20 35 20 33 31  38 59 60 41 5 31
38240 20 34 20 34 39 20 33 30 20 36 31 20 38 20 31 36   4 49 30 61 8 16
38250 20 32 33 20 35 30 20 34 38 20 36 32 20 31 35 20   23 50 48 62 15 
38260 34 32 20 31 38 20 32 34 20 39 20 36 20 31 32 20  42 18 24 9 6 12 
38270 34 30 20 32 30 20 35 31 20 31 34 20 33 36 20 33  40 20 51 14 36 3
38280 39 20 32 32 20 34 36 20 33 35 20 35 37 20 31 39  9 22 46 35 57 19
38290 20 37 20 35 36 20 32 35 20 33 34 20 31 30 20 32   7 56 25 34 10 2
382a0 36 20 31 33 20 34 33 20 32 37 20 34 35 20 31 37  6 13 43 27 45 17
382b0 20 32 38 20 33 7d 0a 64 6f 5f 74 65 73 74 20 62   28 3}.do_test b
382c0 6f 75 6e 64 61 72 79 33 2d 32 2e 33 34 2e 67 65  oundary3-2.34.ge
382d0 2e 34 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .4 {.  db eval {
382e0 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61  .    SELECT t1.a
382f0 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32   FROM t1 JOIN t2
38300 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20   ON t1.rowid >= 
38310 74 32 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20  t2.r.     WHERE 
38320 74 32 2e 61 3d 35 38 0a 20 20 20 20 20 4f 52 44  t2.a=58.     ORD
38330 45 52 20 42 59 20 74 31 2e 72 6f 77 69 64 20 44  ER BY t1.rowid D
38340 45 53 43 0a 20 20 7d 0a 7d 20 7b 33 20 32 38 20  ESC.  }.} {3 28 
38350 31 37 20 34 35 20 32 37 20 34 33 20 31 33 20 32  17 45 27 43 13 2
38360 36 20 31 30 20 33 34 20 32 35 20 35 36 20 37 20  6 10 34 25 56 7 
38370 31 39 20 35 37 20 33 35 20 34 36 20 32 32 20 33  19 57 35 46 22 3
38380 39 20 33 36 20 31 34 20 35 31 20 32 30 20 34 30  9 36 14 51 20 40
38390 20 31 32 20 36 20 39 20 32 34 20 31 38 20 34 32   12 6 9 24 18 42
383a0 20 31 35 20 36 32 20 34 38 20 35 30 20 32 33 20   15 62 48 50 23 
383b0 31 36 20 38 20 36 31 20 33 30 20 34 39 20 34 20  16 8 61 30 49 4 
383c0 33 31 20 35 20 34 31 20 36 30 20 35 39 20 33 38  31 5 41 60 59 38
383d0 20 33 33 20 35 32 20 35 33 20 35 34 20 33 32 20   33 52 53 54 32 
383e0 32 39 20 33 37 20 31 20 31 31 20 34 37 20 36 33  29 37 1 11 47 63
383f0 20 35 38 7d 0a 64 6f 5f 74 65 73 74 20 62 6f 75   58}.do_test bou
38400 6e 64 61 72 79 33 2d 32 2e 33 34 2e 67 65 2e 35  ndary3-2.34.ge.5
38410 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a 20   {.  db eval {. 
38420 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20 46     SELECT t1.a F
38430 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20 4f  ROM t1 JOIN t2 O
38440 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d 20 74 32  N t1.rowid >= t2
38450 2e 72 0a 20 20 20 20 20 57 48 45 52 45 20 74 32  .r.     WHERE t2
38460 2e 61 3d 35 38 0a 20 20 20 20 20 4f 52 44 45 52  .a=58.     ORDER
38470 20 42 59 20 78 0a 20 20 7d 0a 7d 20 7b 35 39 20   BY x.  }.} {59 
38480 36 30 20 34 31 20 35 20 33 31 20 34 20 34 39 20  60 41 5 31 4 49 
38490 33 30 20 36 31 20 38 20 31 36 20 32 33 20 35 30  30 61 8 16 23 50
384a0 20 34 38 20 36 32 20 31 35 20 34 32 20 31 38 20   48 62 15 42 18 
384b0 32 34 20 39 20 36 20 31 32 20 34 30 20 32 30 20  24 9 6 12 40 20 
384c0 35 31 20 31 34 20 33 36 20 33 39 20 32 32 20 34  51 14 36 39 22 4
384d0 36 20 33 35 20 35 37 20 31 39 20 37 20 35 36 20  6 35 57 19 7 56 
384e0 32 35 20 33 34 20 31 30 20 32 36 20 31 33 20 34  25 34 10 26 13 4
384f0 33 20 32 37 20 34 35 20 31 37 20 32 38 20 33 20  3 27 45 17 28 3 
38500 35 38 20 36 33 20 34 37 20 31 31 20 31 20 33 37  58 63 47 11 1 37
38510 20 32 39 20 33 32 20 35 34 20 35 33 20 35 32 20   29 32 54 53 52 
38520 33 33 20 33 38 7d 0a 64 6f 5f 74 65 73 74 20 62  33 38}.do_test b
38530 6f 75 6e 64 61 72 79 33 2d 32 2e 33 34 2e 67 65  oundary3-2.34.ge
38540 2e 31 30 20 7b 0a 20 20 64 62 20 65 76 61 6c 20  .10 {.  db eval 
38550 7b 0a 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e  {.    SELECT t1.
38560 61 20 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74  a FROM t1 JOIN t
38570 32 20 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3e 3d  2 ON t1.rowid >=
38580 20 43 41 53 54 28 74 32 2e 72 20 41 53 20 72 65   CAST(t2.r AS re
38590 61 6c 29 0a 20 20 20 20 20 57 48 45 52 45 20 74  al).     WHERE t
385a0 32 2e 61 3d 35 38 0a 20 20 20 20 20 4f 52 44 45  2.a=58.     ORDE
385b0 52 20 42 59 20 74 31 2e 72 6f 77 69 64 0a 20 20  R BY t1.rowid.  
385c0 7d 0a 7d 20 7b 35 38 20 36 33 20 34 37 20 31 31  }.} {58 63 47 11
385d0 20 31 20 33 37 20 32 39 20 33 32 20 35 34 20 35   1 37 29 32 54 5
385e0 33 20 35 32 20 33 33 20 33 38 20 35 39 20 36 30  3 52 33 38 59 60
385f0 20 34 31 20 35 20 33 31 20 34 20 34 39 20 33 30   41 5 31 4 49 30
38600 20 36 31 20 38 20 31 36 20 32 33 20 35 30 20 34   61 8 16 23 50 4
38610 38 20 36 32 20 31 35 20 34 32 20 31 38 20 32 34  8 62 15 42 18 24
38620 20 39 20 36 20 31 32 20 34 30 20 32 30 20 35 31   9 6 12 40 20 51
38630 20 31 34 20 33 36 20 33 39 20 32 32 20 34 36 20   14 36 39 22 46 
38640 33 35 20 35 37 20 31 39 20 37 20 35 36 20 32 35  35 57 19 7 56 25
38650 20 33 34 20 31 30 20 32 36 20 31 33 20 34 33 20   34 10 26 13 43 
38660 32 37 20 34 35 20 31 37 20 32 38 20 33 7d 0a 64  27 45 17 28 3}.d
38670 6f 5f 74 65 73 74 20 62 6f 75 6e 64 61 72 79 33  o_test boundary3
38680 2d 32 2e 33 34 2e 67 65 2e 31 31 20 7b 0a 20 20  -2.34.ge.11 {.  
38690 64 62 20 65 76 61 6c 20 7b 0a 20 20 20 20 53 45  db eval {.    SE
386a0 4c 45 43 54 20 74 31 2e 61 20 46 52 4f 4d 20 74  LECT t1.a FROM t
386b0 31 20 4a 4f 49 4e 20 74 32 20 4f 4e 20 74 31 2e  1 JOIN t2 ON t1.
386c0 72 6f 77 69 64 20 3e 3d 20 43 41 53 54 28 74 32  rowid >= CAST(t2
386d0 2e 72 20 41 53 20 72 65 61 6c 29 0a 20 20 20 20  .r AS real).    
386e0 20 57 48 45 52 45 20 74 32 2e 61 3d 35 38 0a 20   WHERE t2.a=58. 
386f0 20 20 20 20 4f 52 44 45 52 20 42 59 20 74 31 2e      ORDER BY t1.
38700 72 6f 77 69 64 20 44 45 53 43 0a 20 20 7d 0a 7d  rowid DESC.  }.}
38710 20 7b 33 20 32 38 20 31 37 20 34 35 20 32 37 20   {3 28 17 45 27 
38720 34 33 20 31 33 20 32 36 20 31 30 20 33 34 20 32  43 13 26 10 34 2
38730 35 20 35 36 20 37 20 31 39 20 35 37 20 33 35 20  5 56 7 19 57 35 
38740 34 36 20 32 32 20 33 39 20 33 36 20 31 34 20 35  46 22 39 36 14 5
38750 31 20 32 30 20 34 30 20 31 32 20 36 20 39 20 32  1 20 40 12 6 9 2
38760 34 20 31 38 20 34 32 20 31 35 20 36 32 20 34 38  4 18 42 15 62 48
38770 20 35 30 20 32 33 20 31 36 20 38 20 36 31 20 33   50 23 16 8 61 3
38780 30 20 34 39 20 34 20 33 31 20 35 20 34 31 20 36  0 49 4 31 5 41 6
38790 30 20 35 39 20 33 38 20 33 33 20 35 32 20 35 33  0 59 38 33 52 53
387a0 20 35 34 20 33 32 20 32 39 20 33 37 20 31 20 31   54 32 29 37 1 1
387b0 31 20 34 37 20 36 33 20 35 38 7d 0a 64 6f 5f 74  1 47 63 58}.do_t
387c0 65 73 74 20 62 6f 75 6e 64 61 72 79 33 2d 32 2e  est boundary3-2.
387d0 33 34 2e 6c 74 2e 31 20 7b 0a 20 20 64 62 20 65  34.lt.1 {.  db e
387e0 76 61 6c 20 7b 0a 20 20 20 20 53 45 4c 45 43 54  val {.    SELECT
387f0 20 74 32 2e 61 20 46 52 4f 4d 20 74 31 20 4a 4f   t2.a FROM t1 JO
38800 49 4e 20 74 32 20 55 53 49 4e 47 28 61 29 0a 20  IN t2 USING(a). 
38810 20 20 20 20 57 48 45 52 45 20 74 31 2e 72 6f 77      WHERE t1.row
38820 69 64 20 3c 20 2d 35 34 39 37 35 35 38 31 33 38  id < -5497558138
38830 38 39 20 4f 52 44 45 52 20 42 59 20 74 32 2e 61  89 ORDER BY t2.a
38840 0a 20 20 7d 0a 7d 20 7b 32 20 32 31 20 34 34 20  .  }.} {2 21 44 
38850 35 35 20 36 34 7d 0a 64 6f 5f 74 65 73 74 20 62  55 64}.do_test b
38860 6f 75 6e 64 61 72 79 33 2d 32 2e 33 34 2e 6c 74  oundary3-2.34.lt
38870 2e 32 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b  .2 {.  db eval {
38880 0a 20 20 20 20 53 45 4c 45 43 54 20 74 32 2e 61  .    SELECT t2.a
38890 20 46 52 4f 4d 20 74 32 20 4e 41 54 55 52 41 4c   FROM t2 NATURAL
388a0 20 4a 4f 49 4e 20 74 31 0a 20 20 20 20 20 57 48   JOIN t1.     WH
388b0 45 52 45 20 74 31 2e 72 6f 77 69 64 20 3c 20 2d  ERE t1.rowid < -
388c0 35 34 39 37 35 35 38 31 33 38 38 39 20 4f 52 44  549755813889 ORD
388d0 45 52 20 42 59 20 74 31 2e 61 20 44 45 53 43 0a  ER BY t1.a DESC.
388e0 20 20 7d 0a 7d 20 7b 36 34 20 35 35 20 34 34 20    }.} {64 55 44 
388f0 32 31 20 32 7d 0a 64 6f 5f 74 65 73 74 20 62 6f  21 2}.do_test bo
38900 75 6e 64 61 72 79 33 2d 32 2e 33 34 2e 6c 74 2e  undary3-2.34.lt.
38910 33 20 7b 0a 20 20 64 62 20 65 76 61 6c 20 7b 0a  3 {.  db eval {.
38920 20 20 20 20 53 45 4c 45 43 54 20 74 31 2e 61 20      SELECT t1.a 
38930 46 52 4f 4d 20 74 31 20 4a 4f 49 4e 20 74 32 20  FROM t1 JOIN t2 
38940 4f 4e 20 74 31 2e 72 6f 77 69 64 20 3c 20 74 32  ON t1.