summaryrefslogtreecommitdiff
path: root/sql/item_vers.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_vers.cc')
-rw-r--r--sql/item_vers.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/sql/item_vers.cc b/sql/item_vers.cc
index 3562cc7fbc9..47e62d9ebf0 100644
--- a/sql/item_vers.cc
+++ b/sql/item_vers.cc
@@ -54,6 +54,14 @@ Item_func_vtq_ts::get_date(MYSQL_TIME *res, ulonglong fuzzy_date)
{
THD *thd= current_thd; // can it differ from constructor's?
DBUG_ASSERT(thd);
+ DBUG_ASSERT(args[0]);
+ if (args[0]->result_type() != INT_RESULT)
+ {
+ my_error(ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION, MYF(0),
+ args[0]->type_handler()->name().ptr(),
+ func_name());
+ return true;
+ }
ulonglong trx_id= args[0]->val_uint();
if (trx_id == ULONGLONG_MAX)
{
@@ -62,13 +70,14 @@ Item_func_vtq_ts::get_date(MYSQL_TIME *res, ulonglong fuzzy_date)
return false;
}
- if (!hton)
- return true;
-
- DBUG_ASSERT(hton->vers_query_trx_id);
+ DBUG_ASSERT(hton && hton->vers_query_trx_id);
null_value= !hton->vers_query_trx_id(thd, res, trx_id, vtq_field);
+ if (null_value)
+ {
+ my_error(ER_VERS_NO_TRX_ID, MYF(0), trx_id);
+ }
- return false;
+ return null_value;
}