1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00
Files
mariadb/include
Guilhem Bichot 12e822039d Fix for BUG#42980 "Client doesn't set NUM_FLAG for DECIMAL and TIMESTAMP":
DECIMAL and TIMESTAMP used to have NUM_FLAG, but NEWDECIMAL was forgotten.
It's correct that TIMESTAMP does not have the flag nowadays (manual will be updated, connectors
developers will be notified).

client/mysqldump.c:
  IS_NUM_FIELD(f) removed and replaced by its definition (f>flags & NUM_FLAG).
include/mysql.h:
  - IS_NUM_FIELD() is removed because name is too close to IS_NUM() and it is not used a lot
  - INTERNAL_NUM_FIELD() is removed:
    * it forgets to test NEWDECIMAL (when IS_NUM() was updated for NEWDECIMAL we forgot
    to update INTERNAL_NUM_FIELD()), that's why client didn't mark NEWDECIMAL with NUM_FLAG (a bug).
    * it has an obsolete test for length of the TIMESTAMP field: test became accidentally wrong when length
    of TIMESTAMP was changed to always be 19 (when the format was changed from YYYYMMDDhhmmss to
    YYYY-MM-DD hh:mm:ss), never 8 or 14 anymore. That obsolete test caused TIMESTAMP to lose NUM_FLAG,
    which was an accidental but good change (see below).
    * IS_NUM() should be used instead
  - IS_NUM(f) is changed: TIMESTAMP used to be parsable as a number without quotes (when it was formatted as
  "YYYYMMDDhhmmss"); but it is not anymore (now that it is "YYYY-MM-DD hh:mm:ss"), so it should not have NUM_FLAG
  (mysqldump needs to quote TIMESTAMP values), so IS_NUM() should return false for it.
libmysqld/lib_sql.cc:
  use IS_NUM() instead of INTERNAL_NUM_FIELD()
mysql-test/r/bigint.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/metadata.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/mysqldump.result:
  DECIMAL columns are not quoted anymore by mysqldump. Which is ok, the parser does not need '' for them
mysql-test/r/ps_2myisam.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/ps_3innodb.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/ps_4heap.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/r/ps_5merge.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/suite/ndb/r/ps_7ndb.result:
  result change: NEWDECIMAL fields now have NUM_FLAG (32768)
mysql-test/t/metadata.test:
  test for BUG#42980
sql-common/client.c:
  use IS_NUM() instead of INTERNAL_NUM_FIELD()
2009-09-30 12:25:50 +02:00
..
2009-06-10 12:23:02 +02:00
2009-07-31 15:28:15 -04:00
2009-09-11 22:26:35 +02:00
2009-06-19 17:58:46 +05:30
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2009-06-04 18:47:38 +02:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2009-07-24 12:15:06 +05:30
2009-09-11 22:26:35 +02:00
2009-09-23 22:15:22 +02:00
2006-12-23 20:17:15 +01:00
2009-09-24 12:35:16 +02:00
2006-12-31 02:29:11 +01:00
2006-12-23 20:17:15 +01:00
2006-12-31 01:02:27 +01:00
2008-08-08 14:30:05 +05:30
2007-03-02 08:43:45 -08:00
2006-12-31 01:02:27 +01:00
2006-12-31 01:02:27 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2006-12-23 20:17:15 +01:00
2009-07-23 13:53:28 +02:00