Commit graph

3205 commits

Author SHA1 Message Date
unknown
809d52d179 testcase for bug#5736
fix of changed clo to mysql-test-run


ndb/test/run-test/atrt-mysql-test-run:
  Fix options to mysql-test-run
2004-10-06 11:00:09 +02:00
unknown
95e1c07483 Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0
into gw.mysql.r18.ru:/usr/home/ram/work/4.0.b5733


sql/records.cc:
  Auto merged
2004-10-06 12:49:56 +05:00
unknown
70a3abf259 Bug #5832 SELECT doesn't return records in some cases 2004-10-05 21:22:14 +05:00
unknown
b29e9496f0 Merge mysql.com:/home/jonas/src/mysql-4.1
into mysql.com:/home/jonas/src/mysql-4.1-ndb
2004-10-05 15:02:10 +02:00
unknown
08e56fae98 Fix for bug #5555: "GROUP BY enum_field" returns incorrect results 2004-10-05 17:02:09 +04:00
unknown
b98807ece2 Merge mysql.com:/home/jonas/src/mysql-4.1
into mysql.com:/home/jonas/src/mysql-4.1-ndb


sql/ha_ndbcluster.cc:
  Auto merged
2004-10-05 14:04:33 +02:00
unknown
7a8336bef5 wl2135 - index restart
mysql-test/r/ndb_index_ordered.result:
  test case
mysql-test/t/ndb_index_ordered.test:
  test case
ndb/include/kernel/signaldata/ScanTab.hpp:
  Split exclusive/keyinfo
ndb/include/ndbapi/NdbIndexScanOperation.hpp:
  Add possibility retreive sorted flag
ndb/include/ndbapi/NdbOperation.hpp:
  Add possibility retreive lock mode
ndb/include/ndbapi/NdbResultSet.hpp:
  Add possibility to get operation
ndb/src/common/debugger/signaldata/ScanTab.cpp:
  Split exclusive/keyinfo
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
  Store flags in ScanFragReq::requestInfo format
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  Store flags in ScanFragReq::requestInfo format
ndb/src/ndbapi/NdbOperationDefine.cpp:
  Keep theLockMode up-to-date
ndb/src/ndbapi/NdbScanOperation.cpp:
  Keep theLockMode up-to-date
sql/ha_ndbcluster.cc:
  Use NdbIndexScanOperation::reset_bounds when
    performing second index access
2004-10-05 12:17:42 +02:00
unknown
7ce31065c6 Merge mysql.com:/home/mydev/mysql-4.0
into mysql.com:/home/mydev/mysql-4.0-bug4286


sql/sql_base.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_table.cc:
  Auto merged
2004-10-05 11:33:13 +02:00
unknown
5b47c974d8 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-ryan
2004-10-04 20:13:16 +04:00
unknown
6ed4888cb8 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-ryan
2004-10-04 17:16:49 +04:00
unknown
76c9e10ebd Made TIMESTAMP NULL columns without explicit DEFAULT value to be always
treated as DEFAULT NULL columns (independently from their position in
table).

(still to be discussed with Monty, Brian, Trudy et al. before push)


mysql-test/r/type_timestamp.result:
  Update test after making TIMESTAMP NULL columns without explicit 
  DEFAULT value to be always treated as DEFAULT NULL columns 
  (independently from their position in table).
mysql-test/t/type_timestamp.test:
  Update test after making TIMESTAMP NULL columns without explicit 
  DEFAULT value to be always treated as DEFAULT NULL columns 
  (independently from their position in table).
sql/sql_parse.cc:
  add_field_to_list(): made TIMESTAMP NULL columns without explicit 
  DEFAULT value to be always treated as DEFAULT NULL columns (independently
  from their position in table). This also simplifies code a bit.
2004-10-04 17:13:31 +04:00
unknown
035d92f4b6 Merge
sql/sql_show.cc:
  Auto merged
sql/ha_ndbcluster.cc:
  SCCS merged
2004-10-04 12:36:25 +00:00
unknown
5e458aac1e bug #5872, transactions should only be restarted with transaction.on flag off if execute_commit has been performed
added testcase for this
use force send for all executes


