Commit graph

16 commits

Author SHA1 Message Date
unknown
52c0440085 Fixed BUG #12440: "Incorrect processing of time values containing
long fraction and/or large exponent part".


mysql-test/r/type_time.result:
  Fixed testcases results (bug #12440)
mysql-test/t/type_time.test:
  Added testcases for bug #12440
sql-common/my_time.c:
  Fixed bug #12440: "Incorrect processing of time values containing
   long fraction and/or large exponent part".
   Modified str_to_time(). Process properly fraction part containing
   more than 6 digits. Check for existence of exponent part which
   may result from %g formatting applied to time value specified as
   large real number.
2005-12-15 18:48:08 +03:00
unknown
97988099eb Review of new pushed code
- Fixed some error condtion when handling dates with 'T'
- Added extra test for bug #11867 (Wrong result with "... WHERE ROW( a, b ) IN ( SELECT DISTINCT a, b WHERE ...)" to show it's not yet fixed
- Safety fixes and cleanups


mysql-test/r/subselect.result:
  Added extra test case to test case for bug #11867
  (Result shows that current code is not yet right and needs to be fixed)
mysql-test/r/type_datetime.result:
  More tests for dates of type CCYYMMDDTHHMMSS
mysql-test/t/subselect.test:
  Added extra test case to test case for bug #11867
mysql-test/t/type_datetime.test:
  More tests for dates of type CCYYMMDDTHHMMSS
sql-common/my_time.c:
  Fixed handling of dates of type CCYYMMDDTHHMMSS
  (Old code couldn't handle 2003-0304 or 2003-0003-02)
sql/slave.cc:
  Indentation cleanup
sql/sql_parse.cc:
  Added test of return value of get_system_var()
sql/sql_select.cc:
  Removed unnecessary call to field->table->maybe_null
sql/sql_union.cc:
  Indentation fixes
2005-08-09 00:13:49 +03:00
unknown
015165add5 Fix parsing of dates with 'T' between date and time, as in ISO-8601
date format. (Bug #7308)


mysql-test/r/type_datetime.result:
  Add new results
mysql-test/t/type_datetime.test:
  Add new test
sql-common/my_time.c:
  Fix handling of field_length for each field in date, especially
  for dates not in the internal_format.
2005-08-02 11:31:01 -07:00
unknown
0e302f5e8b Merged fixes for bug #7297 "Two digit year should be interpreted
correctly even with zero month and day" and bug #7515 "from_unixtime(0)
now returns NULL instead of the Epoch" into 4.1 tree.


mysql-test/r/ps_2myisam.result:
  Updated test result after merging fix for bug #7297 "Two digit year should
  be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_3innodb.result:
  Updated test result after merging fix for bug #7297 "Two digit year should
  be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_4heap.result:
  Updated test result after merging fix for bug #7297 "Two digit year should
  be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_5merge.result:
  Updated test result after merging fix for bug #7297 "Two digit year should
  be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_6bdb.result:
  Updated test result after merging fix for bug #7297 "Two digit year should
  be interpreted correctly even with zero month and day" into 4.1
mysql-test/r/ps_7ndb.result:
  Updated test result after merging fix for bug #7297 "Two digit year should
  be interpreted correctly even with zero month and day" into 4.1
sql-common/my_time.c:
  Merged fix for bug #7297 "Two digit year should be interpreted correctly
  even with zero month and day" into 4.1
sql/item_timefunc.cc:
  Small fix after merging patch solving bug #7515 "from_unixtime(0) now
  returns NULL instead of the Epoch" into 4.1.
2004-12-30 23:44:42 +03:00
unknown
7368b14719 Manual merge of fix for bug #6266 "Invalid DATETIME value is not handled
properly" with main tree.


libmysql/libmysql.c:
  Auto merged
sql-common/my_time.c:
  Auto merged
sql/field.cc:
  Auto merged
sql/item.cc:
  Auto merged
sql/sql_prepare.cc:
  Auto merged
tests/client_test.c:
  Manual merge.
2004-11-19 18:35:36 +03:00
unknown
5d9f7edd6d Fix for bug #6266 "Invalid DATETIME value is not handled properly".
In server we assume that datetime values stored in MYSQL_TIME struct
are normalized (and year is not greater than 9999), so we should 
perform range checks in all places then we convert something to
MYSQL_TIME. 


include/my_time.h:
  Added one more argument to set_zero_time() function to make it more 
  convinient.
  Added comment clarifying why MAX_DATE_STRING_REP_LENGTH value is 30.
include/mysql_time.h:
  Documented MySQL's internal assumptions for members of MYSQL_TIME
  structure.
libmysql/libmysql.c:
  It does not make sense to set MYSQL_TIME::time_type twice in case of 
  errors.
mysql-test/r/type_datetime.result:
  Added test for bug #6266 "Invalid DATETIME value not handled properly".
mysql-test/t/type_datetime.test:
  Added test for bug #6266 "Invalid DATETIME value not handled properly".
sql-common/my_time.c:
  str_to_datetime(): Added missing check for too big year values.
  set_zero_time(): added time_type argument, since MYSQL_TIMESTAMP_NONE
    is not the value that we want in most cases.
sql/field.cc:
  Field_datetime::store_time():
    clarified why we don't perform any range checks here.
sql/item.cc:
  Item_param::set_time():
   Added comment describing this method and range checking for TIME
   values.
sql/sql_prepare.cc:
  Removed comments about range checking for TIME values in prepared 
  statements, which are no longer true.
  set_zero_time() has one more argument now.
tests/client_test.c:
  Added test for bug #6266 "Invalid DATETIME value not handled properly"
2004-11-15 15:44:29 +03:00
unknown
55ae2e7880 After merge fixes
client/mysqldump.c:
  Merge with 4.0 (and reordering of options)
client/mysqltest.c:
  Added DB as a user variable
myisam/mi_check.c:
  Trivial cleanup
mysql-test/r/grant.result:
  Move test to be in same order as in 4.0
mysql-test/r/mix_innodb_myisam_binlog.result:
  Updated results
mysql-test/r/ps_1general.result:
  Updated tests to work after privilege fixes
mysql-test/r/timezone3.result:
  Updated results to 4.1
mysql-test/t/ps_1general.test:
  Updated tests to work after privilege fixes
sql-common/my_time.c:
  Applied sub-second patch from 4.0
sql/sql_acl.cc:
  More debugging
2004-11-12 17:44:17 +02:00
unknown
447fef48fd A fix and test case for Bug#6096 "field.max_length is always zero for
numeric columns (stmt_resultset_metadata)"


libmysql/libmysql.c:
  A fix for Bug#6096 "field.max_length is always zero for numeric columns
   (stmt_resultset_metadata)": set field->max_lenght for numeric
  columns when we set up skip_result functions. A minor drawback for this 
  approach is that field->max_length  can be not zero even if 
  STMT_ATTR_UPDATE_MAX_LENGTH is not set.
sql-common/my_time.c:
  Fix valgrind warning.
tests/client_test.c:
  A test case for Bug#6096 "field.max_length is always zero for numeric 
  columns (stmt_resultset_metadata)
2004-10-27 23:46:22 +04:00
unknown
853c2c788c A lot of fixes for prepared statements (PS):
New mysqltest that can run mysqltest with PS
Added support for ZEROFILL in PS
Fixed crash when one called mysql_stmt_store_result() without a preceding mysql_stmt_bind_result()
Updated test cases to support --ps-protocol
(Some tests are still run using old protocol)
Fixed crash in PS when using SELECT * FROM t1 NATURAL JOIN t2...
Fixed crash in PS when using sub queries
Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
Fixed wrong permissions check in PS and multi-table updates (one could get permission denied for legal quries)
Fix for PS and SELECT ... PROCEDURE
Reset all warnings when executing a new PS query
group_concat(...ORDER BY) didn't work with PS
Fixed problem with test suite when not using innodb


BitKeeper/deleted/.del-innodb-lock-master.opt~f76a4a1999728f87:
  Delete: mysql-test/t/innodb-lock-master.opt
client/Makefile.am:
  mysqltest now uses regex
client/mysqltest.c:
  Added support for testing of prepared statements (with --ps-protocol)
  Main code was done by Kent, I did mainly some cleanups and minor bug fixes
  New test commands:
  --disable_ps_protocol
  --enable_ps_protocol
  NOTE: new code still has some things that needs to be cleaned up.
  For example run_query_stmt_handle_error() should be made more general so that same code can be used also by 'normal' queries
configure.in:
  mysqltest now uses regex
libmysql/libmysql.c:
  Reset warning_count after prepare (safety). In the future we should also provide warnings on prepare
  integer -> string conversion now handles ZEROFILL
  double -> string conversion is now closer to the one in the server
  Fixed crash when one called mysql_stmt_store_result() without preceding mysql_stmt_bind_result()
libmysqld/examples/Makefile.am:
  mysqltest now uses regex
mysql-test/include/have_query_cache.inc:
  Fixes for --ps-protocol
mysql-test/include/ps_conv.inc:
  Fixes for --ps-protocol
mysql-test/mysql-test-run.sh:
  Added options --ps-protocol
mysql-test/r/ctype_utf8.result:
  Fixed test case
mysql-test/r/fulltext_cache.result:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_left_join.result:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/fulltext_multi.result:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/r/innodb-lock.result:
  Fixed test to work even if Innodb is not compiled in.
mysql-test/t/create.test:
  Fixes for --ps-protocol
mysql-test/t/ctype_utf8.test:
  Remove warnings
mysql-test/t/date_formats.test:
  Fixes for --ps-protocol
mysql-test/t/fulltext_cache.test:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_left_join.test:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/fulltext_multi.test:
  Changed output of MATCH to use round() to get same numbers with --ps-protocol
mysql-test/t/func_group.test:
  Fixes for --ps-protocol
mysql-test/t/func_sapdb.test:
  Fixes for --ps-protocol
mysql-test/t/innodb-lock.test:
  Fixed test to work even if Innodb is not compiled in.
mysql-test/t/insert.test:
  Fixes for --ps-protocol
mysql-test/t/insert_select.test:
  Fixes for --ps-protocol
mysql-test/t/insert_update.test:
  Fixes for --ps-protocol
mysql-test/t/metadata.test:
  Fixes for --ps-protocol
mysql-test/t/multi_statement.test:
  Fixes for --ps-protocol
mysql-test/t/ps_1general.test:
  Fixes for --ps-protocol
mysql-test/t/rollback.test:
  Fixes for --ps-protocol
mysql-test/t/rpl_redirect.test:
  Fixes for --ps-protocol
mysql-test/t/rpl_user_variables.test:
  Fixes for --ps-protocol
mysql-test/t/select.test:
  Fixes for --ps-protocol
mysql-test/t/status.test:
  Fixes for --ps-protocol
mysql-test/t/type_blob.test:
  Fixes for --ps-protocol
mysql-test/t/type_float.test:
  Fixes for --ps-protocol
mysql-test/t/union.test:
  Fixes for --ps-protocol
mysql-test/t/warnings.test:
  Fixes for --ps-protocol
mysys/my_alloc.c:
  More debugging information
sql-common/client.c:
  More debugging information
sql-common/my_time.c:
  TIME didn't support full range with PS
sql/field.cc:
  TIME didn't support full range with PS
sql/item_cmpfunc.cc:
  IN(constants,...) didn't work with PS
sql/item_subselect.cc:
  Some subqueries didn't work with PS
sql/item_sum.cc:
  group_concat(...ORDER BY) didn't work with PS
  Removed variable warning_available as 'warning' can be used for this.
sql/item_sum.h:
  Removed not needed variable
sql/protocol.cc:
  TIME didn't support full range with PS
sql/set_var.cc:
  Style fix
sql/sql_base.cc:
  setup_wild() didn't properly restore old arena, which caused core dump in PS when using
  SELECT * FROM t1 NATURAL JOIN t2...
sql/sql_class.cc:
  Style fix
sql/sql_error.cc:
  Style fix
sql/sql_insert.cc:
  Create table didn't signal when table was created. This could cause a "DROP TABLE created_table" in another thread to wait "forever"
sql/sql_lex.h:
  Fix for PS and procedures
sql/sql_parse.cc:
  More debugging information
  Make a copy of 'db' in PS as this may change
  Fixed wrong permissions check in PS and multi-table updates
sql/sql_prepare.cc:
  Fix for PS and SELECT ... PROCEDURE
  Reset all warnings when executing a new query
sql/sql_union.cc:
  Fixes for PS and SELECT ... PROCEDURE
  Reset 'with_wild' as 'wild' is resolved on prepare
2004-10-26 19:30:01 +03:00
unknown
9aefc403f9 A fix and test case for Bug#6049 "Loss of sign when using prepared
statements and negative time/date values". 
The bug was in wrong sprintf format used in the client library.
The fix moves TIME -> string conversion functions to sql-common and
utilized them in the client library.


include/my_time.h:
  Declarations for new functions shared between the client and server.
libmysql/libmysql.c:
  Fix for Bug#6049 "Loss of sign when using prepared statements and negative
  time/date values": use the same function as the server to convert
  date/time/datetime values to strings.
sql-common/my_time.c:
  Implementation of my_{time,datetime,date,TIME}_to_str: it's
  needed by the client library, so it should be shared.
sql/field.cc:
  Don't create String object if it's not needed.
sql/item.cc:
  Don't create String object if it's not needed: TIME_to_string was
  moved to my_TIME_to_str, with different arguments.
sql/item_timefunc.cc:
  Don't create String object if it's not needed.
sql/mysql_priv.h:
  TIME_to_string and MAX_DATE_REP_LENGTH moved to the client library.
  MAX_DATE_REP_LENGTH was renamed to MAX_DATE_STRING_REP_LENGTH to not 
  conflict with the same name in libmysql.c
sql/protocol.cc:
  Don't create String object if it's not needed.
sql/time.cc:
  Implementation of my_{time,date,datetime,TIME}_to_str moved to my_time.c
  shared between the client and the server.
tests/client_test.c:
  A test case for Bug#6049.
2004-10-16 00:12:59 +04:00
unknown
0c58737ad6 A fix and test case for Bug#4231 "Wrong result with MYSQL_TIME
parameters": when unpacking binary time recieved from client, handle
the case when length is 0: it means all MYSQL_TIME members are zero.


include/my_time.h:
  Declaration for set_zero_time: a tiny piece of code, which I
  see no reason to not reuse.
libmysql/libmysql.c:
  set_zero_time implementation is now shared between client and
  server.
sql-common/my_time.c:
  set_zero_time implementation added.
sql/sql_prepare.cc:
  A fix for Bug#4231 "Wrong result with MYSQL_TIME parameters": 
  when unpacking binary time recieved from client, handle the
  case when length is 0: it means all MYSQL_TIME members are zero.
tests/client_test.c:
  Test case for bug#4231 "Wrong result with MYSQL_TIME parameters"
2004-09-02 20:16:01 +04:00
unknown
805dcdadfd Fixed windows-specific warning about undeclared localtime_r() in my_time.c.
We have to include my_pthread.h since it is the place where localtime_r() is declared 
on platforms where this function is missing.


sql-common/my_time.c:
  We have to include my_pthread.h since it is the place where localtime_r() is declared 
  on platforms where this function is missing.
2004-08-24 13:53:02 +04:00
unknown
84e2df6de2 - removed several C++-style comments (//) - these confuse the IBM
compiler
2004-08-03 11:28:37 +02:00
unknown
be536c3a9e syntax fix: superfluous ';' which caused a problem with gcc 2.95
sql-common/my_time.c:
  superfluous ; which caused a problem with gcc 2.95
2004-07-30 10:08:37 +02:00
unknown
88e3aead85 WL#1580: --start-datetime, --stop-datetime, --start-position (alias for --position) and --stop-position
options for mysqlbinlog, with a test file.
This enables user to say "recover my database to how it was this morning at 10:30"
(mysqlbinlog "--stop-datetime=2003-07-29 10:30:00").
Using time functions into client/ made me move them out of sql/ into sql-common/.
+ (small) fix for BUG#4507 "mysqlbinlog --read-from-remote-server sometimes
cannot accept 2 binlogs" (that is, on command line).


client/client_priv.h:
  new options for mysqlbinlog
client/mysqlbinlog.cc:
  WL#1580: --start-datetime, --stop-datetime, --start-position (alias for --position) and --stop-position.
  (small) fix for BUG#4507 "mysqlbinlog --read-from-remote-server sometimes
   cannot accept 2 binlogs".
include/my_time.h:
  importing time functions so that client/ files can use them.
include/mysql_time.h:
  importing time types so that client/ files can use them.
sql-common/my_time.c:
  importing time functions so that client/ files can use them.
sql/mysql_priv.h:
  moving time functions out of sql/ into sql-common/
sql/time.cc:
  moving time functions out of sql/ into sql-common/
sql/tztime.h:
  moving time functions out of sql/ into sql-common/
2004-07-29 23:25:58 +02:00
unknown
57ee2443ea - fixed test_frm_bug test to work with increased number of columns in
result of SHOW TABLE STATUS


BitKeeper/etc/ignore:
  added libmysqld/my_time.c
2004-06-24 20:08:42 +04:00