Move copying of global variables into thd.variables into plugin_thdvar_init().
plugin_thdvar_init() may be called multiple times when THD::change_user() is called.
This fixes a plugin ref-count leak when running the test mysql_client_test
sql/sql_class.cc:
wl2936
Initialize thd.variables to zero in constructor.
Move copying of global variables into thd.variables into plugin_thdvar_init()
sql/sql_plugin.cc:
wl2936
Move copying of global variables into thd.variables into plugin_thdvar_init().
plugin_thdvar_init() may be called multiple times when THD::change_user() is called.
This fixes a plugin ref-count leak when running the test mysql_client_test
- added join cache indication in EXPLAIN (Extra column).
- prefer filesort over full scan over
index for ORDER BY (because it's faster).
- when switching from REF to RANGE because
RANGE uses longer key turn off sort on
the head table only as the resulting
RANGE access is a candidate for join cache
and we don't want to disable it by sorting
on the first table only.
mysql-test/r/archive_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/compress.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ctype_utf8.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/derived.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/distinct.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/func_group.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/func_group_innodb.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/greedy_optimizer.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/group_by.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/group_min_max.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/index_merge_myisam.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/information_schema.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/innodb_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/innodb_mysql.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/join.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/join_nested.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/key_diff.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/myisam.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/ndb_condition_pushdown.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/ndb_gis.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/range.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/row.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/select.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ssl.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/ssl_compress.result:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over index for ORDER BY.
mysql-test/r/subselect.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/subselect3.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/union.result:
bug #27531: join cache in EXPLAIN
mysql-test/r/view.result:
bug #27531: join cache in EXPLAIN
sql/sql_select.cc:
bug #27531:
- join cache in EXPLAIN.
- prefer filesort over full scan over
index for ORDER BY.
- disable sorting on the first table only
when switching from REF to RANGE.
The LEAST/GREATEST functions compared DATE/DATETIME values as
strings which in some cases could lead to a wrong result.
A new member function called cmp_datetimes() is added to the
Item_func_min_max class. It compares arguments in DATETIME context
and returns index of the least/greatest argument.
The Item_func_min_max::fix_length_and_dec() function now detects when
arguments should be compared in DATETIME context and sets the newly
added flag compare_as_dates. It indicates that the cmp_datetimes() function
should be called to get a correct result.
Item_func_min_max::val_xxx() methods are corrected to call the
cmp_datetimes() function when needed.
Objects of the Item_splocal class now stores and reports correct original
field type.
mysql-test/t/type_datetime.test:
Added a test case for the bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
mysql-test/r/type_datetime.result:
Added a test case for the bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
mysql-test/r/sp-vars.result:
A test case result corrected after the fix for the bug#27759.
sql/mysql_priv.h:
Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
Added the prototype of the get_datetime_value() function.
sql/item_func.h:
Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
A new member function called cmp_datetimes() is added to the
Item_func_min_max class.
sql/item_func.cc:
Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
A new member function called cmp_datetimes() is added to the
Item_func_min_max class. It compares arguments in DATETIME context
and returns index of the least/greatest argument.
The Item_func_min_max::fix_length_and_dec() function now detects when
arguments should be compared in DATETIME context and sets the newly
added flag compare_as_dates. It indicates that the cmp_datetimes() function
should be called to get a correct result.
Item_func_min_max::val_xxx() methods are corrected to call the
cmp_datetimes() function when needed.
sql/item_cmpfunc.cc:
Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
The get_datetime_value() function is no longer static.
sql/item.h:
Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
Objects of the Item_splocal class now stores and reports correct original
field type.
sql/item.cc:
Bug#27759: Wrong DATE/DATETIME comparison in LEAST()/GREATEST() functions.
Objects of the Item_splocal class now stores and reports correct original
field type.
into magare.gmz:/home/kgeorge/mysql/work/B27531-5.1-opt-after-merge
mysql-test/r/join.result:
Auto merged
mysql-test/t/join.test:
Auto merged
sql/sql_select.cc:
Auto merged
Fix tests when InnoDB is not built-in. Innodb options would cause
mysqld to abort with an error indicating that the option is unknown.
Fix tests on Windows where mysql-test-run.pl was unable to probe
mysqld for version and variables information, caused by output
being redirected to a log file instead.
mysql-test/mysql-test-run.pl:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/binlog_row_mix_innodb_myisam-master.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is not required here. This test case runs only
if innodb is available. In this case the option must be present.
mysql-test/t/binlog_stm_mix_innodb_myisam-master.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is not required here. This test case runs only
if innodb is available. In this case the option must be present.
mysql-test/t/federated_transactions-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/myisam-blob-master.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_auto_increment-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_deadlock_innodb-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_insert_id-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_insert_id_pk-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_insert_ignore-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_multi_engine-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_ndb_relayrotate-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_read_only-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_relayrotate-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_row_basic_11bugs-master.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_row_basic_11bugs-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_row_create_table-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_row_func003-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_row_sp003-master.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_row_sp003-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/rpl_stm_000001-slave.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
mysql-test/t/warnings-master.opt:
WL#2936 - Falcon & MySQL plugin interface: server variables
'loose' prefix is required on command line options which may be
ignored if the plugin for which the option is intended is not
installed/builtin to mysqld.
sql/mysqld.cc:
WL#2936 - Falcon & MySQL plugin interface: server variables
Do not enable the 'old-fashioned error log' when the user has
'--help' specified on the command line. We do want the help
output sent to the console. This fixes help output on Windows
because it enables this option by default.
into magare.gmz:/home/kgeorge/mysql/work/B27531-5.0-opt
mysql-test/t/join.test:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/join.result:
SCCS merged
When checking for applicability of join cache
we must disable its usage only if there is no
temp table in use.
When a temp table is used we can use join
cache (and it will not make the result-set
unordered) to fill the temp table. The filesort()
operation is then applied to the data in the temp
table and hence is not affected by join cache
usage.
Fixed by narrowing the condition for disabling
join cache to exclude the case where temp table
is used.
mysql-test/r/join.result:
Bug #27531: test case
mysql-test/t/join.test:
Bug #27531: test case
sql/sql_select.cc:
Bug #27531:
Disable join cache only if not using temp table
into magare.gmz:/home/kgeorge/mysql/work/B27531-5.1-opt
mysql-test/r/cast.result:
Auto merged
mysql-test/r/join_outer.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
mysql-test/t/join_outer.test:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_select.h:
Auto merged
mysql-test/r/subselect.result:
merge of 5.0-opt -> 5.1-opt
mysql-test/t/subselect.test:
merge of 5.0-opt -> 5.1-opt
allow select into out file from I_S if user has FILE privilege
otherwise issue an error
mysql-test/r/outfile.result:
test result
mysql-test/t/outfile.test:
test case
sql/sql_parse.cc:
allow select into out file from I_S if user has FILE privilege
otherwise issue an error
into moonbone.local:/mnt/gentoo64/work/23656-bug-5.0-opt-mysql
mysql-test/r/cast.result:
Auto merged
mysql-test/t/cast.test:
Auto merged
sql/item_func.cc:
Manual merge
into magare.gmz:/home/kgeorge/mysql/autopush/B27807-5.0-opt
sql/sql_select.cc:
Auto merged
mysql-test/r/subselect.result:
merge to 5.0-opt
mysql-test/t/subselect.test:
merge to 5.0-opt
Non-correlated scalar subqueries may get executed
in EXPLAIN at the optimization phase if they are
part of a right hand sargable expression.
If the scalar subquery uses a temp table to
materialize its results it will replace the
subquery structure from the parser with a simple
select from the materialization table.
As a result the EXPLAIN will crash as the
temporary materialization table is not to be shown
in EXPLAIN at all.
Fixed by preserving the original query structure
right after calling optimize() for scalar subqueries
with temp tables executed during EXPLAIN.
mysql-test/r/subselect.result:
Bug #27807: test case
mysql-test/t/subselect.test:
Bug #27807: test case
sql/item_subselect.cc:
Bug #27807: preserve the join structure
sql/sql_select.cc:
Bug #27807: introduce initialization function for tmp_join
sql/sql_select.h:
Bug #27807: introduce initialization function for tmp_join
The generic string to int conversion was used by the Item_func_signed and
the Item_func_unsigned classes to convert DATE/DATETIME values to the
SIGNED/UNSIGNED type. But this conversion produces wrong results for such
values.
Now if the item which result has to be converted can return its result as
longlong then the item->val_int() method is used to allow the item to carry
out the conversion itself and return the correct result.
This condition is checked in the Item_func_signed::val_int() and the
Item_func_unsigned::val_int() functions.
mysql-test/t/cast.test:
Added a test case for the bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
mysql-test/r/cast.result:
Added a test case for the bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
sql/item_func.cc:
Bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
Now if the item which result has to be converted can return its result as
longlong then the item->val_int() method is used to allow the item to carry
out the conversion itself and return the correct result.
This condition is checked in the Item_func_signed::val_int() and the
Item_func_unsigned::val_int() functions.
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_view.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
into weblab.(none):/home/marcsql/TREE/mysql-5.0-rt-merge
mysql-test/t/sp.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
'not exists' optimization is applied.
In fact 'not exists' optimization did not work anymore after the patch
introducing the evaluate_join_record function had been applied.
Corrected the evaluate_join_record function to respect the 'not_exists'
optimization.
mysql-test/r/join_outer.result:
Added a test case for bug #28188.
mysql-test/t/join_outer.test:
Added a test case for bug #28188.
sql/sql_select.cc:
Fixed bug #28188: performance degradation for outer join queries to which
'not exists' optimization is applied.
Corrected the evaluate_join_record function to respect the 'not_exists'
optimization.
Fix compiler warnings,
Fix help output - this fixes im test failures.
Fix incomplete change of SET plugin vars to ulonglong.
Allow ER() to work without crashing when errmsg.sys has not been loaded.
include/mysql/plugin.h:
wl2936
slip in const modifier for default values,
this removes compiler warnings when assigning a string const as default value.
sql/derror.cc:
WL2936
Allow init_errmessage() to return upon failure.
Initialize errmesg to an array of empty strings if it failed to load errmsg.sys
sql/mysqld.cc:
wl2936
Include Ingo's compiler-warnings fix.
If init_errmessage() failed to load errmsg.sys, abort.
Failure to set working directory not fatal when '--help' is specified, as
server will terminate anyway after displaying help information.
sql/sql_plugin.cc:
wl2936
complete change of SET vars from ulong to ulonglong.
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/51
mysql-test/r/alter_table.result:
Auto merged
mysql-test/t/alter_table.test:
Auto merged
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/50
mysql-test/r/alter_table.result:
Auto merged
mysql-test/t/alter_table.test:
Auto merged
into mysql.com:/d2/hf/mrg/mysql-5.1-opt
mysql-test/r/olap.result:
Auto merged
mysql-test/r/type_datetime.result:
Auto merged
mysql-test/t/type_datetime.test:
Auto merged
sql/item_func.h:
Auto merged
sql/sql_select.cc:
Auto merged
Change SET variables to be ulonglong type (64bit)
include/mysql/plugin.h:
WL2936
Change SET variables to be unsigned long long type
Changed use of ulonglong to unsigned long long
sql/sql_plugin.cc:
WL2936
Change SET variables to be ulonglong type (64bit)
tmpdir has uppercase
Fix: don't convert mysql_tmpdir to lower case when building the path to a
temporary table
mysql-test/include/have_lowercase1.inc:
BitKeeper file /benchmarks/ext3/TOSAVE/tsmith/bk/maint/b27653/50/mysql-test/include/have_lowercase1.inc
mysql-test/r/lowercase1.require:
BitKeeper file /benchmarks/ext3/TOSAVE/tsmith/bk/maint/b27653/50/mysql-test/r/lowercase1.require
mysql-test/r/lowercase_mixed_tmpdir.result:
BitKeeper file /benchmarks/ext3/TOSAVE/tsmith/bk/maint/b27653/50/mysql-test/r/lowercase_mixed_tmpdir.result
mysql-test/t/lowercase_mixed_tmpdir-master.opt:
BitKeeper file /benchmarks/ext3/TOSAVE/tsmith/bk/maint/b27653/50/mysql-test/t/lowercase_mixed_tmpdir-master.opt
mysql-test/t/lowercase_mixed_tmpdir-master.sh:
BitKeeper file /benchmarks/ext3/TOSAVE/tsmith/bk/maint/b27653/50/mysql-test/t/lowercase_mixed_tmpdir-master.sh
mysql-test/t/lowercase_mixed_tmpdir.test:
BitKeeper file /benchmarks/ext3/TOSAVE/tsmith/bk/maint/b27653/50/mysql-test/t/lowercase_mixed_tmpdir.test
sql/sql_table.cc:
When building the path for a temporary table file, do not
convert mysql_tmpdir to lower case; lower_case_table_names
should not apply to mysql_tmpdir.
into weblab.(none):/home/marcsql/TREE/mysql-5.1-21513
mysql-test/t/sp.test:
Auto merged
sql/item.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
sql/sql_lex.cc:
manual merge
Avoid compiler warnings
cmd-line-utils/readline/rltty.c:
Avoid a compiler warning
config/ac-macros/misc.m4:
Avoid a compiler warning, which could abort ./configure
if CFLAGS contain -Werror.
into mysql.com:/home/hf/work/27123/my51-27123
mysql-test/r/partition.result:
Auto merged
mysql-test/t/partition.test:
Auto merged
sql/field.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/key.cc:
Auto merged
sql/field.h:
merging
into olga.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug24856
sql/item_func.h:
Auto merged
sql/sql_select.cc:
Auto merged
mysql-test/r/olap.result:
Manual merge.
mysql-test/t/olap.test:
Manual merge.
include/my_global.h:
only use compile_time_assert on gcc
mysql-test/mysql-test-run.pl:
better --datadir for mysqld --help
sql/mysql_priv.h:
error-prone but concatenation-friendly IF_NETWARE()
storage/innobase/handler/ha_innodb.cc:
no preprocessor directives inside macro arguments
some rollup rows (rows with NULLs for grouping attributes) if GROUP BY
list contained constant expressions.
This happened because the results of constant expressions were not put
in the temporary table used for duplicate elimination. In fact a constant
item from the GROUP BY list of a ROLLUP query can be replaced for an
Item_null_result object when a rollup row is produced .
Now the JOIN::rollup_init function wraps any constant item referenced in
the GROYP BY list of a ROLLUP query into an Item_func object of a special
class that is never detected as constant item. This ensures creation of
fields for such constant items in temporary tables and guarantees right
results when the result of the rollup operation first has to be written
into a temporary table, e.g. in the cases when duplicate elimination is
required.
mysql-test/r/olap.result:
Added a test case for bug #24856.
mysql-test/t/olap.test:
Added a test case for bug #24856.
sql/item_func.h:
Fixed bug #24856: the result set of a ROLLUP query with DISTINCT could lack
some rollup rows (rows with NULLs for grouping attributes) if GROUP BY
list contained constant expressions.
Itroduced class Item_func_rollup_const derived from Item_func. The object of
this class are never detected as constant items.
We use them for wrapping constant items from the GROUP BY list of any ROLLUP
query. This wrapping allows us to ensure writing constant items into temporary
tables whenever the result of the ROLLUP operation has to be written into a
temporary table, e.g. when ROLLUP is used together with DISTINCT in the SELECT
list.
sql/sql_select.cc:
Fixed bug #24856: the result set of a ROLLUP query with DISTINCT could lack
some rollup rows (rows with NULLs for grouping attributes) if GROUP BY
list contained constant expressions.
Now the JOIN::rollup_init function wraps any constant item referenced in
the GROYP BY list of a ROLLUP query into an Item_func object of a special
class that is never detected as constant item. This ensures creation of
fields for such constant items in temporary tables and guarantees right
results when the result of the rollup operation first has to be written
into a temporary table, e.g. in the cases when duplicate elimination is
required.