bugfix: lnnvl raw expr printer
This commit is contained in:
@ -2923,7 +2923,11 @@ int ObRawExprPrinter::print(ObSysFunRawExpr *expr)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case T_FUN_SYS_LNNVL: {
|
case T_FUN_SYS_LNNVL: {
|
||||||
|
if (lib::is_oracle_mode()) {
|
||||||
DATA_PRINTF("(%.*s", LEN_AND_PTR(func_name));
|
DATA_PRINTF("(%.*s", LEN_AND_PTR(func_name));
|
||||||
|
} else {
|
||||||
|
DATA_PRINTF("%.*s(", LEN_AND_PTR(func_name));
|
||||||
|
}
|
||||||
if (1 != expr->get_param_count()) {
|
if (1 != expr->get_param_count()) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("param count should be equal 1", K(ret), K(expr->get_param_count()));
|
LOG_WARN("param count should be equal 1", K(ret), K(expr->get_param_count()));
|
||||||
|
|||||||
@ -35,3 +35,26 @@ select lnnvl('abc') from dual;
|
|||||||
| 1 |
|
| 1 |
|
||||||
+--------------+
|
+--------------+
|
||||||
|
|
||||||
|
drop view if exists v1;
|
||||||
|
create view v1 as select lnnvl(1) from dual;
|
||||||
|
show create view v1;
|
||||||
|
View Create View character_set_client collation_connection
|
||||||
|
v1 CREATE VIEW `v1` AS select lnnvl(1) AS `lnnvl(1)` utf8mb4 utf8mb4_general_ci
|
||||||
|
explain select * from v1;
|
||||||
|
Query Plan
|
||||||
|
==========================================
|
||||||
|
|ID|OPERATOR |NAME|EST.ROWS|EST.TIME(us)|
|
||||||
|
------------------------------------------
|
||||||
|
|0 |EXPRESSION| |1 |1 |
|
||||||
|
==========================================
|
||||||
|
Outputs & filters:
|
||||||
|
-------------------------------------
|
||||||
|
0 - output([lnnvl(cast(1, TINYINT(-1, 0)))]), filter(nil)
|
||||||
|
values({lnnvl(cast(1, TINYINT(-1, 0)))})
|
||||||
|
select * from v1;
|
||||||
|
+----------+
|
||||||
|
| lnnvl(1) |
|
||||||
|
+----------+
|
||||||
|
| 0 |
|
||||||
|
+----------+
|
||||||
|
drop view v1;
|
||||||
|
|||||||
@ -19,5 +19,14 @@ select lnnvl(0) from dual;
|
|||||||
select lnnvl(NULL) from dual;
|
select lnnvl(NULL) from dual;
|
||||||
select lnnvl('abc') from dual;
|
select lnnvl('abc') from dual;
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
drop view if exists v1;
|
||||||
|
--enable_warnings
|
||||||
|
create view v1 as select lnnvl(1) from dual;
|
||||||
|
show create view v1;
|
||||||
|
explain select * from v1;
|
||||||
|
select * from v1;
|
||||||
|
drop view v1;
|
||||||
|
|
||||||
connection syscon;
|
connection syscon;
|
||||||
--sleep 2
|
--sleep 2
|
||||||
|
|||||||
Reference in New Issue
Block a user