"Negative integer keys incorrectly substituted for 0 during range analysis."
The problem is that the range optimizer incorrectly replaces any negative
constant with '0' for all types except BIGINT because the method save_in_field()
casts negative integers to non-negative. This causes incorrect query
results where (0 = any_negative_number).
The problem caused by this bug is fixed by the patch for BUG#11185.
That patch constitutes an optimization due to which the problem code is
never called with negative constants. This patch adds a test so we are sure
that the problem does not reappear.
mysql-test/r/select.result:
Test for BUG#11521.
mysql-test/t/select.test:
Test for BUG#11521.
disabled if ref is built with a key from the updated table
Problem was in add_not_null_conds() optimization function.
It contains following code:
JOIN_TAB *referred_tab= not_null_item->field->table->reginfo.join_tab;
...
add_cond_and_fix(&referred_tab->select_cond, notnull);
For UPDATE described in bug report referred_tab is 0 and dereferencing it
crashes the server.
sql/sql_select.cc:
Fix bug #11868 NOT NULL ref optimization in subquery used in update must be
disabled if ref is built with a key from the updated table
mysql-test/r/update.result:
Test case for bug#11868 Update with subquery with ref built with a key from
the updated table crashes server.
mysql-test/t/update.test:
Test case for bug#11868 Update with subquery with ref built with a key from the updated table crashes server
of system vars at PREPARE time": implement a special Item
to handle system variables. This item substitutes itself with
a basic constant containing variable value at fix_fields.
mysql-test/r/ps.result:
- test results fixed (Bug#9359).
mysql-test/t/ps.test:
- add a test case for Bug#9359 "Prepared statements take snapshot
of system vars at PREPARE time"
sql/item_func.cc:
- implement Item_func_get_system_var: we should not evaluate system
variables in the parser, but instead should create an item which
is evaluated to a constant at execute.
- remove an unused function
sql/item_func.h:
Add a new item, Item_func_get_system_var
sql/mysql_priv.h:
Move necessary declarations to make set_var.h objects visible in
item_func.h
sql/set_var.cc:
- we should not print to network from get_system_var: if it's called
from prepared statement prepare, we get packets out of order when using
the binary protocol. Instead report the error to be sent to the user later.
This is a backport from 5.0.
sql/set_var.h:
- declaration of enum_var_type moved to mysql_priv.h
than in previous 4.1.x
Wrongly applied optimization were adding NOT NULL constraint which results in
rejecting valid rows and reduced result set.
The problem was that add_notnull_conds() while checking subquery were adding
NOT NULL constraint to left joined table, to which, normally, optimization
don't have to be applied.
sql/sql_select.cc:
Fix bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
Constraint were added to optimization appliance test.
mysql-test/t/select.test:
Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
mysql-test/r/select.result:
Test case for bug #11482 Wrongly applied optimization was erroneously rejecting valid rows
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-new
mysql-test/t/ctype_utf8.test:
Auto merged
ndb/src/common/mgmcommon/ConfigRetriever.cpp:
Auto merged
ndb/src/common/transporter/TransporterRegistry.cpp:
Auto merged
ndb/src/mgmclient/CommandInterpreter.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.cpp:
Auto merged
ndb/src/mgmsrv/MgmtSrvr.hpp:
Auto merged
ndb/src/mgmsrv/Services.cpp:
Auto merged
sql/sql_prepare.cc:
Auto merged
mysql user account to that group in the server postinstall section of the RPM spec
file
support-files/mysql.spec.sh:
- manual merge of the fix for BUG#10984: create a "mysql" user group and assign the
mysql user account to that group in the server postinstall section.
- create a "mysql" user group and assign the mysql user account to that group
in the server postinstall section. (BUG 10984)
- backported some changes from the 4.1 RPM spec file (cleanups: removed the incomplete
Brazilian translations, more consequent use of macros)
support-files/mysql.spec.sh:
- create a "mysql" user group and assign the mysql user account to that group
in the server postinstall section. (BUG 10984)
- backported some changes from the 4.1 RPM spec file (cleanups: removed the incomplete
Brazilian translations, more consequent use of macros)
Fix handling of floats and doubles when using prepared statements
API in the embedded server.
sql/sql_prepare.cc:
Jim's fix for the #10443.
Within the embedded server, there's no need to use float4get()
and float8get() for setting parameters, since they are never
stored.
syntax in binlog which stops replication":
disallow the use of parameter markers which can lead to generation
of malformed binlog queries.
mysql-test/r/ps.result:
Test results fixed: a test case for Bug#11299
mysql-test/t/ps.test:
A test case for Bug#11299
sql/sql_lex.cc:
Introduce a new parser token for a parameter marker. Make sure
that a parameter marker can not be used in a query which, when
transformed to a binlog query, becomes grammatically incorrect.
sql/sql_yacc.yy:
The check for COM_PREPARE has been moved into the lexer.
mysql-test/var:
New BitKeeper file ``mysql-test/var''
added using ndb_end and showing mem allocation stat at exit
added init of variable
added destruction of LocalConfig to still memleak
added delete of theFacade on exit
stopSessions(true) on socket server to ensure destuction of threads
added destruction of arbit manager thread
added true option to stopSessions in transporter facade to ensure destructions of threads
ndb/include/util/ndb_opts.h:
added using ndb_end and showing mem allocation stat at exit
ndb/src/common/logger/LogHandler.cpp:
added init of variable
ndb/src/mgmapi/mgmapi.cpp:
added destruction of LocalConfig to still memleak
debug printouts
ndb/src/mgmclient/main.cpp:
added using ndb_end and showing mem allocation stat at exit
ndb/src/mgmsrv/MgmtSrvr.cpp:
added delete of theFacade on exit
removed area51
added debug prints
ndb/src/mgmsrv/main.cpp:
added using ndb_end and showing mem allocation stat at exit
moved glob struct to heap to enable ndb_end usage
moved options out of glob struct
stopSessions(true) on socket server to ensure destuction of threads
ndb/src/ndbapi/ClusterMgr.cpp:
added destruction of arbit manager thread
debug printouts
ndb/src/ndbapi/TransporterFacade.cpp:
added true option to stopSessions in transporter facade to ensure destructions of threads
+ debug prints
+ added close of some fd's
+ debug prints
ndb/src/mgmclient/CommandInterpreter.cpp:
BUG#11898 ndb_mgmd not releasing resources, added "ping"
+ debug prints
ndb/src/mgmsrv/MgmtSrvr.hpp:
BUG#11898 ndb_mgmd not releasing resources, added "ping"
+ debug prints
ndb/src/mgmsrv/Services.cpp:
BUG#11898 ndb_mgmd not releasing resources, added "ping" on add_listener
+ added close of some fd's
+ debug prints
information about error".
libmysql/libmysql.c:
Clear the last error on the statement if mysql_stmt_reset succeeded.
tests/mysql_client_test.c:
A test case for Bug#11183 "mysql_stmt_reset() doesn't reset information
about error"
added __LINE__ so systemErrorLab for better error printout
ndb/include/ndb_version.h.in:
stilled mem leak in usage on getVersionString
ndb/include/util/version.h:
stilled mem leak in usage on getVersionString
ndb/src/common/util/version.c:
stilled mem leak in usage on getVersionString
ndb/src/kernel/blocks/qmgr/Qmgr.hpp:
added __LINE__ so systemErrorLab for better error printout
ndb/src/kernel/blocks/qmgr/QmgrMain.cpp:
stilled mem leak in usage on getVersionString
added __LINE__ so systemErrorLab for better error printout
ndb/tools/restore/restore_main.cpp:
stilled mem leak in usage on getVersionString
source table present (this happens for ORDER BY after UNION)
mysql-test/r/fulltext_order_by.result:
Testcase for BUG#11869
mysql-test/t/fulltext_order_by.test:
Testcase for BUG#11869
This is needed because in some cases range optimization is performed twice and added
NOT NULL item must have correct const_table_map() value.
mysql-test/r/select.result:
Testcase for BUG#11700
mysql-test/t/select.test:
Testcase for BUG#11700
The problem was that on Windows, the socket was in a blocking state
trying to read. Setting killed=1 is not enough to break the
socket out of it's read loop. You have to cancel the read request
or close the socket (which close_connection does).
sql/mysqld.cc:
call close_connection on the thread instead of setting killed=1
No separate typecode for MEDIUMTEXT/LONGTEXT is added, as we
have no sound decision yet what typecodes and for what types are
sent by the server (aka what constitutes a distinct type in MySQL).
mysql-test/r/ps_2myisam.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_3innodb.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_4heap.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_5merge.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_6bdb.result:
Test results fixed: new longtext/longblob length (2^32)
mysql-test/r/ps_7ndb.result:
Test results fixed: new longtext/longblob length (2^32)
sql/field.cc:
A fix for Bug#9735 "mysql_fetch_fields() acts strange on
LONGBLOB/LONGTEXT": fix wrong initialization of field_length
in case of BLOB fields.
tests/mysql_client_test.c:
A test case for Bug#9735 "mysql_fetch_fields() acts strange on
LONGBLOB/LONGTEXT"
Only reproducable in 5.1-wl2325, although the missing code is missing from 4.0 and up.
sql/slave.cc:
Clean up after slave sql thread when exiting.
Wasn't calling close_thread_tables().
This was causing a crashing bug in the 5.1-wl2325 tree. It is conceivable that this
could cause a problem in earlier versions, but we have not been able to reproduce.
into mysql.com:/usr/home/bar/mysql-4.1.num-conv
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/t/ctype_utf8.test:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/sql_table.cc:
Auto merged