mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-23656 view: removal of parentheses results in wrong result
Item_ref should have the precedence of the item it's referencing
This commit is contained in:
13
mysql-test/r/precedence_bugs.result
Normal file
13
mysql-test/r/precedence_bugs.result
Normal file
@ -0,0 +1,13 @@
|
||||
#
|
||||
# MDEV-23656 view: removal of parentheses results in wrong result
|
||||
#
|
||||
create table t1 (a int, b decimal(10,2));
|
||||
insert into t1 values (1, 10.2);
|
||||
create view v1 as select avg(b) / (2 + a) from t1;
|
||||
show create view v1;
|
||||
View v1
|
||||
Create View CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select avg(`t1`.`b`) / (2 + `t1`.`a`) AS `avg(b) / (2 + a)` from `t1`
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
drop view v1;
|
||||
drop table t1;
|
10
mysql-test/t/precedence_bugs.test
Normal file
10
mysql-test/t/precedence_bugs.test
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-23656 view: removal of parentheses results in wrong result
|
||||
--echo #
|
||||
create table t1 (a int, b decimal(10,2));
|
||||
insert into t1 values (1, 10.2);
|
||||
create view v1 as select avg(b) / (2 + a) from t1;
|
||||
query_vertical show create view v1;
|
||||
drop view v1;
|
||||
drop table t1;
|
@ -4541,7 +4541,11 @@ public:
|
||||
{
|
||||
(*ref)->restore_to_before_no_rows_in_result();
|
||||
}
|
||||
virtual void print(String *str, enum_query_type query_type);
|
||||
void print(String *str, enum_query_type query_type);
|
||||
enum precedence precedence() const
|
||||
{
|
||||
return ref ? (*ref)->precedence() : DEFAULT_PRECEDENCE;
|
||||
}
|
||||
void cleanup();
|
||||
Item_field *field_for_view_update()
|
||||
{ return (*ref)->field_for_view_update(); }
|
||||
|
Reference in New Issue
Block a user