1
0
mirror of https://github.com/MariaDB/server.git synced 2025-10-28 17:15:19 +03:00
Commit Graph

12441 Commits

Author SHA1 Message Date
unknown
d1ce7f6f73 Merge chilla.local:/home/mydev/mysql-4.1-bug24607
into  chilla.local:/home/mydev/mysql-5.0-bug24607


myisam/mi_create.c:
  Auto merged
mysql-test/r/myisam.result:
  Manual merge.
mysql-test/t/myisam.test:
  Manual merge.
2007-01-18 11:35:54 +01:00
unknown
fa710dfbb1 Merge moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0
into  moonlight.home:/home/tomash/src/mysql_ab/mysql-5.0-bug24404


sql/sql_view.cc:
  Auto merged
mysql-test/r/view_grant.result:
  Manual merge.
mysql-test/t/view_grant.test:
  Manual merge.
2007-01-18 13:06:10 +03:00
unknown
0541dcad3b Bug#24404: strange bug with view+permission+prepared statement.
The problem was that if a prepared statement accessed a view, the
access to the tables listed in the query after that view was done in
the security context of the view.

The bug was in the assigning of the security context to the tables
belonging to a view: we traversed the list of all query tables
instead.  It didn't show up in the normal (non-prepared) statements
because of the different order of the steps of checking privileges
and descending into a view for normal and prepared statements.

The solution is to traverse the list and stop once the last table
belonging to the view was processed.


mysql-test/r/view_grant.result:
  Add result for bug#24404: strange bug with view+permission+prepared
  statement.
mysql-test/t/view_grant.test:
  Add test case for bug#24404: strange bug with view+permission+prepared
  statement.
sql/sql_view.cc:
  Remove dead line.
  When setting security context, we should traverse the list of tables
  belonging to a given view, not all query tables.  We achieve that by
  stopping at the first table past view_tables_tail.
2007-01-18 12:48:17 +03:00
unknown
7c5a417a4e after merge fix. 2007-01-18 10:51:29 +04:00
unknown
2ca87ae30c Merge mysql.com:/usr/home/ram/work/bug22533/my41-bug22533
into  mysql.com:/usr/home/ram/work/bug22533/my50-bug22533


mysql-test/r/select.result:
  resolve skipped
mysql-test/t/range.test:
  merging
mysql-test/t/select.test:
  merging
sql/item.cc:
  merging
2007-01-18 09:39:47 +04:00
unknown
af32168623 Fixed bug #25580: incorrect stored representations of views in cases
when they contain the '!' operator.
Added an implementation for the method Item_func_not::print. 
The method encloses any NOT expression into extra parentheses to avoid
incorrect stored representations of views that use the '!' operators.
Without this change when a view was created that contained
the expression !0*5  its stored representation contained not this
expression but rather the expression not(0)*5 . 
The operator '!' is of a higher precedence than '*', while NOT is 
of a lower precedence than '*'. That's why the expression !0*5 
is interpreted as not(0)*5, while the expression not(0)*5 is interpreted
as not((0)*5) unless sql_mode is set to HIGH_NOT_PRECEDENCE.
Now we translate !0*5 into (not(0))*5. 


mysql-test/r/sp-code.result:
  Adjusted results after the fix of bug 25580.
mysql-test/r/subselect.result:
  Adjusted results after the fix of bug 25580.
mysql-test/r/view.result:
  Added a test case for bug #25580.
mysql-test/t/view.test:
  Added a test case for bug #25580.
sql/item_cmpfunc.cc:
  Fixed bug #25580: incorrect stored representations of views in cases
  when they contain the '!' operator.
  Added an implementation for the method Item_func_not::print. 
  The method encloses the NOT expression into extra parenthesis to avoid
  incorrect stored representations of views that use the '!' operators.
sql/item_cmpfunc.h:
  Fixed bug #25580: incorrect stored representations of views in cases
  when they contain the '!' operator.
  Added an implementation for the method Item_func_not::print. 
  The method encloses the NOT expression into extra parenthesis to avoid
  incorrect stored representations of views that use the '!' operators.
2007-01-17 20:13:45 -08:00
unknown
55fbeec175 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge


sql/item_timefunc.cc:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-01-17 19:30:05 +01:00
unknown
158b0603f3 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-4.1-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-4.1-merge


