/ History for test/join.test
Login

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

History for test/join.test

2020-07-29
16:18
[1ffb0156] part of check-in [a80ae2c9] Dozens and dozens of typo fixes in comments. This change adds no value to the end product and is disruptive, so it is questionable whether or not it will ever land on trunk. (check-in: [a80ae2c9] user: drh branch: typos, size: 28103)
2020-01-22
20:36
[06b2855f] part of check-in [0eae87ad] Merge version 3.31.0 (check-in: [0eae87ad] user: drh branch: apple-osx, size: 28591)
2020-01-21
16:23
[bca04458] part of check-in [934ee8bd] Fix a problem with using views in SQLITE_OMIT_VIRTUAL_TABLE builds. Also some test case fixes required for the same builds. (check-in: [934ee8bd] user: dan branch: trunk, size: 28104)
2020-01-15
12:49
[413ffda0] part of check-in [dadedf41] Merge all recent enhancements and fixes from trunk into the apple-osx branch. (check-in: [dadedf41] user: drh branch: apple-osx, size: 28572)
2019-12-28
15:24
[0e8d3f40] part of check-in [f4bed1d7] Fix an instance where the planner might choose to use the OR-optimization when it adds no benefit. The same quirk causes an assert() to fail. This is not a bug in released versions - without the assert() the library still gets the right answer, it just does so less efficiently than it should. (check-in: [f4bed1d7] user: dan branch: trunk, size: 28085)
2019-12-22
20:03
[d7e315cd] part of check-in [ef604882] When constructing the virtual MATCH term of the WHERE clause for a virtual table that is in a LEFT JOIN, be sure to set the correct Expr.iRightJoinTable value. This value does not appear to ever be used, except inside of a single assert(). But it is good to set it correctly, nevertheless. This fixes ticket [7929c1efb2d67e98], which as far as I can tell is completely harmless. (check-in: [ef604882] user: drh branch: trunk, size: 27514)
2019-12-18
20:51
[99e1d82f] part of check-in [86297431] Continue to back away from the LEFT JOIN optimization of check-in [41c27bc0ff1d3135] by disallowing query flattening if the outer query is DISTINCT. Without this fix, if an index scan is run on the table within the view on the right-hand side of the LEFT JOIN, stale result registers might be accessed yielding incorrect results, and/or an OP_IfNullRow opcode might be invoked on the un-opened table, resulting in a NULL-pointer dereference. This problem was found by the Yongheng and Rui fuzzer. (check-in: [86297431] user: drh branch: trunk, size: 27184)
2019-11-30
19:29
[f787ee27] part of check-in [4066a34d] Do not allow a term in the WHERE clause of the query to qualify a partial index on the right table of a LEFT JOIN. Ticket [7f39060a24b47353] (check-in: [4066a34d] user: drh branch: trunk, size: 26777)
2019-11-03
00:07
[debdadab] part of check-in [3be19e11] The optimization of check-in [9b2879629c34fc0a] is incorrectly reasoned. The WHERE clause of the partial index might not be true if the table of the partial index is the right table of a left join. So disable the optimization in that case. Ticket [623eff57e76d45f6] (check-in: [3be19e11] user: drh branch: trunk, size: 25966)
2019-10-29
16:18
[832f7c75] part of check-in [4d424f30] Remove the legacy_file_format PRAGMA. In its place, provide the SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option to sqlite3_db_config(). Fix for ticket [6484e6ce678fffab] (check-in: [4d424f30] user: drh branch: trunk, size: 25388)
2019-10-10
17:09
[b5157538] part of check-in [7833feec] Prevent SQLite from assuming that if ((? IS NOT NULL) IS NOT NULL) is true, ? may not be NULL. Fix for [c31034044bb72c89]. (check-in: [7833feec] user: dan branch: trunk, size: 25389)
2019-10-09
21:14
[7610c181] part of check-in [eb7ed90b] Avoid assuming that an expression that contains the sub-expression (? IS FALSE) or (? IS TRUE) may only be true if ? is non-null. Fix for [a976c487]. (check-in: [eb7ed90b] user: dan branch: trunk, size: 24660)
2019-08-29
15:50
[6ce8296a] part of check-in [616f5663] Fix another case where SQLite assumes that if "~(? AND FALSE)" is true, "?" must be non-null. (check-in: [616f5663] user: dan branch: trunk, size: 24172)
2019-08-17
17:07
[f505c78a] part of check-in [500c9152] Ensure the functions that appear to be constant are not factored out of expression that originate on the right-hand side of a LEFT JOIN. Ticket [6710d2f7a13a2997] (check-in: [500c9152] user: drh branch: trunk, size: 24034)
2019-02-05
14:36
[d53a3662] part of check-in [d840e9bb] The IS NOT NULL operator does not imply that the operand is never NULL. Fix for ticket [5948e09b8c415bc45da5cf] (check-in: [d840e9bb] user: drh branch: trunk, size: 23485)
2019-01-17
14:34
[b6f771f4] part of check-in [7cac614d] Limit the size of SrcList objects to 200 entries (compile-time configurable using -DSQLITE_MAX_SRCLIST=n). The maximum number of tables in a join has always been 64, so this is not a real constraint on capability. Limiting the size of a SrcList prevents DOS attacks (discovered by OSSFuzz) using crazy nexted CTE joins. (check-in: [7cac614d] user: drh branch: trunk, size: 23087)
2018-04-10
15:31
[2ad9d7fe] part of check-in [1fdaf2c3] Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form "lhs.x IS NOT ?". (check-in: [1fdaf2c3] user: dan branch: trunk, size: 22902)
12:10
[6fa8e2ba] part of check-in [38d319c1] Fix a problem causing the LEFT JOIN strength reduction optimization to be incorrectly applied in some cases where the WHERE clause of the query contains a filter expression of the form NOT(x AND y). Ticket [1e39b966]. (check-in: [38d319c1] user: dan branch: trunk, size: 22774)
2018-03-24
15:47
[730e3e8d] part of check-in [e88cf3d4] Yet another fault in the sqlite3ExprImpliesNotNull() routine, causing errors in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. (check-in: [e88cf3d4] user: drh branch: trunk, size: 22636)
13:24
[cffed24d] part of check-in [cf171abe] Bug fix in the LEFT JOIN strength reduction optimization of check-in [dd568c27b1d76563]. The sqlite3ExprImpliesNotNull() routine was mistakenly assuming that a CASE expression must always be NULL if contained any reference to a variable that was NULL. (check-in: [cf171abe] user: drh branch: trunk, size: 22512)
2017-06-20
17:43
[442c462e] part of check-in [48346268] Ensure that the query planner knows that any column of a flattened LEFT JOIN can be NULL even if that column is labeled with "NOT NULL". Fix for ticket [892fc34f173e99d8]. (check-in: [48346268] user: dan branch: trunk, size: 20660)
2017-05-25
00:08
[302f164f] part of check-in [77fc2301] The TK_IF_NULL_ROW expression node must be treated as a variable that references the table Expr.iTable. Proposed fix for ticket [7fde638e94287d2c]. (check-in: [77fc2301] user: drh branch: trunk, size: 20155)
2017-05-23
15:21
[a26e4c45] part of check-in [44b21e35] Disable the LEFT JOIN flattening optimization for aggregate queries, as it does not currently work. Further fix for ticket [cad1ab4cb7b0fc344]. (check-in: [44b21e35] user: drh branch: trunk, size: 19573)
12:36
[89087a32] part of check-in [941d8142] Ensure that the expression rewriter inside the query flattener decends into the substructure of the TK_IF_NULL_ROW operator. This is a continuation of the fix for ticket [cad1ab4cb7b0fc344]. (check-in: [941d8142] user: drh branch: trunk, size: 19180)
01:21
[5cab75bb] part of check-in [92c17850] When flattening a query, make sure iTable attribute of TK_IF_NULL_ROW operators (that result from a prior flattening of a LEFT JOIN) are updated correctly. Fix for ticket [cad1ab4cb7b0fc344]. (check-in: [92c17850] user: drh branch: trunk, size: 19036)
2015-06-08
18:48
[f9d4a28d] part of check-in [0d9edfab] If a query contains "FROM t1 LEFT JOIN t2, t3, t4", ensure that tables t3 and t4 are not scanned before t2. The trunk already does this. (check-in: [0d9edfab] user: dan branch: vtab-left-join, size: 18560)
2014-07-18
17:39
[52d4d49f] part of check-in [824dde7f] SQLite has long accepted some unadvertised and non-standard join syntax. Add a test to ensure that future versions continue to accept this non-standard syntax, to avoid breaking legacy applications that use the undefined syntax. (check-in: [824dde7f] user: drh branch: trunk, size: 17857)
2014-03-05
19:13
[559b81eb] part of check-in [e406d4bb] Avoid running a couple of test cases that use realloc() extensively if SQLITE_MEMDEBUG is defined. (check-in: [e406d4bb] user: dan branch: trunk, size: 17363)
16:15
[533dc4c1] part of check-in [ef1a9986] Add tests to join.test to verify that it is not possible to use more than 64 tables in a join. (check-in: [ef1a9986] user: dan branch: trunk, size: 17002)
2009-10-19
15:52
[8d63cc4d] part of check-in [6fe63711] When generating WHERE clause terms internally for NATURAL and USING joins, identify the table by its position in the FROM list, not by its name or alias. Fix for [b73fb0bd64]. (check-in: [6fe63711] user: dan branch: trunk, size: 15985)
2009-07-01
16:12
[a79084b0] part of check-in [29b48972] Report an error if a USING or ON clause is specified following a from-list element that is not to the right of a join operator. Fix for #3846. (CVS 6832) (check-in: [29b48972] user: danielk1977 branch: trunk, size: 14268)
2008-12-05
00:00
[c5696c7e] part of check-in [06d206ef] Expand table.* properly on a USING or a NATURAL join. Ticket #3522. (CVS 5979) (check-in: [06d206ef] user: drh branch: trunk, size: 14246)
2008-08-14
00:19
[e0664af7] part of check-in [8947c72f] Do not flatten the right term of a LEFT join. Ticket #3300. (CVS 5565) (check-in: [8947c72f] user: drh branch: trunk, size: 12856)
2008-07-09
14:47
[fc6c4e21] part of check-in [417aa158] Add a test case to join.test. No code changes, no bugs found. (CVS 5384) (check-in: [417aa158] user: danielk1977 branch: trunk, size: 12527)
2008-07-08
23:40
[f6aab432] part of check-in [cbd3c158] Remove obsolete code from select.c, including the "affinity" parameter to the sqlite3Select() module. (CVS 5380) (check-in: [cbd3c158] user: drh branch: trunk, size: 12047)
2006-06-20
11:01
[af044318] part of check-in [c6ea353b] Modifications so that compilation and testing with the various OMIT macros defined works. (CVS 3276) (check-in: [c6ea353b] user: danielk1977 branch: trunk, size: 11326)
2006-03-02
04:44
[a74f84f8] part of check-in [a286e54e] Allow WHERE clause terms on the left table of a LEFT OUTER JOIN to contain aggregate subqueries. Ticket #1697. (CVS 3117) (check-in: [a286e54e] user: drh branch: trunk, size: 11273)
2005-06-06
17:11
[db380273] part of check-in [6a51bdee] Avoid ambiguous column name errors when the column name is in the USING clause of a join. Ticket #743. (CVS 2495) (check-in: [6a51bdee] user: drh branch: trunk, size: 10932)
16:59
[8d17a014] part of check-in [265fb607] Naming the join columns in the result set of a natural join does not result in an "ambiguous column name" error. Ticket #1217. (CVS 2494) (check-in: [265fb607] user: drh branch: trunk, size: 10848)
2005-01-21
15:52
[e0847127] part of check-in [17122c7e] Final preparations for the 3.1.0 alpha release. (CVS 2255) (check-in: [17122c7e] user: drh branch: trunk, size: 10765)
04:25
[95ee10ed] part of check-in [d4e19efc] Modify test scripts to work when SQLITE_OMIT_SUBQUERY (but no other OMIT macros) is defined. (CVS 2252) (check-in: [d4e19efc] user: danielk1977 branch: trunk, size: 10751)
03:12
[a61c9328] part of check-in [bb0254ab] Modify test scripts to work when SQLITE_OMIT_SUBQUERY (along with other OMIT macros) is defined. (CVS 2251) (check-in: [bb0254ab] user: danielk1977 branch: trunk, size: 10646)
2005-01-18
17:40
[59e5abff] part of check-in [c06add57] Make sure USING and NATURAL work on joins even if the columns are renamed using an AS phrase. Ticket #523. (CVS 2233) (check-in: [c06add57] user: drh branch: trunk, size: 10590)
16:02
[76a64509] part of check-in [9295050a] Column names coming back from a SELECT are now just the name of the source column without the "table." prefix. In other words, "PRAGMA short_column_names=ON" is now the default. This makes the names of columns behave more like other SQL engines. The old behavior can be restored by setting "PRAGMA short_column_names=OFF". (CVS 2231) (check-in: [9295050a] user: drh branch: trunk, size: 9971)
2004-11-22
13:35
[ea8c77b9] part of check-in [007be591] Ensure tests pass when SQLITE_OMIT_COMPOUND_SELECT is defined. (CVS 2138) (check-in: [007be591] user: danielk1977 branch: trunk, size: 10209)
08:43
[4bee854e] part of check-in [711e8d76] Modify test suite to work when SQLITE_OMIT_VIEW is defined. (CVS 2132) (check-in: [711e8d76] user: danielk1977 branch: trunk, size: 10164)
2003-09-27
13:39
[9ef6aaba] part of check-in [824430b3] Remove support for the Oracle8 outer join syntax. (CVS 1106) (check-in: [824430b3] user: drh branch: trunk, size: 10082)
2003-06-16
00:40
[54e770b7] part of check-in [dd8943e8] Do not flatten a subquery which is the right term of a LEFT OUTER JOIN if the subquery contains a WHERE clause. Ticket #350. (CVS 1027) (check-in: [dd8943e8] user: drh branch: trunk, size: 11312)
2003-05-06
20:35
[16c91ec2] part of check-in [6d4b6597] Restrain the flattener in the presence of outer joins. Ticket #306. (CVS 958) (check-in: [6d4b6597] user: drh branch: trunk, size: 10168)
2003-02-20
01:48
[c97267c1] part of check-in [6a45fe3b] When the right table in a LEFT OUTER JOIN contains an INTEGER PRIMARY KEY make sure that key is NULL if there is no row in the right table that matches the current row in the left table. Tickets #246 and #247. (CVS 873) (check-in: [6a45fe3b] user: drh branch: trunk, size: 9383)
2002-10-27
19:35
[178b25dc] part of check-in [31df3690] Minimal support for oracle8 outer join syntax. (CVS 771) (check-in: [31df3690] user: drh branch: trunk, size: 8640)
2002-09-30
12:36
[05d2cd1a] part of check-in [6c0f44bd] Fix a bug in the left outer join logic. (CVS 758) (check-in: [6c0f44bd] user: drh branch: trunk, size: 7410)
2002-07-31
19:50
[90a620f2] part of check-in [fe329e07] Fix for ticket #124: Fix a stack VDBE overflow problem on joins on an INTEGER PRIMARY KEY. (CVS 700) (check-in: [fe329e07] user: drh branch: trunk, size: 6808)
2002-07-01
12:27
[75561ec0] part of check-in [1f8a73b1] Fix for tickets #90 and #89: Make the AS keyword optional again. (CVS 654) (check-in: [1f8a73b1] user: drh branch: trunk, size: 5627)
2002-06-28
12:18
[89bd9954] part of check-in [96515b81] Additional test cases added. The following bug fixed: A segfault was occurring if a VIEW consisted of a join with a USING clause. (CVS 651) (check-in: [96515b81] user: drh branch: trunk, size: 5617)
2002-05-25
00:18
[ea6a4097] part of check-in [d8d04c14] Additional testing of LEFT OUTER JOIN. (CVS 588) (check-in: [d8d04c14] user: drh branch: trunk, size: 5218)
2002-05-24
20:31
[905f4b13] part of check-in [99bd1f5b] Initial implementation of LEFT OUTER JOIN including the expanded SQL92 join syntax. The basic functionality is there but there is still a lot of testing to do. (CVS 587) (check-in: [99bd1f5b] user: drh branch: trunk, size: 1873) Added