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).
into hundin.mysql.fi:/home/marko/j/mysql-4.1
innobase/btr/btr0btr.c:
Auto merged
innobase/lock/lock0lock.c:
Auto merged
innobase/row/row0ins.c:
Auto merged
innobase/row/row0row.c:
Auto merged
innobase/row/row0sel.c:
Auto merged
innobase/row/row0upd.c:
Auto merged
sql/ha_innodb.cc:
Auto merged
sql/ha_innodb.h:
Auto merged
sql/mysql_priv.h:
Auto merged
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
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.
tests were disabled due to failures caused by floating point conversion
issues on optimized builds).
mysql-test/include/ps_conv.inc:
Disable some of the tests for the test suite to pass on an optimized
build (floating point issues...).
mysql-test/include/ps_query.inc:
Disable some of the tests for the test suite to pass on an optimized
build (floating point issues...).
mysql-test/r/ps_2myisam.result:
Fix test results.
mysql-test/r/ps_3innodb.result:
Fix test results.
mysql-test/r/ps_4heap.result:
Fix test results.
mysql-test/r/ps_5merge.result:
Fix test results.
mysql-test/r/ps_6bdb.result:
Fix test results.
mysql-test/r/ps_7ndb.result:
Fix test results.
move lockmode from scan operation to operation
added read tuple with lock mode
ndb/include/ndbapi/NdbIndexOperation.hpp:
added read tuple with lock mode
ndb/include/ndbapi/NdbOperation.hpp:
move lockmode from scan operation to operation
ndb/include/ndbapi/NdbScanOperation.hpp:
move lockmode from scan operation to operation
ndb/src/ndbapi/NdbIndexOperation.cpp:
added read tuple with lock mode
ndb/src/ndbapi/NdbOperationDefine.cpp:
added read tuple with lock mode
sql/ha_ndbcluster.cc:
set correct lockmode in all reads...
moved lockmode from scan operatoin to operation
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
Added timing output for each test case.
Added --embedded-server option.
mysqltest.c:
Added 'start_timer', 'end_timer' commands
Makefile.am:
Include mysys/my_getsystime.c to get time function in mysqltest
Many files:
new file
client/Makefile.am:
Include mysys/my_getsystime.c to get time function in mysqltest
client/mysqltest.c:
Added 'start_timer', 'end_timer' commands
mysql-test/mysql-test-run.sh:
Added timing output for each test case.
Added --embedded-server option.
added some debug printouts
some changes in ndbcluster_init to make start of mysqld first work
ndb/include/mgmcommon/ConfigRetriever.hpp:
removed init on ConfigRetriever
ndb/src/common/mgmcommon/ConfigRetriever.cpp:
removed init on ConfigRetriever
added some debug printouts
ndb/src/kernel/vm/Configuration.cpp:
removed init on ConfigRetriever
ndb/src/ndbapi/ndb_cluster_connection.cpp:
removed init on ConfigRetriever
added sleep in retry
sql/ha_ndbcluster.cc:
some changes in ndbcluster_init to make start of mysqld first work
(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).
Make sure to not receive more that buffer can fit currently
ndb/src/common/transporter/TCP_Transporter.cpp:
Make sure to not receive more that buffer can fit currently