bugfix: substr expr get wrong result length

This commit is contained in:
obdev
2024-02-08 19:30:43 +00:00
committed by ob-robot
parent 426469c057
commit 626c5536f9
3 changed files with 47 additions and 1 deletions

View File

@ -173,3 +173,37 @@ select substr(3.14159, 2.1, 2.1) from dual;
+---------------------------+
| .1 |
+---------------------------+
select substr(1, 1, 9223372036854775807);
+-----------------------------------+
| substr(1, 1, 9223372036854775807) |
+-----------------------------------+
| 1 |
+-----------------------------------+
select substr(123, 2, 9223372036854775806);
+-------------------------------------+
| substr(123, 2, 9223372036854775806) |
+-------------------------------------+
| 23 |
+-------------------------------------+
drop view if exists v1;
create view v1 as select substr(123, 2, 9223372036854775807);
desc v1;
+-------------------------------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------------------+------------+------+-----+---------+-------+
| substr(123, 2, 9223372036854775807) | varchar(2) | NO | | | |
+-------------------------------------+------------+------+-----+---------+-------+
select * from v1;
+-------------------------------------+
| substr(123, 2, 9223372036854775807) |
+-------------------------------------+
| 23 |
+-------------------------------------+
drop view v1;
SELECT NULL ORDER BY SUBSTR ( 9223372036854775807 FROM @@ob_query_timeout FOR 9223372036854775807 );
+------+
| NULL |
+------+
| NULL |
+------+

View File

@ -47,5 +47,17 @@ select substr(3.14159, 2.9, 2.9) from dual;
select substr(3.14159, 2.1, 2.1) from dual;
--enable_warnings
# bug:
select substr(1, 1, 9223372036854775807);
select substr(123, 2, 9223372036854775806);
--disable_warnings
drop view if exists v1;
--enable_warnings
create view v1 as select substr(123, 2, 9223372036854775807);
desc v1;
select * from v1;
drop view v1;
SELECT NULL ORDER BY SUBSTR ( 9223372036854775807 FROM @@ob_query_timeout FOR 9223372036854775807 );
connection syscon;
--sleep 2