SQLite4
Hex Artifact Content
Not logged in

Artifact 9a154173461a4dbe2de49cda73963e04842d52f7:


0000: 23 20 32 30 31 30 20 4a 75 6c 79 20 31 34 0a 23  # 2010 July 14.#
0010: 0a 23 20 54 68 65 20 61 75 74 68 6f 72 20 64 69  .# The author di
0020: 73 63 6c 61 69 6d 73 20 63 6f 70 79 72 69 67 68  sclaims copyrigh
0030: 74 20 74 6f 20 74 68 69 73 20 73 6f 75 72 63 65  t to this source
0040: 20 63 6f 64 65 2e 20 20 49 6e 20 70 6c 61 63 65   code.  In place
0050: 20 6f 66 0a 23 20 61 20 6c 65 67 61 6c 20 6e 6f   of.# a legal no
0060: 74 69 63 65 2c 20 68 65 72 65 20 69 73 20 61 20  tice, here is a 
0070: 62 6c 65 73 73 69 6e 67 3a 0a 23 0a 23 20 20 20  blessing:.#.#   
0080: 20 4d 61 79 20 79 6f 75 20 64 6f 20 67 6f 6f 64   May you do good
0090: 20 61 6e 64 20 6e 6f 74 20 65 76 69 6c 2e 0a 23   and not evil..#
00a0: 20 20 20 20 4d 61 79 20 79 6f 75 20 66 69 6e 64      May you find
00b0: 20 66 6f 72 67 69 76 65 6e 65 73 73 20 66 6f 72   forgiveness for
00c0: 20 79 6f 75 72 73 65 6c 66 20 61 6e 64 20 66 6f   yourself and fo
00d0: 72 67 69 76 65 20 6f 74 68 65 72 73 2e 0a 23 20  rgive others..# 
00e0: 20 20 20 4d 61 79 20 79 6f 75 20 73 68 61 72 65     May you share
00f0: 20 66 72 65 65 6c 79 2c 20 6e 65 76 65 72 20 74   freely, never t
0100: 61 6b 69 6e 67 20 6d 6f 72 65 20 74 68 61 6e 20  aking more than 
0110: 79 6f 75 20 67 69 76 65 2e 0a 23 0a 23 2a 2a 2a  you give..#.#***
0120: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 0a 23 20 54 68 69 73 20 66 69 6c 65  ****.# This file
0170: 20 69 6d 70 6c 65 6d 65 6e 74 73 20 72 65 67 72   implements regr
0180: 65 73 73 69 6f 6e 20 74 65 73 74 73 20 66 6f 72  ession tests for
0190: 20 53 51 4c 69 74 65 20 6c 69 62 72 61 72 79 2e   SQLite library.
01a0: 20 53 70 65 63 69 66 69 63 61 6c 6c 79 2c 0a 23   Specifically,.#
01b0: 20 69 74 20 74 65 73 74 73 20 74 68 61 74 20 74   it tests that t
01c0: 69 63 6b 65 74 20 5b 38 30 65 30 33 31 61 30 30  icket [80e031a00
01d0: 66 34 35 64 63 61 38 37 37 65 64 39 32 62 32 32  f45dca877ed92b22
01e0: 35 32 30 39 63 66 61 30 39 32 38 30 66 34 66 5d  5209cfa09280f4f]
01f0: 20 68 61 73 20 62 65 65 6e 0a 23 20 72 65 73 6f   has been.# reso
0200: 6c 76 65 64 2e 20 20 54 68 61 74 20 74 69 63 6b  lved.  That tick
0210: 65 74 20 69 73 20 61 62 6f 75 74 20 49 4e 20 61  et is about IN a
0220: 6e 64 20 4e 4f 54 20 49 4e 20 6f 70 65 72 61 74  nd NOT IN operat
0230: 6f 72 73 20 77 69 74 68 20 65 6d 70 74 79 2d 73  ors with empty-s
0240: 65 74 0a 23 20 72 69 67 68 74 2d 68 61 6e 64 20  et.# right-hand 
0250: 73 69 64 65 73 2e 20 20 53 75 63 68 20 65 78 70  sides.  Such exp
0260: 72 65 73 73 69 6f 6e 73 20 73 68 6f 75 6c 64 20  ressions should 
0270: 61 6c 77 61 79 73 20 72 65 74 75 72 6e 20 54 52  always return TR
0280: 55 45 20 6f 72 20 46 41 4c 53 45 0a 23 20 65 76  UE or FALSE.# ev
0290: 65 6e 20 69 66 20 74 68 65 20 6c 65 66 74 2d 68  en if the left-h
02a0: 61 6e 64 20 73 69 64 65 20 69 73 20 4e 55 4c 4c  and side is NULL
02b0: 2e 0a 23 0a 0a 73 65 74 20 74 65 73 74 64 69 72  ..#..set testdir
02c0: 20 5b 66 69 6c 65 20 64 69 72 6e 61 6d 65 20 24   [file dirname $
02d0: 61 72 67 76 30 5d 0a 73 6f 75 72 63 65 20 24 74  argv0].source $t
02e0: 65 73 74 64 69 72 2f 74 65 73 74 65 72 2e 74 63  estdir/tester.tc
02f0: 6c 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64 69  l.source $testdi
0300: 72 2f 6c 6f 63 6b 5f 63 6f 6d 6d 6f 6e 2e 74 63  r/lock_common.tc
0310: 6c 0a 73 6f 75 72 63 65 20 24 74 65 73 74 64 69  l.source $testdi
0320: 72 2f 6d 61 6c 6c 6f 63 5f 63 6f 6d 6d 6f 6e 2e  r/malloc_common.
0330: 74 63 6c 0a 0a 23 20 45 56 49 44 45 4e 43 45 2d  tcl..# EVIDENCE-
0340: 4f 46 3a 20 52 2d 35 38 38 37 35 2d 35 36 30 38  OF: R-58875-5608
0350: 37 20 54 68 65 20 49 4e 20 61 6e 64 20 4e 4f 54  7 The IN and NOT
0360: 20 49 4e 20 6f 70 65 72 61 74 6f 72 73 20 74 61   IN operators ta
0370: 6b 65 20 61 20 73 69 6e 67 6c 65 0a 23 20 73 63  ke a single.# sc
0380: 61 6c 61 72 20 6f 70 65 72 61 6e 64 20 6f 6e 20  alar operand on 
0390: 74 68 65 20 6c 65 66 74 20 61 6e 64 20 61 20 76  the left and a v
03a0: 65 63 74 6f 72 20 6f 70 65 72 61 6e 64 20 6f 6e  ector operand on
03b0: 20 74 68 65 20 72 69 67 68 74 20 66 6f 72 6d 65   the right forme
03c0: 64 20 62 79 0a 23 20 61 6e 20 65 78 70 6c 69 63  d by.# an explic
03d0: 69 74 20 6c 69 73 74 20 6f 66 20 7a 65 72 6f 20  it list of zero 
03e0: 6f 72 20 6d 6f 72 65 20 73 63 61 6c 61 72 73 20  or more scalars 
03f0: 6f 72 20 62 79 20 61 20 73 69 6e 67 6c 65 20 73  or by a single s
0400: 75 62 71 75 65 72 79 2e 0a 23 0a 23 20 45 56 49  ubquery..#.# EVI
0410: 44 45 4e 43 45 2d 4f 46 3a 20 52 2d 35 32 32 37  DENCE-OF: R-5227
0420: 35 2d 35 35 35 30 33 20 57 68 65 6e 20 74 68 65  5-55503 When the
0430: 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 20 69   right operand i
0440: 73 20 61 6e 20 65 6d 70 74 79 20 73 65 74 2c 20  s an empty set, 
0450: 74 68 65 0a 23 20 72 65 73 75 6c 74 20 6f 66 20  the.# result of 
0460: 49 4e 20 69 73 20 66 61 6c 73 65 20 61 6e 64 20  IN is false and 
0470: 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 4e 4f  the result of NO
0480: 54 20 49 4e 20 69 73 20 74 72 75 65 2c 20 72 65  T IN is true, re
0490: 67 61 72 64 6c 65 73 73 20 6f 66 0a 23 20 74 68  gardless of.# th
04a0: 65 20 6c 65 66 74 20 6f 70 65 72 61 6e 64 20 61  e left operand a
04b0: 6e 64 20 65 76 65 6e 20 69 66 20 74 68 65 20 6c  nd even if the l
04c0: 65 66 74 20 6f 70 65 72 61 6e 64 20 69 73 20 4e  eft operand is N
04d0: 55 4c 4c 2e 0a 23 0a 23 20 45 56 49 44 45 4e 43  ULL..#.# EVIDENC
04e0: 45 2d 4f 46 3a 20 52 2d 31 33 35 39 35 2d 34 35  E-OF: R-13595-45
04f0: 38 36 33 20 4e 6f 74 65 20 74 68 61 74 20 53 51  863 Note that SQ
0500: 4c 69 74 65 20 61 6c 6c 6f 77 73 20 74 68 65 20  Lite allows the 
0510: 70 61 72 65 6e 74 68 65 73 69 7a 65 64 0a 23 20  parenthesized.# 
0520: 6c 69 73 74 20 6f 66 20 73 63 61 6c 61 72 20 76  list of scalar v
0530: 61 6c 75 65 73 20 6f 6e 20 74 68 65 20 72 69 67  alues on the rig
0540: 68 74 2d 68 61 6e 64 20 73 69 64 65 20 6f 66 20  ht-hand side of 
0550: 61 6e 20 49 4e 20 6f 72 20 4e 4f 54 20 49 4e 0a  an IN or NOT IN.
0560: 23 20 6f 70 65 72 61 74 6f 72 20 74 6f 20 62 65  # operator to be
0570: 20 61 6e 20 65 6d 70 74 79 20 6c 69 73 74 20 62   an empty list b
0580: 75 74 20 6d 6f 73 74 20 6f 74 68 65 72 20 53 51  ut most other SQ
0590: 4c 20 64 61 74 61 62 61 73 65 20 64 61 74 61 62  L database datab
05a0: 61 73 65 0a 23 20 65 6e 67 69 6e 65 73 20 61 6e  ase.# engines an
05b0: 64 20 74 68 65 20 53 51 4c 39 32 20 73 74 61 6e  d the SQL92 stan
05c0: 64 61 72 64 20 72 65 71 75 69 72 65 20 74 68 65  dard require the
05d0: 20 6c 69 73 74 20 74 6f 20 63 6f 6e 74 61 69 6e   list to contain
05e0: 20 61 74 20 6c 65 61 73 74 0a 23 20 6f 6e 65 20   at least.# one 
05f0: 65 6c 65 6d 65 6e 74 2e 0a 23 0a 64 6f 5f 65 78  element..#.do_ex
0600: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
0610: 30 65 30 33 31 61 30 30 66 2e 31 20 7b 53 45 4c  0e031a00f.1 {SEL
0620: 45 43 54 20 31 20 49 4e 20 28 29 7d 20 30 0a 64  ECT 1 IN ()} 0.d
0630: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74  o_execsql_test t
0640: 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 31 62  kt-80e031a00f.1b
0650: 20 7b 53 45 4c 45 43 54 20 31 20 49 4e 20 28 32   {SELECT 1 IN (2
0660: 29 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  )} 0.do_execsql_
0670: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
0680: 30 30 66 2e 31 63 20 7b 53 45 4c 45 43 54 20 31  00f.1c {SELECT 1
0690: 20 49 4e 20 28 32 2c 33 2c 34 2c 35 2c 36 2c 37   IN (2,3,4,5,6,7
06a0: 2c 38 2c 39 29 7d 20 30 0a 64 6f 5f 65 78 65 63  ,8,9)} 0.do_exec
06b0: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
06c0: 30 33 31 61 30 30 66 2e 32 20 7b 53 45 4c 45 43  031a00f.2 {SELEC
06d0: 54 20 31 20 4e 4f 54 20 49 4e 20 28 29 7d 20 31  T 1 NOT IN ()} 1
06e0: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
06f0: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
0700: 32 62 20 7b 53 45 4c 45 43 54 20 31 20 4e 4f 54  2b {SELECT 1 NOT
0710: 20 49 4e 20 28 32 29 7d 20 31 0a 64 6f 5f 65 78   IN (2)} 1.do_ex
0720: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
0730: 30 65 30 33 31 61 30 30 66 2e 32 63 20 7b 53 45  0e031a00f.2c {SE
0740: 4c 45 43 54 20 31 20 4e 4f 54 20 49 4e 20 28 32  LECT 1 NOT IN (2
0750: 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c 39 29 7d  ,3,4,5,6,7,8,9)}
0760: 20 31 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   1.do_execsql_te
0770: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
0780: 66 2e 33 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c  f.3 {SELECT null
0790: 20 49 4e 20 28 29 7d 20 30 0a 64 6f 5f 65 78 65   IN ()} 0.do_exe
07a0: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
07b0: 65 30 33 31 61 30 30 66 2e 34 20 7b 53 45 4c 45  e031a00f.4 {SELE
07c0: 43 54 20 6e 75 6c 6c 20 4e 4f 54 20 49 4e 20 28  CT null NOT IN (
07d0: 29 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  )} 1.do_execsql_
07e0: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
07f0: 30 30 66 2e 35 20 7b 0a 20 20 43 52 45 41 54 45  00f.5 {.  CREATE
0800: 20 54 41 42 4c 45 20 74 31 28 78 29 3b 0a 20 20   TABLE t1(x);.  
0810: 53 45 4c 45 43 54 20 31 20 49 4e 20 74 31 3b 0a  SELECT 1 IN t1;.
0820: 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  } 0.do_execsql_t
0830: 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30  est tkt-80e031a0
0840: 30 66 2e 36 20 7b 53 45 4c 45 43 54 20 31 20 4e  0f.6 {SELECT 1 N
0850: 4f 54 20 49 4e 20 74 31 7d 20 31 0a 64 6f 5f 65  OT IN t1} 1.do_e
0860: 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d  xecsql_test tkt-
0870: 38 30 65 30 33 31 61 30 30 66 2e 37 20 7b 53 45  80e031a00f.7 {SE
0880: 4c 45 43 54 20 6e 75 6c 6c 20 49 4e 20 74 31 7d  LECT null IN t1}
0890: 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   0.do_execsql_te
08a0: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
08b0: 66 2e 38 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c  f.8 {SELECT null
08c0: 20 4e 4f 54 20 49 4e 20 74 31 7d 20 31 0a 64 6f   NOT IN t1} 1.do
08d0: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b  _execsql_test tk
08e0: 74 2d 38 30 65 30 33 31 61 30 30 66 2e 39 20 7b  t-80e031a00f.9 {
08f0: 0a 20 20 43 52 45 41 54 45 20 54 41 42 4c 45 20  .  CREATE TABLE 
0900: 74 32 28 79 20 49 4e 54 45 47 45 52 20 50 52 49  t2(y INTEGER PRI
0910: 4d 41 52 59 20 4b 45 59 29 3b 0a 20 20 53 45 4c  MARY KEY);.  SEL
0920: 45 43 54 20 31 20 49 4e 20 74 32 3b 0a 7d 20 30  ECT 1 IN t2;.} 0
0930: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
0940: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
0950: 31 30 20 7b 53 45 4c 45 43 54 20 31 20 4e 4f 54  10 {SELECT 1 NOT
0960: 20 49 4e 20 74 32 7d 20 31 0a 64 6f 5f 65 78 65   IN t2} 1.do_exe
0970: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
0980: 65 30 33 31 61 30 30 66 2e 31 31 20 7b 53 45 4c  e031a00f.11 {SEL
0990: 45 43 54 20 6e 75 6c 6c 20 49 4e 20 74 32 7d 20  ECT null IN t2} 
09a0: 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  0.do_execsql_tes
09b0: 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66  t tkt-80e031a00f
09c0: 2e 31 32 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c  .12 {SELECT null
09d0: 20 4e 4f 54 20 49 4e 20 74 32 7d 20 31 0a 64 6f   NOT IN t2} 1.do
09e0: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b  _execsql_test tk
09f0: 74 2d 38 30 65 30 33 31 61 30 30 66 2e 31 33 20  t-80e031a00f.13 
0a00: 7b 0a 20 20 43 52 45 41 54 45 20 54 41 42 4c 45  {.  CREATE TABLE
0a10: 20 74 33 28 7a 20 49 4e 54 20 55 4e 49 51 55 45   t3(z INT UNIQUE
0a20: 29 3b 0a 20 20 53 45 4c 45 43 54 20 31 20 49 4e  );.  SELECT 1 IN
0a30: 20 74 33 3b 0a 7d 20 30 0a 64 6f 5f 65 78 65 63   t3;.} 0.do_exec
0a40: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
0a50: 30 33 31 61 30 30 66 2e 31 34 20 7b 53 45 4c 45  031a00f.14 {SELE
0a60: 43 54 20 31 20 4e 4f 54 20 49 4e 20 74 33 7d 20  CT 1 NOT IN t3} 
0a70: 31 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  1.do_execsql_tes
0a80: 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66  t tkt-80e031a00f
0a90: 2e 31 35 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c  .15 {SELECT null
0aa0: 20 49 4e 20 74 33 7d 20 30 0a 64 6f 5f 65 78 65   IN t3} 0.do_exe
0ab0: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
0ac0: 65 30 33 31 61 30 30 66 2e 31 36 20 7b 53 45 4c  e031a00f.16 {SEL
0ad0: 45 43 54 20 6e 75 6c 6c 20 4e 4f 54 20 49 4e 20  ECT null NOT IN 
0ae0: 74 33 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71 6c  t3} 1.do_execsql
0af0: 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31  _test tkt-80e031
0b00: 61 30 30 66 2e 31 37 20 7b 53 45 4c 45 43 54 20  a00f.17 {SELECT 
0b10: 31 20 49 4e 20 28 53 45 4c 45 43 54 20 78 2b 79  1 IN (SELECT x+y
0b20: 20 46 52 4f 4d 20 74 31 2c 20 74 32 29 7d 20 30   FROM t1, t2)} 0
0b30: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
0b40: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
0b50: 31 38 20 7b 53 45 4c 45 43 54 20 31 20 4e 4f 54  18 {SELECT 1 NOT
0b60: 20 49 4e 20 28 53 45 4c 45 43 54 20 78 2b 79 20   IN (SELECT x+y 
0b70: 46 52 4f 4d 20 74 31 2c 74 32 29 7d 20 31 0a 64  FROM t1,t2)} 1.d
0b80: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74  o_execsql_test t
0b90: 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 31 39  kt-80e031a00f.19
0ba0: 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 49 4e   {SELECT null IN
0bb0: 20 28 53 45 4c 45 43 54 20 78 2b 79 20 46 52 4f   (SELECT x+y FRO
0bc0: 4d 20 74 31 2c 74 32 29 7d 20 30 0a 64 6f 5f 65  M t1,t2)} 0.do_e
0bd0: 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d  xecsql_test tkt-
0be0: 38 30 65 30 33 31 61 30 30 66 2e 32 30 20 7b 53  80e031a00f.20 {S
0bf0: 45 4c 45 43 54 20 6e 75 6c 6c 20 4e 4f 54 20 49  ELECT null NOT I
0c00: 4e 20 28 53 45 4c 45 43 54 20 78 2b 79 20 46 52  N (SELECT x+y FR
0c10: 4f 4d 20 74 31 2c 74 32 29 7d 20 31 0a 64 6f 5f  OM t1,t2)} 1.do_
0c20: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
0c30: 2d 38 30 65 30 33 31 61 30 30 66 2e 32 31 20 7b  -80e031a00f.21 {
0c40: 53 45 4c 45 43 54 20 31 2e 32 33 20 49 4e 20 28  SELECT 1.23 IN (
0c50: 29 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  )} 0.do_execsql_
0c60: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
0c70: 30 30 66 2e 32 32 20 7b 53 45 4c 45 43 54 20 31  00f.22 {SELECT 1
0c80: 2e 32 33 20 4e 4f 54 20 49 4e 20 28 29 7d 20 31  .23 NOT IN ()} 1
0c90: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
0ca0: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
0cb0: 32 33 20 7b 53 45 4c 45 43 54 20 31 2e 32 33 20  23 {SELECT 1.23 
0cc0: 49 4e 20 74 31 7d 20 30 0a 64 6f 5f 65 78 65 63  IN t1} 0.do_exec
0cd0: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
0ce0: 30 33 31 61 30 30 66 2e 32 34 20 7b 53 45 4c 45  031a00f.24 {SELE
0cf0: 43 54 20 31 2e 32 33 20 4e 4f 54 20 49 4e 20 74  CT 1.23 NOT IN t
0d00: 31 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  1} 1.do_execsql_
0d10: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
0d20: 30 30 66 2e 32 35 20 7b 53 45 4c 45 43 54 20 27  00f.25 {SELECT '
0d30: 68 65 6c 6c 6f 27 20 49 4e 20 28 29 7d 20 30 0a  hello' IN ()} 0.
0d40: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
0d50: 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 32  tkt-80e031a00f.2
0d60: 36 20 7b 53 45 4c 45 43 54 20 27 68 65 6c 6c 6f  6 {SELECT 'hello
0d70: 27 20 4e 4f 54 20 49 4e 20 28 29 7d 20 31 0a 64  ' NOT IN ()} 1.d
0d80: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74  o_execsql_test t
0d90: 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 32 37  kt-80e031a00f.27
0da0: 20 7b 53 45 4c 45 43 54 20 27 68 65 6c 6c 6f 27   {SELECT 'hello'
0db0: 20 49 4e 20 74 31 7d 20 30 0a 64 6f 5f 65 78 65   IN t1} 0.do_exe
0dc0: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
0dd0: 65 30 33 31 61 30 30 66 2e 32 38 20 7b 53 45 4c  e031a00f.28 {SEL
0de0: 45 43 54 20 27 68 65 6c 6c 6f 27 20 4e 4f 54 20  ECT 'hello' NOT 
0df0: 49 4e 20 74 31 7d 20 31 0a 64 6f 5f 65 78 65 63  IN t1} 1.do_exec
0e00: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
0e10: 30 33 31 61 30 30 66 2e 32 39 20 7b 53 45 4c 45  031a00f.29 {SELE
0e20: 43 54 20 78 27 33 30 33 31 33 32 27 20 49 4e 20  CT x'303132' IN 
0e30: 28 29 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c  ()} 0.do_execsql
0e40: 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31  _test tkt-80e031
0e50: 61 30 30 66 2e 33 30 20 7b 53 45 4c 45 43 54 20  a00f.30 {SELECT 
0e60: 78 27 33 30 33 31 33 32 27 20 4e 4f 54 20 49 4e  x'303132' NOT IN
0e70: 20 28 29 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71   ()} 1.do_execsq
0e80: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
0e90: 31 61 30 30 66 2e 33 31 20 7b 53 45 4c 45 43 54  1a00f.31 {SELECT
0ea0: 20 78 27 33 30 33 31 33 32 27 20 49 4e 20 74 31   x'303132' IN t1
0eb0: 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  } 0.do_execsql_t
0ec0: 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30  est tkt-80e031a0
0ed0: 30 66 2e 33 32 20 7b 53 45 4c 45 43 54 20 78 27  0f.32 {SELECT x'
0ee0: 33 30 33 31 33 32 27 20 4e 4f 54 20 49 4e 20 74  303132' NOT IN t
0ef0: 31 7d 20 31 0a 0a 23 20 45 56 49 44 45 4e 43 45  1} 1..# EVIDENCE
0f00: 2d 4f 46 3a 20 52 2d 35 30 32 32 31 2d 34 32 39  -OF: R-50221-429
0f10: 31 35 20 54 68 65 20 72 65 73 75 6c 74 20 6f 66  15 The result of
0f20: 20 61 6e 20 49 4e 20 6f 72 20 4e 4f 54 20 49 4e   an IN or NOT IN
0f30: 20 6f 70 65 72 61 74 6f 72 20 69 73 0a 23 20 64   operator is.# d
0f40: 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65  etermined by the
0f50: 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 61 74 72 69   following matri
0f60: 78 3a 20 4c 65 66 74 20 6f 70 65 72 61 6e 64 20  x: Left operand 
0f70: 69 73 20 4e 55 4c 4c 20 52 69 67 68 74 20 6f 70  is NULL Right op
0f80: 65 72 61 6e 64 0a 23 20 63 6f 6e 74 61 69 6e 73  erand.# contains
0f90: 20 4e 55 4c 4c 20 52 69 67 68 74 20 6f 70 65 72   NULL Right oper
0fa0: 61 6e 64 20 69 73 20 61 6e 20 65 6d 70 74 79 20  and is an empty 
0fb0: 73 65 74 20 4c 65 66 74 20 6f 70 65 72 61 6e 64  set Left operand
0fc0: 20 66 6f 75 6e 64 20 77 69 74 68 69 6e 0a 23 20   found within.# 
0fd0: 72 69 67 68 74 20 6f 70 65 72 61 6e 64 20 52 65  right operand Re
0fe0: 73 75 6c 74 20 6f 66 20 49 4e 20 6f 70 65 72 61  sult of IN opera
0ff0: 74 6f 72 20 52 65 73 75 6c 74 20 6f 66 20 4e 4f  tor Result of NO
1000: 54 20 49 4e 20 6f 70 65 72 61 74 6f 72 20 6e 6f  T IN operator no
1010: 20 6e 6f 20 6e 6f 0a 23 20 6e 6f 20 66 61 6c 73   no no.# no fals
1020: 65 20 74 72 75 65 20 64 6f 65 73 20 6e 6f 74 20  e true does not 
1030: 6d 61 74 74 65 72 20 6e 6f 20 79 65 73 20 6e 6f  matter no yes no
1040: 20 66 61 6c 73 65 20 74 72 75 65 20 6e 6f 20 64   false true no d
1050: 6f 65 73 20 6e 6f 74 20 6d 61 74 74 65 72 0a 23  oes not matter.#
1060: 20 6e 6f 20 79 65 73 20 74 72 75 65 20 66 61 6c   no yes true fal
1070: 73 65 20 6e 6f 20 79 65 73 20 6e 6f 20 6e 6f 20  se no yes no no 
1080: 4e 55 4c 4c 20 4e 55 4c 4c 20 79 65 73 20 64 6f  NULL NULL yes do
1090: 65 73 20 6e 6f 74 20 6d 61 74 74 65 72 20 6e 6f  es not matter no
10a0: 20 64 6f 65 73 0a 23 20 6e 6f 74 20 6d 61 74 74   does.# not matt
10b0: 65 72 20 4e 55 4c 4c 20 4e 55 4c 4c 0a 23 0a 23  er NULL NULL.#.#
10c0: 20 52 6f 77 20 31 3a 0a 64 6f 5f 65 78 65 63 73   Row 1:.do_execs
10d0: 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30  ql_test tkt-80e0
10e0: 33 31 61 30 30 66 2e 31 30 30 20 7b 53 45 4c 45  31a00f.100 {SELE
10f0: 43 54 20 31 20 49 4e 20 28 32 2c 33 2c 34 29 7d  CT 1 IN (2,3,4)}
1100: 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   0.do_execsql_te
1110: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
1120: 66 2e 31 30 31 20 7b 53 45 4c 45 43 54 20 31 20  f.101 {SELECT 1 
1130: 4e 4f 54 20 49 4e 20 28 32 2c 33 2c 34 29 7d 20  NOT IN (2,3,4)} 
1140: 31 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  1.do_execsql_tes
1150: 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66  t tkt-80e031a00f
1160: 2e 31 30 32 20 7b 53 45 4c 45 43 54 20 27 61 27  .102 {SELECT 'a'
1170: 20 49 4e 20 28 27 62 27 2c 27 63 27 2c 27 64 27   IN ('b','c','d'
1180: 29 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  )} 0.do_execsql_
1190: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
11a0: 30 30 66 2e 31 30 33 20 7b 53 45 4c 45 43 54 20  00f.103 {SELECT 
11b0: 27 61 27 20 4e 4f 54 20 49 4e 20 28 27 62 27 2c  'a' NOT IN ('b',
11c0: 27 63 27 2c 27 64 27 29 7d 20 31 0a 64 6f 5f 74  'c','d')} 1.do_t
11d0: 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30  est tkt-80e031a0
11e0: 30 66 2e 31 30 34 20 7b 0a 20 20 64 62 20 65 76  0f.104 {.  db ev
11f0: 61 6c 20 7b 0a 20 20 20 20 20 43 52 45 41 54 45  al {.     CREATE
1200: 20 54 41 42 4c 45 20 74 34 28 61 20 55 4e 49 51   TABLE t4(a UNIQ
1210: 55 45 29 3b 0a 20 20 20 20 20 43 52 45 41 54 45  UE);.     CREATE
1220: 20 54 41 42 4c 45 20 74 35 28 62 20 49 4e 54 45   TABLE t5(b INTE
1230: 47 45 52 20 50 52 49 4d 41 52 59 20 4b 45 59 29  GER PRIMARY KEY)
1240: 3b 0a 20 20 20 20 20 43 52 45 41 54 45 20 54 41  ;.     CREATE TA
1250: 42 4c 45 20 74 36 28 63 29 3b 0a 20 20 20 20 20  BLE t6(c);.     
1260: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56  INSERT INTO t4 V
1270: 41 4c 55 45 53 28 32 29 3b 0a 20 20 20 20 20 49  ALUES(2);.     I
1280: 4e 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41  NSERT INTO t4 VA
1290: 4c 55 45 53 28 33 29 3b 0a 20 20 20 20 20 49 4e  LUES(3);.     IN
12a0: 53 45 52 54 20 49 4e 54 4f 20 74 34 20 56 41 4c  SERT INTO t4 VAL
12b0: 55 45 53 28 34 29 3b 0a 20 20 20 20 20 49 4e 53  UES(4);.     INS
12c0: 45 52 54 20 49 4e 54 4f 20 74 35 20 53 45 4c 45  ERT INTO t5 SELE
12d0: 43 54 20 2a 20 46 52 4f 4d 20 74 34 3b 0a 20 20  CT * FROM t4;.  
12e0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
12f0: 36 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20  6 SELECT * FROM 
1300: 74 34 3b 0a 20 20 20 20 20 43 52 45 41 54 45 20  t4;.     CREATE 
1310: 54 41 42 4c 45 20 74 34 6e 28 61 20 55 4e 49 51  TABLE t4n(a UNIQ
1320: 55 45 29 3b 0a 20 20 20 20 20 43 52 45 41 54 45  UE);.     CREATE
1330: 20 54 41 42 4c 45 20 74 36 6e 28 63 29 3b 0a 20   TABLE t6n(c);. 
1340: 20 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20      INSERT INTO 
1350: 74 34 6e 20 53 45 4c 45 43 54 20 2a 20 46 52 4f  t4n SELECT * FRO
1360: 4d 20 74 34 3b 0a 20 20 20 20 20 49 4e 53 45 52  M t4;.     INSER
1370: 54 20 49 4e 54 4f 20 74 34 6e 20 56 41 4c 55 45  T INTO t4n VALUE
1380: 53 28 6e 75 6c 6c 29 3b 0a 20 20 20 20 20 49 4e  S(null);.     IN
1390: 53 45 52 54 20 49 4e 54 4f 20 74 36 6e 20 53 45  SERT INTO t6n SE
13a0: 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74 34 6e 3b  LECT * FROM t4n;
13b0: 0a 20 20 20 20 20 43 52 45 41 54 45 20 54 41 42  .     CREATE TAB
13c0: 4c 45 20 74 37 28 61 20 55 4e 49 51 55 45 29 3b  LE t7(a UNIQUE);
13d0: 0a 20 20 20 20 20 43 52 45 41 54 45 20 54 41 42  .     CREATE TAB
13e0: 4c 45 20 74 38 28 63 29 3b 0a 20 20 20 20 20 49  LE t8(c);.     I
13f0: 4e 53 45 52 54 20 49 4e 54 4f 20 74 37 20 56 41  NSERT INTO t7 VA
1400: 4c 55 45 53 28 27 62 27 29 3b 0a 20 20 20 20 20  LUES('b');.     
1410: 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 37 20 56  INSERT INTO t7 V
1420: 41 4c 55 45 53 28 27 63 27 29 3b 0a 20 20 20 20  ALUES('c');.    
1430: 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 37 20   INSERT INTO t7 
1440: 56 41 4c 55 45 53 28 27 64 27 29 3b 0a 20 20 20  VALUES('d');.   
1450: 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74 38    INSERT INTO t8
1460: 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d 20 74   SELECT * FROM t
1470: 37 3b 0a 20 20 20 20 20 43 52 45 41 54 45 20 54  7;.     CREATE T
1480: 41 42 4c 45 20 74 37 6e 28 61 20 55 4e 49 51 55  ABLE t7n(a UNIQU
1490: 45 29 3b 0a 20 20 20 20 20 43 52 45 41 54 45 20  E);.     CREATE 
14a0: 54 41 42 4c 45 20 74 38 6e 28 63 29 3b 0a 20 20  TABLE t8n(c);.  
14b0: 20 20 20 49 4e 53 45 52 54 20 49 4e 54 4f 20 74     INSERT INTO t
14c0: 37 6e 20 53 45 4c 45 43 54 20 2a 20 46 52 4f 4d  7n SELECT * FROM
14d0: 20 74 37 3b 0a 20 20 20 20 20 49 4e 53 45 52 54   t7;.     INSERT
14e0: 20 49 4e 54 4f 20 74 37 6e 20 56 41 4c 55 45 53   INTO t7n VALUES
14f0: 28 6e 75 6c 6c 29 3b 0a 20 20 20 20 20 49 4e 53  (null);.     INS
1500: 45 52 54 20 49 4e 54 4f 20 74 38 6e 20 53 45 4c  ERT INTO t8n SEL
1510: 45 43 54 20 2a 20 46 52 4f 4d 20 74 37 6e 3b 0a  ECT * FROM t7n;.
1520: 20 20 7d 0a 20 20 65 78 65 63 73 71 6c 20 7b 53    }.  execsql {S
1530: 45 4c 45 43 54 20 31 20 49 4e 20 74 34 7d 0a 7d  ELECT 1 IN t4}.}
1540: 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   0.do_execsql_te
1550: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
1560: 66 2e 31 30 35 20 7b 53 45 4c 45 43 54 20 31 20  f.105 {SELECT 1 
1570: 4e 4f 54 20 49 4e 20 74 34 7d 20 31 0a 64 6f 5f  NOT IN t4} 1.do_
1580: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
1590: 2d 38 30 65 30 33 31 61 30 30 66 2e 31 30 36 20  -80e031a00f.106 
15a0: 7b 53 45 4c 45 43 54 20 31 20 49 4e 20 74 35 7d  {SELECT 1 IN t5}
15b0: 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   0.do_execsql_te
15c0: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
15d0: 66 2e 31 30 37 20 7b 53 45 4c 45 43 54 20 31 20  f.107 {SELECT 1 
15e0: 4e 4f 54 20 49 4e 20 74 35 7d 20 31 0a 64 6f 5f  NOT IN t5} 1.do_
15f0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
1600: 2d 38 30 65 30 33 31 61 30 30 66 2e 31 30 38 20  -80e031a00f.108 
1610: 7b 53 45 4c 45 43 54 20 31 20 49 4e 20 74 36 7d  {SELECT 1 IN t6}
1620: 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   0.do_execsql_te
1630: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
1640: 66 2e 31 30 39 20 7b 53 45 4c 45 43 54 20 31 20  f.109 {SELECT 1 
1650: 4e 4f 54 20 49 4e 20 74 36 7d 20 31 0a 64 6f 5f  NOT IN t6} 1.do_
1660: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
1670: 2d 38 30 65 30 33 31 61 30 30 66 2e 31 31 30 20  -80e031a00f.110 
1680: 7b 53 45 4c 45 43 54 20 27 61 27 20 49 4e 20 74  {SELECT 'a' IN t
1690: 37 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  7} 0.do_execsql_
16a0: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
16b0: 30 30 66 2e 31 31 31 20 7b 53 45 4c 45 43 54 20  00f.111 {SELECT 
16c0: 27 61 27 20 4e 4f 54 20 49 4e 20 74 37 7d 20 31  'a' NOT IN t7} 1
16d0: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
16e0: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
16f0: 31 31 32 20 7b 53 45 4c 45 43 54 20 27 61 27 20  112 {SELECT 'a' 
1700: 49 4e 20 74 38 7d 20 30 0a 64 6f 5f 65 78 65 63  IN t8} 0.do_exec
1710: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
1720: 30 33 31 61 30 30 66 2e 31 31 33 20 7b 53 45 4c  031a00f.113 {SEL
1730: 45 43 54 20 27 61 27 20 4e 4f 54 20 49 4e 20 74  ECT 'a' NOT IN t
1740: 38 7d 20 31 0a 23 0a 23 20 52 6f 77 20 32 20 69  8} 1.#.# Row 2 i
1750: 73 20 74 65 73 74 65 64 20 62 79 20 63 61 73 65  s tested by case
1760: 73 20 31 2d 33 32 20 61 62 6f 76 65 2e 0a 23 20  s 1-32 above..# 
1770: 52 6f 77 20 33 3a 0a 64 6f 5f 65 78 65 63 73 71  Row 3:.do_execsq
1780: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
1790: 31 61 30 30 66 2e 33 30 30 20 7b 53 45 4c 45 43  1a00f.300 {SELEC
17a0: 54 20 32 20 49 4e 20 28 32 2c 33 2c 34 2c 6e 75  T 2 IN (2,3,4,nu
17b0: 6c 6c 29 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71  ll)} 1.do_execsq
17c0: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
17d0: 31 61 30 30 66 2e 33 30 31 20 7b 53 45 4c 45 43  1a00f.301 {SELEC
17e0: 54 20 33 20 4e 4f 54 20 49 4e 20 28 32 2c 33 2c  T 3 NOT IN (2,3,
17f0: 34 2c 6e 75 6c 6c 29 7d 20 30 0a 64 6f 5f 65 78  4,null)} 0.do_ex
1800: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
1810: 30 65 30 33 31 61 30 30 66 2e 33 30 32 20 7b 53  0e031a00f.302 {S
1820: 45 4c 45 43 54 20 34 20 49 4e 20 28 32 2c 33 2c  ELECT 4 IN (2,3,
1830: 34 29 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71 6c  4)} 1.do_execsql
1840: 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31  _test tkt-80e031
1850: 61 30 30 66 2e 33 30 33 20 7b 53 45 4c 45 43 54  a00f.303 {SELECT
1860: 20 32 20 4e 4f 54 20 49 4e 20 28 32 2c 33 2c 34   2 NOT IN (2,3,4
1870: 29 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  )} 0.do_execsql_
1880: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
1890: 30 30 66 2e 33 30 34 20 7b 53 45 4c 45 43 54 20  00f.304 {SELECT 
18a0: 27 62 27 20 49 4e 20 28 27 62 27 2c 27 63 27 2c  'b' IN ('b','c',
18b0: 27 64 27 29 7d 20 31 0a 64 6f 5f 65 78 65 63 73  'd')} 1.do_execs
18c0: 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30  ql_test tkt-80e0
18d0: 33 31 61 30 30 66 2e 33 30 35 20 7b 53 45 4c 45  31a00f.305 {SELE
18e0: 43 54 20 27 63 27 20 4e 4f 54 20 49 4e 20 28 27  CT 'c' NOT IN ('
18f0: 62 27 2c 27 63 27 2c 27 64 27 29 7d 20 30 0a 64  b','c','d')} 0.d
1900: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74  o_execsql_test t
1910: 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 33 30  kt-80e031a00f.30
1920: 36 20 7b 53 45 4c 45 43 54 20 27 64 27 20 49 4e  6 {SELECT 'd' IN
1930: 20 28 27 62 27 2c 27 63 27 2c 6e 75 6c 6c 2c 27   ('b','c',null,'
1940: 64 27 29 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71  d')} 1.do_execsq
1950: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
1960: 31 61 30 30 66 2e 33 30 37 20 7b 53 45 4c 45 43  1a00f.307 {SELEC
1970: 54 20 27 62 27 20 4e 4f 54 20 49 4e 20 28 6e 75  T 'b' NOT IN (nu
1980: 6c 6c 2c 27 62 27 2c 27 63 27 2c 27 64 27 29 7d  ll,'b','c','d')}
1990: 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   0.do_execsql_te
19a0: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
19b0: 66 2e 33 30 38 20 7b 53 45 4c 45 43 54 20 32 20  f.308 {SELECT 2 
19c0: 49 4e 20 74 34 7d 20 31 0a 64 6f 5f 65 78 65 63  IN t4} 1.do_exec
19d0: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
19e0: 30 33 31 61 30 30 66 2e 33 30 39 20 7b 53 45 4c  031a00f.309 {SEL
19f0: 45 43 54 20 33 20 4e 4f 54 20 49 4e 20 74 34 7d  ECT 3 NOT IN t4}
1a00: 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65   0.do_execsql_te
1a10: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
1a20: 66 2e 33 31 30 20 7b 53 45 4c 45 43 54 20 34 20  f.310 {SELECT 4 
1a30: 49 4e 20 74 34 6e 7d 20 31 0a 64 6f 5f 65 78 65  IN t4n} 1.do_exe
1a40: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
1a50: 65 30 33 31 61 30 30 66 2e 33 31 31 20 7b 53 45  e031a00f.311 {SE
1a60: 4c 45 43 54 20 32 20 4e 4f 54 20 49 4e 20 74 34  LECT 2 NOT IN t4
1a70: 6e 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  n} 0.do_execsql_
1a80: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
1a90: 30 30 66 2e 33 31 32 20 7b 53 45 4c 45 43 54 20  00f.312 {SELECT 
1aa0: 32 20 49 4e 20 74 35 7d 20 31 0a 64 6f 5f 65 78  2 IN t5} 1.do_ex
1ab0: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
1ac0: 30 65 30 33 31 61 30 30 66 2e 33 31 33 20 7b 53  0e031a00f.313 {S
1ad0: 45 4c 45 43 54 20 33 20 4e 4f 54 20 49 4e 20 74  ELECT 3 NOT IN t
1ae0: 35 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  5} 0.do_execsql_
1af0: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
1b00: 30 30 66 2e 33 31 34 20 7b 53 45 4c 45 43 54 20  00f.314 {SELECT 
1b10: 32 20 49 4e 20 74 36 7d 20 31 0a 64 6f 5f 65 78  2 IN t6} 1.do_ex
1b20: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
1b30: 30 65 30 33 31 61 30 30 66 2e 33 31 35 20 7b 53  0e031a00f.315 {S
1b40: 45 4c 45 43 54 20 33 20 4e 4f 54 20 49 4e 20 74  ELECT 3 NOT IN t
1b50: 36 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  6} 0.do_execsql_
1b60: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
1b70: 30 30 66 2e 33 31 36 20 7b 53 45 4c 45 43 54 20  00f.316 {SELECT 
1b80: 34 20 49 4e 20 74 36 6e 7d 20 31 0a 64 6f 5f 65  4 IN t6n} 1.do_e
1b90: 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d  xecsql_test tkt-
1ba0: 38 30 65 30 33 31 61 30 30 66 2e 33 31 37 20 7b  80e031a00f.317 {
1bb0: 53 45 4c 45 43 54 20 32 20 4e 4f 54 20 49 4e 20  SELECT 2 NOT IN 
1bc0: 74 36 6e 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71  t6n} 0.do_execsq
1bd0: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
1be0: 31 61 30 30 66 2e 33 31 38 20 7b 53 45 4c 45 43  1a00f.318 {SELEC
1bf0: 54 20 27 62 27 20 49 4e 20 74 37 7d 20 31 0a 64  T 'b' IN t7} 1.d
1c00: 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74  o_execsql_test t
1c10: 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 33 31  kt-80e031a00f.31
1c20: 39 20 7b 53 45 4c 45 43 54 20 27 63 27 20 4e 4f  9 {SELECT 'c' NO
1c30: 54 20 49 4e 20 74 37 7d 20 30 0a 64 6f 5f 65 78  T IN t7} 0.do_ex
1c40: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
1c50: 30 65 30 33 31 61 30 30 66 2e 33 32 30 20 7b 53  0e031a00f.320 {S
1c60: 45 4c 45 43 54 20 27 63 27 20 49 4e 20 74 37 6e  ELECT 'c' IN t7n
1c70: 7d 20 31 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  } 1.do_execsql_t
1c80: 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30  est tkt-80e031a0
1c90: 30 66 2e 33 32 31 20 7b 53 45 4c 45 43 54 20 27  0f.321 {SELECT '
1ca0: 64 27 20 4e 4f 54 20 49 4e 20 74 37 6e 7d 20 30  d' NOT IN t7n} 0
1cb0: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
1cc0: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
1cd0: 33 32 32 20 7b 53 45 4c 45 43 54 20 27 62 27 20  322 {SELECT 'b' 
1ce0: 49 4e 20 74 38 7d 20 31 0a 64 6f 5f 65 78 65 63  IN t8} 1.do_exec
1cf0: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
1d00: 30 33 31 61 30 30 66 2e 33 32 33 20 7b 53 45 4c  031a00f.323 {SEL
1d10: 45 43 54 20 27 63 27 20 4e 4f 54 20 49 4e 20 74  ECT 'c' NOT IN t
1d20: 38 7d 20 30 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  8} 0.do_execsql_
1d30: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
1d40: 30 30 66 2e 33 32 34 20 7b 53 45 4c 45 43 54 20  00f.324 {SELECT 
1d50: 27 63 27 20 49 4e 20 74 38 6e 7d 20 31 0a 64 6f  'c' IN t8n} 1.do
1d60: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b  _execsql_test tk
1d70: 74 2d 38 30 65 30 33 31 61 30 30 66 2e 33 32 35  t-80e031a00f.325
1d80: 20 7b 53 45 4c 45 43 54 20 27 64 27 20 4e 4f 54   {SELECT 'd' NOT
1d90: 20 49 4e 20 74 38 6e 7d 20 30 0a 23 0a 23 20 52   IN t8n} 0.#.# R
1da0: 6f 77 20 34 3a 0a 64 6f 5f 65 78 65 63 73 71 6c  ow 4:.do_execsql
1db0: 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31  _test tkt-80e031
1dc0: 61 30 30 66 2e 34 30 30 20 7b 53 45 4c 45 43 54  a00f.400 {SELECT
1dd0: 20 31 20 49 4e 20 28 32 2c 33 2c 34 2c 6e 75 6c   1 IN (2,3,4,nul
1de0: 6c 29 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63  l)} {{}}.do_exec
1df0: 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65  sql_test tkt-80e
1e00: 30 33 31 61 30 30 66 2e 34 30 31 20 7b 53 45 4c  031a00f.401 {SEL
1e10: 45 43 54 20 31 20 4e 4f 54 20 49 4e 20 28 32 2c  ECT 1 NOT IN (2,
1e20: 33 2c 34 2c 6e 75 6c 6c 29 7d 20 7b 7b 7d 7d 0a  3,4,null)} {{}}.
1e30: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
1e40: 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 34  tkt-80e031a00f.4
1e50: 30 32 20 7b 53 45 4c 45 43 54 20 27 61 27 20 49  02 {SELECT 'a' I
1e60: 4e 20 28 27 62 27 2c 27 63 27 2c 6e 75 6c 6c 2c  N ('b','c',null,
1e70: 27 64 27 29 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78  'd')} {{}}.do_ex
1e80: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
1e90: 30 65 30 33 31 61 30 30 66 2e 34 30 33 20 7b 53  0e031a00f.403 {S
1ea0: 45 4c 45 43 54 20 27 61 27 20 4e 4f 54 20 49 4e  ELECT 'a' NOT IN
1eb0: 20 28 6e 75 6c 6c 2c 27 62 27 2c 27 63 27 2c 27   (null,'b','c','
1ec0: 64 27 29 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  d')} {{}}.do_exe
1ed0: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
1ee0: 65 30 33 31 61 30 30 66 2e 34 30 34 20 7b 53 45  e031a00f.404 {SE
1ef0: 4c 45 43 54 20 31 20 49 4e 20 74 34 6e 7d 20 7b  LECT 1 IN t4n} {
1f00: 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  {}}.do_execsql_t
1f10: 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30  est tkt-80e031a0
1f20: 30 66 2e 34 30 35 20 7b 53 45 4c 45 43 54 20 35  0f.405 {SELECT 5
1f30: 20 4e 4f 54 20 49 4e 20 74 34 6e 7d 20 7b 7b 7d   NOT IN t4n} {{}
1f40: 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  }.do_execsql_tes
1f50: 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66  t tkt-80e031a00f
1f60: 2e 34 30 36 20 7b 53 45 4c 45 43 54 20 36 20 49  .406 {SELECT 6 I
1f70: 4e 20 74 36 6e 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65  N t6n} {{}}.do_e
1f80: 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d  xecsql_test tkt-
1f90: 38 30 65 30 33 31 61 30 30 66 2e 34 30 37 20 7b  80e031a00f.407 {
1fa0: 53 45 4c 45 43 54 20 37 20 4e 4f 54 20 49 4e 20  SELECT 7 NOT IN 
1fb0: 74 36 6e 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  t6n} {{}}.do_exe
1fc0: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
1fd0: 65 30 33 31 61 30 30 66 2e 34 30 38 20 7b 53 45  e031a00f.408 {SE
1fe0: 4c 45 43 54 20 27 61 27 20 49 4e 20 74 37 6e 7d  LECT 'a' IN t7n}
1ff0: 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c   {{}}.do_execsql
2000: 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31  _test tkt-80e031
2010: 61 30 30 66 2e 34 30 39 20 7b 53 45 4c 45 43 54  a00f.409 {SELECT
2020: 20 27 65 27 20 4e 4f 54 20 49 4e 20 74 37 6e 7d   'e' NOT IN t7n}
2030: 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c   {{}}.do_execsql
2040: 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31  _test tkt-80e031
2050: 61 30 30 66 2e 34 31 30 20 7b 53 45 4c 45 43 54  a00f.410 {SELECT
2060: 20 27 66 27 20 49 4e 20 74 38 6e 7d 20 7b 7b 7d   'f' IN t8n} {{}
2070: 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73  }.do_execsql_tes
2080: 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66  t tkt-80e031a00f
2090: 2e 34 31 31 20 7b 53 45 4c 45 43 54 20 27 67 27  .411 {SELECT 'g'
20a0: 20 4e 4f 54 20 49 4e 20 74 38 6e 7d 20 7b 7b 7d   NOT IN t8n} {{}
20b0: 7d 0a 23 0a 23 20 52 6f 77 20 35 3a 0a 64 6f 5f  }.#.# Row 5:.do_
20c0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
20d0: 2d 38 30 65 30 33 31 61 30 30 66 2e 35 30 30 20  -80e031a00f.500 
20e0: 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 49 4e 20  {SELECT null IN 
20f0: 28 32 2c 33 2c 34 2c 6e 75 6c 6c 29 7d 20 7b 7b  (2,3,4,null)} {{
2100: 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  }}.do_execsql_te
2110: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
2120: 66 2e 35 30 31 20 7b 53 45 4c 45 43 54 20 6e 75  f.501 {SELECT nu
2130: 6c 6c 20 4e 4f 54 20 49 4e 20 28 32 2c 33 2c 34  ll NOT IN (2,3,4
2140: 2c 6e 75 6c 6c 29 7d 20 7b 7b 7d 7d 0a 64 6f 5f  ,null)} {{}}.do_
2150: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
2160: 2d 38 30 65 30 33 31 61 30 30 66 2e 35 30 32 20  -80e031a00f.502 
2170: 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 49 4e 20  {SELECT null IN 
2180: 28 32 2c 33 2c 34 29 7d 20 7b 7b 7d 7d 0a 64 6f  (2,3,4)} {{}}.do
2190: 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b  _execsql_test tk
21a0: 74 2d 38 30 65 30 33 31 61 30 30 66 2e 35 30 33  t-80e031a00f.503
21b0: 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 4e 4f   {SELECT null NO
21c0: 54 20 49 4e 20 28 32 2c 33 2c 34 29 7d 20 7b 7b  T IN (2,3,4)} {{
21d0: 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  }}.do_execsql_te
21e0: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
21f0: 66 2e 35 30 34 20 7b 53 45 4c 45 43 54 20 6e 75  f.504 {SELECT nu
2200: 6c 6c 20 49 4e 20 28 27 62 27 2c 27 63 27 2c 27  ll IN ('b','c','
2210: 64 27 29 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  d')} {{}}.do_exe
2220: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
2230: 65 30 33 31 61 30 30 66 2e 35 30 35 20 7b 53 45  e031a00f.505 {SE
2240: 4c 45 43 54 20 6e 75 6c 6c 20 4e 4f 54 20 49 4e  LECT null NOT IN
2250: 20 28 27 62 27 2c 27 63 27 2c 27 64 27 29 7d 20   ('b','c','d')} 
2260: 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f  {{}}.do_execsql_
2270: 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61  test tkt-80e031a
2280: 30 30 66 2e 35 30 36 20 7b 53 45 4c 45 43 54 20  00f.506 {SELECT 
2290: 6e 75 6c 6c 20 49 4e 20 28 27 62 27 2c 27 63 27  null IN ('b','c'
22a0: 2c 6e 75 6c 6c 2c 27 64 27 29 7d 20 7b 7b 7d 7d  ,null,'d')} {{}}
22b0: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
22c0: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
22d0: 35 30 37 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c  507 {SELECT null
22e0: 20 4e 4f 54 20 49 4e 20 28 6e 75 6c 6c 2c 27 62   NOT IN (null,'b
22f0: 27 2c 27 63 27 2c 27 64 27 29 7d 20 7b 7b 7d 7d  ','c','d')} {{}}
2300: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
2310: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
2320: 35 30 38 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c  508 {SELECT null
2330: 20 49 4e 20 74 34 7d 20 7b 7b 7d 7d 0a 64 6f 5f   IN t4} {{}}.do_
2340: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
2350: 2d 38 30 65 30 33 31 61 30 30 66 2e 35 30 39 20  -80e031a00f.509 
2360: 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 4e 4f 54  {SELECT null NOT
2370: 20 49 4e 20 74 34 7d 20 7b 7b 7d 7d 0a 64 6f 5f   IN t4} {{}}.do_
2380: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
2390: 2d 38 30 65 30 33 31 61 30 30 66 2e 35 31 30 20  -80e031a00f.510 
23a0: 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 49 4e 20  {SELECT null IN 
23b0: 74 34 6e 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  t4n} {{}}.do_exe
23c0: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
23d0: 65 30 33 31 61 30 30 66 2e 35 31 31 20 7b 53 45  e031a00f.511 {SE
23e0: 4c 45 43 54 20 6e 75 6c 6c 20 4e 4f 54 20 49 4e  LECT null NOT IN
23f0: 20 74 34 6e 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78   t4n} {{}}.do_ex
2400: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
2410: 30 65 30 33 31 61 30 30 66 2e 35 31 32 20 7b 53  0e031a00f.512 {S
2420: 45 4c 45 43 54 20 6e 75 6c 6c 20 49 4e 20 74 35  ELECT null IN t5
2430: 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71  } {{}}.do_execsq
2440: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
2450: 31 61 30 30 66 2e 35 31 33 20 7b 53 45 4c 45 43  1a00f.513 {SELEC
2460: 54 20 6e 75 6c 6c 20 4e 4f 54 20 49 4e 20 74 35  T null NOT IN t5
2470: 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71  } {{}}.do_execsq
2480: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
2490: 31 61 30 30 66 2e 35 31 34 20 7b 53 45 4c 45 43  1a00f.514 {SELEC
24a0: 54 20 6e 75 6c 6c 20 49 4e 20 74 36 7d 20 7b 7b  T null IN t6} {{
24b0: 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  }}.do_execsql_te
24c0: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
24d0: 66 2e 35 31 35 20 7b 53 45 4c 45 43 54 20 6e 75  f.515 {SELECT nu
24e0: 6c 6c 20 4e 4f 54 20 49 4e 20 74 36 7d 20 7b 7b  ll NOT IN t6} {{
24f0: 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65  }}.do_execsql_te
2500: 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30  st tkt-80e031a00
2510: 66 2e 35 31 36 20 7b 53 45 4c 45 43 54 20 6e 75  f.516 {SELECT nu
2520: 6c 6c 20 49 4e 20 74 36 6e 7d 20 7b 7b 7d 7d 0a  ll IN t6n} {{}}.
2530: 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74 20  do_execsql_test 
2540: 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e 35  tkt-80e031a00f.5
2550: 31 37 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20  17 {SELECT null 
2560: 4e 4f 54 20 49 4e 20 74 36 6e 7d 20 7b 7b 7d 7d  NOT IN t6n} {{}}
2570: 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74 65 73 74  .do_execsql_test
2580: 20 74 6b 74 2d 38 30 65 30 33 31 61 30 30 66 2e   tkt-80e031a00f.
2590: 35 31 38 20 7b 53 45 4c 45 43 54 20 6e 75 6c 6c  518 {SELECT null
25a0: 20 49 4e 20 74 37 7d 20 7b 7b 7d 7d 0a 64 6f 5f   IN t7} {{}}.do_
25b0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
25c0: 2d 38 30 65 30 33 31 61 30 30 66 2e 35 31 39 20  -80e031a00f.519 
25d0: 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 4e 4f 54  {SELECT null NOT
25e0: 20 49 4e 20 74 37 7d 20 7b 7b 7d 7d 0a 64 6f 5f   IN t7} {{}}.do_
25f0: 65 78 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74  execsql_test tkt
2600: 2d 38 30 65 30 33 31 61 30 30 66 2e 35 32 30 20  -80e031a00f.520 
2610: 7b 53 45 4c 45 43 54 20 6e 75 6c 6c 20 49 4e 20  {SELECT null IN 
2620: 74 37 6e 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65  t7n} {{}}.do_exe
2630: 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30  csql_test tkt-80
2640: 65 30 33 31 61 30 30 66 2e 35 32 31 20 7b 53 45  e031a00f.521 {SE
2650: 4c 45 43 54 20 6e 75 6c 6c 20 4e 4f 54 20 49 4e  LECT null NOT IN
2660: 20 74 37 6e 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78   t7n} {{}}.do_ex
2670: 65 63 73 71 6c 5f 74 65 73 74 20 74 6b 74 2d 38  ecsql_test tkt-8
2680: 30 65 30 33 31 61 30 30 66 2e 35 32 32 20 7b 53  0e031a00f.522 {S
2690: 45 4c 45 43 54 20 6e 75 6c 6c 20 49 4e 20 74 38  ELECT null IN t8
26a0: 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71  } {{}}.do_execsq
26b0: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
26c0: 31 61 30 30 66 2e 35 32 33 20 7b 53 45 4c 45 43  1a00f.523 {SELEC
26d0: 54 20 6e 75 6c 6c 20 4e 4f 54 20 49 4e 20 74 38  T null NOT IN t8
26e0: 7d 20 7b 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71  } {{}}.do_execsq
26f0: 6c 5f 74 65 73 74 20 74 6b 74 2d 38 30 65 30 33  l_test tkt-80e03
2700: 31 61 30 30 66 2e 35 32 34 20 7b 53 45 4c 45 43  1a00f.524 {SELEC
2710: 54 20 6e 75 6c 6c 20 49 4e 20 74 38 6e 7d 20 7b  T null IN t8n} {
2720: 7b 7d 7d 0a 64 6f 5f 65 78 65 63 73 71 6c 5f 74  {}}.do_execsql_t
2730: 65 73 74 20 74 6b 74 2d 38 30 65 30 33 31 61 30  est tkt-80e031a0
2740: 30 66 2e 35 32 35 20 7b 53 45 4c 45 43 54 20 6e  0f.525 {SELECT n
2750: 75 6c 6c 20 4e 4f 54 20 49 4e 20 74 38 6e 7d 20  ull NOT IN t8n} 
2760: 7b 7b 7d 7d 0a 0a 66 69 6e 69 73 68 5f 74 65 73  {{}}..finish_tes
2770: 74 0a                                            t.