Visitar URL original
Dev/allancascante/sync release 180.140.0 by allancascante · Pull Request #234 · microsoft/SqlScriptDOM · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Apply join newline formatting to APPLY and CROSS JOIN
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
  • Loading branch information
acascante_microsoft and Copilot committed Oct 12, 2026
commit 17094a594541d8dfee826d9dabb83b4c81bb06be
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,14 @@ public override void ExplicitVisit(UnqualifiedJoin node)
{
GenerateFragmentIfNotNull(node.FirstTableReference);

GenerateNewLineOrSpace(_options.NewLineBeforeJoinClause);

// Emit any pending gap comments before JOIN keywords
EmitPendingGapComments();

List<TokenGenerator> generators = GetValueForEnumKey(_unqualifiedJoinTypeGenerators, node.UnqualifiedJoinType);
if (generators != null)
{
GenerateSpace();
GenerateTokenList(generators);
}

Expand Down
9 changes: 5 additions & 4 deletions Test/SqlDom/Baselines110/OffsetClause.sql
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,11 @@ ORDER BY a
OFFSET (sum(5)) ROWS FETCH NEXT 6 ROWS ONLY;

SELECT *
FROM t1 CROSS APPLY (SELECT *
FROM sys.objects
ORDER BY 1
OFFSET offset ROWS FETCH NEXT first ROWS ONLY) AS t1;
FROM t1
CROSS APPLY (SELECT *
FROM sys.objects
ORDER BY 1
OFFSET offset ROWS FETCH NEXT first ROWS ONLY) AS t1;

INSERT INTO t
SELECT *
Expand Down
17 changes: 11 additions & 6 deletions Test/SqlDom/Baselines130/FromClauseTests130.sql
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ SELECT *
FROM OPENJSON (@var, N'$') WITH (a INT, b VARCHAR (400), c NVARCHAR (MAX) COLLATE Latin1_General_Bin2 N'$.b.c');

SELECT *
FROM Orders CROSS APPLY OPENJSON (Orders.Data, N'$.orderLineItems') WITH (ProductId VARCHAR (200) N'$.productId');
FROM Orders
CROSS APPLY OPENJSON (Orders.Data, N'$.orderLineItems') WITH (ProductId VARCHAR (200) N'$.productId');

SELECT *
FROM OPENJSON (col, N'$') WITH (a INT, b VARCHAR (400), c NVARCHAR (MAX) COLLATE Latin1_General_Bin2 N'$.b.c');
Expand Down Expand Up @@ -58,19 +59,23 @@ SELECT *
FROM string_split (NULL, N',');

SELECT t2.value
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-') AS t1 CROSS APPLY String_Split (t1.value, ' ') AS t2;
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-') AS t1
CROSS APPLY String_Split (t1.value, ' ') AS t2;

SELECT t2.ordinal
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-', 1) AS t1 CROSS APPLY String_Split (t1.ordinal, ' ') AS t2;
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-', 1) AS t1
CROSS APPLY String_Split (t1.ordinal, ' ') AS t2;

SELECT value
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col) CROSS APPLY STRING_SPLIT (col, ',');
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col)
CROSS APPLY STRING_SPLIT (col, ',');

SELECT ordinal
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col) CROSS APPLY STRING_SPLIT (col, ',', 1);
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col)
CROSS APPLY STRING_SPLIT (col, ',', 1);

SELECT *
FROM [STRING_SPLIT] (@var, @sep);

SELECT *
FROM "STRING_SPLIT" (@var, @sep);
FROM "STRING_SPLIT" (@var, @sep);
12 changes: 8 additions & 4 deletions Test/SqlDom/Baselines150/FromClauseTests150.sql
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,20 @@ SELECT ordinal
FROM STRING_SPLIT (N'Lorem ipsum dolor sit amet.', N' ', 1);

SELECT t2.value
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-', 0) AS t1 CROSS APPLY String_Split (t1.value, ' ') AS t2;
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-', 0) AS t1
CROSS APPLY String_Split (t1.value, ' ') AS t2;

SELECT t2.ordinal
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-', 1) AS t1 CROSS APPLY String_Split (t1.ordinal, ' ') AS t2;
FROM String_Split ('Lorem-ipsum dolor-sit amet.', '-', 1) AS t1
CROSS APPLY String_Split (t1.ordinal, ' ') AS t2;

SELECT value
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col) CROSS APPLY STRING_SPLIT (col, ',', 0);
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col)
CROSS APPLY STRING_SPLIT (col, ',', 0);

