Fix bug #12779 : never give a row count estimate of 0 to the MySQL query optimizer, as then left join optimizer may beleive it KNOWS that the table is empty; note that this fix may change query optimization of many other queries where one table is empty; note that the proper fix would be to make the query optimizer to know that the row count estimates it receives really are just estimates, it cannot assume they are certain
sql/ha_innodb.cc:
Fix bug #12779 : never give a row count estimate of 0 to the MySQL query optimizer, as then left join optimizer may beleive it KNOWS that the table is empty; note that this fix may change query optimization of many other queries where one table is empty; note that the proper fix would be to make the query optimizer to know that the row count estimates it receives really are just estimates, it cannot assume they are certain
include/my_sys.h:
Fixes from review (use version in log_event.cc instead)
mysql-test/r/ctype_cp932.result:
Updated test for bug#11338 (logging of prepared statement w/ blob type)
mysql-test/t/ctype_cp932.test:
udpated test for bug#11338 (logging of prepared statement w/ blob type)
mysys/charset.c:
Fixes from review (use version in log_event.cc instead)
sql/item.cc:
Fixes from review (store character_set_client differently so that
fix can be merged forward to 5.0)
sql/item.h:
Fixes from review
sql/log_event.cc:
Fixes from review, str_to_hex is now used by item.cc
sql/log_event.h:
Added prototype for str_to_hex (now used by item.cc)
sql/sql_prepare.cc:
Fixes from review, store character_set_client differently so that
Item_param::query_val_str can use it.
Added test cases for bug #12625.
sql_select.cc:
Fixed bug #12625.
Fixed invalid removal of constant items from the DISTINCT
list in the function create_distinct_group.
sql/sql_select.cc:
Fixed bug #12625.
mysql-test/r/distinct.result:
Added test cases for bug #12625.
mysql-test/t/distinct.test:
Added test cases for bug #12625.
We binlog the DROP TABLE for each table that was actually dropped. Per Sergei's
suggestion a fixed buffer for the DROP TABLE query is pre-allocated from THD pool, and
logging now is done in batches - new batch is started if the buffer becomes full.
Reduced memory usage by reusing the table list instead of accumulating a list of
dropped table names. Also fixed the problem if the table was not actually dropped, eg
due to permissions. Extended the test case to make sure batched query
logging does work.
mysql-test/r/rpl_drop_db.result:
test for query buffer overrun
mysql-test/t/rpl_drop_db.test:
test for query buffer overrun
sql/mysql_priv.h:
updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
BitKeeper/etc/ignore:
Added support-files/MacOSX/postflight support-files/MacOSX/preflight to the ignore list
sql/sql_db.cc:
updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
sql/sql_table.cc:
updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
sql/table.h:
updated patch for BUG#4680 (incomplete DROP DATABASE breaking replication)
against a later version of libc.
include/config-netware.h:
Changes for Netware. Needed to build against newer libc.
netware/BUILD/nwbootstrap:
Fix to build script.
sql/mysqld.cc:
Added an include.
Added archive and example storage engine to Windows build
ha_example.cc, ha_archive.cc:
Windows fix, use relative include path to "mysql_priv.h"
ha_archive.h:
Windows VC6 compile needed (char*) cast of byte var
mysqltest.dsp, mysql_test_run_new.dsp:
Added /FD flag, to avoid include file warnings
VC++Files/mysql-test/mysql_test_run_new.dsp:
Added /FD flag, to avoid include file warnings
VC++Files/client/mysqltest.dsp:
Added /FD flag, to avoid include file warnings
sql/examples/ha_archive.h:
Windows VC6 compile needed (char*) cast of byte var
sql/examples/ha_archive.cc:
Windows fix, use relative include path to "mysql_priv.h"
sql/examples/ha_example.cc:
Windows fix, use relative include path to "mysql_priv.h"
VC++Files/sql/mysqld.dsp:
Added archive and example storage engine to Windows build
into eel.(none):/home/jonas/src/mysql-4.1-push
mysql-test/t/ndb_config.test:
Auto merged
ndb/src/common/util/version.c:
Auto merged
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
Auto merged
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
ndb/src/ndbapi/TransporterFacade.cpp:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
mysql-test/t/ndb_alter_table.test:
merge
Split table version into 2 (major, minor)
Impl. signaling to API when table has been altered
Allow running transactions to use any minor number for transactions
mysql-test/r/ndb_alter_table.result:
Allow running transactions to use old table definition when possible.
mysql-test/t/ndb_alter_table.test:
Allow running transactions to use old table definition when possible.
ndb/include/kernel/BlockNumbers.h:
remove GREP
ndb/include/kernel/GlobalSignalNumbers.h:
Add ALTER_TABL_REP and API_BROADCAST_REP
ndb/include/kernel/kernel_types.h:
table_version_major
ndb/include/kernel/signaldata/AlterTable.hpp:
New error code for alter table during rolling upgrade
ndb/include/ndbapi/NdbDictionary.hpp:
Add state on table object to represent an altered but still valid table object
ndb/src/common/debugger/BlockNames.cpp:
remove GREP
ndb/src/common/util/version.c:
Fix upgrades
ndb/src/kernel/SimBlockList.cpp:
remove GREP
ndb/src/kernel/blocks/Makefile.am:
remove GREP
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
remove GREP
ndb/src/kernel/blocks/dbdict/Dbdict.cpp:
Split tableSchemaVersion into 2 part
24 bit real version
8 bit for online alter table where old table definition is still usable
ndb/src/kernel/blocks/dbdict/Dbdict.hpp:
Check for same ndb versions
ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp:
Update schema printer
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
remove grep
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
1) Use table_ version_major when checking table version
2) Dummy fix for BUG that tableSchemaVersion is only 16 bit in LQHKEYREQ
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
1) Use table_ version_major when checking table version
2) Dummy fix for BUG that tableSchemaVersion is only 16 bit in LQHKEYREQ
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
1) Use table_ version_major when checking table version
2) Dummy fix for BUG that tableSchemaVersion is only 16 bit in LQHKEYREQ
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
remove GREP
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
Add support for sending REP to ALL api nodes
ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
Add support for sending REP to ALL api nodes
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Add support for sending REP to ALL api nodes
ndb/src/kernel/blocks/suma/Suma.cpp:
remove GREP
ndb/src/mgmsrv/MgmtSrvr.cpp:
remove GREP
ndb/src/ndbapi/DictCache.cpp:
Add support for alter_table_rep
by setting status to Altered
NOTE special handling of tables in state RETREIVING
ndb/src/ndbapi/DictCache.hpp:
Add support for alter_table_rep
by setting status to Altered
NOTE special handling of tables in state RETREIVING
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Change alter table so that remove from global cache is used wo/ retreiving it from there first
as ALTER_TABLE_REP might already have changed the table object...
ndb/src/ndbapi/TransporterFacade.cpp:
Add support for ALTER_TABLE_REP
sql/ha_ndbcluster.cc:
Allow running transactions to use tables in state ALTERED...but new transactions may not...
ndb/include/kernel/signaldata/ApiBroadcast.hpp:
New BitKeeper file ``ndb/include/kernel/signaldata/ApiBroadcast.hpp''
create_tmp_field_from_item() was creating tmp field without regard to
original field type of Item. This results in wrong type being reported to
client.
To create_tmp_field_from_item() added special handling for Items with
DATE/TIME field types to preserve their type.
sql/sql_select.cc:
Fix bug #11718 query with function, join and order by returns wrong type.
tests/mysql_client_test.c:
Test case for bug #11718: query with function, join and order by returns wrong type
In cp932, '\' character can be the second byte in a
multi-byte character stream. This makes it difficult to use
mysql_escape_string. Added flag to indicate which languages allow
'\' as second byte of multibyte sequence so that when putting a prepared
statement into the binlog we can decide at runtime whether hex encoding
is really needed.
include/m_ctype.h:
Added bool to indicate character sets which allow '\' as the second
byte of a multibyte character set (currently only cp932). For these
character sets, escaping with '\' is dangerous and leads to corruption
in replication.
include/my_sys.h:
Add function to enocde a string as hex with no prefix (bare)
mysys/charset.c:
Add function to encode string as hex with no prefix (bare).
sql/item.cc:
Check the connection character set to see if escape_string_for_mysql
is safe, or if character set requires unambiguous (hex) encoding
sql/item.h:
Pass thd to query_val_str for access to charset()
sql/sql_prepare.cc:
Pass thd to query_val_str.
strings/ctype-big5.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-bin.c:
Add escape_with_backslash_is_dangerous flag
strings/ctype-cp932.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-czech.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-euc_kr.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-extra.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-gb2312.c:
Add escape_with_backslash_is_dangerous flag.
strings/ctype-gbk.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-latin1.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-sjis.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-tis620.c:
Added esacpe_with_backslash_character_is_dangerous flag.
strings/ctype-uca.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-ucs2.c:
Added escape_with_backslash_is_dangerous.
strings/ctype-ujis.c:
Added escape_with_backslash_is_dangerous flag.
strings/ctype-utf8.c:
Added escape_with_backslash_is_dangerous.
strings/ctype-win1250ch.c:
Added escape_with_backslash_is_dangerous.
Fixed bug #11479.
The JOIN::reinit method cannot call setup_tables
after the optimization phase since this function
removes some optimization settings for joined
tables. E.g. it resets values of the null_row flag to 0.
subselect.result, subselect.test:
Added a test case for bug #11479.
mysql-test/t/subselect.test:
Added a test case for bug #11479.
mysql-test/r/subselect.result:
Added a test case for bug #11479.
sql/sql_select.cc:
Fixed bug #11479.
The JOIN::reinit method cannot call setup_tables
after the optimization phase since this function
removes some optimization settings for joined
tables. E.g. it resets values of the null_row flag to 0.
mysql-test/r/subselect.result:
testst of IN subqueries with row
mysql-test/t/subselect.test:
tests of ion subqueries with row
sql/item.h:
add method to prevent of removing Item_ref_null_helper from HAVING
sql/item_cmpfunc.h:
Prevented removing of Item_test_isnotnull from HAVING
sql/item_subselect.cc:
fixed converting row IN subqueries
sql/sql_select.cc:
fixed debug print
Don't skip SET command even if --replicate-wild* says to.
E.g., SET ONE_SHOT TIME_ZONE = 'XYZ' should be executed (BUG #12542)
sql/sql_parse.cc:
Don't skip SET command even if --replicate-wild* says to.
E.g., SET ONE_SHOT TIME_ZONE = 'XYZ' should be executed (BUG #12542)
sql/sql_cache.cc:
block QC using if tables are locked with LOCK
unlock QC
mysql-test/r/query_cache_noembeded.result:
New BitKeeper file ``mysql-test/r/query_cache_noembeded.result''
mysql-test/t/query_cache_noembeded.test:
New BitKeeper file ``mysql-test/t/query_cache_noembeded.test''
after normal connection threads. (Bug #11796)
sql/mysqld.cc:
Move call to end_slave() after first loop through killing threads,
to minimize chances of 'SHOW SLAVE STATUS' being called between the
time the slave is shut down and connections are shut down.
Added a test case for bug #12392.
item_cmpfunc.cc:
Fixed bug #12392.
Missing handling of rows containing NULL components
when evaluating IN predicates caused a crash.
sql/item_cmpfunc.cc:
Fixed bug #12392.
Missing handling of rows containing NULL components
when evaluating IN predicates caused a crash.
mysql-test/r/subselect.result:
Added a test case for bug #12392.
mysql-test/t/subselect.test:
Added a test case for bug #12392.
- Fixed some error condtion when handling dates with 'T'
- Added extra test for bug #11867 (Wrong result with "... WHERE ROW( a, b ) IN ( SELECT DISTINCT a, b WHERE ...)" to show it's not yet fixed
- Safety fixes and cleanups
mysql-test/r/subselect.result:
Added extra test case to test case for bug #11867
(Result shows that current code is not yet right and needs to be fixed)
mysql-test/r/type_datetime.result:
More tests for dates of type CCYYMMDDTHHMMSS
mysql-test/t/subselect.test:
Added extra test case to test case for bug #11867
mysql-test/t/type_datetime.test:
More tests for dates of type CCYYMMDDTHHMMSS
sql-common/my_time.c:
Fixed handling of dates of type CCYYMMDDTHHMMSS
(Old code couldn't handle 2003-0304 or 2003-0003-02)
sql/slave.cc:
Indentation cleanup
sql/sql_parse.cc:
Added test of return value of get_system_var()
sql/sql_select.cc:
Removed unnecessary call to field->table->maybe_null
sql/sql_union.cc:
Indentation fixes
BUG #11104
Took out the offset-=delimiter_length-1 out of the for loop. It was causing
basically this:
select substring_index('the king of the the hill', 'the', -2) to not work.
The first iteration, offset would be initialised to 24, then strstr would
point at 'the king of the the* hill' ('*'means right before the
character following), returning a offset of 16. The for loop would then
decrement offset by two (3 - 1), to 14, now pointing at
"the king of th*e the hill", _skipping_ past the 'e' in the second to last
'the', and therefore strstr would never have a chance of matching the
second to last 'the', then moving on to the 'the' at the begginning of the
string!
In a nutshell, offset was being decremented by too great a value, preventing
the second to last 'the' from being ever found, hence the result of
'king of the the hill' from the query that is reported in the bug report
func_str.test:
BUG #11104
Added tests to make sure fix addresses issues in original bug report
func_str.result:
BUG #11104
New results for new tests
mysql-test/r/func_str.result:
BUG #11104
New results for new tests
mysql-test/t/func_str.test:
BUG #11104
Added tests to make sure fix addresses issues in original bug report
sql/item_strfunc.cc:
BUG #11104
Took out the offset-=delimiter_length-1 out of the for loop. It was causing
basically this:
select substring_index('the king of the the hill', 'the', -2) to not work.
The first iteration, offset would be initialised to 24, then strstr would
point at 'the king of the the* hill' ('*'means right before the
character following), returning a offset of 16. The for loop would then
decrement offset by two (3 - 1), to 14, now pointing at
"the king of th*e the hill", _skipping_ past the 'e' in the second to last
'the', and therefore strstr would never have a chance of matching the
second to last 'the', then moving on to the 'the' at the begginning of the
string!
In a nutshell, offset was being decremented by too great a value, preventing
the second to last 'the' from being ever found, hence the result of
'king of the the hill' from the query that is reported in the bug report
adding test case
item_strfunc.cc:
Bug#12351
CONCAT with USER()/DATEBASE() and
a column gets strange results.
Mark created Item_str as constant, so CONCAT
cannot reuse it for optimization purposes.
sql/item_strfunc.cc:
Bug#12351
CONCAT with USER()/DATEBASE() and
a column gets strange results
mysql-test/t/func_system.test:
adding test case
mysql-test/r/func_system.result:
adding test case