Skip to content

Commit 9855f58

Browse files
[UT] Fix some unstable FE UTs (backport #64762) (#64765)
Signed-off-by: satanson <ranpanf@gmail.com> Co-authored-by: satanson <ranpanf@gmail.com>
1 parent 66a9402 commit 9855f58

3 files changed

Lines changed: 34 additions & 24 deletions

File tree

fe/fe-core/src/test/java/com/starrocks/planner/PushDownSubfieldHashJoinTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ public class PushDownSubfieldHashJoinTest {
3333

3434
@BeforeAll
3535
public static void setUp() throws Exception {
36+
FeConstants.runningUnitTest = true;
3637
UtFrameUtils.createMinStarRocksCluster();
3738
ctx = UtFrameUtils.createDefaultCtx();
3839
ctx.getSessionVariable().setEnablePipelineEngine(true);
3940
ctx.getSessionVariable().setCboPushDownAggregateMode(-1);
40-
FeConstants.runningUnitTest = true;
41+
ctx.getSessionVariable().setOptimizerExecuteTimeout(10000);
4142
starRocksAssert = new StarRocksAssert(ctx);
4243
starRocksAssert.withDatabase(StatsConstants.STATISTICS_DB_NAME)
4344
.useDatabase(StatsConstants.STATISTICS_DB_NAME)

fe/fe-core/src/test/java/com/starrocks/planner/TablePruningTest.java

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,12 @@
3838
public class TablePruningTest extends TablePruningTestBase {
3939
@BeforeAll
4040
public static void setUp() throws Exception {
41+
FeConstants.runningUnitTest = true;
4142
UtFrameUtils.createMinStarRocksCluster();
4243
ctx = UtFrameUtils.createDefaultCtx();
4344
ctx.getSessionVariable().setEnablePipelineEngine(true);
4445
ctx.getSessionVariable().setCboPushDownAggregateMode(-1);
45-
FeConstants.runningUnitTest = true;
46+
ctx.getSessionVariable().setOptimizerExecuteTimeout(10000);
4647
starRocksAssert = new StarRocksAssert(ctx);
4748
starRocksAssert.withDatabase(StatsConstants.STATISTICS_DB_NAME)
4849
.useDatabase(StatsConstants.STATISTICS_DB_NAME)
@@ -443,41 +444,48 @@ public void testPermuteFromClausesRandomlyAndMoveOnJoinPredicatesToWhereClauses(
443444
"E",
444445
"FI",
445446
"FII");
446-
List<String> predicates = Lists.newArrayList(
447-
"A0.a_pk = A1.a_pk",
448-
"A0.a_pk = A2.a_pk",
449-
"A2.a_pk = D0.d_pk",
450-
"D0.d_pk = D1.d_pk",
451-
"D0.d_pk = D2.d_pk",
452-
"A0.a_b_fk = B.b_pk",
453-
"B.b_ci_fk = CI.ci_pk",
454-
"B.b_cii_fk0 = CII.cii_pk0",
455-
"B.b_cii_fk1 = CII.cii_pk1",
456-
"D0.d_e_fk = E.e_pk",
457-
"E.e_fi_fk = FI.fi_pk",
458-
"E.e_fii_fk0 = FII.fii_pk0",
459-
"E.e_fii_fk1 = FII.fii_pk1",
460-
"D2.d_c3>100"
461-
);
447+
462448
Object[][] testCases = new Object[][] {
463449
{"avg(A0.a_c0+A1.a_c1), sum(A2.a_c2), max(B.b_pk), min(D0.d_c0), min(D1.d_c1)", "", 1, 1},
464450
{"A0.a_c0+A1.a_c1, A2.a_c2, B.b_pk, D0.d_c0, D1.d_c1", "limit 1", 1, 1},
465451
{"sum(FII.fii_c0), sum(FII.fii_c0+1)", "limit 1", 1, 1},
466452
{"sum(FII.fii_c0), sum(CII.cii_c0)", "limit 1", 1, 1, 1},
467453
};
454+
String[] whereClauses = new String[] {
455+
"A0.a_pk = A2.a_pk AND A0.a_pk = A1.a_pk AND E.e_fii_fk1 = FII.fii_pk1 AND D0.d_e_fk = E.e_pk " +
456+
"AND D0.d_pk = D2.d_pk AND A2.a_pk = D0.d_pk AND D0.d_pk = D1.d_pk AND A0.a_b_fk = B.b_pk " +
457+
"AND B.b_cii_fk1 = CII.cii_pk1 AND B.b_ci_fk = CI.ci_pk AND B.b_cii_fk0 = CII.cii_pk0 " +
458+
"AND D2.d_c3>100 AND E.e_fi_fk = FI.fi_pk AND E.e_fii_fk0 = FII.fii_pk0",
459+
"A0.a_pk = A1.a_pk AND D0.d_pk = D1.d_pk AND A0.a_pk = A2.a_pk AND D0.d_pk = D2.d_pk " +
460+
"AND D0.d_e_fk = E.e_pk AND A2.a_pk = D0.d_pk AND D2.d_c3>100 AND A0.a_b_fk = B.b_pk " +
461+
"AND B.b_ci_fk = CI.ci_pk AND B.b_cii_fk1 = CII.cii_pk1 AND B.b_cii_fk0 = CII.cii_pk0 " +
462+
"AND E.e_fii_fk0 = FII.fii_pk0 AND E.e_fi_fk = FI.fi_pk AND E.e_fii_fk1 = FII.fii_pk1",
463+
"A0.a_pk = A1.a_pk AND E.e_fii_fk0 = FII.fii_pk0 AND A0.a_b_fk = B.b_pk AND A0.a_pk = A2.a_pk " +
464+
"AND B.b_cii_fk0 = CII.cii_pk0 AND B.b_cii_fk1 = CII.cii_pk1 AND D2.d_c3>100 " +
465+
"AND B.b_ci_fk = CI.ci_pk AND D0.d_pk = D1.d_pk AND A2.a_pk = D0.d_pk " +
466+
"AND E.e_fi_fk = FI.fi_pk AND D0.d_pk = D2.d_pk AND D0.d_e_fk = E.e_pk " +
467+
"AND E.e_fii_fk1 = FII.fii_pk1",
468+
"A0.a_pk = A1.a_pk AND A0.a_pk = A2.a_pk AND D2.d_c3>100 AND A2.a_pk = D0.d_pk " +
469+
"AND D0.d_pk = D1.d_pk AND D0.d_e_fk = E.e_pk AND E.e_fi_fk = FI.fi_pk " +
470+
"AND D0.d_pk = D2.d_pk AND E.e_fii_fk0 = FII.fii_pk0 AND A0.a_b_fk = B.b_pk " +
471+
"AND B.b_ci_fk = CI.ci_pk AND B.b_cii_fk1 = CII.cii_pk1 AND B.b_cii_fk0 = CII.cii_pk0 " +
472+
"AND E.e_fii_fk1 = FII.fii_pk1",
473+
"A0.a_pk = A1.a_pk AND A0.a_pk = A2.a_pk AND D0.d_pk = D1.d_pk AND D2.d_c3>100 " +
474+
"AND A2.a_pk = D0.d_pk AND A0.a_b_fk = B.b_pk AND D0.d_pk = D2.d_pk " +
475+
"AND B.b_ci_fk = CI.ci_pk AND B.b_cii_fk0 = CII.cii_pk0 AND D0.d_e_fk = E.e_pk " +
476+
"AND B.b_cii_fk1 = CII.cii_pk1 AND E.e_fi_fk = FI.fi_pk AND E.e_fii_fk0 = FII.fii_pk0 " +
477+
"AND E.e_fii_fk1 = FII.fii_pk1",
478+
479+
};
468480
String sqlFmt = "select %s from %s where %s %s";
469481
for (Object[] tc : testCases) {
470482
String selectItems = (String) tc[0];
471483
String extraLimit = (String) tc[1];
472484
int rboNumHashJoins = (Integer) tc[2];
473485
int finalNmHashJoins = (Integer) tc[3];
474486

475-
for (int i = 0; i < 10; ++i) {
476-
String fromClause =
477-
tables.stream().sorted((a, b) -> new Random().nextInt(3) - 1)
478-
.collect(Collectors.joining(",\n"));
479-
String whereClause = predicates.stream().sorted((a, b) -> new Random().nextInt(3) - 1)
480-
.collect(Collectors.joining("\nAND "));
487+
for (String whereClause : whereClauses) {
488+
String fromClause = tables.stream().collect(Collectors.joining(",\n"));
481489
String sql = String.format(sqlFmt, selectItems, fromClause, whereClause, extraLimit);
482490
checkHashJoinCountWithBothRBOAndCBOLessThan(sql, 12);
483491
}

fe/fe-core/src/test/java/com/starrocks/planner/TimeDriftConstraintTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ private static StarRocksAssert createStarRocksAssert() {
3535
UtFrameUtils.createMinStarRocksCluster();
3636
ConnectContext ctx = UtFrameUtils.createDefaultCtx();
3737
ctx.getSessionVariable().setEnablePipelineEngine(true);
38+
ctx.getSessionVariable().setOptimizerExecuteTimeout(10000);
3839
FeConstants.runningUnitTest = true;
3940
StarRocksAssert starRocksAssert = new StarRocksAssert(ctx);
4041
String hits = "" +

0 commit comments

Comments
 (0)