When fixing Item_func_plus in ORDER BY clause field c is searched in all
opened tables, but because c is an alias it wasn't found there.
This patch adds a flag to select_lex which allows Item_field::fix_fields()
to look up in select's item_list to find aliased fields.
sql/item.cc:
Fix bug#7672 Unknown column error in order clause
When fixing fields in ORDER BY clause allow Item_field::fix_fields() to look up items in select's item list to find aliased fields.
sql/sql_lex.cc:
Fix bug#7672 Unknown column error in order clause
sql/sql_lex.h:
Fix bug#7672 Unknown column error in order clause
Added flag to select_lex allowing Item_field::fix_fields to look up items in select's item list.
sql/sql_select.cc:
Fix bug#7672 Unknown column error in order clause
mysql-test/t/select.test:
Test case for bug#7672 Unknown column error in order clause
mysql-test/r/select.result:
Test case for bug#7672 Unknown column error in order clause
client/mysql.cc:
Don't use c_ptr() for cgets() and ensure buffer is not overwritten
mysql-test/r/cast.result:
More test for CAST(0x.... as signed)
sql/opt_sum.cc:
Fix bugs found during review
- Changed code to be able to remove one if
- Ensure that count == 0 only if is_exact_count == TRUE
sql/sql_delete.cc:
Ensure 'allow_sum_func' is reset before call to setup_conds
sql/sql_lex.cc:
allow_sum_func doesn't have to be reset for each query
(It's to be reset in setup_fields() or before call to setup_conds()
sql/sql_load.cc:
Move set of auto_increment_field_not_null so that it's not set if field value is NULL
sql/sql_prepare.cc:
allow_sum_func doesn't have to be reset for each query
(It's to be reset in setup_fields() or before call to setup_conds()
sql/sql_update.cc:
Ensure 'allow_sum_func' is reset before call to setup_conds
not equivalent to "x=y" when item->negated == TRUE.
mysql-test/r/func_in.result:
Testcase for BUG#13419
mysql-test/t/func_in.test:
Testcase for BUG#13419
sql/sql_select.cc:
Fix for BUG#13419:
* Take into account that item=Item_func_in(x,y) is not equivalent to "x=y" when
item->negated == TRUE.
* Removed comment that is no longer true.
set auto_increment_field_not_null to true to preserve zero values
for autoincrement fields during LOAD DATA execution if
NO_AUTO_VALUE_ON_ZERO sql mode is set
mysql-test/r/loaddata.result:
Fix for bug#12053 LOAD DATA INFILE ignores NO_AUTO_VALUE_ON_ZERO setting
test case
mysql-test/t/loaddata.test:
Fix for bug#12053 LOAD DATA INFILE ignores NO_AUTO_VALUE_ON_ZERO setting
test case
sql/sql_yacc.yy:
a fix (#11553: gives error if aggregate user-defined function in HAVING clause).
udf_sum_expr_list rule introduced and used for aggregate udf functions:
- call inc_in_sum_expr() before udf_expr_list parsing
(as in_sum_expr rule does).
thd->allow_sum_func was left 'true' after previous statement thus allowing
sum funcs to be present in conditions.
thd->allow_sum_func should be set to 0 for each query and each prepared
statement reinitialization. This is done in lex_start() and
reset_stmt_for_execute().
sql/sql_lex.cc:
Fix bug#13180 thd->allow_sum_func wasn't reset obefore query processing.
thd->allow_sum_func is set to 0 in lex_start().
sql/sql_prepare.cc:
Fix bug#13180 thd->allow_sum_func wasn't reset obefore query processing.
thd->allow_sum_func is set to 0 in reset_stmt_for_execute().
mysql-test/t/update.test:
Test case for bug#13180 thd->allow_sum_funcs wasn't reset before query
processing.
mysql-test/r/update.result:
Test case for bug#13180 thd->allow_sum_funcs wasn't reset before query
processing.
This fixes the new report for bug #7036
mysql-test/t/cast.test:
Added test for cast(hex-value to signed/unsigned)
sql/item.h:
Ensure that hex strings are used as integers in cast(... signed/unsigned)
mysql-test/r/union.result:
a fix (bug #7589: Decimal types are ignored when updating data from another column).
removed wrong test result (see #13372)
mysql-test/t/union.test:
a fix (bug #7589: Decimal types are ignored when updating data from another column).
removed wrong test result (see #13372)
sql/field_conv.cc:
a fix (bug #7589: Decimal types are ignored when updating data from another column).
use memcpy() only for identical decimals.
The problem was in that the MIN/MAX optimization in opt_sum_query was
replacing MIN/MAX functions with their constant argument without
taking into account that a query has no result rows.
mysql-test/r/func_group.result:
Test for BUG#12882.
mysql-test/t/func_group.test:
Test for BUG#12882.
sql/item_sum.cc:
If it is known that a query has no result rows, do not call add()
via the call to Item_sum::no_rows_in_result() which calls reset().
Instead directly call clear() so that the MIN and MAX functions
produce NULL when there are no result rows.
sql/opt_sum.cc:
* Do not apply MIN/MAX optimization when the operand of MIN/MAX is
a constant if it can't be determined whether the query has any
result rows. The reason is that if the query has result rows,
then the result of MIN/MAX is its constant argument, but if the
query result is empty, then the result of MIN/MAX must be NULL
irrespective of its argument.
* The patch also simplifies a bit the branch that hadles COUNT().
statistics (like 4.0 did) (patch #3, with review #1 & #2 feedback addressed)
include/myisam.h:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
myisam/mi_check.c:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
myisam/myisamchk.c:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
mysql-test/r/myisam.result:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
mysql-test/t/myisam.test:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/ha_myisam.cc:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/handler.h:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/mysqld.cc:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/set_var.cc:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
sql/sql_class.h:
BUG#12232: Add a server option to treat NULL values as equal when calculating MyISAM index statistics
that dump free list allocation per connection
sql/ha_ndbcluster.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/ha_ndbcluster.h:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/mysqld.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_lex.h:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_parse.cc:
imlp. show engine ndb status;
that dump free list allocation per connection
sql/sql_yacc.yy:
imlp. show engine ndb status;
that dump free list allocation per connection
This is backport from 5.0 of fix for bug #11039
mysql-test/t/innodb.test:
Backport from 5.0 of test case for bug#11039
mysql-test/r/innodb.result:
Backport from 5.0 of test case for bug#11039
sql/opt_sum.cc:
Fix bug #13218: backport from 5.0 of bug #11039 fix
into asksasha.com:/reiser-data/mysql-dev/mysql-4.1-bug11139
mysql-test/r/rpl_multi_delete2.result:
Auto merged
mysql-test/t/rpl_multi_delete2-slave.opt:
Auto merged
mysql-test/t/rpl_multi_delete2.test:
Auto merged
For queries with GROUP BY and without hidden GROUP BY fields DISTINCT is
optimized away becuase such queries produce result set without duplicates.
But ROLLUP can add rows which may be same to some rows and this fact was
ignored.
Added check so if ROLLUP is present DISTINCT can't be optimized away.
sql/sql_select.cc:
Fix bug #12887 Distinct is not always applied after rollup
mysql-test/r/olap.result:
Test case for bug #12887 Distinct is not always applied after rollup
mysql-test/t/olap.test:
Test case for bug #12887 Distinct is not always applied after rollup
present): the problem originally was that the tables in auxilliary_tables did not have
the correct real_name, which caused problems in the second call to tables_ok().
The fix corrects the real_name problem, and also sets the updating flag properly,
which makes the second call to tables_ok() unnecessary.
mysql-test/r/rpl_multi_delete2.result:
updates for for BUG#11139
mysql-test/t/rpl_multi_delete2-slave.opt:
updates for for BUG#11139
mysql-test/t/rpl_multi_delete2.test:
updates for for BUG#11139
sql/mysql_priv.h:
fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
present)
sql/slave.cc:
fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
present)
sql/sql_parse.cc:
fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
present)
sql/sql_yacc.yy:
fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
present)
After merge fix.
include/keycache.h:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Enlarging them there.
include/my_sys.h:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Removed unused global variables.
myisam/mi_test2.c:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Changed to print default key cache status.
mysys/mf_keycache.c:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Status variables moved into KEY_CACHE in 4.1.
Changed their debug printout.
sql/mysqld.cc:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Changed to print full value.
sql/sql_show.cc:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Added a branch for long long values.
sql/sql_test.cc:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
changed to print full values.
sql/structs.h:
Bug#12920 - key_read_requests counter appears to re-set
After merge fix.
Added a branch for long long keycache values.
Solution for 4.0 and 4.1.
If the caller cannot re-open table(s), it gives a NULL
'refresh' argument to open_table(). We used to ignore
flushes then. Now we ignore drops too.
Fix for bug #13025; Server crash in filesort because wrong call to handler::position()
client/mysqltest.c:
Code cleanup during review
mysql-test/r/innodb.result:
Added test case for bug #13025; Server crash in filesort because wrong call to handler::position()
mysql-test/t/innodb.test:
Added test case for bug #13025; Server crash in filesort because wrong call to handler::position()
sql/filesort.cc:
Don't call handler::position() if row was not found
sql/item_cmpfunc.cc:
Indentation changes
sql/sql_select.cc:
Moved variable to outer level
produce warning for 'create database if not exists' if database exists
do not update database options in this case
produce warning for 'create table if not exists' if table exists
mysql-test/r/create.result:
Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
updated test case result
mysql-test/r/temp_table.result:
Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
updated test case result
mysql-test/r/warnings.result:
Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
updated test case result
mysql-test/t/create.test:
Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
test case
sql/sql_db.cc:
Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
produce warning for 'create database if not exists' if database exists
do not update database options in this case
sql/sql_table.cc:
Fix for bug #6008: MySQL does not create warnings when creating database and using IF NOT EXISTS
produce warning for 'create table if not exists' if table exists