403Webshell
Server IP : 49.212.180.16  /  Your IP : 18.218.99.99
Web Server : Apache
System : FreeBSD www2606.sakura.ne.jp 13.0-RELEASE-p14 FreeBSD 13.0-RELEASE-p14 #2: Mon Dec 9 13:54:55 JST 2024 root@www5301.sakura.ne.jp:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
User : utannto ( 1076)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/rs/mysql/5.1/mysql-test/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/rs/mysql/5.1/mysql-test/t/view_alias.test
--echo #
--echo # Bug#40277 SHOW CREATE VIEW returns invalid SQL
--echo # Bug#41999 SHOW CREATE VIEW returns invalid SQL if subquery is used in SELECT list
--echo #

--echo # 65 characters exceed the maximum length of a column identifier. The system cannot derive the name from statement.
--echo #    Constant with length = 65 . Expect to get the identifier 'Name_exp_1'.
let $after_select= '<--- 65 char including the arrows                            --->';
--source include/view_alias.inc
--echo #    Subquery with length = 65 . Expect to get the identifier 'Name_exp_1'.
--echo #    Attention: Identifier for the column within the subquery will be not generated.
let $after_select=  (SELECT '<--- 54 char including the arrows (+ 11 outside)   -->');
--source include/view_alias.inc
--echo # -----------------------------------------------------------------------------------------------------------------
#
--echo # 64 characters are the maximum length of a column identifier. The system can derive the name from the statement.
let $after_select= '<--- 64 char including the arrows                           --->';
--source include/view_alias.inc
let $after_select=  (SELECT '<--- 53 char including the arrows (+ 11 outside) --->');
--source include/view_alias.inc
--echo # -----------------------------------------------------------------------------------------------------------------
#
--echo # Identifiers must not have trailing spaces. The system cannot derive the name from a constant with trailing space.
--echo # Generated identifiers have at their end the position within the select column list.
--echo # 'c2 ' -> 'Name_exp_1' , ' c4 ' -> 'Name_exp_2'
let $after_select= 'c1', 'c2 ', ' c3', ' c4 ';
--source include/view_alias.inc

--echo #
--echo # Bug#40277 SHOW CREATE VIEW returns invalid SQL
--echo #

--disable_warnings
DROP VIEW IF EXISTS v1;
DROP TABLE IF EXISTS t1,t2;
--enable_warnings

--echo # Column name exceeds the maximum length.
CREATE VIEW v1 AS SELECT '0000000000 1111111111 2222222222 3333333333 4444444444 5555555555';
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`;
DROP VIEW v1;
eval CREATE VIEW v1 AS $query;
DROP VIEW v1;

--echo # Column names with leading trailing spaces.
CREATE VIEW v1 AS SELECT 'c1', 'c2 ', ' c3', ' c4 ';
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`;
DROP VIEW v1;
eval CREATE VIEW v1 AS $query;
DROP VIEW v1;

--echo # Column name conflicts with a auto-generated one.
CREATE VIEW v1 AS SELECT 'c1', 'c2 ', ' c3', ' c4 ', 'Name_exp_2';
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`;
DROP VIEW v1;
eval CREATE VIEW v1 AS $query;
DROP VIEW v1;

--echo # Invalid conlumn name in subquery.
CREATE VIEW v1 AS SELECT (SELECT ' c1 ');
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`;
DROP VIEW v1;
eval CREATE VIEW v1 AS $query;
DROP VIEW v1;

CREATE TABLE t1(a INT);
CREATE TABLE t2 LIKE t1;

--echo # Test alias in subquery
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT 1 FROM t2 AS b WHERE b.a = 0);
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`;
DROP VIEW v1;
eval CREATE VIEW v1 AS $query;
DROP VIEW v1;

--echo # Test column alias in subquery
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT a AS alias FROM t1 GROUP BY alias);
SHOW CREATE VIEW v1;
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`;
DROP VIEW v1;
eval CREATE VIEW v1 AS $query;
DROP VIEW v1;

--echo # Alias as the expression column name.
CREATE VIEW v1 AS SELECT a FROM t1 WHERE EXISTS (SELECT '  a   ' AS alias FROM t1 GROUP BY alias);
SHOW CREATE VIEW v1;
let $query = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`;
DROP VIEW v1;
eval CREATE VIEW v1 AS $query;
DROP VIEW v1;

DROP TABLE t1, t2;

Youez - 2016 - github.com/yon3zu
LinuXploit