Commit graph

327 commits

Author SHA1 Message Date
unknown
92f55e98dd Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/psergey/mysql-4.1-bug8218


mysql-test/r/subselect.result:
  Auto merged
mysql-test/t/subselect.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2005-02-14 23:49:01 +03:00
unknown
4173610bd2 Remove redundant DROP TABLE from test case 2005-02-14 23:45:48 +03:00
unknown
84d1199692 Fix for BUG#8218:
Remove TMP_TABLE_PARAM::copy_funcs_it. TMP_TABLE_PARAM is a member of JOIN which is 
copied via memcpy, and List_iterator_fast TMP_TABLE_PARAM::copy_funcs_it ends up 
pointing to the wrong List.


mysql-test/r/subselect.result:
  Testcase for BUG#8218
mysql-test/t/subselect.test:
  Testcase for BUG#8218
sql/sql_select.cc:
  Fix for BUG#8218: Create/use own iterator since TMP_TABLE_PARAM::copy_funcs_it is removed.
2005-02-12 22:58:54 +03:00
unknown
86d5bfc42b reverted patch for BUG#7351 (because of performance ussie) 2005-02-09 21:08:08 +02:00
unknown
3455bc5398 fixed test 'subselect' in case when innodb is not compiled in (thanks HF who niticed it)
mysql-test/r/subselect.result:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
mysql-test/r/subselect_innodb.result:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
mysql-test/t/subselect.test:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
mysql-test/t/subselect_innodb.test:
  test depends on innodb moved from 'subselect' to 'subselect_innodb'
