Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Expand table.* properly on a USING or a NATURAL join. Ticket #3522. (CVS 5979) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
06d206ef7d5e433ccde347d63dfcd217 |
User & Date: | drh 2008-12-05 00:00:07.000 |
Context
2008-12-05
| ||
02:36 | Variable name changes in the query optimizer for disambiguation and clarification. Clear space in boolean vectors for new bit values to encode new query plan templates. (CVS 5980) (check-in: 81bd0b5ce8 user: drh tags: trunk) | |
00:00 | Expand table.* properly on a USING or a NATURAL join. Ticket #3522. (CVS 5979) (check-in: 06d206ef7d user: drh tags: trunk) | |
2008-12-04
| ||
22:17 | Fix a segfault that can occur in the RowSet object following a malloc failure. (CVS 5978) (check-in: cb0f1658d3 user: drh tags: trunk) | |
Changes
Changes to src/select.c.
︙ | |||
8 9 10 11 12 13 14 | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains C code routines that are called by the parser ** to handle SELECT statements in SQLite. ** |
︙ | |||
3148 3149 3150 3151 3152 3153 3154 | 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 | - + | ** result-set list. */ if( IsHiddenColumn(&pTab->aCol[j]) ){ assert(IsVirtual(pTab)); continue; } |
︙ |
Changes to test/join.test.
︙ | |||
8 9 10 11 12 13 14 | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | - + | # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. # # This file implements tests for joins, including outer joins. # |
︙ | |||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | } } {b 2 c 3 d 4 a 1 b 3 c 4 d 5 a 2} do_test join-1.3.4 { execsql { SELECT b FROM t1 NATURAL JOIN t2; } } {2 3} # ticket #3522 do_test join-1.3.5 { execsql2 { SELECT t2.* FROM t2 NATURAL JOIN t1 } } {b 2 c 3 d 4 b 3 c 4 d 5} do_test join-1.3.6 { execsql2 { SELECT xyzzy.* FROM t2 AS xyzzy NATURAL JOIN t1 } } {b 2 c 3 d 4 b 3 c 4 d 5} do_test join-1.3.7 { execsql2 { SELECT t1.* FROM t2 NATURAL JOIN t1 } } {a 1 b 2 c 3 a 2 b 3 c 4} do_test join-1.3.8 { execsql2 { SELECT xyzzy.* FROM t2 NATURAL JOIN t1 AS xyzzy } } {a 1 b 2 c 3 a 2 b 3 c 4} do_test join-1.3.9 { execsql2 { SELECT aaa.*, bbb.* FROM t2 AS aaa NATURAL JOIN t1 AS bbb } } {b 2 c 3 d 4 a 1 b 2 c 3 b 3 c 4 d 5 a 2 b 3 c 4} do_test join-1.3.10 { execsql2 { SELECT t1.*, t2.* FROM t2 NATURAL JOIN t1 } } {a 1 b 2 c 3 b 2 c 3 d 4 a 2 b 3 c 4 b 3 c 4 d 5} do_test join-1.4.1 { execsql2 { SELECT * FROM t1 INNER JOIN t2 USING(b,c); } } {a 1 b 2 c 3 d 4 a 2 b 3 c 4 d 5} do_test join-1.4.2 { execsql2 { |
︙ | |||
82 83 84 85 86 87 88 89 90 91 92 93 94 95 | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | + + + + + + + + + + + + + | } } {a 1 b 2 c 3 d 4 a 2 b 3 c 4 d 5} do_test join-1.4.5 { execsql { SELECT b FROM t1 JOIN t2 USING(b); } } {2 3} # Ticket #3522 do_test join-1.4.6 { execsql2 { SELECT t1.* FROM t1 JOIN t2 USING(b); } } {a 1 b 2 c 3 a 2 b 3 c 4} do_test join-1.4.7 { execsql2 { SELECT t2.* FROM t1 JOIN t2 USING(b); } } {b 2 c 3 d 4 b 3 c 4 d 5} do_test join-1.5 { execsql2 { SELECT * FROM t1 INNER JOIN t2 USING(b); } } {a 1 b 2 c 3 c 3 d 4 a 2 b 3 c 4 c 4 d 5} do_test join-1.6 { execsql2 { |
︙ | |||
188 189 190 191 192 193 194 195 196 197 198 199 200 201 | 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | + + + + + + + + + + + + + + + + + + | } {1 2 3 4 5} do_test join-2.1 { execsql { SELECT * FROM t1 NATURAL LEFT JOIN t2; } } {1 2 3 4 2 3 4 5 3 4 5 {}} # ticket #3522 do_test join-2.1.1 { execsql2 { SELECT * FROM t1 NATURAL LEFT JOIN t2; } } {a 1 b 2 c 3 d 4 a 2 b 3 c 4 d 5 a 3 b 4 c 5 d {}} do_test join-2.1.2 { execsql2 { SELECT t1.* FROM t1 NATURAL LEFT JOIN t2; } } {a 1 b 2 c 3 a 2 b 3 c 4 a 3 b 4 c 5} do_test join-2.1.3 { execsql2 { SELECT t2.* FROM t1 NATURAL LEFT JOIN t2; } } {b 2 c 3 d 4 b 3 c 4 d 5 b {} c {} d {}} do_test join-2.2 { execsql { SELECT * FROM t2 NATURAL LEFT OUTER JOIN t1; } } {1 2 3 {} 2 3 4 1 3 4 5 2} do_test join-2.3 { catchsql { |
︙ |
Added test/tkt3522.test.
|