Skip to content

Commit b1aa3c6

Browse files
committed
Switch to use DSL.noCondition instead of trueCondition
1 parent e126f94 commit b1aa3c6

File tree

5 files changed

+30
-19
lines changed

5 files changed

+30
-19
lines changed

jooq/src/main/java/io/zero88/rsql/jooq/criteria/JooqComparisonCriteriaBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ protected JooqComparisonCriteriaBuilder(@NonNull ComparisonNode node,
4444
final JooqArgumentParser parser = queryContext.argumentParser();
4545
return fieldMapper.get(table, node().getSelector())
4646
.map(f -> compare(f, node().getArguments(), parser))
47-
.orElse(DSL.trueCondition());
47+
.orElse(DSL.noCondition());
4848
}
4949

5050
protected abstract @NonNull Condition compare(@NonNull Field field, @NonNull List<String> arguments,

jooq/src/main/java/io/zero88/rsql/jooq/criteria/JooqLogicalCriteriaBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public interface JooqLogicalCriteriaBuilder<T extends LogicalNode> extends JooqC
1717
@Override
1818
default @NonNull Condition build(@NonNull TableLike table, @NonNull JooqQueryContext queryContext,
1919
@NonNull JooqCriteriaBuilderFactory factory) {
20-
final Condition[] condition = new Condition[] {DSL.trueCondition()};
20+
final Condition[] condition = new Condition[] {DSL.noCondition()};
2121
boolean isFirst = true;
2222
for (Node node : node()) {
2323
if (isFirst) {

jooq/src/test/java/io/zero88/rsql/jooq/CriteriaBuilderTest.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@ public void test_and_node() {
2525
Collections.singletonList("true"));
2626
final AndNode node = new AndNode(Arrays.asList(eqNode1, eqNode2));
2727
final Condition condition = JooqCriteriaBuilderFactory.DEFAULT.create(node).build(Tables.ALL_DATA_TYPE);
28+
System.out.println(node.toString());
29+
System.out.println(condition.toString());
2830
Assertions.assertEquals(
29-
"( 1 = 1 and \"ALL_DATA_TYPE\".\"F_STR\" = 'abc' and \"ALL_DATA_TYPE\".\"F_BOOL\" = true )",
31+
"( \"ALL_DATA_TYPE\".\"F_STR\" = 'abc' and \"ALL_DATA_TYPE\".\"F_BOOL\" = true )",
3032
Strings.optimizeMultipleSpace(condition.toString()));
3133
}
3234

@@ -39,8 +41,10 @@ public void test_or_node() {
3941
Collections.singletonList("xyz"));
4042
final OrNode node = new OrNode(Arrays.asList(eqNode1, eqNode2));
4143
final Condition condition = JooqCriteriaBuilderFactory.DEFAULT.create(node).build(Tables.ALL_DATA_TYPE);
44+
System.out.println(node.toString());
45+
System.out.println(condition.toString());
4246
Assertions.assertEquals(
43-
"( ( 1 = 1 and \"ALL_DATA_TYPE\".\"F_DURATION\" = 'abc' ) or \"ALL_DATA_TYPE\".\"F_PERIOD\" = 'xyz' )",
47+
"( \"ALL_DATA_TYPE\".\"F_DURATION\" = 'abc' or \"ALL_DATA_TYPE\".\"F_PERIOD\" = 'xyz' )",
4448
Strings.optimizeMultipleSpace(condition.toString()));
4549
}
4650

@@ -58,9 +62,11 @@ public void test_combine_logical_node() {
5862
final OrNode orNode = new OrNode(Arrays.asList(eqNode3, eqNode4));
5963
final AndNode node = new AndNode(Arrays.asList(eqNode1, eqNode2, orNode));
6064
final Condition condition = JooqCriteriaBuilderFactory.DEFAULT.create(node).build(Tables.ALL_DATA_TYPE);
65+
System.out.println(node.toString());
66+
System.out.println(condition.toString());
6167
Assertions.assertEquals(
62-
"( 1 = 1 and \"ALL_DATA_TYPE\".\"F_STR\" = 'abc' and \"ALL_DATA_TYPE\".\"F_BOOL\" = true and " +
63-
"( ( 1 = 1 and \"ALL_DATA_TYPE\".\"F_DURATION\" = 'def' ) or \"ALL_DATA_TYPE\".\"F_PERIOD\" = 'xyz' ) )",
68+
"( \"ALL_DATA_TYPE\".\"F_STR\" = 'abc' and \"ALL_DATA_TYPE\".\"F_BOOL\" = true and ( \"ALL_DATA_TYPE\"" +
69+
".\"F_DURATION\" = 'def' or \"ALL_DATA_TYPE\".\"F_PERIOD\" = 'xyz' ) )",
6470
Strings.optimizeMultipleSpace(condition.toString()));
6571
}
6672

jooq/src/test/java/io/zero88/rsql/jooq/JooqRqlQueryTest.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
import org.junit.jupiter.api.BeforeEach;
1111
import org.junit.jupiter.api.Test;
1212

13+
import io.github.zero88.utils.Strings;
1314
import io.zero88.rsql.jooq.query.JooqFetchCountQuery;
1415
import io.zero88.rsql.jooq.query.JooqFetchExistQuery;
15-
import io.github.zero88.utils.Strings;
1616

1717
public class JooqRqlQueryTest {
1818

@@ -27,17 +27,19 @@ public void before() {
2727

2828
@Test
2929
public void test_h2_schema_info() {
30-
final String query = Tables.TABLE_SCHEMA.getName() + "==public" + ";" +
31-
Tables.TABLE_NAME.getName() + "=exists=x" + " and " + "(" +
32-
Tables.TABLE_TYPE.getName() + "=in=(xyz,abc)" + "," +
30+
final String query = Tables.TABLE_SCHEMA.getName() + "==public" + ";" + Tables.TABLE_NAME.getName() +
31+
"=exists=t" + " and " + "(" + Tables.TABLE_TYPE.getName() + "=in=(xyz,abc)" + "," +
3332
Tables.TABLE_CLASS.getName() + "=out=(123,456)" + ")";
3433
final Condition condition = jooqRqlParser.criteria(query, Tables.TABLES);
35-
Assertions.assertEquals("( 1 = 1 and \"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_SCHEMA\" = 'public' and " +
36-
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_NAME\" is not null and ( ( 1 = 1 and " +
37-
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_TYPE\" in ( 'xyz', 'abc' ) ) or " +
34+
Assertions.assertEquals("( \"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_SCHEMA\" = 'public' and " +
35+
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_NAME\" is not null and ( " +
36+
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_TYPE\" in ( 'xyz', 'abc' ) or " +
3837
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_CLASS\" not in ( '123', '456' ) ) )",
3938
Strings.optimizeMultipleSpace(condition.toString()));
39+
System.out.println(query);
40+
System.out.println(Strings.optimizeMultipleSpace(condition.toString()));
4041
Assertions.assertEquals(0, JooqFetchCountQuery.builder()
42+
.parser(jooqRqlParser)
4143
.dsl(dsl)
4244
.table(Tables.TABLES)
4345
.build()
@@ -47,14 +49,13 @@ public void test_h2_schema_info() {
4749

4850
@Test
4951
public void test_h2_exist() {
50-
final String query = Tables.TABLE_SCHEMA.getName() + "==public" + ";" +
51-
Tables.TABLE_NAME.getName() + "=exists=x" + " and " + "(" +
52-
Tables.TABLE_TYPE.getName() + "=in=(xyz,abc)" + "," +
52+
final String query = Tables.TABLE_SCHEMA.getName() + "==public" + ";" + Tables.TABLE_NAME.getName() +
53+
"=exists=x" + " and " + "(" + Tables.TABLE_TYPE.getName() + "=in=(xyz,abc)" + "," +
5354
Tables.TABLE_CLASS.getName() + "=out=(123,456)" + ")";
5455
final Condition condition = jooqRqlParser.criteria(query, Tables.TABLES);
55-
Assertions.assertEquals("( 1 = 1 and \"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_SCHEMA\" = 'public' and " +
56-
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_NAME\" is not null and ( ( 1 = 1 and " +
57-
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_TYPE\" in ( 'xyz', 'abc' ) ) or " +
56+
Assertions.assertEquals("( \"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_SCHEMA\" = 'public' and " +
57+
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_NAME\" is not null and ( " +
58+
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_TYPE\" in ( 'xyz', 'abc' ) or " +
5859
"\"INFORMATION_SCHEMA\".\"TABLES\".\"TABLE_CLASS\" not in ( '123', '456' ) ) )",
5960
Strings.optimizeMultipleSpace(condition.toString()));
6061
Assertions.assertEquals(false,

jooq/src/test/java/io/zero88/rsql/jooq/comparison/ComparisonCriteriaBuilderTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ public void test_between_node() {
121121
final JooqCriteriaBuilder builder = JooqCriteriaBuilderFactory.DEFAULT.create(node);
122122
Assertions.assertTrue(builder instanceof BetweenBuilder);
123123
final Condition condition = builder.build(Tables.ALL_DATA_TYPE);
124+
System.out.println(node.toString());
125+
System.out.println(condition.toString());
124126
Assertions.assertEquals(
125127
"\"ALL_DATA_TYPE\".\"F_DATE\" between timestamp '2020-04-05 08:00:00.0' and timestamp " +
126128
"'2020-04-08 08:00:00.0'", Strings.optimizeMultipleSpace(condition.toString()));
@@ -133,6 +135,8 @@ public void test_exists_node() {
133135
final JooqCriteriaBuilder builder = JooqCriteriaBuilderFactory.DEFAULT.create(node);
134136
Assertions.assertTrue(builder instanceof ExistsBuilder);
135137
final Condition condition = builder.build(Tables.ALL_DATA_TYPE);
138+
System.out.println(node.toString());
139+
System.out.println(condition.toString());
136140
Assertions.assertEquals("\"ALL_DATA_TYPE\".\"F_PERIOD\" is not null",
137141
Strings.optimizeMultipleSpace(condition.toString()));
138142
}

0 commit comments

Comments
 (0)