From eddd580fb8524de76f3996d5d1e974c2242f8db0 Mon Sep 17 00:00:00 2001 From: James Cor Date: Fri, 25 Apr 2025 14:45:08 -0700 Subject: [PATCH 1/2] test for lookup join --- enginetest/queries/script_queries.go | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/enginetest/queries/script_queries.go b/enginetest/queries/script_queries.go index b02c0ea62f..b78f8c9197 100644 --- a/enginetest/queries/script_queries.go +++ b/enginetest/queries/script_queries.go @@ -8332,6 +8332,55 @@ where }, }, }, + { + Name: "lookup join string test", + Dialect: "mysql", + SetUpScript: []string{ + ` +CREATE TABLE testA ( + id int PRIMARY KEY, + supplierkey VARCHAR(100), + name VARCHAR(100), + product VARCHAR(100), + UNIQUE KEY unique_product_supplier_key (product, supplierKey) +);`, + ` +CREATE TABLE testB ( + id int PRIMARY KEY, + vendorkey VARCHAR(100), + name VARCHAR(100), + supplierkey VARCHAR(100), + product VARCHAR(100), + UNIQUE KEY unique_product_vendor_key (product,vendorKey) +);`, + "INSERT INTO testA VALUES (1, 'texwin-post-frame', 'Texwin (Post Frame)', 'carports');", + "INSERT INTO testA VALUES (2, 'texwin', 'Texwin', 'carports');", + "INSERT INTO testB VALUES (1, 'advancebldg', 'Test', 'texwin', 'carports');", + }, + Assertions: []ScriptTestAssertion{ + { + Query: ` +SELECT /*+ LOOKUP_JOIN(v,s) */ + v.vendorkey AS vendor, + v.product, + v.supplierkey, + s.name AS supplierName +FROM + testB AS v +INNER JOIN + testA AS s +ON + s.supplierkey = v.supplierkey AND + s.product = v.product +WHERE + v.vendorkey = 'advancebldg'; +`, + Expected: []sql.Row{ + {"advancebldg", "carports", "texwin", "Texwin"}, + }, + }, + }, + }, } var SpatialScriptTests = []ScriptTest{ From 2f3d84f3742d94d9248daa55cc78f905a221b1b2 Mon Sep 17 00:00:00 2001 From: James Cor Date: Fri, 25 Apr 2025 15:12:11 -0700 Subject: [PATCH 2/2] move test --- enginetest/join_op_tests.go | 50 ++++++++++++++++++++++++++++ enginetest/queries/script_queries.go | 49 --------------------------- 2 files changed, 50 insertions(+), 49 deletions(-) diff --git a/enginetest/join_op_tests.go b/enginetest/join_op_tests.go index 7eb5af32a2..377507bfad 100644 --- a/enginetest/join_op_tests.go +++ b/enginetest/join_op_tests.go @@ -1984,6 +1984,56 @@ SELECT SUM(x) FROM xy WHERE x IN ( }, }, }, + { + name: "string key test", + setup: [][]string{ + { + ` +CREATE TABLE testA ( + id int PRIMARY KEY, + supplierkey VARCHAR(100), + name VARCHAR(100), + product VARCHAR(100), + UNIQUE KEY unique_product_supplier_key (product, supplierKey) +);`, + ` +CREATE TABLE testB ( + id int PRIMARY KEY, + vendorkey VARCHAR(100), + name VARCHAR(100), + supplierkey VARCHAR(100), + product VARCHAR(100), + UNIQUE KEY unique_product_vendor_key (product,vendorKey) +);`, + "INSERT INTO testA VALUES (1, 'texwin-post-frame', 'Texwin (Post Frame)', 'carports');", + "INSERT INTO testA VALUES (2, 'texwin', 'Texwin', 'carports');", + "INSERT INTO testB VALUES (1, 'advancebldg', 'Test', 'texwin', 'carports');", + }, + }, + tests: []JoinOpTests{ + { + Query: ` +SELECT + v.vendorkey AS vendor, + v.product, + v.supplierkey, + s.name AS supplierName +FROM + testB AS v +INNER JOIN + testA AS s +ON + s.supplierkey = v.supplierkey AND + s.product = v.product +WHERE + v.vendorkey = 'advancebldg'; +`, + Expected: []sql.Row{ + {"advancebldg", "carports", "texwin", "Texwin"}, + }, + }, + }, + }, } var rangeJoinOpTests = []JoinOpTests{ diff --git a/enginetest/queries/script_queries.go b/enginetest/queries/script_queries.go index b78f8c9197..b02c0ea62f 100644 --- a/enginetest/queries/script_queries.go +++ b/enginetest/queries/script_queries.go @@ -8332,55 +8332,6 @@ where }, }, }, - { - Name: "lookup join string test", - Dialect: "mysql", - SetUpScript: []string{ - ` -CREATE TABLE testA ( - id int PRIMARY KEY, - supplierkey VARCHAR(100), - name VARCHAR(100), - product VARCHAR(100), - UNIQUE KEY unique_product_supplier_key (product, supplierKey) -);`, - ` -CREATE TABLE testB ( - id int PRIMARY KEY, - vendorkey VARCHAR(100), - name VARCHAR(100), - supplierkey VARCHAR(100), - product VARCHAR(100), - UNIQUE KEY unique_product_vendor_key (product,vendorKey) -);`, - "INSERT INTO testA VALUES (1, 'texwin-post-frame', 'Texwin (Post Frame)', 'carports');", - "INSERT INTO testA VALUES (2, 'texwin', 'Texwin', 'carports');", - "INSERT INTO testB VALUES (1, 'advancebldg', 'Test', 'texwin', 'carports');", - }, - Assertions: []ScriptTestAssertion{ - { - Query: ` -SELECT /*+ LOOKUP_JOIN(v,s) */ - v.vendorkey AS vendor, - v.product, - v.supplierkey, - s.name AS supplierName -FROM - testB AS v -INNER JOIN - testA AS s -ON - s.supplierkey = v.supplierkey AND - s.product = v.product -WHERE - v.vendorkey = 'advancebldg'; -`, - Expected: []sql.Row{ - {"advancebldg", "carports", "texwin", "Texwin"}, - }, - }, - }, - }, } var SpatialScriptTests = []ScriptTest{