diff --git a/src/share/object/ob_obj_cast.cpp b/src/share/object/ob_obj_cast.cpp index c6ffd46027..471a8e50e9 100644 --- a/src/share/object/ob_obj_cast.cpp +++ b/src/share/object/ob_obj_cast.cpp @@ -62,7 +62,8 @@ int64_t pos = 0; \ if (OB_FAIL(sql::ObDatumCast::common_scale_decimalint( \ (in_obj).get_decimal_int(), (in_obj).get_int_bytes(), in_scale, \ - res_acc.get_scale(), res_acc.get_precision(), params.cast_mode_, tmp_dec))) { \ + res_acc.get_scale(), res_acc.get_precision(), params.cast_mode_, tmp_dec, \ + (NULL == params.exec_ctx_) ? NULL : params.exec_ctx_->get_user_logging_ctx()))) { \ LOG_WARN("common scale decimal int failed", K(ret)); \ } else if (OB_ISNULL(buf = (char *)params.alloc(tmp_dec.get_int_bytes()))) { \ ret = OB_ALLOCATE_MEMORY_FAILED; \ @@ -13434,11 +13435,16 @@ int number_range_check_v2(ObObjCastParams ¶ms, const ObAccuracy &accuracy, } else { if (OB_FAIL(out_val.from(in_val, allocator))) { } else if (OB_FAIL(out_val.round(scale))) { - } else if (CM_IS_ERROR_ON_SCALE_OVER(cast_mode) && - in_val.compare(out_val) != 0) { - ret = OB_OPERATE_OVERFLOW; - LOG_WARN("input value is out of range.", K(scale), K(in_val)); - } else { + } else if (!in_val.is_equal(out_val)) { + if (CM_IS_ERROR_ON_SCALE_OVER(cast_mode)) { + ret = OB_OPERATE_OVERFLOW; + LOG_WARN("input value is out of range.", K(ret), K(scale), K(in_val)); + } else if (lib::is_mysql_mode()) { + // MySQL emits warnings for decimal column truncation, regardless of sql_mode settings. + params.warning_ = OB_ERR_DATA_TOO_LONG; + } + } + if (OB_SUCC(ret)) { buf_obj.set_number(obj.get_type(), out_val); } } diff --git a/src/sql/engine/basic/ob_expr_values_op.cpp b/src/sql/engine/basic/ob_expr_values_op.cpp index 13b9bc1c2e..67d5941be7 100644 --- a/src/sql/engine/basic/ob_expr_values_op.cpp +++ b/src/sql/engine/basic/ob_expr_values_op.cpp @@ -592,6 +592,10 @@ OB_INLINE int ObExprValuesOp::calc_next_row() } } } else if (!dst_expr->obj_meta_.is_lob_storage()) { + ObString column_name = MY_SPEC.column_names_.at(col_idx); + ObUserLoggingCtx::Guard logging_ctx_guard(*eval_ctx_.exec_ctx_.get_user_logging_ctx()); + eval_ctx_.exec_ctx_.set_cur_rownum(row_num); + eval_ctx_.exec_ctx_.set_cur_column_name(&column_name); if (OB_FAIL(datum_caster_.to_type(dst_expr->datum_meta_, real_src_expr, cm_, datum, 0, dst_expr->obj_meta_.get_subschema_id()))) { LOG_WARN("fail to dynamic cast", K(dst_expr->datum_meta_), @@ -600,7 +604,6 @@ OB_INLINE int ObExprValuesOp::calc_next_row() ret = OB_ERR_CANT_CREATE_GEOMETRY_OBJECT; LOG_USER_WARN(OB_ERR_CANT_CREATE_GEOMETRY_OBJECT); } - ObString column_name = MY_SPEC.column_names_.at(col_idx); ret = ObDMLService::log_user_error_inner(ret, row_num, column_name, ctx_); } } else { // dst type is lob diff --git a/src/sql/engine/dml/ob_dml_service.cpp b/src/sql/engine/dml/ob_dml_service.cpp index ce9939f411..619c5f7ab3 100644 --- a/src/sql/engine/dml/ob_dml_service.cpp +++ b/src/sql/engine/dml/ob_dml_service.cpp @@ -149,13 +149,15 @@ int ObDMLService::check_column_type(const ExprFixedArray &dml_row, int ret = OB_SUCCESS; CK(dml_row.count() >= column_infos.count()); ObArenaAllocator tmp_allocator(ObModIds::OB_LOB_ACCESS_BUFFER, OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()); + ObUserLoggingCtx::Guard logging_ctx_guard(*dml_op.get_exec_ctx().get_user_logging_ctx()); dml_op.get_exec_ctx().set_cur_rownum(row_num); for (int64_t i = 0; OB_SUCC(ret) && i < column_infos.count(); ++i) { const ColumnContent &column_info = column_infos.at(i); + common::ObString column_name = column_infos.at(i).column_name_; + dml_op.get_exec_ctx().set_cur_column_name(&column_name); ObExpr *expr = dml_row.at(column_info.projector_index_); ObDatum *datum = nullptr; if (OB_FAIL(expr->eval(dml_op.get_eval_ctx(), datum))) { - common::ObString column_name = column_infos.at(i).column_name_; ret = ObDMLService::log_user_error_inner(ret, row_num, column_name, dml_op.get_exec_ctx()); } else if (!datum->is_null() && expr->obj_meta_.is_geometry()) { // geo column type diff --git a/src/sql/engine/expr/ob_datum_cast.cpp b/src/sql/engine/expr/ob_datum_cast.cpp index 14298a5945..ffad933451 100644 --- a/src/sql/engine/expr/ob_datum_cast.cpp +++ b/src/sql/engine/expr/ob_datum_cast.cpp @@ -1253,6 +1253,7 @@ static OB_INLINE int common_string_number(const ObExpr &expr, } static int common_string_decimalint(const ObExpr &expr, const ObString &in_str, + const ObUserLoggingCtx *user_logging_ctx, ObDecimalIntBuilder &res_val) {// TODO: add cases #define SET_ZERO(int_type) \ @@ -1354,7 +1355,8 @@ static int common_string_decimalint(const ObExpr &expr, const ObString &in_str, // 1 row in set (0.01 sec) if (ObDatumCast::need_scale_decimalint(in_scale, in_precision, out_scale, out_prec)) { if (OB_FAIL(ObDatumCast::common_scale_decimalint(decint, int_bytes, in_scale, out_scale, - out_prec, expr.extra_, res_val))) { + out_prec, expr.extra_, res_val, + user_logging_ctx))) { LOG_WARN("scale decimal int failed", K(ret)); } } else { @@ -2147,7 +2149,8 @@ static int scale_const_decimalint_expr(const ObDecimalInt *decint, const int32_t int ObDatumCast::common_scale_decimalint(const ObDecimalInt *decint, const int32_t int_bytes, const ObScale in_scale, const ObScale out_scale, const ObPrecision out_prec, const ObCastMode cast_mode, - ObDecimalIntBuilder &val) + ObDecimalIntBuilder &val, + const ObUserLoggingCtx *user_logging_ctx) { int ret = OB_SUCCESS; ObDecimalIntBuilder max_v, min_v; @@ -2179,6 +2182,12 @@ int ObDatumCast::common_scale_decimalint(const ObDecimalInt *decint, const int32 } else { // do nothing } + if (OB_SUCC(ret)) { + if (lib::is_mysql_mode() && CM_IS_COLUMN_CONVERT(cast_mode) && in_scale > out_scale && + decimal_int_truncated_check(decint, int_bytes, in_scale - out_scale)) { + log_user_warning_truncated(user_logging_ctx); + } + } } else { if (OB_FAIL( wide::common_scale_decimalint(decint, int_bytes, in_scale, out_scale, scaled_val))) { @@ -2280,6 +2289,16 @@ int check_decimalint_accuracy(const ObCastMode cast_mode, return ret; } +void log_user_warning_truncated(const ObUserLoggingCtx *user_logging_ctx) +{ + if (OB_ISNULL(user_logging_ctx) || user_logging_ctx->skip_logging()) { + } else { + const ObString *column_name = user_logging_ctx->get_column_name(); + LOG_USER_WARN(OB_ERR_DATA_TRUNCATED, column_name->length(), column_name->ptr(), + user_logging_ctx->get_row_num()); + } +} + static int common_json_string(const ObExpr &expr, ObEvalCtx &ctx, ObIAllocator& allocator, @@ -3589,7 +3608,8 @@ CAST_FUNC_NAME(string, decimalint) { ObString in_str(child_res->len_, child_res->ptr_); ObDecimalIntBuilder res_val; - if (OB_FAIL(common_string_decimalint(expr, in_str, res_val))) { + if (OB_FAIL(common_string_decimalint(expr, in_str, ctx.exec_ctx_.get_user_logging_ctx(), + res_val))) { LOG_WARN("cast string to decimal int failed", K(ret)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -3822,7 +3842,7 @@ CAST_FUNC_NAME(text, decimalint) ObDecimalIntBuilder res_val; if (OB_FAIL(get_text_full_data(expr, ctx, &temp_allocator, child_res, in_str))) { LOG_WARN("get string data failed", K(ret)); - } else if (OB_FAIL(common_string_decimalint(expr, in_str, res_val))) { + } else if (OB_FAIL(common_string_decimalint(expr, in_str, ctx.exec_ctx_.get_user_logging_ctx(), res_val))) { LOG_WARN("cast string to decimal int failed", K(ret), K(in_str)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -4737,7 +4757,8 @@ CAST_FUNC_NAME(float, decimalint) } else if (ObDatumCast::need_scale_decimalint(in_scale, in_prec, out_scale, out_prec)) { ObDecimalIntBuilder res_val; if (OB_FAIL(ObDatumCast::common_scale_decimalint(decint, val_len, in_scale, out_scale, - out_prec, expr.extra_, res_val))) { + out_prec, expr.extra_, res_val, + ctx.exec_ctx_.get_user_logging_ctx()))) { LOG_WARN("scale decimalint failed", K(ret)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -4888,7 +4909,8 @@ CAST_FUNC_NAME(double, decimalint) } else if (ObDatumCast::need_scale_decimalint(in_scale, in_prec, out_scale, out_prec)) { ObDecimalIntBuilder res_val; if (OB_FAIL(ObDatumCast::common_scale_decimalint(decint, val_len, in_scale, out_scale, - out_prec, expr.extra_, res_val))) { + out_prec, expr.extra_, res_val, + ctx.exec_ctx_.get_user_logging_ctx()))) { LOG_WARN("scale decimal int failed", K(ret)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -5556,7 +5578,8 @@ CAST_FUNC_NAME(datetime, decimalint) } else if (ObDatumCast::need_scale_decimalint(in_scale, in_precision, out_scale, out_prec)) { ObDecimalIntBuilder res_val; if (OB_FAIL(ObDatumCast::common_scale_decimalint(decint, int_bytes, scale, out_scale, - out_prec, expr.extra_, res_val))) { + out_prec, expr.extra_, res_val, + ctx.exec_ctx_.get_user_logging_ctx()))) { LOG_WARN("scale decimal int failed", K(ret), K(scale), K(out_scale)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -7186,7 +7209,8 @@ CAST_FUNC_NAME(time, decimalint) } else if (ObDatumCast::need_scale_decimalint(in_scale, in_prec, out_scale, out_prec)) { ObDecimalIntBuilder res_val; if (OB_FAIL(ObDatumCast::common_scale_decimalint(decint, int_bytes, in_scale, out_scale, out_prec, - expr.extra_, res_val))) { + expr.extra_, res_val, + ctx.exec_ctx_.get_user_logging_ctx()))) { LOG_WARN("scale decimal int failed", K(ret)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -8772,7 +8796,8 @@ CAST_FUNC_NAME(geometry, decimalint) ObDecimalIntBuilder res_val; if (OB_FAIL(ObTextStringHelper::read_real_string_data(temp_allocator, *child_res, expr.args_[0]->datum_meta_, expr.args_[0]->obj_meta_.has_lob_header(), in_str))) { LOG_WARN("failed to get real data", K(ret), K(in_str)); - } else if (OB_FAIL(common_string_decimalint(expr, in_str, res_val))) { + } else if (OB_FAIL(common_string_decimalint(expr, in_str, + ctx.exec_ctx_.get_user_logging_ctx(), res_val))) { LOG_WARN("failed to cast string to decimal int", K(ret), K(in_str)); ret = OB_ERR_TRUNCATED_WRONG_VALUE_FOR_FIELD; // compatible with mysql } else { @@ -9823,7 +9848,7 @@ CAST_FUNC_NAME(number, decimalint) } else if (ObDatumCast::need_scale_decimalint(in_scale, int_bytes, out_scale, out_bytes)) { ObDecimalIntBuilder res_val; if (OB_FAIL(ObDatumCast::common_scale_decimalint(decint, int_bytes, in_scale, out_scale, out_prec, - expr.extra_, res_val))) { + expr.extra_, res_val, ctx.exec_ctx_.get_user_logging_ctx()))) { LOG_WARN("scale decimal int failed", K(ret), K(in_scale), K(out_scale)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -10620,7 +10645,8 @@ CAST_FUNC_NAME(decimalint, decimalint) if (ObDatumCast::need_scale_decimalint(in_scale, in_prec, out_scale, out_prec)) { ObDecimalIntBuilder res_val; if (OB_FAIL(ObDatumCast::common_scale_decimalint(child_res->decimal_int_, child_res->len_, in_scale, - out_scale, out_prec, expr.extra_, res_val))) { + out_scale, out_prec, expr.extra_, res_val, + ctx.exec_ctx_.get_user_logging_ctx()))) { LOG_WARN("scale decimal int failed", K(ret)); } else { res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); @@ -11258,11 +11284,16 @@ int number_range_check_v2(const ObCastMode &cast_mode, LOG_WARN("out_val.from failed", K(ret), K(in_val)); } else if (OB_FAIL(out_val.round(scale))) { LOG_WARN("out_val.round failed", K(ret), K(scale)); - } else if (CM_IS_ERROR_ON_SCALE_OVER(cast_mode) && - in_val.compare(out_val) != 0) { - ret = OB_OPERATE_OVERFLOW; - LOG_WARN("input value is out of range.", K(scale), K(in_val)); - } else { + } else if (!in_val.is_equal(out_val)) { + if (CM_IS_ERROR_ON_SCALE_OVER(cast_mode)) { + ret = OB_OPERATE_OVERFLOW; + LOG_WARN("input value is out of range.", K(ret), K(scale), K(in_val)); + } else if (lib::is_mysql_mode()) { + // MySQL emits warnings for decimal column truncation, regardless of sql_mode settings. + warning = OB_ERR_DATA_TOO_LONG; + } + } + if (OB_SUCC(ret)) { res_datum.set_number(out_val); is_finish = true; } diff --git a/src/sql/engine/expr/ob_datum_cast.h b/src/sql/engine/expr/ob_datum_cast.h index b9af939279..4ced8e61a7 100644 --- a/src/sql/engine/expr/ob_datum_cast.h +++ b/src/sql/engine/expr/ob_datum_cast.h @@ -30,6 +30,8 @@ namespace oceanbase namespace sql { class ObPhysicalPlanCtx; +struct ObUserLoggingCtx; + // extract accuracy info from %expr and call datum_accuracy_check() below. int datum_accuracy_check(const ObExpr &expr, const uint64_t cast_mode, @@ -302,6 +304,26 @@ int check_decimalint_accuracy(const ObCastMode cast_mode, const ObPrecision precision, const ObScale scale, ObDecimalIntBuilder &res_val, int &warning); +inline bool decimal_int_truncated_check(const ObDecimalInt *decint, const int32_t int_bytes, + const unsigned scale) +{ +#define TRUNC_CHECK(int_type) \ + if (wide::ObDecimalIntConstValue::get_int_bytes_by_precision(scale) > int_bytes) { \ + bret = (*reinterpret_cast(decint)) != 0; \ + } else { \ + const int_type sf = get_scale_factor(scale); \ + bret = (((*reinterpret_cast(decint)) % sf) != 0); \ + } + + int ret = OB_SUCCESS; + bool bret = false; + DISPATCH_WIDTH_TASK(int_bytes, TRUNC_CHECK); + return bret; +#undef TRUNC_CHECK +} + +void log_user_warning_truncated(const ObUserLoggingCtx *user_logging_ctx); + // copied from ob_obj_cast.cpp,函数逻辑没有修改,只是将输入参数从ObObj变为ObDatum class ObDatumHexUtils { @@ -433,7 +455,8 @@ public: static int common_scale_decimalint(const ObDecimalInt *decint, const int32_t int_bytes, const ObScale in_scale, const ObScale out_scale, const ObPrecision out_prec, - const ObCastMode cast_mode, ObDecimalIntBuilder &val); + const ObCastMode cast_mode, ObDecimalIntBuilder &val, + const ObUserLoggingCtx *column_conv_ctx = NULL); static int align_decint_precision_unsafe(const ObDecimalInt *decint, const int32_t int_bytes, const int32_t expected_int_bytes, diff --git a/src/sql/engine/expr/ob_datum_decint_cast.h b/src/sql/engine/expr/ob_datum_decint_cast.h index 3e7b0fd40a..d1becf04e8 100644 --- a/src/sql/engine/expr/ob_datum_decint_cast.h +++ b/src/sql/engine/expr/ob_datum_decint_cast.h @@ -429,7 +429,7 @@ inline static void scale_up_with_types(const ObDecimalInt *decint, unsigned scal template inline static void scale_down_with_types(const ObDecimalInt *decint, unsigned scale, - ObDecimalIntBuilder &res) + ObDecimalIntBuilder &res, bool &truncated) { static_assert(wide::IsIntegral::value, ""); static_assert(wide::IsIntegral::value, ""); @@ -440,6 +440,7 @@ inline static void scale_down_with_types(const ObDecimalInt *decint, unsigned sc out_type remain = val % sf; val = val / sf; if (remain >= (sf >> 1)) { val = val + 1; } + truncated = (remain != 0); if (is_neg) { val = -val; } res.from(val); } @@ -497,9 +498,13 @@ static int decimalint_fast_cast(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &res res_val); res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); } else { + bool truncated = false; scale_down_with_types(child_res->get_decimal_int(), in_scale - out_scale, - res_val); + res_val, truncated); res_datum.set_decimal_int(res_val.get_decimal_int(), res_val.get_int_bytes()); + if (lib::is_mysql_mode() && CM_IS_COLUMN_CONVERT(expr.extra_) & truncated) { + log_user_warning_truncated(ctx.exec_ctx_.get_user_logging_ctx()); + } } } if (is_explicit && !res_datum.is_null() && OB_SUCC(ret)) { diff --git a/src/sql/engine/ob_exec_context.cpp b/src/sql/engine/ob_exec_context.cpp index 6f1132d2b4..8bd6e79695 100644 --- a/src/sql/engine/ob_exec_context.cpp +++ b/src/sql/engine/ob_exec_context.cpp @@ -130,7 +130,7 @@ ObExecContext::ObExecContext(ObIAllocator &allocator) table_direct_insert_ctx_(), errcode_(OB_SUCCESS), dblink_snapshot_map_(), - cur_row_num_(-1), + user_logging_ctx_(), is_online_stats_gathering_(false) { } diff --git a/src/sql/engine/ob_exec_context.h b/src/sql/engine/ob_exec_context.h index 60a6778ec5..27cbda456d 100644 --- a/src/sql/engine/ob_exec_context.h +++ b/src/sql/engine/ob_exec_context.h @@ -127,6 +127,33 @@ public: ObOperatorKit *kits_; }; +struct ObUserLoggingCtx +{ + friend class ObExecContext; + friend class Guard; + class Guard + { + public: + explicit Guard(ObUserLoggingCtx &ctx) : ctx_(ctx) {} + ~Guard() { ctx_.reset(); } + private: + ObUserLoggingCtx &ctx_; + }; + ObUserLoggingCtx() : column_name_(NULL), row_num_(-1) {} + inline bool skip_logging() const { return NULL == column_name_ || row_num_ <= 0; } + inline const ObString *get_column_name() const { return column_name_; } + inline int64_t get_row_num() const { return row_num_; } +private: + inline void reset() + { + column_name_ = NULL; + row_num_ = -1; + } +private: + const ObString *column_name_; + int64_t row_num_; +}; + class ObIExtraStatusCheck; struct ObTempExprBackupCtx; @@ -473,8 +500,11 @@ public: share::schema::ObSchemaGetterGuard *schema_guard = NULL); ObExecFeedbackInfo &get_feedback_info() { return fb_info_; }; - void set_cur_rownum(int64_t cur_rownum) { cur_row_num_ = cur_rownum; } - int64_t get_cur_rownum() { return cur_row_num_; } + inline void set_cur_rownum(int64_t cur_rownum) { user_logging_ctx_.row_num_ = cur_rownum; } + inline int64_t get_cur_rownum() const { return user_logging_ctx_.row_num_; } + inline void set_cur_column_name(const ObString *column_name) + { user_logging_ctx_.column_name_ = column_name; } + inline ObUserLoggingCtx *get_user_logging_ctx() { return &user_logging_ctx_; } bool use_temp_expr_ctx_cache() const { return use_temp_expr_ctx_cache_; } bool has_dynamic_values_table() const { bool ret = false; @@ -663,8 +693,8 @@ protected: hash::ObHashMap dblink_snapshot_map_; // for feedback ObExecFeedbackInfo fb_info_; - // for dml report user warning/error at specific row - int64_t cur_row_num_; + // for dml report user warning/error at specific row and column + ObUserLoggingCtx user_logging_ctx_; // for online stats gathering bool is_online_stats_gathering_; //--------------- diff --git a/tools/deploy/mysql_test/r/mysql/datatype_java.result b/tools/deploy/mysql_test/r/mysql/datatype_java.result index 2cea4d116e..53e0b999ac 100644 --- a/tools/deploy/mysql_test/r/mysql/datatype_java.result +++ b/tools/deploy/mysql_test/r/mysql/datatype_java.result @@ -12,6 +12,7 @@ insert into t(int_val, uint_val, flt_val, dbl_val, dec_val, vc_val) values (-184467440737095516150, -184467440737095516150, 0.444444, 0.444444, '98.76abc', '987654321'), (NULL, NULL, -0.555555, -0.555555, 'abc', '阿里巴巴'); Warnings: +Warning 1265 Data truncated for column 'dec_val' at row 1 Warning 1265 Data truncated for column '"test"."t"."vc_val"' at row 1 Warning 1265 Data truncated for column '"test"."t"."vc_val"' at row 2 Warning 1265 Data truncated for column '"test"."t"."vc_val"' at row 3 @@ -22,6 +23,7 @@ auto_increment_id -32768 0 0.444 0.4444 98.760 98 auto_increment_id NULL NULL -0.556 -0.5556 0.000 阿里 update t set int_val = 123456789, uint_val = -123456789, flt_val = 98765.43210, dbl_val = 98765.43210, dec_val = 98765.43210, vc_val = '支付宝'; Warnings: +Warning 1265 Data truncated for column 'dec_val' at row 1 Warning 1265 Data truncated for column '"test"."t"."vc_val"' at row 1 select * from t order by id limit 1; id int_val uint_val flt_val dbl_val dec_val vc_val diff --git a/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_func.result b/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_func.result index 46a745dbd5..bbc61a9397 100644 --- a/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_func.result +++ b/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_func.result @@ -98,6 +98,8 @@ def ifnull(0, 0.0) 246 23 3 Y 32896 1 63 ifnull(0, 0.0) 0.0 insert into t3 values(0, 2.4, "123"); +Warnings: +Warning 1265 Data truncated for column 'b' at row 1 select ifnull(a, b), ifnull(a, c) from t3; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def ifnull(a, b) 246 12 1 Y 32896 0 63 diff --git a/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_type.result b/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_type.result index 8dc1f3bbef..52163a46f7 100644 --- a/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_type.result +++ b/tools/deploy/mysql_test/test_suite/meta_info/r/mysql/meta_type.result @@ -252,6 +252,9 @@ def test t4 t4 a a 246 11 0 Y 32768 0 63 def test t4 t4 b b 246 10 0 Y 32800 0 63 a b insert into t4 value(0.1,0.2); +Warnings: +Warning 1265 Data truncated for column 'a' at row 1 +Warning 1265 Data truncated for column '"test"."t4"."b"' at row 1 select * from t4; Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr def test t4 t4 a a 246 11 1 Y 32768 0 63 diff --git a/tools/deploy/mysql_test/test_suite/pl/r/mysql/sp-big_mysql.result b/tools/deploy/mysql_test/test_suite/pl/r/mysql/sp-big_mysql.result index 191001b153..e0fa08f1e8 100644 --- a/tools/deploy/mysql_test/test_suite/pl/r/mysql/sp-big_mysql.result +++ b/tools/deploy/mysql_test/test_suite/pl/r/mysql/sp-big_mysql.result @@ -35,6 +35,8 @@ drop table t1; create table t1 (f1 char(100) , f2 mediumint , f3 int , f4 real, f5 numeric); insert into t1 (f1, f2, f3, f4, f5) values ("This is a test case for for Bug#9819", 1, 2, 3.0, 4.598); +Warnings: +Warning 1265 Data truncated for column 'f5' at row 1 create table t2 like t1; select count(*) from t1; +----------+ diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_abs.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_abs.result index 5a1b5f4e9e..7002fee5b6 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_abs.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_abs.result @@ -37,6 +37,9 @@ create table t (t1 tinyint, insert into t values (1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -0.2, 0.3, 0.4, 0.5, -0.6, 0.7, '1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '0.8', '0.9', '1.0', '1.1', '1.2', 1, 'b', 'b'); +Warnings: +Warning 1265 Data truncated for column 't15' at row 1 +Warning 1265 Data truncated for column '"test"."t"."t16"' at row 1 insert into t(t1) values (null); diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_ascii.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_ascii.result index e577e78295..ab5f5d7345 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_ascii.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_ascii.result @@ -24,6 +24,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -35,6 +38,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 create table t2(col_int int, col_utf8 varchar(100) charset utf8, col_utf16 varchar(100) charset utf16, col_gbk varchar(100) charset gbk); diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_assign.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_assign.result index 0e5a0e3dff..9d87deeff7 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_assign.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_assign.result @@ -24,6 +24,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 select @var1, @var2; +-------+-------+ diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_bool.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_bool.result index 0347a825bf..ac403d9f1d 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_bool.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_bool.result @@ -67,6 +67,9 @@ insert into t1 values( b'001' ); +Warnings: +Warning 1265 Data truncated for column 'col_decimal' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."col_udecimal"' at row 1 create table t2 (c1 int); insert into t2 values(1); @@ -395,6 +398,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', 'blob type', 'text type'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 set ob_enable_plan_cache = 0; explain_protocol: 2 EXPLAIN select c1 and c1 from t1; diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_char_length.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_char_length.result index 45d18f3c88..8dae78d3d8 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_char_length.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_char_length.result @@ -48,6 +48,8 @@ select char_length(' a b'); drop table if exists t1; create table t1 (c1 int, c2 char(10), c3 varchar(10), c4 timestamp, c5 decimal); insert into t1 values(1, 'a ', 'a ', '2010-01-01 11:11:11', 10.1); +Warnings: +Warning 1265 Data truncated for column 'c5' at row 1 select char_length(c1) from t1; +-----------------+ | char_length(c1) | diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_coalesce.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_coalesce.result index be7f005b13..551e499da9 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_coalesce.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_coalesce.result @@ -22,6 +22,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 // Case1: normal test.测试各种类型组合, 跟不开新引擎开关进行对比 alter system flush plan cache global; diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_collation.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_collation.result index e9749e0631..234655057c 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_collation.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_collation.result @@ -29,6 +29,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', 'utf8 col', 'utf16 col', 'gbk col'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -40,6 +43,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5', 'utf8 col', 'utf16 col', 'gbk col'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 select c1, charset(c1), collation(c1), coercibility(c1) from t1; +------+-------------+---------------+------------------+ diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_find_in_set.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_find_in_set.result index 3ba33ee03c..6d8b5ce3ba 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_find_in_set.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_find_in_set.result @@ -25,6 +25,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '1,2,3.5,4.5', '12,2,8.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_from_unixtime.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_from_unixtime.result index 48ea122ccb..66d1570cb4 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_from_unixtime.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_from_unixtime.result @@ -166,6 +166,9 @@ insert into t values (1, -1, 1, 1234567, 13445677888, 1, 1, 1, 14455423, 1, 1231 11113211.22323, 22312312312.322, 123123222.23232, 1231232.22222, '1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '123123.13', '132123.24', '31231231231.222', '31231231231.22', '1.2', 1, 'b', 'b'); +Warnings: +Warning 1265 Data truncated for column 't15' at row 1 +Warning 1265 Data truncated for column '"test"."t"."t16"' at row 1 insert into t(t28) values ('%Y-%M-%D %h:%m:%s'); diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_is.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_is.result index d42e33b846..d24ef8e7bb 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_is.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_is.result @@ -61,6 +61,9 @@ insert into t1 values(1, 1, '0001-01-01 00:00:00', '0001-01-01 00:00:00', '0001-01-01 00:00:00', '0001-01-01 00:00:00', '1', '1.0'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 insert into t1 values(11, 11, 11, 11, diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_left.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_left.result index bfd8c8f333..d93ce2047f 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_left.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_left.result @@ -25,6 +25,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -36,6 +39,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 create table t2 (c1 varchar(100), c2 int, c3 int, c4 varchar(100)); diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_math.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_math.result index b149f9a2b5..6efc84d1a9 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_math.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_math.result @@ -25,6 +25,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -36,6 +39,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 insert into t1(c17) values(1), (-1), (10000000000000), (-10000000000000), (0.000001), (-0.000001); ERROR 22003: Out of range value for column 'c17' at row 3 diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_neg.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_neg.result index c19e0c7bfd..2b05d86054 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_neg.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_neg.result @@ -148,6 +148,9 @@ create table t (t1 tinyint, insert into t values (1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -0.2, 0.3, 0.4, 0.5, -0.6, 0.7, '1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '0.8', '0.9', '1.0', '1.1', '1.2', 1, 'b', 'b'); +Warnings: +Warning 1265 Data truncated for column 't15' at row 1 +Warning 1265 Data truncated for column '"test"."t"."t16"' at row 1 insert into t(t1) values (null); diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_not.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_not.result index 3ebf63ecf8..e4ce97c544 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_not.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_not.result @@ -37,6 +37,9 @@ create table t (t1 tinyint, insert into t values (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, '1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '0.8', '0.9', '1.0', '1.1', '1.2', 1, 'b', 'b'); +Warnings: +Warning 1265 Data truncated for column 't15' at row 1 +Warning 1265 Data truncated for column '"test"."t"."t16"' at row 1 insert into t(t1) values (null); diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nullif_ifnull.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nullif_ifnull.result index 239663d5e0..5fbd8cb99e 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nullif_ifnull.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nullif_ifnull.result @@ -26,6 +26,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -37,6 +40,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 select nullif(null, null), nullif(1, null), nullif(null, 1); +--------------------+-----------------+-----------------+ diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nvl.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nvl.result index 983c131bc5..19a0897c94 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nvl.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_nvl.result @@ -29,6 +29,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -40,6 +43,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 explain_protocol: 2 EXPLAIN select nvl(c_null, c_null) from t1; diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_pad.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_pad.result index 6a38e514d9..7e3b91b561 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_pad.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_pad.result @@ -23,6 +23,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 // Case1: normal test.测试各种类型组合, 跟不开新引擎开关进行对比 alter system flush plan cache global; diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_str.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_str.result index 7c8aa55c91..ae5ed41539 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_str.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_str.result @@ -31,6 +31,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -42,6 +45,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 select quote(null); +-------------+ diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_timestampadd.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_timestampadd.result index e5eadaf2ba..b0213321c8 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_timestampadd.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_timestampadd.result @@ -22,6 +22,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 // Case1: normal test.测试各种类型组合, 跟不开新引擎开关进行对比 alter system flush plan cache global; diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_todays.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_todays.result index 70d4cab605..455098d793 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_todays.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_todays.result @@ -6,7 +6,11 @@ create table t1(col_int int, col_decimal decimal, col_varchar varchar(100), col_date date, col_datetime datetime, col_timestamp timestamp, col_null int); insert into t1 values(123, 123.123, 'invalid char', '2020-01-01 12:12:12', '0000-00-00 00:00:00.000', '2020-01-01 12:12:12.1234', null); +Warnings: +Warning 1265 Data truncated for column 'col_decimal' at row 1 insert into t1 values(123, 123.123, '2020-01-01', '2019-01-01', '0000-00-00', '2020-01-01', null); +Warnings: +Warning 1265 Data truncated for column 'col_decimal' at row 1 // to check type create table t2 (c1 int, c2 int unsigned, @@ -31,6 +35,9 @@ insert into t2 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t2"."c18"' at row 1 insert into t2 values(-1, 2, -1, 2, -1, 2, @@ -42,6 +49,9 @@ insert into t2 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t2"."c18"' at row 1 // sleep 2 select col_int, to_days(col_int) from t1; diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_trunc.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_trunc.result index ba290307f3..d18213c319 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_trunc.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_trunc.result @@ -26,6 +26,9 @@ insert into t1 values(1, 2, 7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1 values(-1, 2, -1, 2, -1, 2, @@ -37,6 +40,9 @@ insert into t1 values(-1, 2, -7.5, 8.5, '2019-12-01 12:00:00', '2019-12-03 06:00:00', '-9.5', '10.5', null); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"oceanbase"."t1"."c18"' at row 1 insert into t1(c1) values(100), (123), (151); insert into t1(c15) values(100.156), (123.111), (151); insert into t1(c13) values(100.156), (123.111), (151); diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_xor.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_xor.result index 193333b343..a33cade257 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_xor.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/expr_xor.result @@ -98,6 +98,9 @@ create table t (t1 tinyint, insert into t values (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, '1993-03-20', '1993-03-20', '1993-03-20', '10:10:10', '1993', '0.8', '0.9', '1.0', '1.1', '1.2', 1, 'b', 'b'); +Warnings: +Warning 1265 Data truncated for column 't15' at row 1 +Warning 1265 Data truncated for column '"test"."t"."t16"' at row 1 diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/monitoring_dump.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/monitoring_dump.result index f21de7f585..288bf0a74c 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/monitoring_dump.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/monitoring_dump.result @@ -1,14 +1,32 @@ drop table t1; create table t1(c1 int, c2 varchar(10), c3 decimal); insert into t1 values(0, 'abc', '0.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(1, 'def', '1.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(2, 'ghi', '2.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(3, 'jkl', '3.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(4, 'mno', '4.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(5, 'pqr', '5.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(6, 'stu', '6.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(7, 'vwx', '7.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(8, 'yz', '8.1'); +Warnings: +Warning 1265 Data truncated for column 'c3' at row 1 insert into t1 values(9, null, null); result_format: 4 explain_protocol: 1 diff --git a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/table_insert.result b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/table_insert.result index 809cb4452e..4335680542 100644 --- a/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/table_insert.result +++ b/tools/deploy/mysql_test/test_suite/static_engine/r/mysql/table_insert.result @@ -17,8 +17,19 @@ create table t1 (c1 int primary key, c2 int unsigned, c21 varchar(30), c22 char(30)); insert into t1 values(1, 1, 1, 1, -1, 6, 7, 8, 9, 10, -11, 12, -13.1, 14.2, -15.01, 16.10, 17.001, 18.002, '2019-10-10 10:00:00', '2019-10-10 10:00:00', '21varchar', '22char'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 insert into t1 values('2', '1', '1', '1', '-1', '6', '7', '8', '9', '10', '-11', '12', '-13.1', '14.2', '-15.01', '16.10', '17.001', '18.002', '2019-10-10 10:00:00', '2019-10-10 10:00:00', '21varchar', '22char'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 insert into t1 values('3', '1', '1', '1', '-1', '6', '7', '8', '9', '10', '-11', '12', '-13.1', '14.2', '-15.01', '16.10', '17.001', '18.002', '2019-10-10 10:00:00', '2019-10-10 10:00:00', '21varchar', '22char'), ('4', '1', '1', '1', '-1', '16', '17', '18', '19', '11', '-11', '121', '-13.11', '14.21', '-15.011', '16.101', '17.1001', '18.1002', '2019-10-10 10:00:00.00', '2019-10-10 10:00:00.000', '21varchar1', '22char1'); +Warnings: +Warning 1265 Data truncated for column 'c17' at row 1 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 1 +Warning 1265 Data truncated for column 'c17' at row 2 +Warning 1265 Data truncated for column '"test"."t1"."c18"' at row 2 explain_protocol: 2 EXPLAIN select * from t1; @@ -78,9 +89,17 @@ create table t2(c1 decimal(10, 1), c2 int unsigned, c3 int); insert into t2 values(null, null, 1); insert into t2 select null, null, null from dual; insert into t2 select c1, c1, c1 from t1; +Warnings: +Warning 1265 Data truncated for column 'c1' at row 1 insert into t2 select c2, c2, c2 from t1; +Warnings: +Warning 1265 Data truncated for column 'c1' at row 1 insert into t2 select c3, c3, c3 from t1; +Warnings: +Warning 1265 Data truncated for column 'c1' at row 1 insert into t2 select c4, c4, c4 from t1; +Warnings: +Warning 1265 Data truncated for column 'c1' at row 1 select * from t2; +-------+------+------+ | c1 | c2 | c3 |