sql/mysql_priv.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-01-17 19:28:55 +01:00
unknown
c2e7e10c32 Merge 192.168.0.10:mysql/mysql-5.0-maint
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint


libmysql/libmysql.c:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
2007-01-17 13:57:45 +01:00
unknown
f8e02a29cd Replace the --exec in a while loop that causes 3400 executions of cygwin/bash on
windows with a small perl script that does exactly the same.
2007-01-17 13:43:03 +01:00
unknown
06bc683652 Fix a ps.test failure in 5.0-runtime tree.
mysql-test/r/ps.result:
  Update result files.
mysql-test/t/ps.test:
  Disable result ouptut of SHOW CREATE TABLE: DATA DIRECTORY option
  may be present or absent from the output depending on the build
  otpions and the operating system, so the output is not consistent
  across supported platforms.
sql/mysqld.cc:
  Remove a tricky #ifdef dependency of --use-symbolic-links on PURIFY
  added in 2002: DEBUG options should not influence server functionality.
  This backfired by producing different output of SHOW CREATE TABLE
  depending on the build options (see also Bug#25677 "With 
  --skip-symbolic-links option on, DATA DIRECTORY clause
  is silently ignored".
2007-01-17 14:24:54 +03:00
unknown
5cebd5c44b Merge pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-engines
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-engines


mysql-test/r/symlink.result:
  Auto merged
mysql-test/t/symlink.test:
  Auto merged
mysql-test/r/myisam.result:
  SCCS merged
mysql-test/t/myisam.test:
  SCCS merged
2007-01-17 12:24:43 +01:00
unknown
f509e774bc Bug#21122 SHOW CREATE TABLE: directory output only sometimes
Bug #25000  	myisam.test fails on 'pb-valgrind-*' Valgrind
 - Move tests that need symlink to symlink.test


mysql-test/r/myisam.result:
  - Move tests that need symlink to symlink.test
mysql-test/r/symlink.result:
  - Move tests that need symlink to symlink.test
mysql-test/t/myisam.test:
  - Move tests that need symlink to symlink.test
mysql-test/t/symlink.test:
  - Move tests that need symlink to symlink.test
2007-01-17 12:22:00 +01:00
unknown
eb179ebefc Cset exclude: msvensson@pilot.mysql.com|ChangeSet|20070117102733|42618
mysql-test/r/myisam.result:
  Exclude
mysql-test/t/myisam.test:
  Exclude
2007-01-17 12:12:24 +01:00
unknown
e53f3aac02 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-5.0
into  pilot.mysql.com:/home/msvensson/mysql/mysql-5.0-maint


mysys/my_read.c:
  Auto merged
scripts/make_binary_distribution.sh:
  Auto merged
sql/field.h:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-01-17 11:53:00 +01:00
unknown
1ce535c6ab Cset exclude: msvensson@neptunus.(none)|ChangeSet|20060825084614|09755
mysql-test/r/myisam.result:
  Exclude
mysql-test/t/myisam.test:
  Exclude
2007-01-17 11:27:33 +01:00
unknown
4743deeba0 Merge pilot.mysql.com:/home/msvensson/mysql/mysql-4.1
into  pilot.mysql.com:/home/msvensson/mysql/mysql-4.1-maint


mysql-test/t/mysqladmin.test:
  Auto merged
mysys/mf_iocache.c:
  Auto merged
mysys/my_read.c:
  Auto merged
mysys/my_seek.c:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-01-17 11:13:03 +01:00
unknown
329f6ba1cb Merge bodhi.local:/opt/local/work/mysql-4.1-runtime
into  bodhi.local:/opt/local/work/mysql-5.0-runtime


mysql-test/t/backup.test:
  Auto merged
mysql-test/t/ps.test:
  Manual merge.
2007-01-16 21:31:59 +03:00
unknown
9cff68bb3b A fix for the broken 4.1-runtime tree.
mysql-test/t/backup.test:
  Backport a patch for sporadically failing myisam.test (and now ps.test)
  from 5.0. The cause was in backup.test not cleaning up tables in
  mysqltest-vardir/tmp after itself.
mysql-test/t/ps.test:
  Add additional protection against possible failure in the middle of
  backup.test
2007-01-16 21:23:52 +03:00
unknown
d3cb7a68ea Merge neptunus.(none):/home/msvensson/mysql/bug15518/my50-bug15518
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


client/mysqltest.c:
  Auto merged
2007-01-16 17:53:45 +01:00
unknown
b461810d63 Update xid's as an effect of not closing the prepared statements all the time 2007-01-16 17:52:17 +01:00
unknown
a05e735488 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1-maint
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint


mysql-test/lib/mtr_cases.pl:
  Auto merged
2007-01-16 09:35:53 +01:00
unknown
80818def47 Always use two masters for ndb tests 2007-01-16 09:35:14 +01:00
unknown
22f62e8a2f Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg20390-2
2007-01-16 07:25:23 +03:00
unknown
f71b6a8485 Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  weblab.(none):/home/marcsql/TREE/mysql-5.0-6298
2007-01-15 16:24:30 -07:00
unknown
759a028c20 Adjusted results after merge 4.1 -> 5.0 for the patch fixing bug 24776. 2007-01-15 14:01:36 -08:00
unknown
8c4acf37bb Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-01-15 11:42:23 -08:00
unknown
8db06e6921 Merge olga.mysql.com:/home/igor/mysql-4.1-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt


mysql-test/r/range.result:
  Auto merged
mysql-test/t/range.test:
  Auto merged
sql/opt_range.h:
  Manual merge.
2007-01-15 10:14:09 -08:00
unknown
c0fd054645 Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.gmz:/home/kgeorge/mysql/autopush/B20420-5.0-opt


sql/item_cmpfunc.h:
  Auto merged
2007-01-15 19:18:33 +02:00
unknown
a2ae17b1e1 BUG#20420: optimizer reports wrong keys on left join with IN
The optimizer needs to evaluate whether predicates are better
 evaluated using an index. IN is one such predicate.
 To qualify an IN predicate must involve a field of the index
 on the left and constant arguments on the right.
 However whether an expression is a constant can be determined only
 by knowing the preceding tables in the join order. 
 Assuming that only IN predicates with expressions on the right that
 are constant for the whole query qualify limits the scope of 
 possible optimizations of the IN predicate (more specifically it
 doesn't allow the "Range checked for each record" optimization for
 such an IN predicate.
 Fixed by not pre-determining the optimizability of the IN predicate
 in the case when all right IN operands are not SQL constant expressions


mysql-test/r/func_in.result:
  BUG#20420: optimizer reports wrong keys on left join with IN
   - test case
mysql-test/t/func_in.test:
  BUG#20420: optimizer reports wrong keys on left join with IN
   - test case
sql/item_cmpfunc.h:
  BUG#20420: optimizer reports wrong keys on left join with IN
   - cannot decide on the optimizability of a function without
     knowing the tables before it in the join order
2007-01-15 19:15:52 +02:00
unknown
96e5be8ce2 Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into  mockturtle.local:/home/dlenev/src/mysql-5.0-bg20390-2


sql/sql_select.cc:
  Auto merged
2007-01-15 13:48:07 +03:00
unknown
408d775249 Manual merge.
mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_list.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
2007-01-15 13:10:07 +03:00
unknown
d470c233f7 Merge bk-internal.mysql.com:/home/bk/mysql-4.1-runtime
into  bodhi.local:/opt/local/work/mysql-4.1-4968-to-push


sql/mysql_priv.h:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_insert.cc:
  Auto merged
sql/sql_parse.cc:
  Manual merge.
sql/sql_table.cc:
  Manual merge.
2007-01-15 13:03:21 +03:00
unknown
810fc001d9 Fix for bug#20390 "SELECT FOR UPDATE does not release locks
of untouched rows in full table scans".

SELECT ... FOR UPDATE/LOCK IN SHARE MODE statements as well as
UPDATE/DELETE statements which were executed using full table
scan were not releasing locks on rows which didn't satisfy
WHERE condition.
This bug surfaced in 5.0 and affected NDB tables. (InnoDB tables
intentionally don't support such unlocking in default mode).

This problem occured because code implementing join didn't call
handler::unlock_row() for rows which didn't satisfy part of condition
attached to this particular table/level of nested loop. So we solve
the problem adding this call.
Note that we already had this call in place in 4.1 but it was lost
(actually not quite correctly placed) when we have introduced nested 
joins.

Also note that additional QA should be requested once this patch is
pushed as interaction between handler::unlock_row() and many recent
MySQL features such as subqueries, unions, views is not tested enough.


mysql-test/r/ndb_lock.result:
  Enabled back part of the test that covers bug #20390 "SELECT FOR
  UPDATE does not release locks of untouched rows in full table scans".
  Adjusted test in such way that it now covers both execution paths
  in which we unlock non-matching rows inspected during table scan.
mysql-test/t/ndb_lock.test:
  Enabled back part of the test that covers bug #20390 "SELECT FOR
  UPDATE does not release locks of untouched rows in full table scans".
  Adjusted test in such way that it now covers both execution paths
  in which we unlock non-matching rows inspected during table scan.
sql/sql_select.cc:
  evaluate_join_record() should call handler::unlock_row() for records
  which don't satisfy condition which was pushed-down to this table/level
  of nested loop.
  We just put back the thing that we already have in 4.1 and which was lost
  when we have introduced nested joins.
2007-01-15 12:32:38 +03:00
unknown
b9dc0243a8 Fixed bug #24776: an assertion abort in handler::ha_index_init
for queries using 'range checked for each record'.
The problem was fixed in 5.0 by the patch for bug 12291.
This patch down-ported the corresponding code from 5.0 into 
QUICK_SELECT::init() and added a new test case. 


mysql-test/r/range.result:
  Added a test case for bug #24776.
mysql-test/t/range.test:
  Added a test case for bug #24776.
sql/opt_range.h:
  Fixed bug #24776: an assertion abort in handler::ha_index_init
  for queries using 'range checked for each record'.
  The problem was fixed in 5.0 by the patch for bug 12291.
  The patch for 4.1 down-ported the corresponding code from 5.0 into 
  QUICK_SELECT::init().
2007-01-13 10:49:26 -08:00
unknown
fd4db68cc5 Merge ibabaev@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  olga.mysql.com:/home/igor/mysql-5.0-opt
2007-01-12 14:58:11 -08:00
unknown
35e363932c Fixed bug #25398: crash in a trigger when using trigger fields
in a select list.
The objects of the Item_trigger_field class inherited the implementations
of the methods copy_or_same, get_tmp_table_item and get_tmp_table_field
from the class Item_field while they rather should have used the default
implementations defined for the base class Item.
It could cause catastrophic problems for triggers that used SELECTs
with select list containing trigger fields such as NEW.<table column>
under DISTINCT.


mysql-test/r/trigger.result:
  Added a test case for bug #25398.
mysql-test/t/trigger.test:
  Added a test case for bug #25398.
2007-01-12 13:43:25 -08:00
unknown
5f97dc6e9e BUG#24127: (a,b) IN (SELECT c,d ...) can produce wrong results if a and/or b are NULLs:
- Make the code produce correct result: use an array of triggers to turn on/off equalities for each
  compared column. Also turn on/off optimizations based on those equalities.
- Make EXPLAIN output show "Full scan on NULL key" for tables for which we switch between
  ref/unique_subquery/index_subquery and ALL access.
- index_subquery engine now has HAVING clause when it is needed, and it is
  displayed in EXPLAIN EXTENDED
- Fix incorrect presense of "Using index" for index/unique-based subqueries (BUG#22930)
// bk trigger note: this commit refers to BUG#24127


mysql-test/r/ndb_subquery.result:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Updated test results (checked)
mysql-test/r/subselect.result:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Updated test results (checked)
mysql-test/r/subselect2.result:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Updated test results (checked)
mysql-test/r/subselect3.result:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Testcases
mysql-test/t/subselect3.test:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Testcases
sql/item_cmpfunc.cc:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - For row-based IN subqueries, use one flag per each column. Set the flags appropriately before
    running the subquery.
sql/item_cmpfunc.h:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
   - Added Item_func_trig_cond::get_triv_var()
sql/item_subselect.cc:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Item_subselect::exec() and subselect_*_engine::exec() don't have parameter
    anymore - now Item_subselect owns the pushed down predicates guard flags.
  - A correct set of conditional predicates is now pushed into row-based IN 
    subquery.
  - select_indexsubquery_engine now has "HAVING clause" (needed for correct query
    results), and it is shown in EXPLAIN EXTENDED
sql/item_subselect.h:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Item_subselect::exec() and subselect_*_engine::exec() don't have parameter
    anymore - now Item_subselect owns the pushed down predicates guard flags.
  - A correct set of conditional predicates is now pushed into row-based IN 
    subquery.
  - select_indexsubquery_engine now has "HAVING clause" (needed for correct query
    results), and it is shown in EXPLAIN EXTENDED
sql/mysql_priv.h:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Added "in_having_cond" special Item name
sql/mysqld.cc:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Added "in_having_cond" special Item name
sql/sql_lex.h:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
sql/sql_select.cc:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Make "ref" analyzer be able to work with conditional equalities
  - Fix subquery optimization code to match the changes in what kinds of 
    conditions are pushed down into subqueries 
  - Fix wrong EXPLAIN output in some queries with subquery (BUG#22390)
sql/sql_select.h:
  BUG#24127: wrong result for (null,not-null) IN (SELECT a,b ...)
  - Make "ref" analyzer be able to work with conditional equalities
  - Fix wrong EXPLAIN output in some queries with subquery (BUG#22390)
2007-01-12 23:22:41 +03:00
unknown
b671815c95 BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...)
When transforming "oe IN (SELECT ie ...)" wrap the pushed-down predicates
iff "oe can be null", not "ie can be null".
The fix doesn't cover row-based subqueries, those will be fixed in #24127.


mysql-test/r/subselect.result:
  BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...)
  Update the test results (checked)
mysql-test/r/subselect3.result:
  BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...)
  - Testcase
mysql-test/t/subselect3.test:
  BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...)
  - Testcase
sql/item_subselect.cc:
  BUG#24085: Wrong result for NULL IN (SELECT not_null_val FROM ...)
  When transforming "oe IN (SELECT ie ...)" we should make special 
  provisions (wrap the pushed predicates) if we can encounter 
  NULL IN (SELECT ...), i.e. when oe->maybe_null. The code was checking
  for ie->maybe_null instead, fixed it for single value based subqueries.
  
  Row-based subqueries (e.g. (a,b) IN (SELECT c,d ...)) are not fixed 
  because they won't produce correct results for several other reasons 
  (filed as #24085)
2007-01-12 22:11:40 +03:00
unknown
fc681ea701 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime


sql/item_func.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
2007-01-12 21:59:17 +03:00
unknown
6746efb123 func_str.result:
After merge fix


mysql-test/r/func_str.result:
  After merge fix
2007-01-12 17:35:24 +03:00
unknown
cb96e8bcd8 Merge moonbone.local:/work/latest-4.1-opt-mysql
into  moonbone.local:/work/latest-5.0-opt-mysql


mysql-test/t/func_str.test:
  Auto merged
sql/item_strfunc.cc:
  Auto merged
sql/item_strfunc.h:
  Auto merged
sql/sql_delete.cc:
  Auto merged
mysql-test/r/delete.result:
  Manual merge
mysql-test/r/func_str.result:
  Manual merge
mysql-test/t/delete.test:
  Manual merge
2007-01-12 16:43:52 +03:00
unknown
ecc3a61944 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge


client/mysqlbinlog.cc:
  Auto merged
client/mysqldump.c:
  Auto merged
include/my_pthread.h:
  Auto merged
mysql-test/t/disabled.def:
  Auto merged
mysys/my_thr_init.c:
  Auto merged
sql/item_timefunc.cc:
  Auto merged
sql/log.cc:
  Auto merged
sql/log_event.cc:
  Auto merged
sql/log_event.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/set_var.cc:
  Auto merged
sql/set_var.h:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sql_acl.cc:
  Auto merged
sql/sql_locale.cc:
  Auto merged
sql/sql_parse.cc:
  Auto merged
2007-01-12 12:22:54 +01:00
unknown
6dc0202617 Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-4.1-rpl
into  mysql.com:/nfsdisk1/lars/MERGE/mysql-4.1-merge


sql/sql_parse.cc:
  Auto merged
2007-01-12 12:21:44 +01:00
unknown
36e7e72754 Merge mysql.com:/home/gluh/MySQL/Merge/5.0-opt
into  mysql.com:/home/gluh/MySQL/Merge/5.0


sql/mysqld.cc:
  Auto merged
2007-01-12 13:57:40 +04:00
unknown
0f0d0f5bd4 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  moonbone.local:/work/23417-bug-5.0-opt-mysql


sql/sql_base.cc:
  Auto merged
2007-01-11 23:20:27 +03:00
unknown
4d143a6ff6 Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
Currently in the ONLY_FULL_GROUP_BY mode no hidden fields are allowed in the
select list. To ensure this each expression in the select list is checked
to be a constant, an aggregate function or to occur in the GROUP BY list.
The last two requirements are wrong and doesn't allow valid expressions like
"MAX(b) - MIN(b)" or "a + 1" in a query with grouping by a.

The correct check implemented by the patch will ensure that:
any field reference in the [sub]expressions of the select list 
  is under an aggregate function or
  is mentioned as member of the group list or
  is an outer reference or
  is part of the select list element that coincide with a grouping element.

The Item_field objects now can contain the position of the select list
expression which they belong to. The position is saved during the
field's Item_field::fix_fields() call.

The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
class. The SELECT_LEX::cur_pos_in_select_list now contains the position in the
select list of the expression being currently fixed.


sql/item.cc:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  The Item_field objects now contain the position of the select list
  expression which they belong to. The position is saved at the field's
  Item_field::fix_fields() call.
sql/item.h:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  The Item_field objects now can store the position in the select list of the
  expression to which they are belongs to.
sql/mysql_priv.h:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  Added the UNDEF_POS constant.
sql/sql_base.cc:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  Now the setup_fields() function maintains the cur_pos_in_select_list variable.
sql/sql_lex.cc:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  Set the cur_pos_in_select_list variable and the non_agg_fields list to their initial state.
sql/sql_lex.h:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  The non_agg_fields list for non-aggregated fields is added to the SELECT_LEX
  class. The SELECT_LEX::cur_pos_in_select_list now stores the position in the
  select list of the expression being currently fixed.
sql/sql_select.cc:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  Each select now keeps the list of fields that aren't
  used under any aggregate function. If an expression from the select list
  isn't found in the GROUP BY list the setup_group() function additionally
  checks whether non-aggregated fields occur in that expression.
  If there at least one such field and it isn't found in the GROUP BY list
  then an error is thrown.
sql/sql_union.cc:
  Bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
  Clean up of the non_agg_fields list.
mysql-test/r/group_by.result:
  Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
mysql-test/t/group_by.test:
  Added a test case for the bug#23417: Too strict checks against GROUP BY in the ONLY_FULL_GROUP_BY mode.
2007-01-11 23:18:01 +03:00
unknown
6ab5bdf311 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  bodhi.local:/opt/local/work/mysql-5.0-runtime


heap/hp_block.c:
  Auto merged
mysql-test/r/view.result:
  Auto merged
server-tools/instance-manager/listener.cc:
  Auto merged
sql/item_func.cc:
  Auto merged
sql/sp_head.cc:
  Auto merged
sql/sp_head.h:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_lex.cc:
  Auto merged
sql/sql_lex.h:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
sql/sql_string.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
tests/mysql_client_test.c:
  Auto merged
heap/hp_write.c:
  SCCS merged
2007-01-11 21:59:28 +03:00
unknown
7f9da471cd Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into  rakia.gmz:/home/kgeorge/mysql/autopush/B25106-5.0-opt


sql/sql_base.cc:
  Auto merged
2007-01-11 19:13:04 +02:00
unknown
6c41a043a4 BUG#25106: A USING clause in combination with a VIEW results in column
aliases ignored
When a column reference to a column in JOIN USING is resolved and a new 
Item is created for this column the user defined name was lost.
This fix preserves the alias by setting the name of the new Item to the
original alias.


mysql-test/r/join.result:
  BUG#25106: A USING clause in combination with a VIEW results in column
             aliases ignored
   - test case
mysql-test/t/join.test:
  BUG#25106: A USING clause in combination with a VIEW results in column
             aliases ignored
   - test case
sql/sql_base.cc:
  BUG#25106: A USING clause in combination with a VIEW results in column
             aliases ignored
   - take the alias of the Item to be replaced and set it into the newly
     allocated Item.
2007-01-11 19:10:01 +02:00