Commit graph

287 commits

Author SHA1 Message Date
serg@sergbook.mysql.com
a04fc26c54 manually merged 2004-12-31 15:26:24 +01:00
igor@rurik.mysql.com
04974868a1 subselect.result, subselect.test:
Added a couple of new test cases for bug #7351.
2004-12-26 02:04:40 -08:00
igor@rurik.mysql.com
d3fa245363 subselect.result, subselect.test:
Added test cases for bug #7351.
item_cmpfunc.cc:
  Fixed bug #7351: incorrect result for a query with a
  subquery returning empty set.
  If in the predicate v IN (SELECT a FROM t WHERE cond)
  v is null, then the result of the predicate is either
  INKNOWN or FALSE. It is FALSE if the subquery returns
  an empty set.
item_subselect.cc:
  Fixed bug #7351: incorrect result for a query with a
  subquery returning empty set.
  The problem was due to not a quite legal transformation
  for 'IN' subqueries. A subquery containing a predicate
  of the form
  v IN (SELECT a FROM t WHERE cond)
  was transformed into
  EXISTS(SELECT a FROM t WHERE cond AND (a=v OR a IS NULL)).
  Yet, this transformation is valid only if v is not null.
  If v is null, then, in the case when
  (SELECT a FROM t WHERE cond) returns an empty set the value
  of the predicate is FALSE, otherwise the result of the
  predicate is INKNOWN.
  The fix resolves this problem by changing the result
  of the transformation to
  EXISTS(SELECT a FROM t WHERE cond AND (v IS NULL OR (a=v OR a IS NULL)))
  in the case when v is nullable.
  The new transformation prevents applying the lookup
  optimization for IN subqueries. To make it still
  applicable we have to introduce guarded access methods.
