mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Fix for --new option (Timestamp in YYYY-MM-DD HH:MM:SS format)
This commit is contained in:
25
sql/field.cc
25
sql/field.cc
@@ -2421,6 +2421,14 @@ void Field_double::sql_type(String &res) const
|
||||
** by handler.cc. The form->timestamp points at the automatic timestamp.
|
||||
****************************************************************************/
|
||||
|
||||
enum Item_result Field_timestamp::result_type() const
|
||||
{
|
||||
return (!current_thd->variables.new_mode &&
|
||||
(field_length == 8 || field_length == 14) ? INT_RESULT :
|
||||
STRING_RESULT);
|
||||
}
|
||||
|
||||
|
||||
Field_timestamp::Field_timestamp(char *ptr_arg, uint32 len_arg,
|
||||
enum utype unireg_check_arg,
|
||||
const char *field_name_arg,
|
||||
@@ -2783,6 +2791,23 @@ void Field_timestamp::set_time()
|
||||
longstore(ptr,tmp);
|
||||
}
|
||||
|
||||
/*
|
||||
This is an exact copy of Field_num except that 'length' is depending
|
||||
on --new mode
|
||||
*/
|
||||
|
||||
void Field_timestamp::make_field(Send_field *field)
|
||||
{
|
||||
field->table_name=table_name;
|
||||
field->col_name=field_name;
|
||||
/* If --new, then we are using "YYYY-MM-DD HH:MM:SS" format */
|
||||
field->length= current_thd->variables.new_mode ? 19 : field_length;
|
||||
field->type=type();
|
||||
field->flags=table->maybe_null ? (flags & ~NOT_NULL_FLAG) : flags;
|
||||
field->decimals=dec;
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
** time type
|
||||
** In string context: HH:MM:SS
|
||||
|
||||
@@ -541,7 +541,7 @@ public:
|
||||
Field_timestamp(char *ptr_arg, uint32 len_arg,
|
||||
enum utype unireg_check_arg, const char *field_name_arg,
|
||||
struct st_table *table_arg);
|
||||
enum Item_result result_type () const { return field_length == 8 || field_length == 14 ? INT_RESULT : STRING_RESULT; }
|
||||
enum Item_result result_type () const;
|
||||
enum_field_types type() const { return FIELD_TYPE_TIMESTAMP;}
|
||||
enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; }
|
||||
void store(const char *to,uint length);
|
||||
@@ -575,6 +575,7 @@ public:
|
||||
void fill_and_store(char *from,uint len);
|
||||
bool get_date(TIME *ltime,bool fuzzydate);
|
||||
bool get_time(TIME *ltime);
|
||||
void make_field(Send_field *field);
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user