2005-02-06 13:06:12 +02:00
unknown
755c9aabe2 fixed cleanup of result object of subqueries. (BUG#8125)
mysql-test/r/subselect.result:
  cleaning up of results of subselects test
mysql-test/t/subselect.test:
  cleaning up of results of subselects test
sql/item_subselect.cc:
  call result object cleupup on engine cleunup
sql/sql_class.cc:
  added cleanup of select_max_min_finder_subselect
sql/sql_class.h:
  added cleanup of select_max_min_finder_subselect
2005-01-26 15:27:45 +02:00
unknown
38e664cf64 fixed way of forward reference detection to support literal constant (BUG#8025)
mysql-test/r/subselect.result:
  Forward reference detection
mysql-test/t/subselect.test:
  Forward reference detection
sql/item.cc:
  now forward reference is detected via ref_pointer_array, because some literal constants are 'fixed' just after creation
sql/sql_base.cc:
  fill ref_pointer_array with zerows for forward reference detection.
2005-01-24 17:17:19 +02:00
unknown
9182786918 check that row elements have the same dimention that SELECT list elements in comporison between rows and subqueries added (BUG#8022)
mysql-test/r/subselect.result:
  Comparison subquery and row with nested rows
mysql-test/t/subselect.test:
  Comparison subquery and row with nested rows
sql/item_subselect.cc:
  check that row elements have the same dimention that SELECT list elements
2005-01-24 15:56:57 +02:00
unknown
d514a06a86 fixed column number fetchinmg for subqueries. (BUG#8020)
fixed cols() method call (it have to be called only after fix_fields())


mysql-test/r/subselect.result:
  Comparison subquery with * and row
mysql-test/t/subselect.test:
  Comparison subquery with * and row
sql/item_cmpfunc.h:
  initialization allowed_arg_cols for autodetection
sql/item_func.cc:
  support of allowed_arg_cols autodetection by first argument
sql/item_func.h:
  commant
sql/item_subselect.cc:
  correct column number fetching for subqueries
sql/sql_lex.h:
  method to check that UNION is prepared
2005-01-24 14:25:44 +02:00
unknown
2e50981af9 Fix for BUG#7885
mysql-test/r/subselect.result:
  Testcase for BUG#7885
mysql-test/t/subselect.test:
  Testcase for BUG#7885
sql/item_subselect.cc:
  Fix for BUG#7885: In Item_subselect::fix_fields, return error if engine->prepare fails.
  Also removed redundant code line.
2005-01-18 17:26:05 +03:00
unknown
a9eef185c6 subselect.result, subselect.test:
Added a couple of new test cases for bug #7351.


mysql-test/t/subselect.test:
  Added a couple of new test cases for bug #7351.
mysql-test/r/subselect.result:
  Added a couple of new test cases for bug #7351.
2004-12-26 02:04:40 -08:00
unknown
a4d840a09c 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.


sql/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.
sql/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.
mysql-test/t/subselect.test:
  Added test cases for bug #7351.
mysql-test/r/subselect.result:
  Added test cases for bug #7351.
2004-12-25 19:17:57 -08:00
unknown
e938cfcea6 Clean-up.
TYPE=MyISAM replaced with ENGINE=MyISAM.
2004-12-14 18:47:34 +04:00
unknown
a9457c573d fixed optimized SOME subquery
mysql-test/r/subselect.result:
  correct results of SOME subquery
sql/item_cmpfunc.cc:
  some comments added
  fixed optimized SOME subquery
2004-12-13 01:21:14 +02:00
unknown
3ce0df5937 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


mysql-test/r/subselect.result:
  reference on changable fields from subquery
mysql-test/t/subselect.test:
  reference on changable fields from subquery
sql/item.cc:
  new reference which refer to current value not to result used
sql/item.h:
  new reference which refer to current value not to result used
sql/item_subselect.cc:
  new reference which refer to current value not to result used
2004-12-11 17:13:19 +02:00
unknown
b9d9c31430 merge
sql/item_cmpfunc.cc:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/item_sum.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2004-12-07 09:07:37 +02:00
unknown
b2f7b5bd64 merge 2004-12-03 23:24:41 +02:00
unknown
0a24ac9ed2 Merge
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
mysql-test/r/subselect.result:
  SCCS merged
mysql-test/t/subselect.test:
  SCCS merged
2004-12-01 10:25:11 +02:00
unknown
8127cea512 init values to avoid junk returning in case of null value asking without assigning value (BUG#6806)
mysql-test/r/subselect.result:
   Equal operation under row and empty subquery
mysql-test/t/subselect.test:
   Equal operation under row and empty subquery
sql/item.h:
  init values to avoid junk returning in case of null value asking without assigning value
2004-11-25 22:54:49 +02:00
unknown
4389be7557 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().


mysql-test/r/subselect.result:
  Added test 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".
mysql-test/t/subselect.test:
  Added test 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".
sql/set_var.cc:
  Added missing cleanup of joins used in subqueries to SET statement.
sql/sql_do.cc:
  Added missing cleanup of joins used in subqueries to DO statement.
2004-11-22 13:05:10 +03:00
unknown
9438c2ca76 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)


mysql-test/r/subselect.result:
  new tests of ALL/ANY wiews
mysql-test/t/subselect.test:
  new tests of ALL/ANY wiews
sql/item_cmpfunc.cc:
  fixed special NOT ALL processing
  fixed processing max/min optimized subqueries with empty results (added methods to detect empty results) and special NOP operation to process them for SOME/ANY sobqueries
sql/item_cmpfunc.h:
  fixed processing max/min optimized subqueries with empty results (added methods to detect empty results) and special NOP operation to process them for SOME/ANY sobqueries
sql/item_subselect.cc:
  reporting empty result added for max/min subqueries
sql/item_subselect.h:
  reporting empty result added for max/min subqueries
sql/item_sum.cc:
  reporting empty result added fox max/min aggregate functions
sql/item_sum.h:
  reporting empty result added fox max/min aggregate functions
sql/sql_class.cc:
  reporting empty result added for max/min subqueries
sql/sql_parse.cc:
  reporting empty result added for max/min subqueries
sql/sql_union.cc:
  reporting empty result added for max/min subqueries
2004-11-18 18:10:07 +02:00
unknown
70ed3160d9 backport Serg's fix of FT interface (BUG#6523)
mysql-test/r/subselect.result:
  subqueries with full text search
mysql-test/t/subselect.test:
  subqueries with full text search
sql/ha_myisam.h:
  backport Serg's fix of FT interface
sql/handler.h:
  backport Serg's fix of FT interface
sql/opt_range.h:
  backport Serg's fix of FT interface
sql/sql_select.cc:
  comment for previous patch
2004-11-16 22:58:02 +02:00
unknown
dd93baa00d fixed joincleunup to avoid double deletin tables, and too earlyfull cleanup in case of EXPLAIN
fixed cleunup of TMP_TABLE_PARAM
(BUG#6406)


mysql-test/r/subselect.result:
  primary query with temporary table and subquery with groupping
mysql-test/t/subselect.test:
  primary query with temporary table and subquery with groupping
sql/sql_class.h:
  fixed cleunup of TMP_TABLE_PARAM
sql/sql_select.cc:
  uncacheable test made simplier
  fixed joincleunup to avoid double deletin tables, and too earlyfull cleanup in case of EXPLAIN
2004-11-16 00:16:04 +02:00
unknown
b685909d6a moved procedure list initialization (BUG#6517)
mysql-test/r/subselect.result:
  Subselect in non-select command just after connection
mysql-test/t/subselect.test:
  Subselect in non-select command just after connection
sql/sql_lex.cc:
  moved procedure initialization
sql/sql_parse.cc:
  moved procedure initialization
2004-11-15 14:37:40 +02:00
unknown
464da8f13a 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)


mysql-test/r/subselect.result:
  removed incorrect error message about aggregate functions
  improved mechanisn of detection posibility to be NULL for single row queries
mysql-test/t/subselect.test:
  removed incorrect error message about aggregate functions
sql/item_subselect.cc:
  removed incorrect error message about aggregate functions
  switched off substitution optimisation for single row subqueries in PS due to problem in resolving substituted expressions
  improved mechanisn of detection posibility to be NULL for single row queries
sql/item_subselect.h:
  new method to help in NULL ability detection
2004-10-27 21:11:06 +03:00
unknown
9b5cf9464c A fix and test case for Bug#6088 "FOUND_ROWS returns wrong values for
prepared statements when LIMIT is used" and post-review comments.
The fix changes the approach we calculate the need for ORDER BY 
in UNION: the previous was not PS friendly, as it damaged SELECT_LEX 
options in case of single select.


mysql-test/r/ps.result:
  Test results fixed: the test case for Bug#6088
mysql-test/r/subselect.result:
  Test results fixed: now we don't perform ORDER BY for parts of UNION
  if there is no LIMIT clause.
mysql-test/t/ps.test:
  A test case for Bug#6088 "FOUND_ROWS returns wrong values for
   prepared statements when LIMIT is used".
sql/sql_union.cc:
  The actual fix for Bug#6088:
  - don't modify SELECT_LEX'es
  - use boolean variable can_skip_order_by to check if we can skip
    ORDER BY in UNION
2004-10-22 22:51:16 +04:00
unknown
580f12cc04 fixed error handling if creating derived table failed
single row subquery always can return NULL (no rows found) (BUG#5590)


mysql-test/r/subselect.result:
  maybe_null flag returning by subquwery for temporary table creation
mysql-test/t/subselect.test:
  maybe_null flag returning by subquwery for temporary table creation
sql/item.cc:
  storing maybe_null in type holder
sql/item_subselect.cc:
  single row subquery always can return NULL (no rows found)
sql/sql_derived.cc:
  fixed error handling if creating derived table failed
2004-09-17 19:08:46 +03:00
unknown
77ee831d3d fixed temporary table processing expresions of subqueries and removed wrong restrictions of field resolving (BUG#5326)
mysql-test/r/subselect.result:
  tests of fields resolving
mysql-test/t/subselect.test:
  tests of fields resolving
sql/item.cc:
  fixed fild resolving
sql/item_subselect.cc:
  removed aneed call
sql/sql_base.cc:
  fixed case whan we scan un-fixfielded fields
sql/sql_select.cc:
  fixed temporary table processing expresions of subqueries
2004-09-06 13:00:24 +03:00
unknown
c83ef2fdc3 Merging fix 2004-08-24 15:03:44 +05:00
unknown
8854eeda26 Merging 2004-08-24 12:58:21 +05:00
unknown
8d9dca16e2 subselect test split on two tests because gis extention can be absent 2004-08-24 10:15:39 +03:00
unknown
13f7338a3f after review fixes:
allowed parsing of table fields inside aggregate functions
 added new tests of fields resolving in grouping


mysql-test/r/func_gconcat.result:
  allowed parsing of table fields inside aggregate functions
mysql-test/r/subselect.result:
  added new tests of fields resolving in grouping
mysql-test/t/func_gconcat.test:
  allowed parsing of table fields inside aggregate functions
mysql-test/t/subselect.test:
  added new tests of fields resolving in grouping
sql/item_subselect.cc:
  allowed parsing of table fields inside aggregate functions
2004-08-23 22:31:01 +03:00
unknown
e275e347e3 merge
sql/item_subselect.cc:
  Auto merged
sql/item_subselect.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2004-08-23 15:50:59 +03:00
unknown
ac4c053852 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.


mysql-test/r/subselect.result:
  Appropriate test result
mysql-test/t/subselect.test:
  Test case added
sql/records.cc:
  index's initialization added
2004-08-22 00:06:19 +05:00
unknown
4f8bbaeda0 Bug #4769 - ft in subqueries 2004-08-19 18:40:15 +02:00
unknown
d0c87702f7 skip resolving field in table list if table list is not accessable due to groupping (BUG#4814)
mysql-test/r/func_gconcat.result:
  fix of test queries
mysql-test/r/subselect.result:
  resolving fields of grouped outer SELECT
mysql-test/t/func_gconcat.test:
  fix of test queries
mysql-test/t/subselect.test:
  resolving fields of grouped outer SELECT
sql/item.cc:
  skip resolving field in table list if table list is not accessable due to groupping
  layout fixed
sql/item_subselect.cc:
  detection of place of subquery
sql/item_subselect.h:
  detection of place of subquery
sql/mysql_priv.h:
  enum_parsing_place made global type
sql/sql_lex.cc:
  enum_parsing_place made global type
sql/sql_lex.h:
  enum_parsing_place made global type
sql/sql_yacc.yy:
  enum_parsing_place made global type
2004-08-13 10:01:30 +03:00
unknown
694103472b in case of compound index fill all parts in optimized IN (BUG#4435)
mysql-test/r/subselect.result:
  Optimized IN with compound index test
mysql-test/t/subselect.test:
  Optimized IN with compound index test
sql/item_subselect.cc:
  in case of compound index fill all parts
2004-08-12 17:31:23 +03:00
unknown
cc74326b2a 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


mysql-test/r/subselect.result:
  Aggregate function comparation with ALL/ANY/SOME subselect test
mysql-test/t/subselect.test:
  Aggregate function comparation with ALL/ANY/SOME subselect test
sql/item_subselect.cc:
  removed spaces at  lines ends
  aggregate functions check during substitution made only for single row subselects
sql/item_subselect.h:
  removed spaces at  lines ends
sql/sql_prepare.cc:
  restoring current senect pointer before PS rexecution (backport from 5.0)
2004-07-04 08:46:28 +03:00
unknown
bbf8f03f12 Merge
mysql-test/r/subselect.result:
  Auto merged
mysql-test/t/subselect.test:
  SCCS merged
2004-06-22 13:48:51 +03:00
unknown
e2a5793375 post-review changes (Bug#4090)
mysql-test/r/subselect.result:
  prepare statement test added
mysql-test/t/subselect.test:
  prepare statement test added
2004-06-22 13:41:57 +03:00
unknown
5e7260ab4f after merge fix
sql/item.h:
  Auto merged
2004-06-22 14:48:29 +05:00
unknown
7c021c3acd Merge
sql/sql_parse.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
mysql-test/r/subselect.result:
  SCCS merged
mysql-test/t/subselect.test:
  SCCS merged
2004-06-22 12:38:23 +03:00
unknown
028dfdb3f7 merge
BitKeeper/etc/ignore:
  auto-union
BitKeeper/etc/logging_ok:
  auto-union
Build-tools/Do-compile:
  Auto merged
include/my_global.h:
  Auto merged
innobase/row/row0ins.c:
  Auto merged
libmysql/libmysql.c:
  Auto merged
libmysqld/Makefile.am:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
scripts/mysql_install_db.sh:
  Auto merged
sql/field.cc:
  Auto merged
sql/field.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
innobase/fil/fil0fil.c:
  merge (Use heikki's code)
2004-06-21 10:24:40 +03:00
unknown
7d52eabb39 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


BitKeeper/etc/ignore:
  added mysql-test/ndb/ndbcluster
client/mysqltest.c:
  simple cleanup
innobase/os/os0file.c:
  fix for netware
libmysql/libmysql.c:
  Fixed some byte order bugs with prepared statements on machines with
  high-byte-first. (Bug #4173)
myisam/ft_boolean_search.c:
  Comment cleanup
myisam/mi_check.c:
  Removed not needed check (check is done in check_index())
myisam/mi_unique.c:
  crc must be of type ha_checksum.
myisam/myisamchk.c:
  Portability fix.
mysql-test/mysql-test-run.sh:
  Simple cleanup
mysql-test/r/subselect.result:
  Test problem with NULL and derived tables (Bug #4097)
mysql-test/t/subselect.test:
  Test problem with NULL and derived tables (Bug #4097)
sql/mysqld.cc:
  Remove not used defines
sql/sql_select.cc:
  Fixed problem with NULL and derived tables (Bug #4097)
  Indentation fixes
sql/sql_string.cc:
  Code cleanup
sql/sql_yacc.yy:
  Allow one to use DROP PREPARE ...
2004-06-18 03:02:29 +03:00
unknown
8000e4134c a test case (Bug #4102 Crash with a DBUG window after a request) 2004-06-17 12:47:58 +05:00
unknown
a9d4556649 new length detection for non-string in UNION (BUG#4067)
mysql-test/r/subselect.result:
  new length in UNION
mysql-test/r/union.result:
  new length in UNION
  test of int with wrong display length
mysql-test/t/union.test:
  test of int with wrong display length
sql/item.cc:
  new length detection for non-string
sql/item.h:
  new length detection for non-string
2004-06-16 16:06:30 +03:00
unknown
3165c7deda Language/consistency edits to error messages
and affected test results.
2004-06-15 22:18:20 -05:00
unknown
b1cecee055 Language/consistency edits to error messages
and affected test results.
2004-06-15 15:38:36 -05:00
unknown
6f364111cb fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT (BUG#4090)
mysql-test/r/subselect.result:
  outer fields resolving in INSERT/REPLACE and CRETE with SELECT
mysql-test/t/subselect.test:
  outer fields resolving in INSERT/REPLACE and CRETE with SELECT
sql/sql_parse.cc:
  fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT
sql/sql_prepare.cc:
  fixed field resolving mode fo INSERT/REPLACE and CRETE with SELECT
2004-06-13 22:39:09 +03:00
unknown
d9b81f3a08 EXISTS(SELECT * ...)
close table before opening in optimize


mysql-test/r/subselect.result:
  test of EXISTS(SELECT * ...)
mysql-test/t/subselect.test:
  test of EXISTS(SELECT * ...)
sql/sql_base.cc:
  EXISTS(SELECT * ...)
sql/sql_table.cc:
  close table before opening one
2004-06-10 21:33:15 +03:00