Fix for BUG#24293: '\Z' token is not handled correctly in views.
If SELECT-part of CREATE VIEW statement contains '\Z', it is not handled correctly. The problem was in String::print(). Symbol with code 032 (26) is replaced with '\z', which is not supported by the lexer. The fix is to replace the symbol with '\Z'.
This commit is contained in:
parent
7696592b09
commit
ba7a03759b
@ -3014,4 +3014,13 @@ i j
|
||||
6 3
|
||||
DROP VIEW v1, v2;
|
||||
DROP TABLE t1;
|
||||
DROP VIEW IF EXISTS v1;
|
||||
CREATE VIEW v1 AS SELECT 'The\ZEnd';
|
||||
SELECT * FROM v1;
|
||||
TheEnd
|
||||
TheEnd
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select _latin1'The\ZEnd' AS `TheEnd`
|
||||
DROP VIEW v1;
|
||||
End of 5.0 tests.
|
||||
|
@ -2960,4 +2960,19 @@ DROP VIEW v1, v2;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# BUG#24293: '\Z' token is not handled correctly in views
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP VIEW IF EXISTS v1;
|
||||
--enable_warnings
|
||||
|
||||
CREATE VIEW v1 AS SELECT 'The\ZEnd';
|
||||
SELECT * FROM v1;
|
||||
|
||||
SHOW CREATE VIEW v1;
|
||||
|
||||
DROP VIEW v1;
|
||||
|
||||
--echo End of 5.0 tests.
|
||||
|
@ -1033,8 +1033,8 @@ void String::print(String *str)
|
||||
case '\r':
|
||||
str->append(STRING_WITH_LEN("\\r"));
|
||||
break;
|
||||
case 26: //Ctrl-Z
|
||||
str->append(STRING_WITH_LEN("\\z"));
|
||||
case '\032': // Ctrl-Z
|
||||
str->append(STRING_WITH_LEN("\\Z"));
|
||||
break;
|
||||
default:
|
||||
str->append(c);
|
||||
|
Loading…
x
Reference in New Issue
Block a user