2004-12-25 19:17:57 -08:00
monty@mishka.local
4f4bbfc279 Merge with 4.1 2004-12-22 13:54:39 +02:00
ram@gw.mysql.r18.ru
d599808fbc Clean-up.
TYPE=MyISAM replaced with ENGINE=MyISAM.
2004-12-14 18:47:34 +04:00
bell@sanja.is.com.ua
b9abf25a55 new reference which refer to current value not to result used for resolving outer
refernces if subqueri is not in HAVING clause (BUG#7079)
  and the same used for subquery transformetion
2004-12-11 17:13:19 +02:00
bell@sanja.is.com.ua
b218560604 merge 2004-12-07 09:07:37 +02:00
monty@mysql.com
0de4777187 Merge with 4.1 2004-12-06 11:38:56 +02:00
bell@sanja.is.com.ua
a3ad1765a8 merge 2004-12-03 23:24:41 +02:00
bell@sanja.is.com.ua
4c017d18e2 Merge 2004-12-01 10:25:11 +02:00
bell@sanja.is.com.ua
3c108b2a84 init values to avoid junk returning in case of null value asking without assigning value (BUG#6806) 2004-11-25 22:54:49 +02:00
serg@serg.mylan
ee933cd198 merged 2004-11-22 21:33:15 +01:00
dlenev@brandersnatch.localdomain
c37977c87d Fix for bug #6462 "Same request on same data returns different
results." a.k.a. "Proper cleanup of subqueries is missing for SET and DO
statements". (Version #2 with after-review fixes).

To perform proper cleanup for statements that can contain subqueries 
but don't have main select we must call free_undelaid_joins().
2004-11-22 13:05:10 +03:00
bell@sanja.is.com.ua
f5e253dc2f reporting empty result added in case of max/min optimisation of ALL/ANY/SOME subqueries
fixed null processing in NOT operation used in ALL subquery (Bug #6247)
2004-11-18 18:10:07 +02:00
bell@sanja.is.com.ua
bc5a9111d7 backport Serg's fix of FT interface (BUG#6523) 2004-11-16 22:58:02 +02:00
bell@sanja.is.com.ua
27395a2fb1 fixed joincleunup to avoid double deletin tables, and too earlyfull cleanup in case of EXPLAIN
fixed cleunup of TMP_TABLE_PARAM
(BUG#6406)
2004-11-16 00:16:04 +02:00
bell@sanja.is.com.ua
77540c8996 moved procedure list initialization (BUG#6517) 2004-11-15 14:37:40 +02:00
monty@mysql.com
afbe601302 merge with 4.1 2004-10-29 19:26:52 +03:00
bell@sanja.is.com.ua
3ae044c24f removed incorrect error message about aggregate functions
improved mechanisn of detection posibility to be NULL for single row queries
switched off substitution optimisation for single row subqueries in PS due to problem in resolving substituted expressions
(changes to make subselects test working with PS protocol)
2004-10-27 21:11:06 +03:00
bell@sanja.is.com.ua
f11bcefae1 fixed error handling if creating derived table failed
single row subquery always can return NULL (no rows found) (BUG#5590)
2004-09-17 19:08:46 +03:00
monty@mysql.com
31122efde7 Merge with 4.1
(Includes merge of arena code in 4.1 and 5.0)
2004-09-06 15:14:10 +03:00
bell@sanja.is.com.ua
5d42c492d6 fixed temporary table processing expresions of subqueries and removed wrong restrictions of field resolving (BUG#5326) 2004-09-06 13:00:24 +03:00
hf@deer.(none)
43a853dd4d Merging 2004-08-24 12:58:21 +05:00
bell@sanja.is.com.ua
9d71f85121 subselect test split on two tests because gis extention can be absent 2004-08-24 10:15:39 +03:00
bell@sanja.is.com.ua
6fcd27e9cd after review fixes:
allowed parsing of table fields inside aggregate functions
 added new tests of fields resolving in grouping
2004-08-23 22:31:01 +03:00
bell@sanja.is.com.ua
3ca433e332 merge 2004-08-23 15:50:59 +03:00
hf@deer.(none)
6c136f99bf Proposed fix for bug #5003 (subselect with MIN() and LIKE crashes server)
We have next problem here:
active_index is wrong in the subselect's handler on the second val_int() call.
Optimizer sees that we can use index-read for that kind of condition,
and matching_cond() (sql/opt_sum.cc) doesn't. I suspect, proper solution is
to add appropriate code to the matching_cond() but now just added
missed initialization.
2004-08-22 00:06:19 +05:00
serg@serg.mylan
a29c9d3707 Bug #4769 - ft in subqueries 2004-08-19 18:40:15 +02:00
bell@sanja.is.com.ua
0ce931947e skip resolving field in table list if table list is not accessable due to groupping (BUG#4814) 2004-08-13 10:01:30 +03:00
bell@sanja.is.com.ua
d7ae5de89b in case of compound index fill all parts in optimized IN (BUG#4435) 2004-08-12 17:31:23 +03:00
serg@serg.mylan
8d080cbcfa manual merge 2004-07-20 15:34:57 +02:00
monty@mysql.com
1e31199995 Merge with 4.1.3-beta 2004-07-07 11:29:39 +03:00
bell@sanja.is.com.ua
130740248b aggregate functions check during substitution made only for single row subselects (BUG#4400)
restoring current senect pointer before PS rexecution (backport from 5.0)
removed spaces at  lines ends
2004-07-04 08:46:28 +03:00
bell@sanja.is.com.ua
5ed07df98a Merge 2004-06-22 13:48:51 +03:00
bell@sanja.is.com.ua
c6cd51798b post-review changes (Bug#4090) 2004-06-22 13:41:57 +03:00
ram@gw.mysql.r18.ru
f3d11147c9 after merge fix 2004-06-22 14:48:29 +05:00
bell@sanja.is.com.ua
cb0f607c5e Merge 2004-06-22 12:38:23 +03:00
monty@mysql.com
fd0153304d Fixed some byte order bugs with prepared statements on machines with high-byte-first. (Bug #4173)
Fixed problem with NULL and derived tables (Bug #4097)
Cleanup of new pushed code
2004-06-18 03:02:29 +03:00
ram@gw.mysql.r18.ru
5790b17ecb a test case (Bug #4102 Crash with a DBUG window after a request) 2004-06-17 12:47:58 +05:00
bell@sanja.is.com.ua
d2c585df31 fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT (BUG#4090) 2004-06-13 22:39:09 +03:00
bell@sanja.is.com.ua
be642b9bcd EXISTS(SELECT * ...)
close table before opening in optimize
2004-06-10 21:33:15 +03:00
bell@sanja.is.com.ua
266dd53da2 if exists should not be used inside test
removed influence of some tests on other tests
2004-05-28 21:31:51 +03:00
pem@mysql.com
71eddc362e Merging 4.1 to 5.0. 2004-05-26 17:04:45 +02:00
bell@sanja.is.com.ua
bb34b56bfd Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-explain-4.1
2004-05-14 15:29:23 +03:00
bell@sanja.is.com.ua
d2fa79b291 keep old engine & JOIN if we changed subquery Item (Bug #3646) 2004-05-07 23:06:11 +03:00
pem@mysql.com
bf45960eef Merge 4.1 -> 5.0 2004-05-07 18:52:06 +02:00
bell@sanja.is.com.ua
3aae50e8c0 EXPLAIN UNION using same routing which used for execution which allow return correct bug messages (Bug #3639)
EXPLAIN of hidden SELECT of UNION
2004-05-06 20:40:21 +03:00
monty@mysql.com
4e2b94dea6 After merge fixes 2004-05-05 21:46:16 +03:00
bell@sanja.is.com.ua
25d815cde6 fixed zero result case for group functions in subquery (Bug #3505)
fixed LIMIT 0 for zero rows optimisation
2004-05-02 13:03:49 +03:00
pem@mysql.com
dfd59e296e Merge 4.1 -> 5.0. 2004-04-07 19:07:44 +02:00