The problem was due to the fact that with --lower-case-table-names set to 1
the function find_field_in_group did not convert the prefix 'HU' in
HU.PROJ.CITY into lower case when looking for it in the group list. Yet the
names in the group list were extended by the database name in lower case.
mysql-test/r/having.result:
Added a test case for bug #15917.
mysql-test/t/having.test:
Added a test case for bug #15917.
sql/item.cc:
Fixed bug #15917: unexpected complain for a NIST test case.
The problem was due to the fact that with --lower-case-table-names set to 1
the function find_field_in_group did not convert the prefix 'HU' in
HU.PROJ.CITY into lower case when looking for it in the group list. Yet the
names in the group list were extended by the database name in lower case.
The needed conversion was added to the code of find_field_in_group.
mysql-test/mysql-test-run.sh:
Make "mysql-test-run.sh" accept (and ignore) the options "--with-ndbcluster"
and "--with-ndbcluster-only".
This is necessary because newer build tools will issue them, and the test
script should tolerate that.
Backport from 5.1 (Tomas Ulin, 2006-01-17)
1) make sure that check_multi_node_shutdown does not proceed (in stop case)
2) Fix printout
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
make sure that check_multi_node_shutdown does not proceed (in stop case)
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
make sure that check_multi_node_shutdown does not proceed (in stop case)
counter".
When TRUNCATE TABLE was called within an stored procedure the
auto_increment counter was not reset to 0 even if straight
TRUNCATE for this table did this.
This fix makes TRUNCATE in stored procedures to be handled exactly
in the same way as straight TRUNCATE. We achieve this by rolling
back the fix for bug 8850, which is no longer needed since stored
procedures don't require prelocked mode anymore (and TRUNCATE is
not allowed in stored functions or triggers).
mysql-test/r/sp.result:
Test case for BUG#14945.
mysql-test/t/sp.test:
Test case for BUG#14945.
sql/sql_delete.cc:
Handle TRUNCATE in stored procedures exactly in the same way as straight
TRUNCATE (i.e. without falling back to DELETE if possible). We achieve
this by rolling back the fix for bug 8850, which is no longer relevant
since stored procedures don't require prelocked mode anymore
(and TRUNCATE is not allowed in stored functions or triggers).
sql/sql_parse.cc:
Handle TRUNCATE in stored procedures exactly in the same way as straight
TRUNCATE (i.e. without falling back to DELETE if possible). We achieve
this by rolling back the fix for bug 8850, which is no longer relevant
since stored procedures don't require prelocked mode anymore
(and TRUNCATE is not allowed in stored functions or triggers).
add two new start options that will decrease likelyhood of bug#18612
push cntr-sp2 logic down into qmgr-sp1 to decrease likelyhood of bug#18612
ndb/include/kernel/signaldata/CmRegSignalData.hpp:
Expand CmRegReq with lots of stuff
ndb/include/mgmapi/ndb_logevent.h:
Add Start report during sp1
ndb/src/common/debugger/EventLogger.cpp:
Add Start report during sp1
ndb/src/kernel/blocks/dbdih/DbdihInit.cpp:
Init cntrref
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Fix small bugs related to partial initial start
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
Remove timeouts as they are handled in QMGR nowadays
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
Push cntr sp2 logic down to QMGR to prevent the forming of multiple QMGR cluster
that will lead to start problems (crashes...)
ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
Push cntr sp2 logic down to QMGR to prevent the forming of multiple QMGR cluster
that will lead to start problems (crashes...)
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
Push cntr sp2 logic down to QMGR to prevent the forming of multiple QMGR cluster
that will lead to start problems (crashes...)
ndb/src/kernel/vm/Configuration.cpp:
Add new flags
--initial-start
--nowait-nodes
as it is now required by mysql_set_character_set()
libmysql/libmysql.c:
Removing mysql_get_server_version()
sql-common/client.c:
Adding mysql_get_server_version()
Bug#18830 incompatibility new libraries with old server
Additional 5.0 fix:
applying the same patch to client.c.
sql-common/client.c:
Bug#18830 incompatibility new libraries with old server
Additional 5.0 fix:
applying the same patch to client.c.
Bug#18830: incompatibility new libraries with old server
Don't execute SET NAMES with pre-4.1 server.
libmysql/libmysql.c:
Bug#18830: incompatibility new libraries with old server
Don't execute SET NAMES with pre-4.1 server.
Adding test case to cover queries which worked incorrectly earlier:
Bug#18321: Can't store EuroSign with latin1_german1_ci and latin1_general_ci
mysql-test/r/ctype_latin1.result:
Adding test case for Bug#18321: Can't store EuroSign with latin1_german1_ci and latin1_general_ci
mysql-test/t/ctype_latin1.test:
Adding test case for Bug#18321: Can't store EuroSign with latin1_german1_ci and latin1_general_ci
Backporting a 5.0 change:
MAX_BUF was too small for Index.xml
Changeing MAX_BUF and adding assert to easier
catch the same problem in the future.
ctype-extra.c:
Regenerating ctype-extra.c with the fixed conf_to_src.
strings/ctype-extra.c:
Regenerating ctype-extra.c with the fixed conf_to_src.
strings/conf_to_src.c:
Backporting a 5.0 change:
MAX_BUF was too small for Index.xml
Changeing MAX_BUF and adding assert to easier
catch the same problem in the future.
Buffer was too small to load Index.xml.
So some charsets were not gerenrated.
Making the buffer bigger, and adding an DBUG_ASSERT,
to easier catch the problem in the future.
ctype-extra.c:
Additional charsets were generated.
strings/ctype-extra.c:
Additional charsets were generated.
strings/conf_to_src.c:
Buffer was too small to load Index.xml.
So some charsets were not gerenrated.
Making the buffer bigger, and adding an DBUG_ASSERT,
to easier catch the problem in the future.
Additional fix for INSERT DELAYED with subselect.
Originally detected in 5.1, but 5.0 could also be affected.
The user thread creates a dummy table object,
which is not included in the lock. The 'real' table is
opened and locked by the 'delayed' system thread.
The dummy object is now marked as not locked and this is
tested in mysql_lock_have_duplicate().
sql/lock.cc:
BUG#5390 - problems with merge tables
Additional fix for INSERT DELAYED with subselect.
The user thread creates a dummy table object,
which is not included in the lock.
Changed to safer asserts.
sql/sql_insert.cc:
BUG#5390 - problems with merge tables
Marked the dummy table object as not being
included in the lock.
This makes it possible make a graph (with for example gnuplot) of a test run and spot where most time is consumed.
Add the new code inside an "#if 0" until it's portable.
client/mysqltest.c:
Incorporate a patch to write a timestamp for every new line of the test that is executed.
This makes it possible make a graph (with for example gnuplot) of a test run and spot where most time is consumed.
Mutli-table uses temporary table to store new values for fields. With the
new values the rowid of the record to be updated is stored in a Field_string
field. Table to be updated is set as source table of the rowid field.
But when the temporary table creates the tmp field for the rowid field it
converts it to a varstring field because the table to be updated was created by
the v4.1. Due to this the stored rowids were broken and no records for
update were found.
The flag can_alter_field_type is added to Field_string class. When it is set to
0 the field won't be converted to varstring. The Field_string::type() function
now always returns MYSQL_TYPE_STRING if can_alter_field_type is set to 0.
The multi_update::initialize_tables() function now sets can_alter_field_type
flag to 0 for the rowid fields denying conversion of the field to a varstring
field.
sql/field.h:
Fixed bug #16281: Multi-table update broken in 5.0 on tables imported from 4.1
The flag can_alter_field_type is added to Field_string class. When it is set to
0 the field won't be converted to varstring.
The Field_string::type() function now always returns MYSQL_TYPE_STRING if
can_alter_field_type is set to 0.
sql/sql_update.cc:
Fixed bug #16281: Multi-table update broken in 5.0 on tables imported from 4.1
The multi_update::initialize_tables() function now sets can_alter_field_type
flag to 0 for the rowid fields denying conversion of the field to a varstring
field.
into perch.ndb.mysql.com:/home/jonas/src/50-work
ndb/src/kernel/blocks/dbdih/DbdihMain.cpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp:
Auto merged
ndb/src/kernel/blocks/ndbcntr/NdbcntrInit.cpp:
Auto merged
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
Auto merged
ndb/test/ndbapi/testNodeRestart.cpp:
Auto merged
ndb/test/run-test/daily-basic-tests.txt:
Auto merged
ndb/test/src/NdbRestarts.cpp:
Auto merged
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp:
merge
ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp:
merge
ndb/src/kernel/blocks/qmgr/QmgrInit.cpp:
merge
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
merge
The wrong value was being reported as the field_length for BIT
fields, resulting in confusion for at least Connector/J. The
field_length is now always the number of bits in the field, as
it should be.
mysql-test/r/type_bit.result:
Add new results
mysql-test/r/type_bit_innodb.result:
Add new results
mysql-test/t/type_bit.test:
Add new regression test
mysql-test/t/type_bit_innodb.test:
Add new regression test
sql/field.cc:
Fix Field_bit->field_length to actually report the display width, and
store the bytes stored in the rec in the new bytes_in_rec member.
sql/field.h:
Fix Field_bit::field_length to store the correct value, adding
Field_bit::bytes_in_rec to remember the number of bytes used for
storing the value. Remove Field_bit_as_char::create_length, as it
is now redundant.
sql/ha_ndbcluster.cc:
Handle field_length of Field_bit actually being the display width (# of bits).
sql/key.cc:
Fix inappropriate use of field->field_length for BIT field.
Also fixes a new bug for which "NULL" wasn't printed (because the
data it represents has length zero). (Discovered my Paul DuBois.)
client/mysql.cc:
Cleaned up the interactive-session table-printing function.
- No longer rely on the length of the data to pad column boundries.
- Be smarter about how we detect if the column is NULL.
- Document how multibyte characters affect the output printing.
- Use more descriptive variable names.
More importantly, (re-)add these features that were crippled in an
earlier change:
- Print "NULL".
- Right-justify numbers.
mysql-test/r/mysql.result:
Updated old result and added new case.
mysql-test/t/mysql.test:
Added new test case.
The bug was caused by wrong behaviour of mysql_insert() which in case
of INSERT DELAYED into a view exited with thd->net.report_error == 0.
This blocked error reporting to the client which started waiting
infinitely for response to the query.
mysql-test/r/insert.result:
Fixed results for the added test case.
mysql-test/t/insert.test:
Added test case.
sql/sql_insert.cc:
Fixed BUG#13683: INSERT DELAYED into a view creates an infinite loop.
Changed mysql_insert(): delayed_get_table() applied to a view exits
with ER_WRONG_OBJECT error (and with thd->net.report_error == 1) and
in this case we must just exit from mysql_insert(). Prior to this
change, instead of exiting open_and_lock_tables() was invoked which
cleared thd->net.report_error to zero and caused the bug.