mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
MDEV-452 Add full support for auto-initialized/updated timestamp and datetime
Generalized support for auto-updated and/or auto-initialized timestamp and datetime columns. This patch is a reimplementation of MySQL's "WL#5874: CURRENT_TIMESTAMP as DEFAULT for DATETIME columns". In order to ease future merges, this implementation reused few function and variable names from MySQL's patch, however the implementation is quite different. TODO: The only unresolved problem in this patch is the semantics of LOAD DATA for TIMESTAMP and DATETIME columns in the cases when there are missing or NULL columns. I couldn't fully comprehend the logic behind MySQL's behavior and its relationship with their own documentation, so I left the results to be more consistent with all other LOAD cases. The problematic test cases can be seen by running the test file function_defaults, and observing the test case differences. Those were left on purpose for discussion.
This commit is contained in:
@ -502,6 +502,24 @@ bool String::append(IO_CACHE* file, uint32 arg_length)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Append a parenthesized number to String.
|
||||
Used in various pieces of SHOW related code.
|
||||
|
||||
@param nr Number
|
||||
@param radix Radix, optional parameter, 10 by default.
|
||||
*/
|
||||
bool String::append_parenthesized(long nr, int radix)
|
||||
{
|
||||
char buff[64], *end;
|
||||
buff[0]= '(';
|
||||
end= int10_to_str(nr, buff + 1, radix);
|
||||
*end++ = ')';
|
||||
return append(buff, (uint) (end - buff));
|
||||
}
|
||||
|
||||
|
||||
bool String::append_with_prefill(const char *s,uint32 arg_length,
|
||||
uint32 full_length, char fill_char)
|
||||
{
|
||||
|
Reference in New Issue
Block a user