MDEV-35975 Server crashes after CREATE VIEW as SELECT ST_COLLECT...
Ensure that orig_args is populated during Item_func_collect::fix_fields_impl
This commit is contained in:
parent
b93e8c1556
commit
d5cb996270
@ -135,3 +135,10 @@ tb1 CREATE TABLE `tb1` (
|
|||||||
`(ST_collect(( POINTFROMTEXT(' POINT( 4 1 ) ') )) )` geometry DEFAULT NULL
|
`(ST_collect(( POINTFROMTEXT(' POINT( 4 1 ) ') )) )` geometry DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
||||||
DROP TABLE tb1;
|
DROP TABLE tb1;
|
||||||
|
#
|
||||||
|
# MDEV-35975 Server crashes after CREATE VIEW as SELECT ST_COLLECT
|
||||||
|
#
|
||||||
|
create view v1 as SELECT ST_COLLECT(ST_GEOMFROMTEXT('POINT(0 0)'));
|
||||||
|
drop view v1;
|
||||||
|
create view v1 as SELECT GROUP_CONCAT(ST_GEOMFROMTEXT('POINT(0 0)'));
|
||||||
|
drop view v1;
|
||||||
|
@ -197,3 +197,11 @@ SELECT ST_astext(ST_collect(( POINTFROMTEXT(' POINT( 4 1 ) ') )));
|
|||||||
CREATE TABLE tb1 AS SELECT (ST_collect(( POINTFROMTEXT(' POINT( 4 1 ) ') )) );
|
CREATE TABLE tb1 AS SELECT (ST_collect(( POINTFROMTEXT(' POINT( 4 1 ) ') )) );
|
||||||
SHOW CREATE TABLE tb1;
|
SHOW CREATE TABLE tb1;
|
||||||
DROP TABLE tb1;
|
DROP TABLE tb1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-35975 Server crashes after CREATE VIEW as SELECT ST_COLLECT
|
||||||
|
--echo #
|
||||||
|
create view v1 as SELECT ST_COLLECT(ST_GEOMFROMTEXT('POINT(0 0)'));
|
||||||
|
drop view v1;
|
||||||
|
create view v1 as SELECT GROUP_CONCAT(ST_GEOMFROMTEXT('POINT(0 0)'));
|
||||||
|
drop view v1;
|
@ -3553,6 +3553,9 @@ Item_sum_str::fix_fields(THD *thd, Item **ref)
|
|||||||
if (check_sum_func(thd, ref))
|
if (check_sum_func(thd, ref))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
if (arg_count)
|
||||||
|
memcpy (orig_args, args, sizeof (Item *) * arg_count);
|
||||||
|
|
||||||
base_flags|= item_base_t::FIXED;
|
base_flags|= item_base_t::FIXED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -3988,8 +3991,6 @@ Item_func_group_concat(THD *thd, Name_resolution_context *context_arg,
|
|||||||
|
|
||||||
/* orig_args is only used for print() */
|
/* orig_args is only used for print() */
|
||||||
orig_args= (Item**) (order + arg_count_order);
|
orig_args= (Item**) (order + arg_count_order);
|
||||||
if (arg_count)
|
|
||||||
memcpy(orig_args, args, sizeof(Item*) * arg_count);
|
|
||||||
if (limit_clause)
|
if (limit_clause)
|
||||||
{
|
{
|
||||||
row_limit= row_limit_arg;
|
row_limit= row_limit_arg;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user