1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

SQL, Tests: versioning for nested queries and CTE [closes #74]

This commit is contained in:
kevg
2017-02-09 12:01:05 +03:00
committed by Aleksey Midenkov
parent c9b2980c4f
commit bcc8ba78bc
6 changed files with 272 additions and 7 deletions

View File

@ -807,12 +807,20 @@ int vers_setup_select(THD *thd, TABLE_LIST *tables, COND **where_expr,
Field *fstart= table->table->vers_start_field();
Field *fend= table->table->vers_end_field();
DBUG_ASSERT(slex->parent_lex);
Name_resolution_context *context= slex->parent_lex->current_context();
DBUG_ASSERT(context);
Item *row_start= newx Item_field(thd, context, fstart);
Item *row_end= newx Item_field(thd, context, fend);
Item *row_start= NULL;
Item *row_end= NULL;
if (table->is_derived() && !table->is_recursive_with_table())
{
row_start= newx Item_field(thd, &slex->context, NULL, NULL,
fstart->field_name);
row_end=
newx Item_field(thd, &slex->context, NULL, NULL, fend->field_name);
}
else
{
row_start= newx Item_field(thd, &slex->context, fstart);
row_end= newx Item_field(thd, &slex->context, fend);
}
Item *row_end2= row_end;
if (table->table->versioned_by_sql())
@ -16859,6 +16867,14 @@ create_tmp_table(THD *thd, TMP_TABLE_PARAM *param, List<Item> &fields,
sys_trx_end= new_field;
}
}
if (type == Item::TYPE_HOLDER)
{
Item_type_holder *ith= (Item_type_holder*)item;
if (ith->flags & VERS_SYS_START_FLAG)
sys_trx_start= new_field;
else if (ith->flags & VERS_SYS_END_FLAG)
sys_trx_end= new_field;
}
if (type == Item::SUM_FUNC_ITEM)
{
Item_sum *agg_item= (Item_sum *) item;