summaryrefslogtreecommitdiff
path: root/sql/unireg.cc
diff options
context:
space:
mode:
authordlenev@jabberwock.localdomain <>2004-04-02 10:12:53 +0400
committerdlenev@jabberwock.localdomain <>2004-04-02 10:12:53 +0400
commitf6bff2e6c662d4778f86a919b6f7b731d2553f44 (patch)
tree9a60588328f7225c26e34d7cf0ce3ae4875c3523 /sql/unireg.cc
parent4533338075714e2be7d4cfc8b2825cb52917603f (diff)
downloadmariadb-git-f6bff2e6c662d4778f86a919b6f7b731d2553f44.tar.gz
WL#1266 "Separate auto-set logic from TIMESTAMP type."
Final version of patch. Adds support for specifying of DEFAULT NOW() and/or ON UPDATE NOW() clauses for TIMESTAMP field definition. Current implementation allows only one such field per table and uses several unireg types for storing info about this properties of field. It should be replaced with better implementation when new .frm format is introduced.
Diffstat (limited to 'sql/unireg.cc')
-rw-r--r--sql/unireg.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/sql/unireg.cc b/sql/unireg.cc
index 6f127b57f64..0e4b449c6a3 100644
--- a/sql/unireg.cc
+++ b/sql/unireg.cc
@@ -354,8 +354,12 @@ static bool pack_header(uchar *forminfo, enum db_type table_type,
MTYP_NOEMPTY_BIT);
no_empty++;
}
- if ((MTYP_TYPENR(field->unireg_check) == Field::TIMESTAMP_FIELD ||
- f_packtype(field->pack_flag) == (int) FIELD_TYPE_TIMESTAMP) &&
+ /*
+ We mark first TIMESTAMP field with NOW() in DEFAULT or ON UPDATE
+ as auto-update field.
+ */
+ if (field->sql_type == FIELD_TYPE_TIMESTAMP &&
+ MTYP_TYPENR(field->unireg_check) != Field::NONE &&
!time_stamp_pos)
time_stamp_pos=(int) field->offset+1;
length=field->pack_length;