into mysql.com:/home/dlenev/src/mysql-4.1-ryan
sql/field.cc:
Auto merged
sql/field.h:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_show.cc:
Auto merged
sql/sql_table.cc:
Auto merged
column types TIMESTAMP is NOT NULL by default, so in order to have
TIMESTAMP column holding NULL valaues you have to specify NULL as
one of its attributes (this needed for backward compatibility).
Main changes:
Replaced TABLE::timestamp_default_now/on_update_now members with
TABLE::timestamp_auto_set_type flag which is used everywhere
for determining if we should auto-set value of TIMESTAMP field
during this operation or not. We are also use Field_timestamp::set_time()
instead of handler::update_timestamp() in handlers.
mysql-test/r/type_timestamp.result:
Added test for TIMESTAMP columns which are able to store NULL values.
mysql-test/t/type_timestamp.test:
Added test for TIMESTAMP columns which are able to store NULL values.
sql/field.cc:
Added support for TIMESTAMP fields holding NULL values.
We don't need Field_timestamp::set_timestamp_offsets() anymore.
Instead we need Field_timestamp::get_auto_set_type() function
which will convert TIMESTAMP auto-set type stored in Field in
unireg_check to value from timestamp_auto_set_type_enum.
(We can't replace this function with additional Field_timestamp member
and some code in constructor because then we will have troubles
with Field::new_field() method).
We should also set field to not null in Field_timestamp::set_time() now.
sql/field.h:
Added support for TIMESTAMP fields holding NULL values.
We don't need Field_timestamp::set_timestamp_offsets() anymore.
Instead we need Field_timestamp::get_auto_set_type() function,
which will convert TIMESTAMP auto-set type stored in Field in
unireg_check to value from timestamp_auto_set_type_enum.
We also have to support NULL values in Field_timestamp::get_timestamp()
function.
sql/field_conv.cc:
Added comment clarifying behavior in case of TIMESTAMP fields which are
able to store NULL values.
sql/ha_berkeley.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/ha_heap.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/ha_innodb.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/ha_isam.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/ha_isammrg.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/ha_myisam.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/ha_myisammrg.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/ha_ndbcluster.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now for determining
if we should auto-set value of TIMESTAMP field during this operation.
We are also use Field_timestamp::set_time() instead of
handler::update_timestamp().
sql/handler.cc:
handler::update_timestamp() is no longer needed since now we use
Field_timestamp::set_time() instead.
(we can't use handler::update_timestamp() anyway since field position
only is not enough for TIMESTAMP fields which are able to store NULLs)
sql/handler.h:
handler::update_timestamp() is no longer needed since now we use
Field_timestamp::set_time() instead.
sql/item_timefunc.cc:
Since now TIMESTAMP fields can hold NULL values we should take this into
account.
sql/sql_base.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now.
(Here we use Field_timestamp::get_auto_set_type() to setup its value
before further statement execution).
sql/sql_insert.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now.
sql/sql_load.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now.
sql/sql_parse.cc:
Added support for TIMESTAMP fields holding NULL values.
We should distinguish NULL default values and non-specified default
values for such fields (because latter could mean DEFAULT NOW()
ON UPDATE NOW() in some cases).
sql/sql_show.cc:
Added support for TIMESTAMP fields holding NULL values.
Unlike all other fields these are NOT NULL by default
so we have to specify NULL attribute explicitly for them.
sql/sql_table.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now.
sql/sql_update.cc:
Now we use TABLE::timestamp_field_type instead of
TABLE::timestamp_default_now/on_update_now.
sql/sql_yacc.yy:
Added support for TIMESTAMP fields holding NULL values.
Unlike all other fields these are NOT NULL by default
(so we have to set NOT_NULL_FLAG properly for them).
sql/table.h:
Added timestamp_auto_set_type enum which values are used for indicating
during which operations we should automatically set TIMESTAPM field
value to current timestamp.
TABLE: Replaced timestamp_default_now/on_update_now members with
timestamp_auto_set_type flag (Now when TIMESTAMP field are able to
store NULL values, single position of field in record is not enough
for updating this field anyway).
Logging to logging@openlogging.org accepted
sql_acl.cc, grant.test, grant.result:
BUG 5831 Changed mysql_revoke_all() to successfully delete all privileges for a user in one pass.
mysql-test/r/grant.result:
BUG 5831 Changed mysql_revoke_all() to successfully delete all privileges for a user in one pass.
mysql-test/t/grant.test:
BUG 5831 Changed mysql_revoke_all() to successfully delete all privileges for a user in one pass.
sql/sql_acl.cc:
BUG 5831 Changed mysql_revoke_all() to successfully delete all privileges for a user in one pass.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Use TESTS_BINDIR to point out bin dir for "client_test"
mysql-test-run.sh:
Export TESTS_BINDIR to be used from --exec
mysql-test/mysql-test-run.sh:
Export TESTS_BINDIR to be used from --exec
mysql-test/t/client_test.test:
Use TESTS_BINDIR to point out bin dir for "client_test"
--exec now checks return code, make all command lines succeed
mysql-test/t/mysql_protocols.test:
--exec now checks return code, make all command lines succeed
mysql-test/mysql-test-run.sh:
Auto merged
ndb/src/ndbapi/ndb_cluster_connection.cpp:
Auto merged
sql/sql_table.cc:
Auto merged
sql/ha_ndbcluster.cc:
Merge: ndb_discover_tables should no longer be called when server is starting
identical to another in result"
According to SQL standard queries like
"select t1.a as col from t1, t2 order by a" should return an error if
both tables contain field a.
mysql-test/r/order_by.result:
Updated test to conform SQL-standard.
mysql-test/t/order_by.test:
Updated test to conform SQL-standard.
sql/item.cc:
find_item_in_list() has now one more out parameter which is not used
in item.cc functions.
sql/mysql_priv.h:
find_item_in_list(): Added boolean out parameter "unaliased" which
indicates that we have found field by its original name and not by
its alias in item (select) list.
sql/sql_base.cc:
find_item_in_list(): Added boolean out parameter "unaliased" which
indicates that we have found field by its original name and not by
its alias in item (select) list. This means that additional check is
required to ensure there will be no ambiguity if we would search for this
field in all tables.
sql/sql_select.cc:
find_order_in_list(): If we have found field in select list by its
original name and not by its alias then we should perform additional
check to ensure that there will be no ambiguity if we will search for
this field in all tables. Also small cleanup.
mysql-test/mysql-test-run.sh:
Create and export an NDB_CONNECSTRING that can be used for NDB_TOOLS to connect to NDB
mysql-test/r/ndb_autodiscover.result:
Added more advanced test cases for ndb_autodiscover
mysql-test/t/ndb_autodiscover.test:
Added more advanced test cases for ndb_autodiscover
Run client_test as a testcase
new file
mysql-test-run.sh:
More clearly report failure if --force, also exit 1
client_test.c:
Use MAXPATHLEN in test_frm_bug()
Renable test cases disabled for running from mysql-test-run
mysqltest.c:
Don't check errno from popen, may not be set
client/mysqltest.c:
Don't check errno from popen, may not be set
tests/client_test.c:
Use MAXPATHLEN in test_frm_bug()
Renable test cases disabled for running from mysql-test-run
mysql-test/mysql-test-run.sh:
More clearly report failure if --force, also exit 1
mysql-test/t/client_test.test:
Run client_test as a testcase
using GROUP BY"
Now we are setting Field_timestamp::field_length to 19 in open_table()
if we are in new mode (and we are restoring it back when we are coming
back to normal mode). This also should solve potential problems with
some of LOAD DATA INFILE and SELECT * INTO in this mode.
mysql-test/r/type_timestamp.result:
Added test for bug #4131 'TIMESTAMP columns missing minutes and seconds
when using GROUP BY' and other --new mode related behavior.
mysql-test/t/type_timestamp.test:
Added test for bug #4131 'TIMESTAMP columns missing minutes and seconds
when using GROUP BY' and other --new mode related behavior.
sql/field.cc:
Added Field_timestamp::orig_field_length member for saving original
field_length value, because this member can be modified if new_mode is
in effect.
Lot of Field_timestamp code simplified and Field_timestamp::make_field()
is no longer needed because we are setting field_length to 19 if we are
in --new mode now.
sql/field.h:
Added Field_timestamp::orig_field_length member for saving original
field_length value, because this member can be modified if new_mode
is in effect.
Field_timestamp::make_field() is no longer needed because we are setting
field_length to 19 if we are in --new mode now.
sql/sql_base.cc:
If --new mode is in effect all TIMESTAMP fields should pretend that they
have length of 19. We are achieving this by setting
Field_timestamp::field_length to 19 (or original value) in open_table().
We are using TABLE::timestamp_mode variable for avoiding of unnecessary
looping over all fields of the table and setting field_length if table
was used with same new_mode value before.
Note: We do not introduce general framework for setting up Field objects
for usage with current THD here because this fix is only needed in 4.0
and Monty said that we will also remove looping over all fields when
updating table_name member at some point. This more general framework
will also complicate nice optimization with avoiding of unneeded looping.
sql/sql_parse.cc:
Now when we are creating TIMESTAMP(19) fields by default in --new mode,
otherwise we will have unaligned behavior between ALTER and CREATE.
sql/table.h:
Added TABLE::timestamp_mode field for saving information whenever we set
field_length members of table's TIMESTAMP fields to 19 (to honor
new_mode) or they have original values.
BitKeeper/etc/logging_ok:
auto-union
mysql-test/mysql-test-run.sh:
Auto merged
ndb/src/ndbapi/NdbDictionaryImpl.cpp:
Auto merged
ndb/src/ndbapi/ndb_cluster_connection.cpp:
Auto merged
sql/sql_show.cc:
Auto merged
sql/ha_ndbcluster.cc:
SCCS merged
* Changed the implementation of ndbcluster_find_files to be more efficient, using only one mutex lock
* Moved ha_find_files to end of mysql_find_files so that it can be passed the list that we are interested to find.
mysql-test/t/ndb_autodiscover.test:
Added a new test case, disabled for now, waiting for mysql-test-run to set a NDB_CONNECTSTRING
sql/ha_ndbcluster.cc:
Rewrite of ndbcluster_find_files to remove and delete files using only one mutex lock.
This version only discover files that fulfill wildcard.
sql/ha_ndbcluster.h:
Add list of files as parameter
sql/handler.cc:
Add list of files as parameter
sql/handler.h:
Add list of files as parameter
sql/sql_show.cc:
Moving the ha_find_files to end of function, so that the file lista can be passsed to it.
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
(Until mysqltest will support replace_result and replace_column on metadata).
mysql-test/r/ps_1general.result:
Disabled part of test behaving differently on different builds.
(Until mysqltest will support replace_result and replace_column on metadata).
mysql-test/t/ps_1general.test:
Disabled part of test behaving differently on different builds.
(Until mysqltest will support replace_result and replace_column on metadata).
if possible"
- many new test cases
- more and improved comments
New files: t/ps_7ndb.test test suite for NDB tables
r/ps_7ndb.result expected results
include/ps_conv.inc conversion test cases
+ review comments and fixes.
mysql-test/include/ps_create.inc:
Rename of t_many_col_types -> t9
mysql-test/include/ps_modify.inc:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Rename: t_many_col_types -> t9
Cleanups and comments.
New test cases (derived from client_test.c)
mysql-test/include/ps_modify1.inc:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Rename: t_many_col_types -> t9
Cleanups and comments.
New test cases (derived from client_test.c)
mysql-test/include/ps_query.inc:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Rename: t_many_col_types -> t9
Cleanups and comments.
New test cases (derived from client_test.c)
mysql-test/include/ps_renew.inc:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Rename: t_many_col_types -> t9
mysql-test/r/ps_1general.result:
Results updated.
mysql-test/r/ps_2myisam.result:
Resutls updated.
mysql-test/r/ps_3innodb.result:
Results updated.
mysql-test/r/ps_4heap.result:
Results updated.
mysql-test/r/ps_5merge.result:
Results updated.
mysql-test/r/ps_6bdb.result:
Results updated.
mysql-test/t/ps_1general.test:
WL#1856 "Conversion of client_test.c tests cases to mysqltest if
possible": new test cases added.
mysql-test/t/ps_2myisam.test:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Call of file include/ps_conv.inc (with new test cases) and
fulltext test case added.
mysql-test/t/ps_3innodb.test:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Call of file include/ps_conv.inc (with new test cases) added.
mysql-test/t/ps_4heap.test:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Call of file include/ps_conv.inc (with new test cases) added.
mysql-test/t/ps_5merge.test:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible
Call of file include/ps_conv.inc (with new test cases) added.
mysql-test/t/ps_6bdb.test:
WL#1856 Conversion of client_test.c tests cases to mysqltest if possible.
Call of file include/ps_conv.inc (with new test cases) added.
removed debug printout
new test in alter table for dictionay update test with multiple connections
added coice of setting MaxNoOfOrderedIndexes
added option to run "--small-bench"
mysql-test/mysql-test-run.sh:
added option to run "--small-bench"
mysql-test/ndb/ndb_config_2_node.ini:
added coice of setting MaxNoOfOrderedIndexes
mysql-test/ndb/ndbcluster.sh:
added coice of setting MaxNoOfOrderedIndexes
mysql-test/r/ndb_alter_table.result:
new test in alter table for dictionay update test with multiple connections
mysql-test/t/ndb_alter_table.test:
new test in alter table for dictionay update test with multiple connections
ndb/src/ndbapi/DictCache.cpp:
removed debug printout
sql/ha_ndbcluster.cc:
fix for invalidating table if mismatch with frm
BUG#4335 - one name can be handler open'ed many times.
Reworked the HANDLER functions and interface.
Using a HASH to store information on open tables that
survives FLUSH TABLE.
HANDLER tables alias names must now be unique, though it
is allowed in 4.0 to qualify them with the database name
of the base table.
mysql-test/r/flush_table.result:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler test results to handler.result.
Added the new test results.
mysql-test/r/handler.result:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler test results from flush_table.result to here.
mysql-test/t/flush_table.test:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler tests to handler.test.
Added new tests.
mysql-test/t/handler.test:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Moved pure handler tests from flush_table.test to here.
sql/mysql_priv.h:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Reworked the handler interface.
sql/sql_base.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Replaced mysql_ha_close_list() by the better named
function mysql_ha_flush() with readable options.
sql/sql_class.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Added initialization for the handler tables hash.
Changed the handler tables clean-up code.
Unreleted to bug: Changed the order of THD initialization
to avoid warning messages on Linux with gcc.
sql/sql_class.h:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Added the handler tables HASH to THD.
sql/sql_handler.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
Completely reworked the handler functions.
Added an introducing comment, describing the new functionality.
sql/sql_table.cc:
BUG#4286 - HANDLER tables are closed by FLUSH TABLE(S).
BUG#4335 - one name can be handler open'ed many times.
replaced mysql_ha_close() by the better named
function mysql_ha_flush() with readable options.
Logging to logging@openlogging.org accepted
sql_show.cc, type_enum.test, type_enum.result:
Bug #5628 German characters in field-defs will be '?' with some table definitions
mysql-test/r/type_enum.result:
Bug #5628 German characters in field-defs will be '?' with some table definitions
mysql-test/t/type_enum.test:
Bug #5628 German characters in field-defs will be '?' with some table definitions
sql/sql_show.cc:
Bug #5628 German characters in field-defs will be '?' with some table definitions
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
mysql-test/r/ps.result:
Test results fixed: the test case for bug#5688 "Upgraded 4.1.5 Server
seg faults"
mysql-test/t/ps.test:
Test case for bug#5688 "Upgraded 4.1.5 Server seg faults"
sql/item_cmpfunc.cc:
A fix for bug#5688 "Upgraded 4.1.5 Server seg faults":
fix just another place where we use wrong memory root for an Item
in statement prepare.
In addition, make the check for charsets in Item_bool_func2
more generic (fixes the test case when we use LIKE to compare BLOBs
with TEXT data).
we do not increment rli->group_master_log_pos if we are just after a SET ONE_SHOT (it's not a standalone event)
mysql-test/r/rpl_charset.result:
testing interruption of slave SQL thread between SET CHARACTER_SET_SERVER... and the companion INSERT.
mysql-test/t/rpl_charset.test:
testing interruption of slave SQL thread between SET CHARACTER_SET_SERVER... and the companion INSERT.
sql/log_event.cc:
we do not increment rli->group_master_log_pos if we are just after a SET
ONE_SHOT, because SET ONE_SHOT should not be separated from its following
updating query.
CREATE TABLE t1 SELECT POINT(1,2); fixed
mysql-test/r/gis.result:
Appropriate test result
mysql-test/t/gis.test:
test case
sql/item_geofunc.cc:
Item_geometry_func::fix_lengths_and_dec implementation
several fix_length_and_dec's not needed now
sql/item_geofunc.h:
Item_geometry_func class presented