Skip to content

Commit ef0defb

Browse files
apurtellclaude
authored andcommitted
PHOENIX-7937 Trim whitespace in EXPLAIN FORMAT JSON scan attributes (#2546)
Co-authored-by: Claude Opus 4.8[1m] <noreply@anthropic.com>
1 parent 8a510e9 commit ef0defb

46 files changed

Lines changed: 305 additions & 308 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

phoenix-core-client/src/main/java/org/apache/phoenix/iterate/ExplainTable.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,10 +344,10 @@ protected void explain(String prefix, List<String> planSteps,
344344
if (OrderBy.REV_ROW_KEY_ORDER_BY.equals(orderBy)) {
345345
explainPlanAttributesBuilder.setClientSortedBy("REVERSE");
346346
}
347-
explainPlanAttributesBuilder.setExplainScanType(scanTypeDetails);
347+
explainPlanAttributesBuilder.setExplainScanType(scanTypeDetails.trim());
348348
explainPlanAttributesBuilder.setTableName(tableName);
349349
if (!scanRanges.isPointLookup()) {
350-
explainPlanAttributesBuilder.setKeyRanges(appendKeyRanges());
350+
explainPlanAttributesBuilder.setKeyRanges(appendKeyRanges().trim());
351351
}
352352
}
353353

@@ -662,7 +662,8 @@ public static void overrideMutationProject(List<String> planSteps,
662662
if (countProject == null || countProject.isEmpty()) {
663663
return;
664664
}
665-
// Only override the internal COUNT(*)/COUNT(1) aggregate projection used for mutation row counts.
665+
// Only override the internal COUNT(*)/COUNT(1) aggregate projection used for mutation row
666+
// counts.
666667
if (countProject.size() != 1 || !countProject.get(0).startsWith("COUNT(")) {
667668
return;
668669
}

phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseAggregateIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ public void testGroupByOrderPreserving() throws Exception {
515515
assertPlan(conn, queryBuilder.build()).iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN")
516516
.table(tableName)
517517
.keyRanges(
518-
" ['000001111122222','333334444455555',0,*] - ['000001111122222','333334444455555',0,1]")
518+
"['000001111122222','333334444455555',0,*] - ['000001111122222','333334444455555',0,1]")
519519
.serverFirstKeyOnlyProjection(true)
520520
.serverAggregate(
521521
"SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [MATCH_STATUS, EXTERNAL_DATASOURCE_KEY]")

phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseAggregateWithRegionMoves2IT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public void testGroupByOrderPreserving() throws Exception {
138138
assertPlan(conn, queryBuilder.build()).iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN")
139139
.table(tableName)
140140
.keyRanges(
141-
" ['000001111122222','333334444455555',0,*] - ['000001111122222','333334444455555',0,1]")
141+
"['000001111122222','333334444455555',0,*] - ['000001111122222','333334444455555',0,1]")
142142
.serverFirstKeyOnlyProjection(true)
143143
.serverAggregate(
144144
"SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [MATCH_STATUS, EXTERNAL_DATASOURCE_KEY]")

phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseTenantSpecificViewIndexIT.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,17 +177,17 @@ private void createAndVerifyIndex(Connection conn, String viewName, String table
177177
SchemaUtil.getTableName(SchemaUtil.getSchemaNameFromFullName(viewName), indexName) + "("
178178
+ tableName + ")";
179179
keyRanges =
180-
" [" + (1L + expectedIndexIdOffset) + ",'" + tenantId + "','" + valuePrefix + "v2-1']";
180+
"[" + (1L + expectedIndexIdOffset) + ",'" + tenantId + "','" + valuePrefix + "v2-1']";
181181
} else {
182182
if (saltBuckets == null) {
183183
iteratorTypeAndScanSize = "PARALLEL 1-WAY";
184184
clientSortAlgo = null;
185-
keyRanges = " [" + (Short.MIN_VALUE + expectedIndexIdOffset) + ",'" + tenantId + "','"
185+
keyRanges = "[" + (Short.MIN_VALUE + expectedIndexIdOffset) + ",'" + tenantId + "','"
186186
+ valuePrefix + "v2-1']";
187187
} else {
188188
iteratorTypeAndScanSize = "PARALLEL " + saltBuckets + "-WAY";
189189
clientSortAlgo = "CLIENT MERGE SORT";
190-
keyRanges = " [X'00'," + (Short.MIN_VALUE + expectedIndexIdOffset) + ",'" + tenantId + "','"
190+
keyRanges = "[X'00'," + (Short.MIN_VALUE + expectedIndexIdOffset) + ",'" + tenantId + "','"
191191
+ valuePrefix + "v2-1'] - ["
192192
+ PVarbinary.INSTANCE.toStringLiteral(new byte[] { (byte) (saltBuckets - 1) }) + ","
193193
+ (Short.MIN_VALUE + expectedIndexIdOffset) + ",'" + tenantId + "','" + valuePrefix
@@ -214,7 +214,7 @@ private void createAndVerifyIndexNonStringTenantId(Connection conn, String viewN
214214
.iteratorType("PARALLEL 1-WAY").serverFirstKeyOnlyProjection(true).scanType("RANGE SCAN")
215215
.table(SchemaUtil.getTableName(SchemaUtil.getSchemaNameFromFullName(viewName), indexName)
216216
+ "(" + tableName + ")")
217-
.keyRanges(" [1," + tenantId + ",'" + valuePrefix + "v2-1']")
217+
.keyRanges("[1," + tenantId + ",'" + valuePrefix + "v2-1']")
218218
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_MORE_BOUND_PK_COLUMNS)
219219
.indexRejectedNone();
220220
}

phoenix-core/src/it/java/org/apache/phoenix/end2end/BaseViewIT.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,8 @@ protected Pair<String, Scan> testUpdatableViewIndex(Integer saltBuckets, boolean
215215
saltBuckets == null ? "PARALLEL 1-WAY" : "PARALLEL " + saltBuckets + "-WAY";
216216
expectedTableName = viewIndexPhysicalName;
217217
keyRanges = saltBuckets == null
218-
? " [" + Short.MIN_VALUE + ",51]"
219-
: " [0," + Short.MIN_VALUE + ",51] - [" + (saltBuckets - 1) + "," + Short.MIN_VALUE
220-
+ ",51]";
218+
? "[" + Short.MIN_VALUE + ",51]"
219+
: "[0," + Short.MIN_VALUE + ",51] - [" + (saltBuckets - 1) + "," + Short.MIN_VALUE + ",51]";
221220
clientSortAlgo = saltBuckets == null ? null : "CLIENT MERGE SORT";
222221
firstKeyOnlyProjection = false;
223222
}
@@ -257,15 +256,15 @@ protected Pair<String, Scan> testUpdatableViewIndex(Integer saltBuckets, boolean
257256
if (localIndex) {
258257
physicalTableName = fullTableName;
259258
iteratorTypeAndScanSize = "PARALLEL " + (saltBuckets == null ? 1 : saltBuckets) + "-WAY";
260-
keyRanges = " [" + (2) + ",'foo']";
259+
keyRanges = "[" + (2) + ",'foo']";
261260
clientSortAlgo = "CLIENT MERGE SORT";
262261
} else {
263262
physicalTableName = viewIndexPhysicalName;
264263
iteratorTypeAndScanSize =
265264
saltBuckets == null ? "PARALLEL 1-WAY" : "PARALLEL " + saltBuckets + "-WAY";
266265
keyRanges = saltBuckets == null
267-
? " [" + (Short.MIN_VALUE + 1) + ",'foo']"
268-
: " [0," + (Short.MIN_VALUE + 1) + ",'foo'] - [" + (saltBuckets - 1) + ","
266+
? "[" + (Short.MIN_VALUE + 1) + ",'foo']"
267+
: "[0," + (Short.MIN_VALUE + 1) + ",'foo'] - [" + (saltBuckets - 1) + ","
269268
+ (Short.MIN_VALUE + 1) + ",'foo']";
270269
clientSortAlgo = saltBuckets == null ? null : "CLIENT MERGE SORT";
271270
}

phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,9 @@ public void testCostOverridesStaticPlanOrdering2() throws Exception {
124124
.optimizeQuery().getExplainPlan();
125125
ExplainPlanAttributes explainPlanAttributes = plan.getPlanStepsAsAttributes();
126126
assertEquals("PARALLEL 1-WAY", explainPlanAttributes.getIteratorTypeAndScanSize());
127-
assertEquals("RANGE SCAN ", explainPlanAttributes.getExplainScanType());
127+
assertEquals("RANGE SCAN", explainPlanAttributes.getExplainScanType());
128128
assertEquals(tableName, explainPlanAttributes.getTableName());
129-
assertEquals(" [*] - ['z']", explainPlanAttributes.getKeyRanges());
129+
assertEquals("[*] - ['z']", explainPlanAttributes.getKeyRanges());
130130
assertEquals("SERVER AGGREGATE INTO DISTINCT ROWS BY [C1]",
131131
explainPlanAttributes.getServerAggregate());
132132
assertEquals("CLIENT MERGE SORT", explainPlanAttributes.getClientSortAlgo());
@@ -150,9 +150,9 @@ public void testCostOverridesStaticPlanOrdering2() throws Exception {
150150
.getExplainPlan();
151151
explainPlanAttributes = plan.getPlanStepsAsAttributes();
152152
assertEquals("PARALLEL 1-WAY", explainPlanAttributes.getIteratorTypeAndScanSize());
153-
assertEquals("RANGE SCAN ", explainPlanAttributes.getExplainScanType());
153+
assertEquals("RANGE SCAN", explainPlanAttributes.getExplainScanType());
154154
assertEquals(indexName + "(" + tableName + ")", explainPlanAttributes.getTableName());
155-
assertEquals(" [1]", explainPlanAttributes.getKeyRanges());
155+
assertEquals("[1]", explainPlanAttributes.getKeyRanges());
156156
assertTrue(explainPlanAttributes.isServerFirstKeyOnlyProjection());
157157
assertEquals("SERVER FILTER BY \"ROWKEY\" <= 'z'",
158158
explainPlanAttributes.getServerWhereFilter());
@@ -187,9 +187,9 @@ public void testCostOverridesStaticPlanOrdering3() throws Exception {
187187
.optimizeQuery().getExplainPlan();
188188
ExplainPlanAttributes explainPlanAttributes = plan.getPlanStepsAsAttributes();
189189
assertEquals("PARALLEL 1-WAY", explainPlanAttributes.getIteratorTypeAndScanSize());
190-
assertEquals("RANGE SCAN ", explainPlanAttributes.getExplainScanType());
190+
assertEquals("RANGE SCAN", explainPlanAttributes.getExplainScanType());
191191
assertEquals(indexName2 + "(" + tableName + ")", explainPlanAttributes.getTableName());
192-
assertEquals(" [2,*] - [2,9,000]", explainPlanAttributes.getKeyRanges());
192+
assertEquals("[2,*] - [2,9,000]", explainPlanAttributes.getKeyRanges());
193193
assertEquals(
194194
"SERVER FILTER BY ((\"C1\" >= 10 AND \"C1\" <= 20) AND TO_INTEGER(\"C3\") < 5000)",
195195
explainPlanAttributes.getServerWhereFilter());
@@ -212,9 +212,9 @@ public void testCostOverridesStaticPlanOrdering3() throws Exception {
212212
.getExplainPlan();
213213
explainPlanAttributes = plan.getPlanStepsAsAttributes();
214214
assertEquals("PARALLEL 1-WAY", explainPlanAttributes.getIteratorTypeAndScanSize());
215-
assertEquals("RANGE SCAN ", explainPlanAttributes.getExplainScanType());
215+
assertEquals("RANGE SCAN", explainPlanAttributes.getExplainScanType());
216216
assertEquals(indexName1 + "(" + tableName + ")", explainPlanAttributes.getTableName());
217-
assertEquals(" [1,10] - [1,20]", explainPlanAttributes.getKeyRanges());
217+
assertEquals("[1,10] - [1,20]", explainPlanAttributes.getKeyRanges());
218218
assertEquals("SERVER FILTER BY (\"C2\" < 9000 AND \"C3\" < 5000)",
219219
explainPlanAttributes.getServerWhereFilter());
220220
assertEquals("CLIENT MERGE SORT", explainPlanAttributes.getClientSortAlgo());
@@ -244,7 +244,7 @@ public void testCostOverridesStaticPlanOrderingInUpsertQuery() throws Exception
244244
// Use the idx2 plan with a wider PK slot span when stats are not available.
245245
assertMutationPlan(conn, query).abstractExplainPlan("UPSERT SELECT").iteratorType("PARALLEL")
246246
.scanType("RANGE SCAN").table(indexName2 + "(" + tableName + ")")
247-
.keyRanges(" [2,*] - [2,9,000]")
247+
.keyRanges("[2,*] - [2,9,000]")
248248
.serverWhereFilter(
249249
"SERVER FILTER BY ((\"C1\" >= 10 AND \"C1\" <= 20) AND TO_INTEGER(\"C3\") < 5000)")
250250
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_NON_LOCAL_PREFERRED)
@@ -265,7 +265,7 @@ public void testCostOverridesStaticPlanOrderingInUpsertQuery() throws Exception
265265
// Use the idx2 plan that scans less data when stats become available.
266266
assertMutationPlan(conn, query).abstractExplainPlan("UPSERT SELECT").iteratorType("PARALLEL")
267267
.scanType("RANGE SCAN").table(indexName1 + "(" + tableName + ")")
268-
.keyRanges(" [1,10] - [1,20]")
268+
.keyRanges("[1,10] - [1,20]")
269269
.serverWhereFilter("SERVER FILTER BY (\"C2\" < 9000 AND \"C3\" < 5000)")
270270
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_COST_BASED)
271271
.indexRejectedCount(1)
@@ -296,7 +296,7 @@ public void testCostOverridesStaticPlanOrderingInDeleteQuery() throws Exception
296296
// Use the idx2 plan with a wider PK slot span when stats are not available.
297297
assertMutationPlan(conn, query).abstractExplainPlan("DELETE ROWS CLIENT SELECT")
298298
.iteratorType("PARALLEL").scanType("RANGE SCAN").table(indexName2 + "(" + tableName + ")")
299-
.keyRanges(" [2,*] - [2,9,000]")
299+
.keyRanges("[2,*] - [2,9,000]")
300300
.serverWhereFilter(
301301
"SERVER FILTER BY ((\"C1\" >= 10 AND \"C1\" <= 20) AND TO_INTEGER(\"C3\") < 5000)")
302302
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_NON_LOCAL_PREFERRED)
@@ -317,7 +317,7 @@ public void testCostOverridesStaticPlanOrderingInDeleteQuery() throws Exception
317317
// Use the idx2 plan that scans less data when stats become available.
318318
assertMutationPlan(conn, query).abstractExplainPlan("DELETE ROWS CLIENT SELECT")
319319
.iteratorType("PARALLEL").scanType("RANGE SCAN").table(indexName1 + "(" + tableName + ")")
320-
.keyRanges(" [1,10] - [1,20]")
320+
.keyRanges("[1,10] - [1,20]")
321321
.serverWhereFilter("SERVER FILTER BY (\"C2\" < 9000 AND \"C3\" < 5000)")
322322
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_COST_BASED)
323323
.indexRejectedCount(1)
@@ -346,11 +346,11 @@ public void testCostOverridesStaticPlanOrderingInUnionQuery() throws Exception {
346346
// Use the default plan when stats are not available.
347347
assertPlan(conn, query).abstractExplainPlan("UNION ALL OVER 2 QUERIES").subPlanCount(2)
348348
.subPlan(0).iteratorType("PARALLEL").scanType("RANGE SCAN").table(tableName)
349-
.keyRanges(" [*] - ['z']").serverAggregate("SERVER AGGREGATE INTO DISTINCT ROWS BY [C1]")
349+
.keyRanges("[*] - ['z']").serverAggregate("SERVER AGGREGATE INTO DISTINCT ROWS BY [C1]")
350350
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_MORE_BOUND_PK_COLUMNS)
351351
.indexRejectedCount(1)
352352
.indexRejected(0, indexName, OptimizerReasons.REASON_NO_PK_PREFIX_BOUND).end().subPlan(1)
353-
.iteratorType("PARALLEL").scanType("RANGE SCAN").table(tableName).keyRanges(" ['a'] - [*]")
353+
.iteratorType("PARALLEL").scanType("RANGE SCAN").table(tableName).keyRanges("['a'] - [*]")
354354
.serverAggregate("SERVER AGGREGATE INTO DISTINCT ROWS BY [C1]")
355355
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_MORE_BOUND_PK_COLUMNS)
356356
.indexRejectedCount(1)
@@ -371,12 +371,12 @@ public void testCostOverridesStaticPlanOrderingInUnionQuery() throws Exception {
371371
// Use the optimal plan based on cost when stats become available.
372372
assertPlan(conn, query).abstractExplainPlan("UNION ALL OVER 2 QUERIES").subPlanCount(2)
373373
.subPlan(0).iteratorType("PARALLEL").scanType("RANGE SCAN")
374-
.table(indexName + "(" + tableName + ")").keyRanges(" [1]").serverMergeColumns("[0.C2]")
374+
.table(indexName + "(" + tableName + ")").keyRanges("[1]").serverMergeColumns("[0.C2]")
375375
.serverFirstKeyOnlyProjection(true).serverWhereFilter("SERVER FILTER BY \"ROWKEY\" <= 'z'")
376376
.serverAggregate("SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"C1\"]")
377377
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_COST_BASED)
378378
.indexRejectedNone().end().subPlan(1).iteratorType("PARALLEL").scanType("RANGE SCAN")
379-
.table(indexName + "(" + tableName + ")").keyRanges(" [1]").serverMergeColumns("[0.C2]")
379+
.table(indexName + "(" + tableName + ")").keyRanges("[1]").serverMergeColumns("[0.C2]")
380380
.serverFirstKeyOnlyProjection(true).serverWhereFilter("SERVER FILTER BY \"ROWKEY\" >= 'a'")
381381
.serverAggregate("SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"C1\"]")
382382
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_COST_BASED)
@@ -410,7 +410,7 @@ public void testCostOverridesStaticPlanOrderingInJoinQuery() throws Exception {
410410
.indexRejectedNone().subPlanCount(1).subPlan(0)
411411
.abstractExplainPlan("PARALLEL INNER-JOIN TABLE 0 /* HASH BUILD RIGHT */")
412412
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(tableName)
413-
.keyRanges(" [*] - ['z']").serverAggregate("SERVER AGGREGATE INTO DISTINCT ROWS BY [C1]")
413+
.keyRanges("[*] - ['z']").serverAggregate("SERVER AGGREGATE INTO DISTINCT ROWS BY [C1]")
414414
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_MORE_BOUND_PK_COLUMNS)
415415
.indexRejectedCount(1)
416416
.indexRejected(0, indexName, OptimizerReasons.REASON_NO_PK_PREFIX_BOUND);
@@ -429,14 +429,14 @@ public void testCostOverridesStaticPlanOrderingInJoinQuery() throws Exception {
429429

430430
// Use the optimal plan based on cost when stats become available.
431431
assertPlan(conn, query).iteratorType("PARALLEL 626-WAY").scanType("RANGE SCAN")
432-
.table(indexName + "(" + tableName + ")").keyRanges(" [1,'X0'] - [1,'X1']")
432+
.table(indexName + "(" + tableName + ")").keyRanges("[1,'X0'] - [1,'X1']")
433433
.serverMergeColumns("[0.C2]").serverFirstKeyOnlyProjection(true)
434434
.serverSortedBy("[\"T1.:ROWKEY\"]").clientSortAlgo("CLIENT MERGE SORT")
435435
.dynamicServerFilter("DYNAMIC SERVER FILTER BY \"T1.:ROWKEY\" IN (T2.MRK)").indexRule(null)
436436
.indexRejectedNone().subPlanCount(1).subPlan(0)
437437
.abstractExplainPlan("PARALLEL INNER-JOIN TABLE 0 /* HASH BUILD RIGHT */")
438438
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN")
439-
.table(indexName + "(" + tableName + ")").keyRanges(" [1]").serverMergeColumns("[0.C2]")
439+
.table(indexName + "(" + tableName + ")").keyRanges("[1]").serverMergeColumns("[0.C2]")
440440
.serverFirstKeyOnlyProjection(true).serverWhereFilter("SERVER FILTER BY \"ROWKEY\" <= 'z'")
441441
.serverAggregate("SERVER AGGREGATE INTO ORDERED DISTINCT ROWS BY [\"C1\"]")
442442
.clientSortAlgo("CLIENT MERGE SORT").indexRule(OptimizerReasons.RULE_COST_BASED)
@@ -540,7 +540,7 @@ public void testJoinStrategy3() throws Exception {
540540
.dynamicServerFilter("DYNAMIC SERVER FILTER BY T2.ID IN (T1.COL1)").subPlanCount(1)
541541
.subPlan(0).abstractExplainPlan("PARALLEL INNER-JOIN TABLE 0 /* HASH BUILD LEFT */")
542542
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(testTable500)
543-
.keyRanges(" [201] - [*]");
543+
.keyRanges("[201] - [*]");
544544
}
545545
}
546546

@@ -572,7 +572,7 @@ public void testJoinStrategy5() throws Exception {
572572
.subPlanCount(1).subPlan(0)
573573
.abstractExplainPlan("PARALLEL INNER-JOIN TABLE 0 /* HASH BUILD LEFT */")
574574
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(testTable500)
575-
.keyRanges(" [201] - [*]");
575+
.keyRanges("[201] - [*]");
576576
}
577577
}
578578

@@ -587,7 +587,7 @@ public void testJoinStrategy6() throws Exception {
587587
.subPlanCount(1).subPlan(0)
588588
.abstractExplainPlan("PARALLEL INNER-JOIN TABLE 0 /* HASH BUILD LEFT */")
589589
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(testTable500)
590-
.keyRanges(" [201] - [*]");
590+
.keyRanges("[201] - [*]");
591591
}
592592
}
593593

