SET sql_mode=MSSQL;

--echo #
--echo # Start of 10.4 tests
--echo #

--echo #
--echo # MDEV-19142 sql_mode=MSSQL: Bracket identifiers
--echo #

# Brackets inside bracket identifiers:
# - When we want a left bracket inside a bracket identifier,
#   we just add a single left bracket: [
# - When we want a right bracket inside a bracket identifier,
#   we add two right brackets: ]]


SELECT 'test' AS [[];
SELECT 'test' AS []]];
SELECT 'test' AS [[a]]];

# Backslash has no special meaning
SELECT 'test' AS [\n];


CREATE TABLE [t 1] ([a b] INT);
SHOW CREATE TABLE [t 1];
INSERT INTO [t 1] VALUES (10);
SELECT [a b] FROM [t 1];
SELECT [a b] [a b alias] FROM [t 1] [t 1 alias];
SELECT [a b] FROM [test].[t 1];
SELECT [a b], COUNT(*) FROM [t 1] GROUP BY [a b];
SELECT [a b], COUNT(*) FROM [t 1] GROUP BY [a b] HAVING [a b]>0;
DROP TABLE [t 1];

CREATE TABLE [t[1]]] (a INT);
SHOW CREATE TABLE [t[1]]];
DROP TABLE [t[1]]];

CREATE TABLE [t 1] ([a b] INT);
CREATE VIEW [v 1] AS SELECT [a b] FROM [t 1];
SHOW CREATE VIEW [v 1];
SELECT * FROM [v 1];
DROP VIEW [v 1];
DROP TABLE [t 1];

DELIMITER $$;
CREATE PROCEDURE [p 1]()
BEGIN
  SELECT 'test' [a b];
END;
$$
DELIMITER ;$$
SHOW CREATE PROCEDURE [p 1];
CALL [p 1];
DROP PROCEDURE [p 1];

CREATE TABLE [t1] ([a] INT);
INSERT INTO t1 VALUES (10);
PREPARE [stmt] FROM 'SELECT [a] FROM [test].[t1]';
EXECUTE [stmt];
DEALLOCATE PREPARE [stmt];
EXECUTE IMMEDIATE 'SELECT [a] FROM [test].[t1]';
DROP TABLE [t1];

--echo #
--echo # End of 10.4 tests
--echo #
