fix datetime type default value scale bug

This commit is contained in:
st0
2022-03-23 14:02:35 +08:00
committed by LINxiansheng
parent 74f5e83e10
commit f700a428f4

View File

@ -2681,7 +2681,7 @@ int ObDDLResolver::cast_default_value(ObObj& default_value, const ObTimeZoneInfo
if (OB_SUCC(ret)) {
default_value.set_number(column_schema.get_data_type(), nmb);
}
}
}
if (OB_FAIL(ret)) {
ret = OB_INVALID_DEFAULT;
LOG_USER_ERROR(OB_INVALID_DEFAULT,
@ -2690,6 +2690,15 @@ int ObDDLResolver::cast_default_value(ObObj& default_value, const ObTimeZoneInfo
}
}
}
if (OB_SUCC(ret)) {
if (default_value.get_type() == column_schema.get_data_type()
&& (ObTimeTC == column_schema.get_data_type_class() ||
ObDateTimeTC == column_schema.get_data_type_class())) {
int64_t value = default_value.get_time();
ObTimeConverter::round_datetime(column_schema.get_data_scale(), value);
default_value.set_time_value(value);
}
}
return ret;
}