diff --git a/src/test/regress/citus_tests/query_generator/README.md b/src/test/regress/citus_tests/query_generator/README.md index e804d035c..a59e79542 100644 --- a/src/test/regress/citus_tests/query_generator/README.md +++ b/src/test/regress/citus_tests/query_generator/README.md @@ -89,6 +89,8 @@ Schema for Query configuration: ```yaml queryCount: queryOutFile: +repartitionJoin: +singleRepartitionJoin: semiAntiJoin: cartesianProduct: limit: @@ -116,6 +118,8 @@ Explanation: ```yaml queryCount: "number of queries to generate" queryOutFile: "file to write generated queries" +repartitionJoin: "should we enable repartition join" +singleRepartitionJoin: "should we make default repartition join mode as single repartition join (default is dual)" semiAntiJoin: "should we support semi joins (WHERE col IN (Subquery))" cartesianProduct: "should we support cartesian joins" limit: "should we support limit clause" diff --git a/src/test/regress/citus_tests/query_generator/config/config.py b/src/test/regress/citus_tests/query_generator/config/config.py index 0f8b3e010..6abab84ff 100644 --- a/src/test/regress/citus_tests/query_generator/config/config.py +++ b/src/test/regress/citus_tests/query_generator/config/config.py @@ -28,6 +28,8 @@ class Config: self.targetRteCount = configObj["targetRteCount"] self.targetCteCount = configObj["targetCteCount"] self.targetCteRteCount = configObj["targetCteRteCount"] + self.repartitionJoin = configObj["repartitionJoin"] + self.singleRepartitionJoin = configObj["singleRepartitionJoin"] self.semiAntiJoin = configObj["semiAntiJoin"] self.cartesianProduct = configObj["cartesianProduct"] self.limit = configObj["limit"] diff --git a/src/test/regress/citus_tests/query_generator/config/config.yaml b/src/test/regress/citus_tests/query_generator/config/config.yaml index ee5bf04bf..1d1b5138e 100644 --- a/src/test/regress/citus_tests/query_generator/config/config.yaml +++ b/src/test/regress/citus_tests/query_generator/config/config.yaml @@ -2,6 +2,8 @@ interactiveMode: false queryCount: 250 queryOutFile: queries.sql ddlOutFile: ddls.sql +repartitionJoin: true +singleRepartitionJoin: false semiAntiJoin: true cartesianProduct: false limit: true diff --git a/src/test/regress/citus_tests/query_generator/generate_queries.py b/src/test/regress/citus_tests/query_generator/generate_queries.py index dd63b17ec..2029ace5b 100755 --- a/src/test/regress/citus_tests/query_generator/generate_queries.py +++ b/src/test/regress/citus_tests/query_generator/generate_queries.py @@ -55,8 +55,15 @@ def _fileMode(ddls, data): ) with open(fileName, "w") as f: # enable repartition joins due to https://github.com/citusdata/citus/issues/6865 - enableRepartitionJoinCommand = "SET citus.enable_repartition_joins TO on;\n" - queryLines = [enableRepartitionJoinCommand] + queryLines = [] + if getConfig().repartitionJoin: + enableRepartitionJoinCommand = "SET citus.enable_repartition_joins TO on;\n" + queryLines.append(enableRepartitionJoinCommand) + if getConfig().singleRepartitionJoin: + singleRepartitionJoinCommand = ( + "SET citus.enable_single_hash_repartition_joins TO on;\n" + ) + queryLines.append(singleRepartitionJoinCommand) queryId = 1 for _ in range(queryCount): query = newQuery()