SELECT ordinal
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col) CROSS APPLY STRING_SPLIT (col, ',', 1);
FROM (VALUES ('Lorem ipsum'), ('dolor sit amet.')) AS x(col)
CROSS APPLY STRING_SPLIT (col, ',', 1);

SELECT *
FROM CHANGETABLE(CHANGES t1, 10, FORCESEEK) AS a;
Expand Down
24 changes: 16 additions & 8 deletions Test/SqlDom/Baselines170/AiGenerateChunksTests170.sql
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,16 @@ SELECT *
FROM AI_GENERATE_CHUNKS (SOURCE = NULL, CHUNK_TYPE = fixed, CHUNK_SIZE = 5);

SELECT *
FROM t1 CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = t1.c1, CHUNK_TYPE = fixed, CHUNK_SIZE = 10);
FROM t1
CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = t1.c1, CHUNK_TYPE = fixed, CHUNK_SIZE = 10);

SELECT *
FROM t1 CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = 'some text', CHUNK_TYPE = fixed, CHUNK_SIZE = t1.c1);
FROM t1
CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = 'some text', CHUNK_TYPE = fixed, CHUNK_SIZE = t1.c1);

SELECT *
FROM t1 CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = 'some text', CHUNK_TYPE = fixed, CHUNK_SIZE = 10, OVERLAP = t1.c1);
FROM t1
CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = 'some text', CHUNK_TYPE = fixed, CHUNK_SIZE = 10, OVERLAP = t1.c1);

SELECT *
FROM AI_GENERATE_CHUNKS (SOURCE = N'some text', CHUNK_TYPE = fixed, CHUNK_SIZE = NULL);
Expand All @@ -53,7 +56,8 @@ CREATE VIEW v_GeneratedChunksFromTable
AS
SELECT t2.Id,
chunks.*
FROM t2 CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = t2.Text, CHUNK_TYPE = fixed, CHUNK_SIZE = 5) AS chunks;
FROM t2
CROSS APPLY AI_GENERATE_CHUNKS (SOURCE = t2.Text, CHUNK_TYPE = fixed, CHUNK_SIZE = 5) AS chunks;
GO

CREATE PROCEDURE usp_GenerateChunks
Expand All @@ -79,17 +83,21 @@ CREATE TABLE dbo.AI_GENERATE_CHUNKS (
);

SELECT SOURCE
FROM userTable CROSS APPLY dbo.AI_GENERATE_CHUNKS(target);
FROM userTable
CROSS APPLY dbo.AI_GENERATE_CHUNKS(target);

SELECT SOURCE
FROM userTable CROSS APPLY dbo.[AI_GENERATE_CHUNKS](SOURCE);
FROM userTable
CROSS APPLY dbo.[AI_GENERATE_CHUNKS](SOURCE);


SELECT SOURCE
FROM userTable CROSS APPLY dbo.AI_GENERATE_CHUNKS([SOURCE]);
FROM userTable
CROSS APPLY dbo.AI_GENERATE_CHUNKS([SOURCE]);

SELECT SOURCE
FROM userTable CROSS APPLY dbo.[AI_GENERATE_CHUNKS]([SOURCE]);
FROM userTable
CROSS APPLY dbo.[AI_GENERATE_CHUNKS]([SOURCE]);

SELECT *
FROM dbo.AI_GENERATE_CHUNKS(3);
83 changes: 46 additions & 37 deletions Test/SqlDom/Baselines170/ComplexQueryTests170.sql
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
SELECT 139 AS [p_1_0]
FROM ([dbo].[table_0] AS [alias_1_0] CROSS JOIN (([dbo].[table_6] AS [alias_1_4]
RIGHT OUTER JOIN
[dbo].[table_3] AS [alias_1_5]
ON [alias_1_4].[c_19] = CAST ('[-6.464173E+08,1.040823E+07,1.699169E+08]' AS VECTOR(3)))));
FROM ([dbo].[table_0] AS [alias_1_0]
CROSS JOIN (([dbo].[table_6] AS [alias_1_4]
RIGHT OUTER JOIN
[dbo].[table_3] AS [alias_1_5]
ON [alias_1_4].[c_19] = CAST ('[-6.464173E+08,1.040823E+07,1.699169E+08]' AS VECTOR(3)))));

SELECT CAST ('test' AS VECTOR(3, Float32));

Expand All @@ -15,52 +16,60 @@ SELECT 1
WHERE col IN (SELECT CAST ('test' AS VECTOR(3, Float32)));