mysql-test/r/ndb_blob.result:
  added testcase for alter table of blob from ndb to myisam
mysql-test/t/ndb_blob.test:
  added testcase for alter table of blob from ndb to myisam
sql/ha_ndbcluster.cc:
  bug #5872, transactions should only be restarted with transaction.on flag off if execute_commit has been performed
  use force send for all executes
2004-10-04 12:26:26 +00:00
unknown
ec81fca2d0 Merge
BitKeeper/etc/logging_ok:
  auto-union
sql/ha_ndbcluster.h:
  Auto merged
sql/handler.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/mysql_priv.h:
  Auto merged
sql/sql_base.cc:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/mysql-test-run.sh:
  SCCS merged
sql/ha_ndbcluster.cc:
  SCCS merged
2004-10-03 21:39:04 +00:00
unknown
52ee9687a2 Merge ltantony.rdg.cyberkinetica.homeunix.net:/usr/home/staff/repositories/mysql-4.0
into ltantony.rdg.cyberkinetica.homeunix.net:/usr/home/antony/work/bug4118


sql/sql_parse.cc:
  Auto merged
2004-10-03 00:25:09 +01:00
unknown
a49f5cae9a Bug#4118: multi-table UPDATE takes WRITE lock on read table
Ensures that WRITE lock is not obtained on all tables referenced.


mysql-test/r/lock_multi.result:
  Bug#4118
    New test for multi-update locking
mysql-test/r/multi_update.result:
  Bug#4118
    Fix test
mysql-test/t/lock_multi.test:
  Bug#4118
    New test for multi-update locking
mysql-test/t/multi_update.test:
  Bug#4118
    Fix test
sql/sql_parse.cc:
  Bug#4118
    Split multi-update to its own case statement in sql_parse.cc
sql/sql_update.cc:
  Bug#4118
    Overview of locking checking:    
      1. Open and acquire READ lock
      2. Check to see which tables need WRITE lock
      3. Unlock tables and relock
sql/sql_yacc.yy:
  Bug#4118
    Split multi-update to its own case statement in sql_parse.cc
2004-10-03 00:20:47 +01:00
unknown
52d5c01d87 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
2004-10-01 22:15:05 +00:00
unknown
4b6fbbc7b4 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1


sql/ha_ndbcluster.cc:
  Auto merged
2004-10-01 21:35:50 +00:00
unknown
61ef4d2923 Merge dellis@bk-internal.mysql.com:/home/bk/mysql-4.1
into goetia.(none):/home/dellis/mysqlab/bk/mysql-4.1
2004-10-01 14:53:52 -05:00
unknown
f0440c27e1 grant.test, grant.result, sql_acl.cc:
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.
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.
2004-10-01 14:48:48 -05:00
unknown
6da9623b17 Merge mysql.com:/home/bk/mysql-4.1
into mysql.com:/users/kboortz/daily/work/mysql-4.1-vax
2004-10-01 18:28:44 +02:00
unknown
527604641d client_test.test:
Temporarely disabled client_test test
  Use MASTER_MYSOCK to get socket path


mysql-test/t/client_test.test:
  Temporarely disabled client_test test
2004-10-01 18:27:24 +02:00
unknown
8a8d4163bc Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1


sql/ha_ndbcluster.cc:
  Auto merged
sql/ha_ndbcluster.h:
  Auto merged
