mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-19569 Assertion `table_list->table' failed in find_field_in_table_ref.
Disallow subqueries in The PARTITIN BY INTERVAL syntax. Fix various interval types that now fail as they break syntax in the par file.
This commit is contained in:
@ -93,34 +93,43 @@ int append_interval(String *str, interval_type int_type, const INTERVAL &interva
|
||||
len= my_snprintf(buf,sizeof(buf),"%u", interval.second_part);
|
||||
break;
|
||||
case INTERVAL_YEAR_MONTH:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u-%02u", interval.day, interval.month);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u-%02u'",
|
||||
interval.year, interval.month);
|
||||
break;
|
||||
case INTERVAL_DAY_HOUR:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u %u", interval.day, interval.hour);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u %u'", interval.day, interval.hour);
|
||||
break;
|
||||
case INTERVAL_DAY_MINUTE:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u %u:%02u", interval.day, interval.hour, interval.minute);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u %u:%02u'",
|
||||
interval.day, interval.hour, interval.minute);
|
||||
break;
|
||||
case INTERVAL_DAY_SECOND:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u %u:%02u:%02u", interval.day, interval.hour, interval.minute, interval.second);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u %u:%02u:%02u'",
|
||||
interval.day, interval.hour, interval.minute, interval.second);
|
||||
break;
|
||||
case INTERVAL_HOUR_MINUTE:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u:%02u", interval.hour, interval.minute);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u:%02u'", interval.hour, interval.minute);
|
||||
break;
|
||||
case INTERVAL_HOUR_SECOND:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u:%02u:%02u", interval.hour, interval.minute, interval.second);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u:%02u:%02u'",
|
||||
interval.hour, interval.minute, interval.second);
|
||||
break;
|
||||
case INTERVAL_MINUTE_SECOND:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u:%02u", interval.minute, interval.second);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u:%02u'", interval.minute, interval.second);
|
||||
break;
|
||||
case INTERVAL_DAY_MICROSECOND:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u %u:%02u:%02u.%06u", interval.day, interval.hour, interval.minute, interval.second, interval.second_part);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u %u:%02u:%02u.%06u'",
|
||||
interval.day, interval.hour, interval.minute,
|
||||
interval.second, interval.second_part);
|
||||
break;
|
||||
case INTERVAL_HOUR_MICROSECOND:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u:%02u:%02u.%06u", interval.hour, interval.minute, interval.second, interval.second_part);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u:%02u:%02u.%06u'",
|
||||
interval.hour, interval.minute, interval.second,
|
||||
interval.second_part);
|
||||
break;
|
||||
case INTERVAL_MINUTE_MICROSECOND:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u:%02u.%06u", interval.minute, interval.second, interval.second_part);
|
||||
len= my_snprintf(buf,sizeof(buf),"'%u:%02u.%06u'",
|
||||
interval.minute, interval.second, interval.second_part);
|
||||
break;
|
||||
case INTERVAL_SECOND_MICROSECOND:
|
||||
len= my_snprintf(buf,sizeof(buf),"%u.%06u", interval.second, interval.second_part);
|
||||
|
Reference in New Issue
Block a user