The convert_constant_item() function converts constant items to ints on
prepare phase to optimize execution speed. In this case it tries to evaluate
subselect which contains a derived table and is contained in a derived table.
All derived tables are filled only after all derived tables are prepared.
So evaluation of subselect with derived table at the prepare phase will
return a wrong result.
A new flag with_subselect is added to the Item class. It indicates that
expression which this item represents is a subselect or contains a subselect.
It is set to 0 by default. It is set to 1 in the Item_subselect constructor
for subselects.
For Item_func and Item_cond derived classes it is set after fixing any argument
in Item_func::fix_fields() and Item_cond::fix_fields accordingly.
The convert_constant_item() function now doesn't convert a constant item
if the with_subselect flag set in it.
mysql-test/t/view.test:
Added test case for bug#19077: A nested materialized derived table is used before being populated.
mysql-test/t/subselect.test:
Added test case for bug#19077: A nested materialized derived table is used before being populated.
mysql-test/r/view.result:
Added test case for bug#19077: A nested materialized derived table is used before being populated.
mysql-test/r/subselect.result:
Added test case for bug#19077: A nested materialized derived table is used before being populated.
sql/item_subselect.cc:
Fixed bug#19077: A nested materialized derived table is used before being populated.
The Item_subselect class constructor sets new with_subselect flag to 1.
sql/item_func.cc:
Fixed bug#19077: A nested materialized derived table is used before being populated.
The Item_func::fix_fields() sets new with_subselect flag from with_subselect flags of its arguments.
sql/item_cmpfunc.cc:
Fixed bug#19077: A nested materialized derived table is used before being populated.
The convert_constant_item() function now doesn't convert a constant item
with the with_subselect flag set.
The Item_cond::fix_fields() sets new with_subselect flag from with_subselect flags of its arguments.
sql/item.cc:
Fixed bug#19077: A nested materialized derived table is used before being populated.
Set new with_subselect flag to default value - 0 in the Item constructor.
sql/item.h:
Fixed bug#19077: A nested materialized derived table is used before being populated.
A new flag with_subselect is added to the Item class. It indicates that
expression which this item represents is a subselect or contains a subselect.
It is set to 0 by default.
into dl145j.mysql.com:/users/gbichot/mysql-5.1-new
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/extra/binlog_tests/binlog.test:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysqld.cc:
Auto merged
That option was used to suppress the XID from the output of SHOW BINLOG EVENTS (to create a repeatable testsuite),
was available only in debug builds, and was explicitely marked as "may be removed in future versions" in mysqld --help.
Idea of the removal approved by the replication team.
mysql-test/extra/binlog_tests/binlog.test:
use replace-regex to remove xid
mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
use replace-regex to remove xid
mysql-test/mysql-test-run.pl:
option removed
mysql-test/mysql-test-run.sh:
option removed
sql/log_event.cc:
no more need to hide XID in tests output as we have replace-regex
sql/log_event.h:
no more need to hide XID in tests output as we have replace-regex
sql/mysqld.cc:
no more need to hide XID in tests output as we have replace-regex
into rurik.mysql.com:/home/igor/dev/mysql-5.1-0
mysql-test/r/view.result:
Auto merged
mysql-test/t/view.test:
Auto merged
sql/item_timefunc.cc:
Auto merged
mysql-test/r/func_time.result:
Fix for #16327: invalid TIMESTAMP values retrieved
- test result
mysql-test/t/func_time.test:
Fix for #16327: invalid TIMESTAMP values retrieved
- test case
sql/field.cc:
Fix for #16327: invalid TIMESTAMP values retrieved
- let 1969 as well
into mysql.com:/home/kgeorge/mysql/5.1/merge
mysql-test/r/subselect.result:
Auto merged
mysql-test/r/view.result:
Auto merged
sql/item_subselect.cc:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail
- small correction of previous patch
storage/ndb/src/ndbapi/DictCache.cpp:
Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail
- cache not released properly
storage/ndb/tools/desc.cpp:
Bug #16875 Using stale MySQLD FRM files can cause restored cluster to fail
- added retry option so that ndb_desc can be used to wait for a table to be created
The select statement that specified a view could be
slightly changed when the view was saved in a frm file.
In particular references to an alias name in the HAVING
clause could be substituted for the expression named by
this alias.
This could result in an error message for a query of
the form SELECT * FROM <view>. Yet no such message
appeared when executing the query specifying the view.
mysql-test/r/having.result:
Adjusted results after fixing bug #19573.
mysql-test/r/view.result:
Added a test case for bug #19573.
mysql-test/t/view.test:
Added a test case for bug #19573.
into zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.1-new
client/mysql.cc:
Auto merged
mysql-test/r/func_str.result:
Auto merged
mysql-test/r/rpl_temporary.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/t/rpl_temporary.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
Removed Berkeley DB
configure.in:
Adjusted Netware support
basic.t.c:
Change for Netware
Makefile.am:
Use thread safe libmysqlclient_r if it was built
valgrind.supp:
Hide report about strlen/_dl_init_paths
ha_tina.cc:
Temporarely disable CSV engine on Netware,
as the engine depends on mmap()
net_serv.cc:
Include <sys/select.h> for Netware
sql/net_serv.cc:
Include <sys/select.h> for Netware
storage/csv/ha_tina.cc:
Temporarely disable CSV engine on Netware,
as the engine depends on mmap()
mysql-test/valgrind.supp:
Hide report about strlen/_dl_init_paths
tests/Makefile.am:
Use thread safe libmysqlclient_r if it was built
unittest/mytap/t/basic.t.c:
Change for Netware
configure.in:
Adjusted Netware support
support-files/mysql.spec.sh:
Removed Berkeley DB
into mysql.com:/usr_rh9/home/elkin.rh9/MySQL/Merge/5.0
mysql-test/t/rpl_temporary.test:
Auto merged
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp:
Auto merged
ndb/test/ndbapi/Makefile.am:
Auto merged
fixing encoding example because of table names can not be in koi8r
on some platforms.
mysql-test/t/rpl_temporary.test:
koi8r encoding to name tables is changed for latin1 for the former does not work
on some platforms.
The effect of the test remains: a test table is named to have multibyte utf8 representation,
which is the essence of the bug.
mysql-test/extra/rpl_tests/rpl_log.test:
Remove disable log per lars
mysql-test/r/rpl_stm_log.result:
New results file
mysql-test/r/rpl_row_log.result:
New results file
mysql-test/r/rpl_row_log_innodb.result:
New results file
Added #ifdef's to make code work even when the system is built without
row-based replication.
mysql-test/r/create.result:
Result change
mysql-test/r/innodb_mysql.result:
Result change
mysql-test/t/create.test:
Moving InnoDB specific test to innodb_mysql.test
mysql-test/t/innodb_mysql.test:
Moving InnoDB-specific test from create.test
mysql-test/t/rpl_rbr_to_sbr.test:
Test only sensible if we have row-based replication compiled in.
mysql-test/t/rpl_row_basic_8partition.test:
Test only sensible if we have row-based replication compiled in.
sql/log.cc:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/set_var.cc:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/set_var.h:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/share/errmsg.txt:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/sql_base.cc:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/sql_class.cc:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/sql_class.h:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/sql_insert.cc:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/sql_parse.cc:
Adding HAVE_ROW_BASED_REPLICATION guards on code to work without
row-based replication.
sql/sql_table.cc:
Not running hooks
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
client/mysql.cc:
Auto merged
mysql-test/r/func_str.result:
Auto merged
mysql-test/r/rpl_temporary.result:
Auto merged
mysql-test/r/select.result:
Auto merged
mysql-test/t/rpl_temporary.test:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/sql_show.cc:
Auto merged
storage/ndb/src/ndbapi/ClusterMgr.cpp:
Auto merged
storage/ndb/src/ndbapi/ClusterMgr.hpp:
Auto merged
storage/ndb/src/ndbapi/DictCache.hpp:
Auto merged
storage/ndb/src/ndbapi/TransporterFacade.hpp:
Auto merged
storage/ndb/src/ndbapi/ndb_cluster_connection.cpp:
Auto merged
storage/ndb/src/ndbapi/ndb_cluster_connection_impl.hpp:
Auto merged
mysql-test/r/information_schema.result:
manual merge
mysql-test/t/information_schema.test:
manual merge
sql/ha_ndbcluster.cc:
manual merge
storage/ndb/include/ndbapi/ndb_cluster_connection.hpp:
manual merge
storage/ndb/src/ndbapi/DictCache.cpp:
manual merge
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
mysql-test/t/disabled.def:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
if input year for date_add() / date_sub() with INTERVAL is low enough for
calc_daynr() to possibly return incorrect results (calc_daynr() has no information
on whether the year is low because it was a two-digit year ('77) or because it
was a really low four-digit year (0077) and will indiscriminately try to turn the
value into a four-digit year by adding 1900 or 2000 respectively), the functions
will now throw NULL.
include/my_time.h:
new define YY_MAGIC_BELOW: if year is below this threshold, magic kicks in in
calc_daynr(). the idea is to convert two-digit years to four-digit ones, adding
1900 to values >= YY_PART_YEAR or adding 2000 otherwise.
current value of YY_MAGIC_BELOW derived from original code in calc_daynr()
mysql-test/r/func_time.result:
test where 2 digit -> 4 digit year magic kicks in, and whether we throw NULL when
it happens
mysql-test/t/func_time.test:
test where 2 digit -> 4 digit year magic kicks in, and whether we throw NULL when
it happens
sql-common/my_time.c:
use new const YY_MAGIC_BELOW, apply 2-digit -> 4-digit magic only to years
below this threshold.
sql/item_timefunc.cc:
throw NULL when year in date_add() / date_sub() would be affected by
2 digit -> 4 digit magic.
into zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.1-new
client/mysql.cc:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/t/mysql.test:
Auto merged
sql/item_timefunc.cc:
Auto merged