2004-10-01 16:17:04 +00:00
unknown
29a62c1129 Merge bk-internal.mysql.com:/home/bk/mysql-4.1
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
2004-10-01 18:55:17 +04:00
unknown
7b51154461 Support for TIMESTAMP columns holding NULL values. Unlike all other
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).
2004-10-01 18:54:06 +04:00
unknown
e5f2eba586 Merge dellis@bk-internal.mysql.com:/home/bk/mysql-4.1
into goetia.(none):/home/dellis/mysqlab/bk/mysql-4.1
2004-10-01 08:22:12 -05:00
unknown
33dcc14d68 Added index cardinality check 2004-10-01 14:57:17 +02:00
unknown
44d855e7a8 logging_ok:
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
2004-10-01 07:50:26 -05:00
unknown
4103f23150 Changed test to be independent on scan order 2004-10-01 14:23:31 +02:00
unknown
dc3f3ce694 delete.result, delete.test:
A fix (bug #5733: Table handler error with self-join multi-table DELETE).
records.cc:
  A fix (bug #5733: Table handler error with self-join multi-table DELETE).


sql/records.cc:
  ]A fix (bug #5733: Table handler error with self-join multi-table DELETE).
mysql-test/t/delete.test:
  A fix (bug #5733: Table handler error with self-join multi-table DELETE).
mysql-test/r/delete.result:
  A fix (bug #5733: Table handler error with self-join multi-table DELETE).
2004-10-01 16:23:54 +05:00
unknown
fb1b8476bd bug#5349 ALTER TABLE corrupts TEXT (and blob?) 2004-10-01 11:16:49 +00:00
unknown
d70df1b2ed Merge jlindstrom@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/jan/mysql-4.1
2004-10-01 08:39:34 +03:00
unknown
3f31ebd59b client_test.test:
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"
2004-10-01 00:32:42 +02:00
unknown
f5f55979f4 bug#5782 2004-09-30 21:36:25 +00:00
unknown
bfcbca22ef Merge mysql.com:/home/bk/mysql-4.1
into mysql.com:/users/kboortz/daily/work/mysql-4.1-vax
2004-09-30 19:41:39 +02:00
unknown
064f4bf4b1 mysql_protocols.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
2004-09-30 19:40:33 +02:00
unknown
f6f7af7a70 Merge fixes
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
2004-09-30 16:12:28 +02:00
unknown
92e7d03eaa Merge bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/home/dlenev/src/mysql-4.1-bg4302


sql/item.cc:
  Auto merged
2004-09-30 16:30:34 +04:00
unknown
53edc92cd0 Final solution for bug# 4302 "Ambiguos order by when renamed column is
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.
2004-09-30 16:28:17 +04:00
unknown
b7c3591b32 WL#1424 Added more advanced test cases for autodiscovery
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
2004-09-30 14:20:14 +02:00
unknown
cb8a461e2c Merge jlindstrom@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/jan/mysql-4.1
2004-09-29 08:22:37 +03:00
unknown
1ddc28a471 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
2004-09-28 17:44:40 +00:00
unknown
fa450407b1 Merge mysql.com:/home/bk/mysql-4.1
into mysql.com:/users/kboortz/daily/work/mysql-4.1-vax


client/mysqltest.c:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
2004-09-28 16:43:05 +02:00
unknown
656bcff63e client_test.test:
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
2004-09-28 16:27:50 +02:00
unknown
f3daec831c Merge mskold@bk-internal.mysql.com:/home/bk/mysql-4.1-ndb
into mysql.com:/usr/local/home/marty/MySQL/mysql-4.1-ndb


sql/ha_ndbcluster.cc:
  Auto merged
2004-09-28 10:34:26 +02:00
unknown
65d4dc9866 Adjusted so auto_increment value after bulk insert will be exactly +1 after last (if no parallel inserts) 2004-09-28 09:53:14 +02:00
unknown
1a265d34a2 Merge tulin@bk-internal.mysql.com:/home/bk/mysql-4.1
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1-ndb
2004-09-27 16:11:58 +00:00
unknown
32118765bd Merge jlindstrom@build.mysql.com:/home/bk/mysql-4.1
into hundin.mysql.fi:/home/jan/mysql-4.1


mysql-test/r/ctype_utf8.result:
  Auto merged
mysql-test/t/ctype_utf8.test:
  Auto merged
2004-09-27 10:46:02 +03:00
unknown
fb1407d563 Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/dlenev/src/mysql-4.0-bg4131-3


sql/sql_parse.cc:
  Auto merged
2004-09-27 00:50:29 +04:00
unknown
e6f924efe5 Fix for bug #4131 "TIMESTAMP columns missing minutes and seconds when
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.
2004-09-27 00:50:00 +04:00