@@ -641,9 +641,9 @@ public void testJoinStrategy9() throws Exception {
641641
assertPlan(conn, q).abstractExplainPlan("SORT-MERGE-JOIN (LEFT)").lhs()
642642
.abstractExplainPlan("SORT-MERGE-JOIN (LEFT)").lhs().iteratorType("PARALLEL 1-WAY")
643643
.scanType("FULL SCAN").table(testTable1000).end().rhs().iteratorType("PARALLEL 1-WAY")
644-
.scanType("RANGE SCAN").table(testTable500).keyRanges(" [201] - [*]").end().end().rhs()
644+
.scanType("RANGE SCAN").table(testTable500).keyRanges("[201] - [*]").end().end().rhs()
645645
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(testTable990)
646-
.keyRanges(" [*] - [100]");
646+
.keyRanges("[*] - [100]");
647647
}
648648
}
649649

@@ -662,8 +662,8 @@ public void testJoinStrategy10() throws Exception {
662662
.dynamicServerFilter("DYNAMIC SERVER FILTER BY T1.ID IN (T2.COL1)").subPlanCount(1)
663663
.subPlan(0).abstractExplainPlan("PARALLEL INNER-JOIN TABLE 0 /* HASH BUILD RIGHT */")
664664
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(testTable500)
665-
.keyRanges(" [201] - [*]").end().end().rhs().iteratorType("PARALLEL 1-WAY")
666-
.scanType("RANGE SCAN").table(testTable990).keyRanges(" [*] - [100]");
665+
.keyRanges("[201] - [*]").end().end().rhs().iteratorType("PARALLEL 1-WAY")
666+
.scanType("RANGE SCAN").table(testTable990).keyRanges("[*] - [100]");
667667
}
668668
}
669669

@@ -682,10 +682,10 @@ public void testJoinStrategy11() throws Exception {
682682
.subPlanCount(2).subPlan(0)
683683
.abstractExplainPlan("PARALLEL INNER-JOIN TABLE 0 /* HASH BUILD RIGHT */")
684684
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(testTable500)
685-
.keyRanges(" [201] - [*]").end().subPlan(1)
685+
.keyRanges("[201] - [*]").end().subPlan(1)
686686
.abstractExplainPlan("PARALLEL INNER-JOIN TABLE 1 /* HASH BUILD RIGHT */")
687687
.iteratorType("PARALLEL 1-WAY").scanType("RANGE SCAN").table(testTable990)
688-
.keyRanges(" [*] - [100]");
688+
.keyRanges("[*] - [100]");
689689
}
690690
}
691691

0 commit comments

Comments
 (0)