SQLite

Check-in [ef1a998625]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add tests to join.test to verify that it is not possible to use more than 64 tables in a join.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: ef1a998625e1fc051732228844388d6c59665382
User & Date: dan 2014-03-05 16:15:07.836
Context
2014-03-05
17:29
Add SQLITE_OMIT_CTE to the list of compile options that might be returned by "PRAGMA compile_options". (check-in: f33f2b3f92 user: dan tags: trunk)
16:15
Add tests to join.test to verify that it is not possible to use more than 64 tables in a join. (check-in: ef1a998625 user: dan tags: trunk)
15:52
Count the number of elements in a SrcList object using an "int" rather than a "u8", to avoid overflows and to work around an issue in the C compiler on AIX. (check-in: eee2a13f2c user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to test/join.test.
636
637
638
639
640
641
642


























643
644
} {}
do_test join-11.9 {
  execsql { SELECT * FROM t1 NATURAL JOIN t2 }
} {one 1.0 two 2}
do_test join-11.10 {
  execsql { SELECT * FROM t2 NATURAL JOIN t1 }
} {1 one 2 two}



























finish_test







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>


636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
} {}
do_test join-11.9 {
  execsql { SELECT * FROM t1 NATURAL JOIN t2 }
} {one 1.0 two 2}
do_test join-11.10 {
  execsql { SELECT * FROM t2 NATURAL JOIN t1 }
} {1 one 2 two}

#-------------------------------------------------------------------------
# Test that at most 64 tables are allowed in a join.
#
do_execsql_test join-12.1 {
  CREATE TABLE t14(x);
  INSERT INTO t14 VALUES('abcdefghij');
}

proc jointest {tn nTbl res} {
  set sql "SELECT 1 FROM [string repeat t14, [expr $nTbl-1]] t14;"
  uplevel [list do_catchsql_test $tn $sql $res]
}

jointest join-12.2 30 {0 1}
jointest join-12.3 63 {0 1}
jointest join-12.4 64 {0 1}
jointest join-12.5 65 {1 {at most 64 tables in a join}}
jointest join-12.6 66 {1 {at most 64 tables in a join}}
jointest join-12.7 127 {1 {at most 64 tables in a join}}
jointest join-12.8 128 {1 {at most 64 tables in a join}}
jointest join-12.9 1000 {1 {at most 64 tables in a join}}
jointest join-12.10 65534 {1 {at most 64 tables in a join}}
jointest join-12.11 65535 {1 {too many references to "t14": max 65535}}
jointest join-12.12 65536 {1 {too many references to "t14": max 65535}}
jointest join-12.13 65537 {1 {too many references to "t14": max 65535}}

finish_test