SELECT CAST ($492050157978986.2129 AS MONEY) AS [p_0_0]
FROM ([dbo].[table_6] AS [alias_0_0] CROSS JOIN [dbo].[table_4] AS [alias_0_1])
FROM ([dbo].[table_6] AS [alias_0_0]
CROSS JOIN [dbo].[table_4] AS [alias_0_1])
WHERE (NOT (SYSDATETIME() IN (SELECT 139 AS [p_1_0]
FROM ([dbo].[table_0] AS [alias_1_0] CROSS JOIN ([dbo].[table_6] AS [alias_1_1]
LEFT OUTER JOIN
([dbo].[table_6] AS [alias_1_2]
INNER JOIN
([dbo].[table_5] AS [alias_1_3] CROSS APPLY ([dbo].[table_6] AS [alias_1_4]
RIGHT OUTER JOIN
[dbo].[table_3] AS [alias_1_5]
ON [alias_1_4].[c_19] = CAST ('[-6.464173E+08,1.040823E+07,1.699169E+08]' AS VECTOR(3, Float32))))
ON [alias_1_2].[c_14] = [alias_1_3].[c_13])
ON [alias_1_1].[c_1] = CONVERT (VECTOR(77), '[-7.230808E+08,4.075427E+08]'))))
FROM ([dbo].[table_0] AS [alias_1_0]
CROSS JOIN ([dbo].[table_6] AS [alias_1_1]
LEFT OUTER JOIN
([dbo].[table_6] AS [alias_1_2]
INNER JOIN
([dbo].[table_5] AS [alias_1_3]
CROSS APPLY ([dbo].[table_6] AS [alias_1_4]
RIGHT OUTER JOIN
[dbo].[table_3] AS [alias_1_5]
ON [alias_1_4].[c_19] = CAST ('[-6.464173E+08,1.040823E+07,1.699169E+08]' AS VECTOR(3, Float32))))
ON [alias_1_2].[c_14] = [alias_1_3].[c_13])
ON [alias_1_1].[c_1] = CONVERT (VECTOR(77), '[-7.230808E+08,4.075427E+08]'))))
OR (CONVERT (BIGINT, CONVERT (INT, 8)) >= 157)
OR (140 <= 19)));

SELECT CAST ($492050157978986.2129 AS MONEY) AS [p_0_0]
FROM ([dbo].[table_6] AS [alias_0_0] CROSS JOIN [dbo].[table_4] AS [alias_0_1])
FROM ([dbo].[table_6] AS [alias_0_0]
CROSS JOIN [dbo].[table_4] AS [alias_0_1])
WHERE (NOT (SYSDATETIME() IN (SELECT 139 AS [p_1_0]
FROM ([dbo].[table_0] AS [alias_1_0] CROSS JOIN ([dbo].[table_6] AS [alias_1_1]
LEFT OUTER JOIN
([dbo].[table_6] AS [alias_1_2]
INNER JOIN
([dbo].[table_5] AS [alias_1_3] CROSS APPLY ([dbo].[table_6] AS [alias_1_4]
RIGHT OUTER JOIN
[dbo].[table_3] AS [alias_1_5]
ON [alias_1_4].[c_19] = CAST ('[-6.464173E+08,1.040823E+07,1.699169E+08]' AS VECTOR(3))))
ON [alias_1_2].[c_14] = [alias_1_3].[c_13])
ON [alias_1_1].[c_1] = CONVERT (VECTOR(77), '[-7.230808E+08,4.075427E+08]'))))
FROM ([dbo].[table_0] AS [alias_1_0]
CROSS JOIN ([dbo].[table_6] AS [alias_1_1]
LEFT OUTER JOIN
([dbo].[table_6] AS [alias_1_2]
INNER JOIN
([dbo].[table_5] AS [alias_1_3]
CROSS APPLY ([dbo].[table_6] AS [alias_1_4]
RIGHT OUTER JOIN
[dbo].[table_3] AS [alias_1_5]
ON [alias_1_4].[c_19] = CAST ('[-6.464173E+08,1.040823E+07,1.699169E+08]' AS VECTOR(3))))
ON [alias_1_2].[c_14] = [alias_1_3].[c_13])
ON [alias_1_1].[c_1] = CONVERT (VECTOR(77), '[-7.230808E+08,4.075427E+08]'))))
OR (CONVERT (BIGINT, CONVERT (INT, 8)) >= 157)
OR (140 <= 19)));

SELECT TOP 100 t1.order_id,
t1.customer_id,
t2.product_name,
t3.category_name
FROM ([dbo].[orders] AS t1 CROSS JOIN ([dbo].[order_items] AS t2
LEFT OUTER JOIN
([dbo].[products] AS t3
INNER JOIN
([dbo].[categories] AS t4 CROSS APPLY ([dbo].[suppliers] AS t5
RIGHT OUTER JOIN
[dbo].[regions] AS t6
ON t5.region_id = t6.id
AND t5.active = 1))
ON t3.category_id = t4.id)
ON t2.product_id = t3.id))
FROM ([dbo].[orders] AS t1
CROSS JOIN ([dbo].[order_items] AS t2
LEFT OUTER JOIN
([dbo].[products] AS t3
INNER JOIN
([dbo].[categories] AS t4
CROSS APPLY ([dbo].[suppliers] AS t5
RIGHT OUTER JOIN
[dbo].[regions] AS t6
ON t5.region_id = t6.id
AND t5.active = 1))
ON t3.category_id = t4.id)
ON t2.product_id = t3.id))
WHERE (t1.order_date >= '2025-01-01'
AND t2.quantity > 0
AND EXISTS (SELECT 1
Expand Down
60 changes: 32 additions & 28 deletions Test/SqlDom/Baselines170/VectorSearchApproximateTests170.sql
Original file line number Diff line number Diff line change
@@ -1,41 +1,44 @@
SELECT TOP 10 WITH APPROXIMATE qt.qid,
src.id,
ann.distance
FROM QueryTable AS qt CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
FROM QueryTable AS qt
CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
ORDER BY ann.distance;


GO
SELECT TOP 10 WITH APPROXIMATE qt.qid,
src.id,
ann.distance
FROM QueryTable AS qt CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
FROM QueryTable AS qt
CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
ORDER BY ann.distance;


GO
SELECT qt.qid,
src.id,
ann.distance
FROM QueryTable AS qt CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
FROM QueryTable AS qt
CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
ORDER BY ann.distance
FETCH APPROXIMATE NEXT 10 ROWS ONLY;

Expand All @@ -44,12 +47,13 @@ GO
SELECT qt.qid,
src.id,
ann.distance
FROM QueryTable AS qt CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
FROM QueryTable AS qt
CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = 10
) AS ann
ORDER BY ann.distance
FETCH APPROXIMATE NEXT 10 ROWS ONLY;
15 changes: 8 additions & 7 deletions Test/SqlDom/Baselines170/VectorSearchCrossApplyTests170.sql
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ DECLARE @qv AS VECTOR(1536);
SELECT qt.qid,
src.id,
ann.distance
FROM QueryTable AS qt CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = dbo.qt.top_n
) AS ann;
FROM QueryTable AS qt
CROSS APPLY VECTOR_SEARCH(
TABLE = graphnode AS src,
COLUMN = embedding,
SIMILAR_TO = qt.qembedding,
METRIC = 'euclidean',
TOP_N = dbo.qt.top_n
) AS ann;
9 changes: 6 additions & 3 deletions Test/SqlDom/Baselines90/FromClauseTests90.sql
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ FROM t1 AS table1 TABLESAMPLE (12 + 3 ROWS);

GO
SELECT *
FROM master..sysprocesses AS p CROSS APPLY ::fn_get_sql (p.sql_handle);
FROM master..sysprocesses AS p
CROSS APPLY ::fn_get_sql (p.sql_handle);

SELECT *
FROM ::f1 (a.b * (12 + 20));
Expand Down Expand Up @@ -61,7 +62,8 @@ FROM st PIVOT (AVG (.st.StandardCost) FOR st.DaysToManufacture IN ([0], [1])) AS

GO
SELECT *
FROM t1 PIVOT (dbo.f (c1) FOR [if] IN (a)) AS PTable CROSS JOIN t2 UNPIVOT (c2 FOR T2 IN ([a], b)) AS UPTable;
FROM t1 PIVOT (dbo.f (c1) FOR [if] IN (a)) AS PTable
CROSS JOIN t2 UNPIVOT (c2 FOR T2 IN ([a], b)) AS UPTable;

SELECT *
FROM t1
Expand All @@ -73,7 +75,8 @@ FROM t1
ON t1.c1 = t10.c1 PIVOT (dbo.f (c1) FOR [if] IN (a)) AS PTable;

SELECT *
FROM t1 CROSS APPLY t2 UNPIVOT (q FOR n IN (t1.c0, c1)) AS a;
FROM t1
CROSS APPLY t2 UNPIVOT (q FOR n IN (t1.c0, c1)) AS a;

SELECT *
FROM (SELECT *
Expand Down
Loading