Adding upstream version 26.12.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
aa70b5e889
commit
4118582692
70 changed files with 1134 additions and 340 deletions
|
@ -133,12 +133,25 @@ class TestTSQL(Validator):
|
|||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"WITH t(c) AS (SELECT 1) SELECT * INTO TEMP UNLOGGED foo FROM (SELECT c AS c FROM t) AS temp",
|
||||
"WITH t(c) AS (SELECT 1) SELECT * INTO UNLOGGED #foo FROM (SELECT c AS c FROM t) AS temp",
|
||||
write={
|
||||
"duckdb": "CREATE TEMPORARY TABLE foo AS WITH t(c) AS (SELECT 1) SELECT * FROM (SELECT c AS c FROM t) AS temp",
|
||||
"postgres": "WITH t(c) AS (SELECT 1) SELECT * INTO TEMPORARY foo FROM (SELECT c AS c FROM t) AS temp",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"WITH t(c) AS (SELECT 1) SELECT c INTO #foo FROM t",
|
||||
read={
|
||||
"tsql": "WITH t(c) AS (SELECT 1) SELECT c INTO #foo FROM t",
|
||||
"postgres": "WITH t(c) AS (SELECT 1) SELECT c INTO TEMPORARY foo FROM t",
|
||||
},
|
||||
write={
|
||||
"tsql": "WITH t(c) AS (SELECT 1) SELECT c INTO #foo FROM t",
|
||||
"postgres": "WITH t(c) AS (SELECT 1) SELECT c INTO TEMPORARY foo FROM t",
|
||||
"duckdb": "CREATE TEMPORARY TABLE foo AS WITH t(c) AS (SELECT 1) SELECT c FROM t",
|
||||
"snowflake": "CREATE TEMPORARY TABLE foo AS WITH t(c) AS (SELECT 1) SELECT c FROM t",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"WITH t(c) AS (SELECT 1) SELECT * INTO UNLOGGED foo FROM (SELECT c AS c FROM t) AS temp",
|
||||
write={
|
||||
|
@ -151,6 +164,13 @@ class TestTSQL(Validator):
|
|||
"duckdb": "CREATE TABLE foo AS WITH t(c) AS (SELECT 1) SELECT * FROM (SELECT c AS c FROM t) AS temp",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"WITH y AS (SELECT 2 AS c) INSERT INTO #t SELECT * FROM y",
|
||||
write={
|
||||
"duckdb": "WITH y AS (SELECT 2 AS c) INSERT INTO t SELECT * FROM y",
|
||||
"postgres": "WITH y AS (SELECT 2 AS c) INSERT INTO t SELECT * FROM y",
|
||||
},
|
||||
)
|
||||
self.validate_all(
|
||||
"WITH y AS (SELECT 2 AS c) INSERT INTO t SELECT * FROM y",
|
||||
read={
|
||||
|
@ -850,6 +870,9 @@ class TestTSQL(Validator):
|
|||
)
|
||||
|
||||
def test_ddl(self):
|
||||
for colstore in ("NONCLUSTERED COLUMNSTORE", "CLUSTERED COLUMNSTORE"):
|
||||
self.validate_identity(f"CREATE {colstore} INDEX index_name ON foo.bar")
|
||||
|
||||
for view_attr in ("ENCRYPTION", "SCHEMABINDING", "VIEW_METADATA"):
|
||||
self.validate_identity(f"CREATE VIEW a.b WITH {view_attr} AS SELECT * FROM x")
|
||||
|
||||
|
@ -871,19 +894,19 @@ class TestTSQL(Validator):
|
|||
|
||||
self.validate_identity("CREATE SCHEMA testSchema")
|
||||
self.validate_identity("CREATE VIEW t AS WITH cte AS (SELECT 1 AS c) SELECT c FROM cte")
|
||||
self.validate_identity("ALTER TABLE tbl SET SYSTEM_VERSIONING=OFF")
|
||||
self.validate_identity("ALTER TABLE tbl SET FILESTREAM_ON = 'test'")
|
||||
self.validate_identity("ALTER TABLE tbl SET DATA_DELETION=ON")
|
||||
self.validate_identity("ALTER TABLE tbl SET DATA_DELETION=OFF")
|
||||
self.validate_identity(
|
||||
"ALTER TABLE tbl SET SYSTEM_VERSIONING=ON(HISTORY_TABLE=db.tbl, DATA_CONSISTENCY_CHECK=OFF, HISTORY_RETENTION_PERIOD=5 DAYS)"
|
||||
)
|
||||
self.validate_identity(
|
||||
"ALTER TABLE tbl SET SYSTEM_VERSIONING=ON(HISTORY_TABLE=db.tbl, HISTORY_RETENTION_PERIOD=INFINITE)"
|
||||
)
|
||||
self.validate_identity("ALTER TABLE tbl SET SYSTEM_VERSIONING=OFF")
|
||||
self.validate_identity("ALTER TABLE tbl SET FILESTREAM_ON = 'test'")
|
||||
self.validate_identity(
|
||||
"ALTER TABLE tbl SET DATA_DELETION=ON(FILTER_COLUMN=col, RETENTION_PERIOD=5 MONTHS)"
|
||||
)
|
||||
self.validate_identity("ALTER TABLE tbl SET DATA_DELETION=ON")
|
||||
self.validate_identity("ALTER TABLE tbl SET DATA_DELETION=OFF")
|
||||
|
||||
self.validate_identity("ALTER VIEW v AS SELECT a, b, c, d FROM foo")
|
||||
self.validate_identity("ALTER VIEW v AS SELECT * FROM foo WHERE c > 100")
|
||||
|
@ -899,10 +922,44 @@ class TestTSQL(Validator):
|
|||
"ALTER VIEW v WITH VIEW_METADATA AS SELECT * FROM foo WHERE c > 100",
|
||||
check_command_warning=True,
|
||||
)
|
||||
self.validate_identity(
|
||||
"CREATE COLUMNSTORE INDEX index_name ON foo.bar",
|
||||
"CREATE NONCLUSTERED COLUMNSTORE INDEX index_name ON foo.bar",
|
||||
)
|
||||
self.validate_identity(
|
||||
"CREATE PROCEDURE foo AS BEGIN DELETE FROM bla WHERE foo < CURRENT_TIMESTAMP - 7 END",
|
||||
"CREATE PROCEDURE foo AS BEGIN DELETE FROM bla WHERE foo < GETDATE() - 7 END",
|
||||
)
|
||||
self.validate_identity(
|
||||
"INSERT INTO Production.UpdatedInventory SELECT ProductID, LocationID, NewQty, PreviousQty FROM (MERGE INTO Production.ProductInventory AS pi USING (SELECT ProductID, SUM(OrderQty) FROM Sales.SalesOrderDetail AS sod INNER JOIN Sales.SalesOrderHeader AS soh ON sod.SalesOrderID = soh.SalesOrderID AND soh.OrderDate BETWEEN '20030701' AND '20030731' GROUP BY ProductID) AS src(ProductID, OrderQty) ON pi.ProductID = src.ProductID WHEN MATCHED AND pi.Quantity - src.OrderQty >= 0 THEN UPDATE SET pi.Quantity = pi.Quantity - src.OrderQty WHEN MATCHED AND pi.Quantity - src.OrderQty <= 0 THEN DELETE OUTPUT $action, Inserted.ProductID, Inserted.LocationID, Inserted.Quantity AS NewQty, Deleted.Quantity AS PreviousQty) AS Changes(Action, ProductID, LocationID, NewQty, PreviousQty) WHERE Action = 'UPDATE'",
|
||||
"""INSERT INTO Production.UpdatedInventory
|
||||
SELECT
|
||||
ProductID,
|
||||
LocationID,
|
||||
NewQty,
|
||||
PreviousQty
|
||||
FROM (
|
||||
MERGE INTO Production.ProductInventory AS pi
|
||||
USING (
|
||||
SELECT
|
||||
ProductID,
|
||||
SUM(OrderQty)
|
||||
FROM Sales.SalesOrderDetail AS sod
|
||||
INNER JOIN Sales.SalesOrderHeader AS soh
|
||||
ON sod.SalesOrderID = soh.SalesOrderID
|
||||
AND soh.OrderDate BETWEEN '20030701' AND '20030731'
|
||||
GROUP BY
|
||||
ProductID
|
||||
) AS src(ProductID, OrderQty)
|
||||
ON pi.ProductID = src.ProductID
|
||||
WHEN MATCHED AND pi.Quantity - src.OrderQty >= 0 THEN UPDATE SET pi.Quantity = pi.Quantity - src.OrderQty
|
||||
WHEN MATCHED AND pi.Quantity - src.OrderQty <= 0 THEN DELETE
|
||||
OUTPUT $action, Inserted.ProductID, Inserted.LocationID, Inserted.Quantity AS NewQty, Deleted.Quantity AS PreviousQty
|
||||
) AS Changes(Action, ProductID, LocationID, NewQty, PreviousQty)
|
||||
WHERE
|
||||
Action = 'UPDATE'""",
|
||||
pretty=True,
|
||||
)
|
||||
|
||||
self.validate_all(
|
||||
"CREATE TABLE [#temptest] (name INTEGER)",
|
||||
|
@ -1003,14 +1060,6 @@ class TestTSQL(Validator):
|
|||
},
|
||||
)
|
||||
|
||||
for colstore in ("NONCLUSTERED COLUMNSTORE", "CLUSTERED COLUMNSTORE"):
|
||||
self.validate_identity(f"CREATE {colstore} INDEX index_name ON foo.bar")
|
||||
|
||||
self.validate_identity(
|
||||
"CREATE COLUMNSTORE INDEX index_name ON foo.bar",
|
||||
"CREATE NONCLUSTERED COLUMNSTORE INDEX index_name ON foo.bar",
|
||||
)
|
||||
|
||||
def test_insert_cte(self):
|
||||
self.validate_all(
|
||||
"INSERT INTO foo.bar WITH cte AS (SELECT 1 AS one) SELECT * FROM cte",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue