From 32a8f60d6d97b72b7ea86389e3c95222910f4e4c Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Wed, 19 Feb 2025 13:50:20 -0800 Subject: [PATCH 01/10] Add test cases for DB query parsing and sanitization --- docs/non-normative/db-test-cases.json | 315 ++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 docs/non-normative/db-test-cases.json diff --git a/docs/non-normative/db-test-cases.json b/docs/non-normative/db-test-cases.json new file mode 100644 index 0000000000..612588ddf5 --- /dev/null +++ b/docs/non-normative/db-test-cases.json @@ -0,0 +1,315 @@ +[ + { + "name": "numeric_literal_integers", + "sql": "SELECT 12, -12, +12", + "sanitized": [ + "SELECT ?, ?, ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "numeric_literal_with_decimal_point", + "sql": "SELECT 12.34, -12.34, +12.34, .01, -.01", + "sanitized": [ + "SELECT ?, ?, ?, ?, ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "numeric_literal_exponential", + "sql": "SELECT 12.34e56, -12.34e56, +12.34e56", + "sanitized": [ + "SELECT ?, ?, ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "numeric_literal_negative_exponential", + "sql": "SELECT 12.34e-56, -12.34e-56, +12.34e-56", + "sanitized": [ + "SELECT ?, ?, ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "arithmetic_on_numeric_literals", + "sql": "SELECT 99+100", + "sanitized": [ + "SELECT ??" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "hex_literal", + "sql": "SELECT 0xDEADBEEF, 0XdeadBEEF", + "sanitized": [ + "SELECT ?, ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "string_literal", + "sql": "SELECT 'hello'", + "sanitized": [ + "SELECT ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "string_literal_escaped_single_quote", + "sql": "SELECT 'My name''s not important'", + "sanitized": [ + "SELECT ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "string_with_embedded_newline", + "sql": "SELECT 'My name is \n not important'", + "sanitized": [ + "SELECT ?" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "numbers_in_identifiers", + "sql": "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=1234", + "sanitized": [ + "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=?" + ], + "summary": "SELECT covid19", + "operation": "SELECT", + "collection": "covid19", + "dialects": [ + "mssql" + ] + }, + { + "name": "periods_in_identifiers", + "sql": "SELECT a FROM dbo.Table JOIN dbo.AnotherTable", + "sanitized": [ + "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" + ], + "summary": "SELECT dbo.Table dbo.AnotherTable", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "insert_into", + "sql": "INSERT INTO X VALUES(1, 23456, 123.456, 99+100)", + "sanitized": [ + "INSERT INTO X VALUES(?, ?, ?, ??)" + ], + "summary": "INSERT X", + "operation": "INSERT", + "collection": "X", + "dialects": [ + "mssql" + ] + }, + { + "name": "uuid", + "sql": "SELECT { guid '01234567-89ab-cdef-0123-456789abcdef' }", + "sanitized": [ + "SELECT { guid ? }" + ], + "summary": "SELECT", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "in_clause", + "sql": "SELECT * FROM table WHERE value IN (123, 456, 'abc')", + "sanitized": [ + "SELECT * FROM table WHERE value IN (?)", + "SELECT * FROM table WHERE value IN (?, ?, ?)" + ], + "summary": "SELECT table", + "operation": "SELECT", + "collection": "table", + "dialects": [ + "mssql" + ] + }, + { + "name": "comments", + "sql": "SELECT column -- end of line comment\nFROM /* block \n comment */ table", + "sanitized": [ + "SELECT column \nFROM table" + ], + "summary": "SELECT table", + "operation": "SELECT", + "collection": "table", + "dialects": [ + "mssql" + ] + }, + { + "name": "insert_into_select", + "sql": "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = 1", + "sanitized": [ + "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = ?" + ], + "summary": "INSERT shipping_details SELECT orders", + "operation": null, + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "select_nested_query", + "sql": "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", + "sanitized": [ + "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" + ], + "summary": "SELECT SELECT orders customers", + "operation": null, + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "select_nested_query_case_preserved", + "sql": "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", + "sanitized": [ + "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" + ], + "summary": "SELEcT sELECT orders customers", + "operation": null, + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "case_preserved", + "sql": "SELEcT order_date\nFROM ORders", + "sanitized": [ + "SELEcT order_date\nFROM ORders" + ], + "summary": "SELEcT ORders", + "operation": "SELEcT", + "collection": "ORders", + "dialects": [ + "mssql" + ] + }, + { + "name": "cross_join", + "sql": "SELECT * FROM Orders o CROSS JOIN OrderDetails od", + "sanitized": [ + "SELECT * FROM Orders o CROSS JOIN OrderDetails od" + ], + "summary": "SELECT Orders OrderDetails", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "cross_join_comma_separated_syntax", + "sql": "SELECT * FROM Orders o, OrderDetails od", + "sanitized": [ + "SELECT * FROM Orders o, OrderDetails od" + ], + "summary": "SELECT Orders", + "operation": "SELECT", + "collection": null, + "dialects": [ + "mssql" + ] + }, + { + "name": "create_table", + "sql": "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(1,1) PRIMARY KEY\n)", + "sanitized": [ + "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" + ], + "summary": "CREATE TABLE MyTable", + "operation": "CREATE TABLE", + "collection": "MyTable", + "dialects": [ + "mssql" + ] + }, + { + "name": "alter_table", + "sql": "ALTER TABLE MyTable ADD Name varchar(255)", + "sanitized": [ + "ALTER TABLE MyTable ADD Name varchar(?)" + ], + "summary": "ALTER TABLE MyTable", + "operation": "ALTER TABLE", + "collection": "MyTable", + "dialects": [ + "mssql" + ] + }, + { + "name": "drop_table", + "sql": "DROP TABLE MyTable", + "sanitized": [ + "DROP TABLE MyTable" + ], + "summary": "DROP TABLE MyTable", + "operation": "DROP TABLE", + "collection": "MyTable", + "dialects": [ + "mssql" + ] + } +] From caf7bf1b3a7377228d6f787fab4ce500fb12faba Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Tue, 4 Mar 2025 10:57:02 -0800 Subject: [PATCH 02/10] Remove collection and operation --- docs/non-normative/db-test-cases.json | 48 --------------------------- 1 file changed, 48 deletions(-) diff --git a/docs/non-normative/db-test-cases.json b/docs/non-normative/db-test-cases.json index 612588ddf5..166ec91d5e 100644 --- a/docs/non-normative/db-test-cases.json +++ b/docs/non-normative/db-test-cases.json @@ -6,8 +6,6 @@ "SELECT ?, ?, ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -19,8 +17,6 @@ "SELECT ?, ?, ?, ?, ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -32,8 +28,6 @@ "SELECT ?, ?, ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -45,8 +39,6 @@ "SELECT ?, ?, ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -58,8 +50,6 @@ "SELECT ??" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -71,8 +61,6 @@ "SELECT ?, ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -84,8 +72,6 @@ "SELECT ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -97,8 +83,6 @@ "SELECT ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -110,8 +94,6 @@ "SELECT ?" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -123,8 +105,6 @@ "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=?" ], "summary": "SELECT covid19", - "operation": "SELECT", - "collection": "covid19", "dialects": [ "mssql" ] @@ -136,8 +116,6 @@ "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" ], "summary": "SELECT dbo.Table dbo.AnotherTable", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -149,8 +127,6 @@ "INSERT INTO X VALUES(?, ?, ?, ??)" ], "summary": "INSERT X", - "operation": "INSERT", - "collection": "X", "dialects": [ "mssql" ] @@ -162,8 +138,6 @@ "SELECT { guid ? }" ], "summary": "SELECT", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -176,8 +150,6 @@ "SELECT * FROM table WHERE value IN (?, ?, ?)" ], "summary": "SELECT table", - "operation": "SELECT", - "collection": "table", "dialects": [ "mssql" ] @@ -189,8 +161,6 @@ "SELECT column \nFROM table" ], "summary": "SELECT table", - "operation": "SELECT", - "collection": "table", "dialects": [ "mssql" ] @@ -202,8 +172,6 @@ "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = ?" ], "summary": "INSERT shipping_details SELECT orders", - "operation": null, - "collection": null, "dialects": [ "mssql" ] @@ -215,8 +183,6 @@ "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], "summary": "SELECT SELECT orders customers", - "operation": null, - "collection": null, "dialects": [ "mssql" ] @@ -228,8 +194,6 @@ "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], "summary": "SELEcT sELECT orders customers", - "operation": null, - "collection": null, "dialects": [ "mssql" ] @@ -241,8 +205,6 @@ "SELEcT order_date\nFROM ORders" ], "summary": "SELEcT ORders", - "operation": "SELEcT", - "collection": "ORders", "dialects": [ "mssql" ] @@ -254,8 +216,6 @@ "SELECT * FROM Orders o CROSS JOIN OrderDetails od" ], "summary": "SELECT Orders OrderDetails", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -267,8 +227,6 @@ "SELECT * FROM Orders o, OrderDetails od" ], "summary": "SELECT Orders", - "operation": "SELECT", - "collection": null, "dialects": [ "mssql" ] @@ -280,8 +238,6 @@ "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" ], "summary": "CREATE TABLE MyTable", - "operation": "CREATE TABLE", - "collection": "MyTable", "dialects": [ "mssql" ] @@ -293,8 +249,6 @@ "ALTER TABLE MyTable ADD Name varchar(?)" ], "summary": "ALTER TABLE MyTable", - "operation": "ALTER TABLE", - "collection": "MyTable", "dialects": [ "mssql" ] @@ -306,8 +260,6 @@ "DROP TABLE MyTable" ], "summary": "DROP TABLE MyTable", - "operation": "DROP TABLE", - "collection": "MyTable", "dialects": [ "mssql" ] From 9b00811e72047997906a0caf05ffe924ab7a1117 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Tue, 4 Mar 2025 10:57:46 -0800 Subject: [PATCH 03/10] Rename file --- docs/non-normative/{db-test-cases.json => db-sql-test-cases.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/non-normative/{db-test-cases.json => db-sql-test-cases.json} (100%) diff --git a/docs/non-normative/db-test-cases.json b/docs/non-normative/db-sql-test-cases.json similarity index 100% rename from docs/non-normative/db-test-cases.json rename to docs/non-normative/db-sql-test-cases.json From 9505a7673c08e3c66d1ddb40e6cce38753e67fd0 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Tue, 4 Mar 2025 11:54:26 -0800 Subject: [PATCH 04/10] Dialects -> db.system.name --- docs/non-normative/db-sql-test-cases.json | 144 ++++++++-------------- 1 file changed, 48 insertions(+), 96 deletions(-) diff --git a/docs/non-normative/db-sql-test-cases.json b/docs/non-normative/db-sql-test-cases.json index 166ec91d5e..121a208232 100644 --- a/docs/non-normative/db-sql-test-cases.json +++ b/docs/non-normative/db-sql-test-cases.json @@ -1,267 +1,219 @@ [ { "name": "numeric_literal_integers", + "db.system.name": "other_sql", "sql": "SELECT 12, -12, +12", "sanitized": [ "SELECT ?, ?, ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "numeric_literal_with_decimal_point", + "db.system.name": "other_sql", "sql": "SELECT 12.34, -12.34, +12.34, .01, -.01", "sanitized": [ "SELECT ?, ?, ?, ?, ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "numeric_literal_exponential", + "db.system.name": "other_sql", "sql": "SELECT 12.34e56, -12.34e56, +12.34e56", "sanitized": [ "SELECT ?, ?, ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "numeric_literal_negative_exponential", + "db.system.name": "other_sql", "sql": "SELECT 12.34e-56, -12.34e-56, +12.34e-56", "sanitized": [ "SELECT ?, ?, ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "arithmetic_on_numeric_literals", + "db.system.name": "other_sql", "sql": "SELECT 99+100", "sanitized": [ "SELECT ??" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "hex_literal", + "db.system.name": "other_sql", "sql": "SELECT 0xDEADBEEF, 0XdeadBEEF", "sanitized": [ "SELECT ?, ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "string_literal", + "db.system.name": "other_sql", "sql": "SELECT 'hello'", "sanitized": [ "SELECT ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "string_literal_escaped_single_quote", + "db.system.name": "other_sql", "sql": "SELECT 'My name''s not important'", "sanitized": [ "SELECT ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "string_with_embedded_newline", + "db.system.name": "other_sql", "sql": "SELECT 'My name is \n not important'", "sanitized": [ "SELECT ?" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "numbers_in_identifiers", + "db.system.name": "other_sql", "sql": "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=1234", "sanitized": [ "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=?" ], - "summary": "SELECT covid19", - "dialects": [ - "mssql" - ] + "summary": "SELECT covid19" }, { "name": "periods_in_identifiers", + "db.system.name": "other_sql", "sql": "SELECT a FROM dbo.Table JOIN dbo.AnotherTable", "sanitized": [ "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" ], - "summary": "SELECT dbo.Table dbo.AnotherTable", - "dialects": [ - "mssql" - ] + "summary": "SELECT dbo.Table dbo.AnotherTable" }, { "name": "insert_into", + "db.system.name": "other_sql", "sql": "INSERT INTO X VALUES(1, 23456, 123.456, 99+100)", "sanitized": [ "INSERT INTO X VALUES(?, ?, ?, ??)" ], - "summary": "INSERT X", - "dialects": [ - "mssql" - ] + "summary": "INSERT X" }, { "name": "uuid", + "db.system.name": "other_sql", "sql": "SELECT { guid '01234567-89ab-cdef-0123-456789abcdef' }", "sanitized": [ "SELECT { guid ? }" ], - "summary": "SELECT", - "dialects": [ - "mssql" - ] + "summary": "SELECT" }, { "name": "in_clause", + "db.system.name": "other_sql", "sql": "SELECT * FROM table WHERE value IN (123, 456, 'abc')", "sanitized": [ "SELECT * FROM table WHERE value IN (?)", "SELECT * FROM table WHERE value IN (?, ?, ?)" ], - "summary": "SELECT table", - "dialects": [ - "mssql" - ] + "summary": "SELECT table" }, { "name": "comments", + "db.system.name": "other_sql", "sql": "SELECT column -- end of line comment\nFROM /* block \n comment */ table", "sanitized": [ "SELECT column \nFROM table" ], - "summary": "SELECT table", - "dialects": [ - "mssql" - ] + "summary": "SELECT table" }, { "name": "insert_into_select", + "db.system.name": "other_sql", "sql": "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = 1", "sanitized": [ "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = ?" ], - "summary": "INSERT shipping_details SELECT orders", - "dialects": [ - "mssql" - ] + "summary": "INSERT shipping_details SELECT orders" }, { "name": "select_nested_query", + "db.system.name": "other_sql", "sql": "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", "sanitized": [ "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], - "summary": "SELECT SELECT orders customers", - "dialects": [ - "mssql" - ] + "summary": "SELECT SELECT orders customers" }, { "name": "select_nested_query_case_preserved", + "db.system.name": "other_sql", "sql": "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", "sanitized": [ "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], - "summary": "SELEcT sELECT orders customers", - "dialects": [ - "mssql" - ] + "summary": "SELEcT sELECT orders customers" }, { "name": "case_preserved", + "db.system.name": "other_sql", "sql": "SELEcT order_date\nFROM ORders", "sanitized": [ "SELEcT order_date\nFROM ORders" ], - "summary": "SELEcT ORders", - "dialects": [ - "mssql" - ] + "summary": "SELEcT ORders" }, { "name": "cross_join", + "db.system.name": "other_sql", "sql": "SELECT * FROM Orders o CROSS JOIN OrderDetails od", "sanitized": [ "SELECT * FROM Orders o CROSS JOIN OrderDetails od" ], - "summary": "SELECT Orders OrderDetails", - "dialects": [ - "mssql" - ] + "summary": "SELECT Orders OrderDetails" }, { "name": "cross_join_comma_separated_syntax", + "db.system.name": "other_sql", "sql": "SELECT * FROM Orders o, OrderDetails od", "sanitized": [ "SELECT * FROM Orders o, OrderDetails od" ], - "summary": "SELECT Orders", - "dialects": [ - "mssql" - ] + "summary": "SELECT Orders" }, { "name": "create_table", + "db.system.name": "other_sql", "sql": "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(1,1) PRIMARY KEY\n)", "sanitized": [ "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" ], - "summary": "CREATE TABLE MyTable", - "dialects": [ - "mssql" - ] + "summary": "CREATE TABLE MyTable" }, { "name": "alter_table", + "db.system.name": "other_sql", "sql": "ALTER TABLE MyTable ADD Name varchar(255)", "sanitized": [ "ALTER TABLE MyTable ADD Name varchar(?)" ], - "summary": "ALTER TABLE MyTable", - "dialects": [ - "mssql" - ] + "summary": "ALTER TABLE MyTable" }, { "name": "drop_table", + "db.system.name": "other_sql", "sql": "DROP TABLE MyTable", "sanitized": [ "DROP TABLE MyTable" ], - "summary": "DROP TABLE MyTable", - "dialects": [ - "mssql" - ] + "summary": "DROP TABLE MyTable" } ] From 3a467751bd36c2bea4085747ff0b848932ace756 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Tue, 4 Mar 2025 11:55:08 -0800 Subject: [PATCH 05/10] summary -> db.query.summary --- docs/non-normative/db-sql-test-cases.json | 48 +++++++++++------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/docs/non-normative/db-sql-test-cases.json b/docs/non-normative/db-sql-test-cases.json index 121a208232..6949f1b5c6 100644 --- a/docs/non-normative/db-sql-test-cases.json +++ b/docs/non-normative/db-sql-test-cases.json @@ -6,7 +6,7 @@ "sanitized": [ "SELECT ?, ?, ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "numeric_literal_with_decimal_point", @@ -15,7 +15,7 @@ "sanitized": [ "SELECT ?, ?, ?, ?, ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "numeric_literal_exponential", @@ -24,7 +24,7 @@ "sanitized": [ "SELECT ?, ?, ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "numeric_literal_negative_exponential", @@ -33,7 +33,7 @@ "sanitized": [ "SELECT ?, ?, ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "arithmetic_on_numeric_literals", @@ -42,7 +42,7 @@ "sanitized": [ "SELECT ??" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "hex_literal", @@ -51,7 +51,7 @@ "sanitized": [ "SELECT ?, ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "string_literal", @@ -60,7 +60,7 @@ "sanitized": [ "SELECT ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "string_literal_escaped_single_quote", @@ -69,7 +69,7 @@ "sanitized": [ "SELECT ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "string_with_embedded_newline", @@ -78,7 +78,7 @@ "sanitized": [ "SELECT ?" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "numbers_in_identifiers", @@ -87,7 +87,7 @@ "sanitized": [ "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=?" ], - "summary": "SELECT covid19" + "db.query.summary": "SELECT covid19" }, { "name": "periods_in_identifiers", @@ -96,7 +96,7 @@ "sanitized": [ "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" ], - "summary": "SELECT dbo.Table dbo.AnotherTable" + "db.query.summary": "SELECT dbo.Table dbo.AnotherTable" }, { "name": "insert_into", @@ -105,7 +105,7 @@ "sanitized": [ "INSERT INTO X VALUES(?, ?, ?, ??)" ], - "summary": "INSERT X" + "db.query.summary": "INSERT X" }, { "name": "uuid", @@ -114,7 +114,7 @@ "sanitized": [ "SELECT { guid ? }" ], - "summary": "SELECT" + "db.query.summary": "SELECT" }, { "name": "in_clause", @@ -124,7 +124,7 @@ "SELECT * FROM table WHERE value IN (?)", "SELECT * FROM table WHERE value IN (?, ?, ?)" ], - "summary": "SELECT table" + "db.query.summary": "SELECT table" }, { "name": "comments", @@ -133,7 +133,7 @@ "sanitized": [ "SELECT column \nFROM table" ], - "summary": "SELECT table" + "db.query.summary": "SELECT table" }, { "name": "insert_into_select", @@ -142,7 +142,7 @@ "sanitized": [ "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = ?" ], - "summary": "INSERT shipping_details SELECT orders" + "db.query.summary": "INSERT shipping_details SELECT orders" }, { "name": "select_nested_query", @@ -151,7 +151,7 @@ "sanitized": [ "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], - "summary": "SELECT SELECT orders customers" + "db.query.summary": "SELECT SELECT orders customers" }, { "name": "select_nested_query_case_preserved", @@ -160,7 +160,7 @@ "sanitized": [ "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], - "summary": "SELEcT sELECT orders customers" + "db.query.summary": "SELEcT sELECT orders customers" }, { "name": "case_preserved", @@ -169,7 +169,7 @@ "sanitized": [ "SELEcT order_date\nFROM ORders" ], - "summary": "SELEcT ORders" + "db.query.summary": "SELEcT ORders" }, { "name": "cross_join", @@ -178,7 +178,7 @@ "sanitized": [ "SELECT * FROM Orders o CROSS JOIN OrderDetails od" ], - "summary": "SELECT Orders OrderDetails" + "db.query.summary": "SELECT Orders OrderDetails" }, { "name": "cross_join_comma_separated_syntax", @@ -187,7 +187,7 @@ "sanitized": [ "SELECT * FROM Orders o, OrderDetails od" ], - "summary": "SELECT Orders" + "db.query.summary": "SELECT Orders" }, { "name": "create_table", @@ -196,7 +196,7 @@ "sanitized": [ "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" ], - "summary": "CREATE TABLE MyTable" + "db.query.summary": "CREATE TABLE MyTable" }, { "name": "alter_table", @@ -205,7 +205,7 @@ "sanitized": [ "ALTER TABLE MyTable ADD Name varchar(?)" ], - "summary": "ALTER TABLE MyTable" + "db.query.summary": "ALTER TABLE MyTable" }, { "name": "drop_table", @@ -214,6 +214,6 @@ "sanitized": [ "DROP TABLE MyTable" ], - "summary": "DROP TABLE MyTable" + "db.query.summary": "DROP TABLE MyTable" } ] From 02037fe0387e39fce62da310fb1ce7974dae1d9b Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Fri, 7 Mar 2025 10:36:02 -0800 Subject: [PATCH 06/10] sanitized -> db.query.text --- docs/non-normative/db-sql-test-cases.json | 96 +++++++++++------------ 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/non-normative/db-sql-test-cases.json b/docs/non-normative/db-sql-test-cases.json index 6949f1b5c6..d5af7ad7ac 100644 --- a/docs/non-normative/db-sql-test-cases.json +++ b/docs/non-normative/db-sql-test-cases.json @@ -2,8 +2,8 @@ { "name": "numeric_literal_integers", "db.system.name": "other_sql", - "sql": "SELECT 12, -12, +12", - "sanitized": [ + "query": "SELECT 12, -12, +12", + "db.query.text": [ "SELECT ?, ?, ?" ], "db.query.summary": "SELECT" @@ -11,8 +11,8 @@ { "name": "numeric_literal_with_decimal_point", "db.system.name": "other_sql", - "sql": "SELECT 12.34, -12.34, +12.34, .01, -.01", - "sanitized": [ + "query": "SELECT 12.34, -12.34, +12.34, .01, -.01", + "db.query.text": [ "SELECT ?, ?, ?, ?, ?" ], "db.query.summary": "SELECT" @@ -20,8 +20,8 @@ { "name": "numeric_literal_exponential", "db.system.name": "other_sql", - "sql": "SELECT 12.34e56, -12.34e56, +12.34e56", - "sanitized": [ + "query": "SELECT 12.34e56, -12.34e56, +12.34e56", + "db.query.text": [ "SELECT ?, ?, ?" ], "db.query.summary": "SELECT" @@ -29,8 +29,8 @@ { "name": "numeric_literal_negative_exponential", "db.system.name": "other_sql", - "sql": "SELECT 12.34e-56, -12.34e-56, +12.34e-56", - "sanitized": [ + "query": "SELECT 12.34e-56, -12.34e-56, +12.34e-56", + "db.query.text": [ "SELECT ?, ?, ?" ], "db.query.summary": "SELECT" @@ -38,8 +38,8 @@ { "name": "arithmetic_on_numeric_literals", "db.system.name": "other_sql", - "sql": "SELECT 99+100", - "sanitized": [ + "query": "SELECT 99+100", + "db.query.text": [ "SELECT ??" ], "db.query.summary": "SELECT" @@ -47,8 +47,8 @@ { "name": "hex_literal", "db.system.name": "other_sql", - "sql": "SELECT 0xDEADBEEF, 0XdeadBEEF", - "sanitized": [ + "query": "SELECT 0xDEADBEEF, 0XdeadBEEF", + "db.query.text": [ "SELECT ?, ?" ], "db.query.summary": "SELECT" @@ -56,8 +56,8 @@ { "name": "string_literal", "db.system.name": "other_sql", - "sql": "SELECT 'hello'", - "sanitized": [ + "query": "SELECT 'hello'", + "db.query.text": [ "SELECT ?" ], "db.query.summary": "SELECT" @@ -65,8 +65,8 @@ { "name": "string_literal_escaped_single_quote", "db.system.name": "other_sql", - "sql": "SELECT 'My name''s not important'", - "sanitized": [ + "query": "SELECT 'My name''s not important'", + "db.query.text": [ "SELECT ?" ], "db.query.summary": "SELECT" @@ -74,8 +74,8 @@ { "name": "string_with_embedded_newline", "db.system.name": "other_sql", - "sql": "SELECT 'My name is \n not important'", - "sanitized": [ + "query": "SELECT 'My name is \n not important'", + "db.query.text": [ "SELECT ?" ], "db.query.summary": "SELECT" @@ -83,8 +83,8 @@ { "name": "numbers_in_identifiers", "db.system.name": "other_sql", - "sql": "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=1234", - "sanitized": [ + "query": "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=1234", + "db.query.text": [ "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=?" ], "db.query.summary": "SELECT covid19" @@ -92,8 +92,8 @@ { "name": "periods_in_identifiers", "db.system.name": "other_sql", - "sql": "SELECT a FROM dbo.Table JOIN dbo.AnotherTable", - "sanitized": [ + "query": "SELECT a FROM dbo.Table JOIN dbo.AnotherTable", + "db.query.text": [ "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" ], "db.query.summary": "SELECT dbo.Table dbo.AnotherTable" @@ -101,8 +101,8 @@ { "name": "insert_into", "db.system.name": "other_sql", - "sql": "INSERT INTO X VALUES(1, 23456, 123.456, 99+100)", - "sanitized": [ + "query": "INSERT INTO X VALUES(1, 23456, 123.456, 99+100)", + "db.query.text": [ "INSERT INTO X VALUES(?, ?, ?, ??)" ], "db.query.summary": "INSERT X" @@ -110,8 +110,8 @@ { "name": "uuid", "db.system.name": "other_sql", - "sql": "SELECT { guid '01234567-89ab-cdef-0123-456789abcdef' }", - "sanitized": [ + "query": "SELECT { guid '01234567-89ab-cdef-0123-456789abcdef' }", + "db.query.text": [ "SELECT { guid ? }" ], "db.query.summary": "SELECT" @@ -119,8 +119,8 @@ { "name": "in_clause", "db.system.name": "other_sql", - "sql": "SELECT * FROM table WHERE value IN (123, 456, 'abc')", - "sanitized": [ + "query": "SELECT * FROM table WHERE value IN (123, 456, 'abc')", + "db.query.text": [ "SELECT * FROM table WHERE value IN (?)", "SELECT * FROM table WHERE value IN (?, ?, ?)" ], @@ -129,8 +129,8 @@ { "name": "comments", "db.system.name": "other_sql", - "sql": "SELECT column -- end of line comment\nFROM /* block \n comment */ table", - "sanitized": [ + "query": "SELECT column -- end of line comment\nFROM /* block \n comment */ table", + "db.query.text": [ "SELECT column \nFROM table" ], "db.query.summary": "SELECT table" @@ -138,8 +138,8 @@ { "name": "insert_into_select", "db.system.name": "other_sql", - "sql": "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = 1", - "sanitized": [ + "query": "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = 1", + "db.query.text": [ "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = ?" ], "db.query.summary": "INSERT shipping_details SELECT orders" @@ -147,8 +147,8 @@ { "name": "select_nested_query", "db.system.name": "other_sql", - "sql": "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", - "sanitized": [ + "query": "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", + "db.query.text": [ "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], "db.query.summary": "SELECT SELECT orders customers" @@ -156,8 +156,8 @@ { "name": "select_nested_query_case_preserved", "db.system.name": "other_sql", - "sql": "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", - "sanitized": [ + "query": "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", + "db.query.text": [ "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" ], "db.query.summary": "SELEcT sELECT orders customers" @@ -165,8 +165,8 @@ { "name": "case_preserved", "db.system.name": "other_sql", - "sql": "SELEcT order_date\nFROM ORders", - "sanitized": [ + "query": "SELEcT order_date\nFROM ORders", + "db.query.text": [ "SELEcT order_date\nFROM ORders" ], "db.query.summary": "SELEcT ORders" @@ -174,8 +174,8 @@ { "name": "cross_join", "db.system.name": "other_sql", - "sql": "SELECT * FROM Orders o CROSS JOIN OrderDetails od", - "sanitized": [ + "query": "SELECT * FROM Orders o CROSS JOIN OrderDetails od", + "db.query.text": [ "SELECT * FROM Orders o CROSS JOIN OrderDetails od" ], "db.query.summary": "SELECT Orders OrderDetails" @@ -183,8 +183,8 @@ { "name": "cross_join_comma_separated_syntax", "db.system.name": "other_sql", - "sql": "SELECT * FROM Orders o, OrderDetails od", - "sanitized": [ + "query": "SELECT * FROM Orders o, OrderDetails od", + "db.query.text": [ "SELECT * FROM Orders o, OrderDetails od" ], "db.query.summary": "SELECT Orders" @@ -192,8 +192,8 @@ { "name": "create_table", "db.system.name": "other_sql", - "sql": "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(1,1) PRIMARY KEY\n)", - "sanitized": [ + "query": "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(1,1) PRIMARY KEY\n)", + "db.query.text": [ "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" ], "db.query.summary": "CREATE TABLE MyTable" @@ -201,8 +201,8 @@ { "name": "alter_table", "db.system.name": "other_sql", - "sql": "ALTER TABLE MyTable ADD Name varchar(255)", - "sanitized": [ + "query": "ALTER TABLE MyTable ADD Name varchar(255)", + "db.query.text": [ "ALTER TABLE MyTable ADD Name varchar(?)" ], "db.query.summary": "ALTER TABLE MyTable" @@ -210,8 +210,8 @@ { "name": "drop_table", "db.system.name": "other_sql", - "sql": "DROP TABLE MyTable", - "sanitized": [ + "query": "DROP TABLE MyTable", + "db.query.text": [ "DROP TABLE MyTable" ], "db.query.summary": "DROP TABLE MyTable" From a1ae043913120b19fa04ce6c303e8e6b546ab13c Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Mon, 10 Mar 2025 15:09:35 -0700 Subject: [PATCH 07/10] Move to subfolder --- .../{ => database-test-cases}/db-sql-test-cases.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/non-normative/{ => database-test-cases}/db-sql-test-cases.json (100%) diff --git a/docs/non-normative/db-sql-test-cases.json b/docs/non-normative/database-test-cases/db-sql-test-cases.json similarity index 100% rename from docs/non-normative/db-sql-test-cases.json rename to docs/non-normative/database-test-cases/db-sql-test-cases.json From 673324f195f26fc63062cad9d9c017979dab52d4 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Mon, 10 Mar 2025 15:29:27 -0700 Subject: [PATCH 08/10] Fix test case --- docs/non-normative/database-test-cases/db-sql-test-cases.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/non-normative/database-test-cases/db-sql-test-cases.json b/docs/non-normative/database-test-cases/db-sql-test-cases.json index d5af7ad7ac..e89739e60c 100644 --- a/docs/non-normative/database-test-cases/db-sql-test-cases.json +++ b/docs/non-normative/database-test-cases/db-sql-test-cases.json @@ -187,7 +187,7 @@ "db.query.text": [ "SELECT * FROM Orders o, OrderDetails od" ], - "db.query.summary": "SELECT Orders" + "db.query.summary": "SELECT Orders OrderDetails" }, { "name": "create_table", From 70469be7a6ecbf001f70d1602f0804a575bed1f1 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Wed, 12 Mar 2025 12:19:59 -0700 Subject: [PATCH 09/10] input/expected --- .../db-sql-test-cases.json | 386 +++++++++++------- 1 file changed, 241 insertions(+), 145 deletions(-) diff --git a/docs/non-normative/database-test-cases/db-sql-test-cases.json b/docs/non-normative/database-test-cases/db-sql-test-cases.json index e89739e60c..1188974d8e 100644 --- a/docs/non-normative/database-test-cases/db-sql-test-cases.json +++ b/docs/non-normative/database-test-cases/db-sql-test-cases.json @@ -1,219 +1,315 @@ [ { "name": "numeric_literal_integers", - "db.system.name": "other_sql", - "query": "SELECT 12, -12, +12", - "db.query.text": [ - "SELECT ?, ?, ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 12, -12, +12" + }, + "expected": { + "db.query.text": [ + "SELECT ?, ?, ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "numeric_literal_with_decimal_point", - "db.system.name": "other_sql", - "query": "SELECT 12.34, -12.34, +12.34, .01, -.01", - "db.query.text": [ - "SELECT ?, ?, ?, ?, ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 12.34, -12.34, +12.34, .01, -.01" + }, + "expected": { + "db.query.text": [ + "SELECT ?, ?, ?, ?, ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "numeric_literal_exponential", - "db.system.name": "other_sql", - "query": "SELECT 12.34e56, -12.34e56, +12.34e56", - "db.query.text": [ - "SELECT ?, ?, ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 12.34e56, -12.34e56, +12.34e56" + }, + "expected": { + "db.query.text": [ + "SELECT ?, ?, ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "numeric_literal_negative_exponential", - "db.system.name": "other_sql", - "query": "SELECT 12.34e-56, -12.34e-56, +12.34e-56", - "db.query.text": [ - "SELECT ?, ?, ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 12.34e-56, -12.34e-56, +12.34e-56" + }, + "expected": { + "db.query.text": [ + "SELECT ?, ?, ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "arithmetic_on_numeric_literals", - "db.system.name": "other_sql", - "query": "SELECT 99+100", - "db.query.text": [ - "SELECT ??" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 99+100" + }, + "expected": { + "db.query.text": [ + "SELECT ??" + ], + "db.query.summary": "SELECT" + } }, { "name": "hex_literal", - "db.system.name": "other_sql", - "query": "SELECT 0xDEADBEEF, 0XdeadBEEF", - "db.query.text": [ - "SELECT ?, ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 0xDEADBEEF, 0XdeadBEEF" + }, + "expected": { + "db.query.text": [ + "SELECT ?, ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "string_literal", - "db.system.name": "other_sql", - "query": "SELECT 'hello'", - "db.query.text": [ - "SELECT ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 'hello'" + }, + "expected": { + "db.query.text": [ + "SELECT ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "string_literal_escaped_single_quote", - "db.system.name": "other_sql", - "query": "SELECT 'My name''s not important'", - "db.query.text": [ - "SELECT ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 'My name''s not important'" + }, + "expected": { + "db.query.text": [ + "SELECT ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "string_with_embedded_newline", - "db.system.name": "other_sql", - "query": "SELECT 'My name is \n not important'", - "db.query.text": [ - "SELECT ?" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT 'My name is \n not important'" + }, + "expected": { + "db.query.text": [ + "SELECT ?" + ], + "db.query.summary": "SELECT" + } }, { "name": "numbers_in_identifiers", - "db.system.name": "other_sql", - "query": "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=1234", - "db.query.text": [ - "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=?" - ], - "db.query.summary": "SELECT covid19" + "input": { + "db.system.name": "other_sql", + "query": "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=1234" + }, + "expected": { + "db.query.text": [ + "SELECT c3po, r2d2 FROM covid19 WHERE n1h1=?" + ], + "db.query.summary": "SELECT covid19" + } }, { "name": "periods_in_identifiers", - "db.system.name": "other_sql", - "query": "SELECT a FROM dbo.Table JOIN dbo.AnotherTable", - "db.query.text": [ - "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" - ], - "db.query.summary": "SELECT dbo.Table dbo.AnotherTable" + "input": { + "db.system.name": "other_sql", + "query": "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" + }, + "expected": { + "db.query.text": [ + "SELECT a FROM dbo.Table JOIN dbo.AnotherTable" + ], + "db.query.summary": "SELECT dbo.Table dbo.AnotherTable" + } }, { "name": "insert_into", - "db.system.name": "other_sql", - "query": "INSERT INTO X VALUES(1, 23456, 123.456, 99+100)", - "db.query.text": [ - "INSERT INTO X VALUES(?, ?, ?, ??)" - ], - "db.query.summary": "INSERT X" + "input": { + "db.system.name": "other_sql", + "query": "INSERT INTO X VALUES(1, 23456, 123.456, 99+100)" + }, + "expected": { + "db.query.text": [ + "INSERT INTO X VALUES(?, ?, ?, ??)" + ], + "db.query.summary": "INSERT X" + } }, { "name": "uuid", - "db.system.name": "other_sql", - "query": "SELECT { guid '01234567-89ab-cdef-0123-456789abcdef' }", - "db.query.text": [ - "SELECT { guid ? }" - ], - "db.query.summary": "SELECT" + "input": { + "db.system.name": "other_sql", + "query": "SELECT { guid '01234567-89ab-cdef-0123-456789abcdef' }" + }, + "expected": { + "db.query.text": [ + "SELECT { guid ? }" + ], + "db.query.summary": "SELECT" + } }, { "name": "in_clause", - "db.system.name": "other_sql", - "query": "SELECT * FROM table WHERE value IN (123, 456, 'abc')", - "db.query.text": [ - "SELECT * FROM table WHERE value IN (?)", - "SELECT * FROM table WHERE value IN (?, ?, ?)" - ], - "db.query.summary": "SELECT table" + "input": { + "db.system.name": "other_sql", + "query": "SELECT * FROM table WHERE value IN (123, 456, 'abc')" + }, + "expected": { + "db.query.text": [ + "SELECT * FROM table WHERE value IN (?)", + "SELECT * FROM table WHERE value IN (?, ?, ?)" + ], + "db.query.summary": "SELECT table" + } }, { "name": "comments", - "db.system.name": "other_sql", - "query": "SELECT column -- end of line comment\nFROM /* block \n comment */ table", - "db.query.text": [ - "SELECT column \nFROM table" - ], - "db.query.summary": "SELECT table" + "input": { + "db.system.name": "other_sql", + "query": "SELECT column -- end of line comment\nFROM /* block \n comment */ table" + }, + "expected": { + "db.query.text": [ + "SELECT column \nFROM table" + ], + "db.query.summary": "SELECT table" + } }, { "name": "insert_into_select", - "db.system.name": "other_sql", - "query": "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = 1", - "db.query.text": [ - "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = ?" - ], - "db.query.summary": "INSERT shipping_details SELECT orders" + "input": { + "db.system.name": "other_sql", + "query": "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = 1" + }, + "expected": { + "db.query.text": [ + "INSERT INTO shipping_details\n(order_id,\naddress)\nSELECT order_id,\naddress\nFROM orders\nWHERE order_id = ?" + ], + "db.query.summary": "INSERT shipping_details SELECT orders" + } }, { "name": "select_nested_query", - "db.system.name": "other_sql", - "query": "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", - "db.query.text": [ - "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" - ], - "db.query.summary": "SELECT SELECT orders customers" + "input": { + "db.system.name": "other_sql", + "query": "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" + }, + "expected": { + "db.query.text": [ + "SELECT order_date\nFROM (SELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" + ], + "db.query.summary": "SELECT SELECT orders customers" + } }, { "name": "select_nested_query_case_preserved", - "db.system.name": "other_sql", - "query": "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)", - "db.query.text": [ - "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" - ], - "db.query.summary": "SELEcT sELECT orders customers" + "input": { + "db.system.name": "other_sql", + "query": "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" + }, + "expected": { + "db.query.text": [ + "SELEcT order_date\nFROM (sELECT *\nFROM orders o\nJOIN customers c\nON o.customer_id = c.customer_id)" + ], + "db.query.summary": "SELEcT sELECT orders customers" + } }, { "name": "case_preserved", - "db.system.name": "other_sql", - "query": "SELEcT order_date\nFROM ORders", - "db.query.text": [ - "SELEcT order_date\nFROM ORders" - ], - "db.query.summary": "SELEcT ORders" + "input": { + "db.system.name": "other_sql", + "query": "SELEcT order_date\nFROM ORders" + }, + "expected": { + "db.query.text": [ + "SELEcT order_date\nFROM ORders" + ], + "db.query.summary": "SELEcT ORders" + } }, { "name": "cross_join", - "db.system.name": "other_sql", - "query": "SELECT * FROM Orders o CROSS JOIN OrderDetails od", - "db.query.text": [ - "SELECT * FROM Orders o CROSS JOIN OrderDetails od" - ], - "db.query.summary": "SELECT Orders OrderDetails" + "input": { + "db.system.name": "other_sql", + "query": "SELECT * FROM Orders o CROSS JOIN OrderDetails od" + }, + "expected": { + "db.query.text": [ + "SELECT * FROM Orders o CROSS JOIN OrderDetails od" + ], + "db.query.summary": "SELECT Orders OrderDetails" + } }, { "name": "cross_join_comma_separated_syntax", - "db.system.name": "other_sql", - "query": "SELECT * FROM Orders o, OrderDetails od", - "db.query.text": [ - "SELECT * FROM Orders o, OrderDetails od" - ], - "db.query.summary": "SELECT Orders OrderDetails" + "input": { + "db.system.name": "other_sql", + "query": "SELECT * FROM Orders o, OrderDetails od" + }, + "expected": { + "db.query.text": [ + "SELECT * FROM Orders o, OrderDetails od" + ], + "db.query.summary": "SELECT Orders OrderDetails" + } }, { "name": "create_table", - "db.system.name": "other_sql", - "query": "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(1,1) PRIMARY KEY\n)", - "db.query.text": [ - "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" - ], - "db.query.summary": "CREATE TABLE MyTable" + "input": { + "db.system.name": "other_sql", + "query": "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(1,1) PRIMARY KEY\n)" + }, + "expected": { + "db.query.text": [ + "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" + ], + "db.query.summary": "CREATE TABLE MyTable" + } }, { "name": "alter_table", - "db.system.name": "other_sql", - "query": "ALTER TABLE MyTable ADD Name varchar(255)", - "db.query.text": [ - "ALTER TABLE MyTable ADD Name varchar(?)" - ], - "db.query.summary": "ALTER TABLE MyTable" + "input": { + "db.system.name": "other_sql", + "query": "ALTER TABLE MyTable ADD Name varchar(255)" + }, + "expected": { + "db.query.text": [ + "ALTER TABLE MyTable ADD Name varchar(?)" + ], + "db.query.summary": "ALTER TABLE MyTable" + } }, { "name": "drop_table", - "db.system.name": "other_sql", - "query": "DROP TABLE MyTable", - "db.query.text": [ - "DROP TABLE MyTable" - ], - "db.query.summary": "DROP TABLE MyTable" + "input": { + "db.system.name": "other_sql", + "query": "DROP TABLE MyTable" + }, + "expected": { + "db.query.text": [ + "DROP TABLE MyTable" + ], + "db.query.summary": "DROP TABLE MyTable" + } } ] From 66745110e4202b1c44495adf446d0429068a1827 Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Wed, 19 Mar 2025 10:02:19 -0700 Subject: [PATCH 10/10] Normalize whitespace in db.query.summary --- .../database-test-cases/db-sql-test-cases.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/non-normative/database-test-cases/db-sql-test-cases.json b/docs/non-normative/database-test-cases/db-sql-test-cases.json index 1188974d8e..0686ab2323 100644 --- a/docs/non-normative/database-test-cases/db-sql-test-cases.json +++ b/docs/non-normative/database-test-cases/db-sql-test-cases.json @@ -283,7 +283,7 @@ "db.query.text": [ "CREATE TABLE MyTable (\n ID NOT NULL IDENTITY(?,?) PRIMARY KEY\n)" ], - "db.query.summary": "CREATE TABLE MyTable" + "db.query.summary": "CREATE TABLE MyTable" } }, { @@ -296,7 +296,7 @@ "db.query.text": [ "ALTER TABLE MyTable ADD Name varchar(?)" ], - "db.query.summary": "ALTER TABLE MyTable" + "db.query.summary": "ALTER TABLE MyTable" } }, { @@ -309,7 +309,7 @@ "db.query.text": [ "DROP TABLE MyTable" ], - "db.query.summary": "DROP TABLE MyTable" + "db.query.summary": "DROP TABLE MyTable" } } ]