Skip to content

Commit a4c619f

Browse files
committed
more fix
1 parent a822937 commit a4c619f

10 files changed

Lines changed: 52 additions & 44 deletions

File tree

sdks/java/extensions/sql/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,10 @@ task copyFmppTemplatesFromCalciteCore(type: Copy) {
170170
line ->
171171
line.replace('import static org.apache.calcite.', 'import static org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.')
172172
}
173+
filter{
174+
line ->
175+
line.replace('import com.google.common.', 'import org.apache.beam.vendor.calcite.v1_40_0.com.google.common.')
176+
}
173177
}
174178

175179
// Generate the FMPP sources from the FMPP templates.

sdks/java/extensions/sql/jdbc/src/test/java/org/apache/beam/sdk/extensions/sql/jdbc/BeamSqlLineTest.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,8 @@ public void testSqlLine_fixedWindow() throws Exception {
168168
List<List<String>> lines = toLines(byteArrayOutputStream);
169169
assertThat(
170170
Arrays.asList(
171-
Arrays.asList("2018-07-01 21:26:06", "1"), Arrays.asList("2018-07-01 21:26:07", "1")),
171+
Arrays.asList("2018-07-01 21:26:06.000000", "1"),
172+
Arrays.asList("2018-07-01 21:26:07.000000", "1")),
172173
everyItem(is(oneOf(lines.toArray()))));
173174
}
174175

@@ -190,11 +191,11 @@ public void testSqlLine_slidingWindow() throws Exception {
190191
List<List<String>> lines = toLines(byteArrayOutputStream);
191192
assertThat(
192193
Arrays.asList(
193-
Arrays.asList("2018-07-01 21:26:07", "1"),
194-
Arrays.asList("2018-07-01 21:26:08", "2"),
195-
Arrays.asList("2018-07-01 21:26:09", "2"),
196-
Arrays.asList("2018-07-01 21:26:10", "2"),
197-
Arrays.asList("2018-07-01 21:26:11", "1")),
194+
Arrays.asList("2018-07-01 21:26:07.000000", "1"),
195+
Arrays.asList("2018-07-01 21:26:08.000000", "2"),
196+
Arrays.asList("2018-07-01 21:26:09.000000", "2"),
197+
Arrays.asList("2018-07-01 21:26:10.000000", "2"),
198+
Arrays.asList("2018-07-01 21:26:11.000000", "1")),
198199
everyItem(is(oneOf(lines.toArray()))));
199200
}
200201
}

sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlDslSqlStdOperatorsTest.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public class BeamSqlDslSqlStdOperatorsTest extends BeamSqlBuiltinFunctionsIntegr
6666
private static final BigDecimal ZERO_1 = BigDecimal.valueOf(0).setScale(1, UNNECESSARY);
6767
private static final BigDecimal ONE_0 = BigDecimal.valueOf(1).setScale(0, UNNECESSARY);
6868
private static final BigDecimal ONE_1 = BigDecimal.valueOf(1).setScale(1, UNNECESSARY);
69+
private static final BigDecimal ONE_2 = BigDecimal.valueOf(1).setScale(2, UNNECESSARY);
6970
private static final BigDecimal TWO_0 = BigDecimal.valueOf(2).setScale(0, UNNECESSARY);
7071
private static final BigDecimal TWO_1 = BigDecimal.valueOf(2).setScale(1, UNNECESSARY);
7172

@@ -311,7 +312,7 @@ public void testArithmeticOperator() {
311312
.addExpr("c_double + c_bigint", 2.0)
312313
.addExpr("1 - 1", 0)
313314
.addExpr("1.0 - 1", ZERO_1)
314-
.addExpr("1 - 0.0", ONE_0)
315+
.addExpr("1 - 0.0", ONE_1)
315316
.addExpr("1.0 - 1.0", ZERO_1)
316317
.addExpr("c_tinyint - c_tinyint", (byte) 0)
317318
.addExpr("c_smallint - c_smallint", (short) 0)
@@ -326,9 +327,9 @@ public void testArithmeticOperator() {
326327
.addExpr("c_float - c_bigint", 0.0f)
327328
.addExpr("c_double - c_bigint", 0.0)
328329
.addExpr("1 * 1", 1)
329-
.addExpr("1.0 * 1", ONE_0)
330+
.addExpr("1.0 * 1", ONE_1)
330331
.addExpr("1 * 1.0", ONE_1)
331-
.addExpr("1.0 * 1.0", ONE_1)
332+
.addExpr("1.0 * 1.0", ONE_2)
332333
.addExpr("c_tinyint * c_tinyint", (byte) 1)
333334
.addExpr("c_smallint * c_smallint", (short) 1)
334335
.addExpr("c_bigint * c_bigint", 1L)
@@ -366,11 +367,11 @@ public void testArithmeticOperator() {
366367
.addExpr("mod(c_bigint, c_bigint)", 0L)
367368
.addExpr("mod(c_decimal, c_decimal)", ZERO_0)
368369
.addExpr("mod(c_tinyint, c_decimal)", ZERO_0)
369-
// Test overflow
370-
.addExpr("c_tinyint_max + c_tinyint_max", (byte) -2)
371-
.addExpr("c_smallint_max + c_smallint_max", (short) -2)
372-
.addExpr("c_integer_max + c_integer_max", -2)
373-
.addExpr("c_bigint_max + c_bigint_max", -2L);
370+
// conversions
371+
.addExpr("c_tinyint_max + c_smallint", (short) 128)
372+
.addExpr("c_integer + c_smallint_max", 32768)
373+
.addExpr("c_integer_max + c_bigint", 2147483648L)
374+
.addExpr("c_smallint - c_integer_max", -2147483646);
374375

375376
checker.buildRunAndCheck();
376377
}
@@ -708,8 +709,8 @@ public void testAggrationFunctions() {
708709

709710
@Test
710711
@SqlOperatorTests({
711-
@SqlOperatorTest(name = "CHARACTER_LENGTH", kind = "OTHER_FUNCTION"),
712-
@SqlOperatorTest(name = "CHAR_LENGTH", kind = "OTHER_FUNCTION"),
712+
@SqlOperatorTest(name = "CHARACTER_LENGTH", kind = "CHAR_LENGTH"),
713+
@SqlOperatorTest(name = "CHAR_LENGTH", kind = "CHAR_LENGTH"),
713714
@SqlOperatorTest(name = "INITCAP", kind = "OTHER_FUNCTION"),
714715
@SqlOperatorTest(name = "LOWER", kind = "OTHER_FUNCTION"),
715716
@SqlOperatorTest(name = "POSITION", kind = "POSITION"),
@@ -1129,8 +1130,7 @@ public void testBasicDateTimeFunctions() {
11291130
}
11301131

11311132
@Test
1132-
// https://github.com/apache/beam/issues/19001
1133-
// @SqlOperatorTest(name = "FLOOR", kind = "FLOOR")
1133+
@SqlOperatorTest(name = "FLOOR", kind = "FLOOR")
11341134
public void testFloor() {
11351135
ExpressionChecker checker =
11361136
new ExpressionChecker()
@@ -1140,14 +1140,14 @@ public void testFloor() {
11401140
.addExpr("FLOOR(ts TO DAY)", parseTimestampWithUTCTimeZone("1986-02-15 00:00:00"))
11411141
.addExpr("FLOOR(ts TO MONTH)", parseTimestampWithUTCTimeZone("1986-02-01 00:00:00"))
11421142
.addExpr("FLOOR(ts TO YEAR)", parseTimestampWithUTCTimeZone("1986-01-01 00:00:00"))
1143-
.addExpr("FLOOR(c_double)", 1.0);
1143+
.addExpr("FLOOR(c_double)", 1.0)
1144+
.addExpr("FLOOR(-c_double)", -2.0);
11441145

11451146
checker.buildRunAndCheck(getFloorCeilingTestPCollection());
11461147
}
11471148

11481149
@Test
1149-
// https://github.com/apache/beam/issues/19001
1150-
// @SqlOperatorTest(name = "CEIL", kind = "CEIL")
1150+
@SqlOperatorTest(name = "CEIL", kind = "CEIL")
11511151
public void testCeil() {
11521152
ExpressionChecker checker =
11531153
new ExpressionChecker()
@@ -1157,7 +1157,8 @@ public void testCeil() {
11571157
.addExpr("CEIL(ts TO DAY)", parseTimestampWithUTCTimeZone("1986-02-16 00:00:00"))
11581158
.addExpr("CEIL(ts TO MONTH)", parseTimestampWithUTCTimeZone("1986-03-01 00:00:00"))
11591159
.addExpr("CEIL(ts TO YEAR)", parseTimestampWithUTCTimeZone("1987-01-01 00:00:00"))
1160-
.addExpr("CEIL(c_double)", 2.0);
1160+
.addExpr("CEIL(c_double)", 2.0)
1161+
.addExpr("CEIL(-c_double)", -1.0);
11611162

11621163
checker.buildRunAndCheck(getFloorCeilingTestPCollection());
11631164
}

sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/impl/planner/NodeStatsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public static void prepare() {
6262
public void testUnknownRel() {
6363
String sql = " select * from ORDER_DETAILS1 ";
6464
RelNode root = env.parseQuery(sql);
65-
RelNode unknown = new UnknownRel(root.getCluster(), null, null);
65+
RelNode unknown = new UnknownRel(root.getCluster(), RelTraitSet.createEmpty(), null);
6666
NodeStats nodeStats =
6767
unknown
6868
.metadata(NodeStatsMetadata.class, unknown.getCluster().getMetadataQuery())

sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/impl/rel/BeamEnumerableConverterTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Enumerable;
4545
import org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.linq4j.Enumerator;
4646
import org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelOptCluster;
47+
import org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.RelTraitSet;
4748
import org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.plan.volcano.VolcanoPlanner;
4849
import org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.prepare.RelOptTableImpl;
4950
import org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.rel.core.TableModify.Operation;
@@ -74,7 +75,7 @@ public void testToEnumerable_collectSingle() {
7475
RelDataType type = CalciteUtils.toCalciteRowType(schema, TYPE_FACTORY);
7576
ImmutableList<ImmutableList<RexLiteral>> tuples =
7677
ImmutableList.of(ImmutableList.of(rexBuilder.makeBigintLiteral(BigDecimal.ZERO)));
77-
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, null);
78+
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, RelTraitSet.createEmpty());
7879

7980
Enumerable<Object> enumerable = BeamEnumerableConverter.toEnumerable(options, node);
8081
Enumerator<Object> enumerator = enumerable.enumerator();
@@ -94,7 +95,7 @@ public void testToEnumerable_collectMultiple() {
9495
ImmutableList.of(
9596
rexBuilder.makeBigintLiteral(BigDecimal.ZERO),
9697
rexBuilder.makeBigintLiteral(BigDecimal.ONE)));
97-
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, null);
98+
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, RelTraitSet.createEmpty());
9899

99100
Enumerable<Object> enumerable = BeamEnumerableConverter.toEnumerable(options, node);
100101
Enumerator<Object> enumerator = enumerable.enumerator();
@@ -117,7 +118,7 @@ public void testToListRow_collectMultiple() {
117118
ImmutableList.of(
118119
rexBuilder.makeBigintLiteral(BigDecimal.ZERO),
119120
rexBuilder.makeBigintLiteral(BigDecimal.ONE)));
120-
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, null);
121+
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, RelTraitSet.createEmpty());
121122

122123
List<Row> rowList = BeamEnumerableConverter.toRowList(options, node);
123124
assertTrue(rowList.size() == 1);
@@ -164,7 +165,7 @@ public void testToEnumerable_count() {
164165
cluster,
165166
RelOptTableImpl.create(null, type, ImmutableList.of(), null),
166167
null,
167-
new BeamValuesRel(cluster, type, tuples, null),
168+
new BeamValuesRel(cluster, type, tuples, RelTraitSet.createEmpty()),
168169
Operation.INSERT,
169170
null,
170171
null,
@@ -222,7 +223,7 @@ public void testToEnumerable_collectNullValue() {
222223
ImmutableList.of(
223224
ImmutableList.of(
224225
rexBuilder.makeNullLiteral(CalciteUtils.toRelDataType(TYPE_FACTORY, fieldType))));
225-
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, null);
226+
BeamRelNode node = new BeamValuesRel(cluster, type, tuples, RelTraitSet.createEmpty());
226227

227228
Enumerable<Object> enumerable = BeamEnumerableConverter.toEnumerable(options, node);
228229
Enumerator<Object> enumerator = enumerable.enumerator();

sdks/java/extensions/sql/zetasql/src/test/java/org/apache/beam/sdk/extensions/sql/zetasql/ZetaSqlNumberTypesTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
*/
1818
package org.apache.beam.sdk.extensions.sql.zetasql;
1919

20+
import static org.hamcrest.Matchers.isA;
21+
2022
import com.google.zetasql.Value;
2123
import org.apache.beam.sdk.testing.TestPipeline;
2224
import org.apache.beam.vendor.guava.v32_1_2_jre.com.google.common.collect.ImmutableMap;
@@ -44,7 +46,7 @@ public void testCastDoubleAsNumericOverflow() {
4446
String sql = "SELECT CAST(@p0 AS NUMERIC) AS ColA";
4547

4648
thrown.expect(ZetaSqlException.class);
47-
thrown.expectMessage("Casting TYPE_DOUBLE as TYPE_NUMERIC would cause overflow of literal");
49+
thrown.expectCause(isA(ClassCastException.class));
4850

4951
ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
5052
zetaSQLQueryPlanner.convertToBeamRel(sql, ImmutableMap.of("p0", Value.createDoubleValue(val)));
@@ -56,7 +58,7 @@ public void testCastDoubleAsNumericUnderflow() {
5658
String sql = "SELECT CAST(@p0 AS NUMERIC) AS ColA";
5759

5860
thrown.expect(ZetaSqlException.class);
59-
thrown.expectMessage("Casting TYPE_DOUBLE as TYPE_NUMERIC would cause underflow of literal");
61+
thrown.expectCause(isA(ClassCastException.class));
6062

6163
ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
6264
zetaSQLQueryPlanner.convertToBeamRel(sql, ImmutableMap.of("p0", Value.createDoubleValue(val)));
@@ -68,7 +70,7 @@ public void testCastDoubleAsNumericScaleTooLarge() {
6870
String sql = "SELECT CAST(@p0 AS NUMERIC) AS ColA";
6971

7072
thrown.expect(ZetaSqlException.class);
71-
thrown.expectMessage("Cannot cast TYPE_DOUBLE as TYPE_NUMERIC: scale 1022 exceeds 9");
73+
thrown.expectCause(isA(ClassCastException.class));
7274

7375
ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config);
7476
zetaSQLQueryPlanner.convertToBeamRel(sql, ImmutableMap.of("p0", Value.createDoubleValue(val)));

sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/sql/SqlBoundedSideInputJoin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,13 @@ public static SqlBoundedSideInputJoin calciteSqlBoundedSideInputJoin(
6868
return new SqlBoundedSideInputJoin(
6969
configuration,
7070
CalciteQueryPlanner.class,
71-
"WITH bid_with_side (auction, bidder, price, dateTime, extra, side_id) AS (%n"
71+
"WITH bid_with_side (auction, bidder, price, `dateTime`, extra, side_id) AS (%n"
7272
+ " SELECT *, CAST(MOD(bidder, %d) AS BIGINT) side_id FROM bid%n"
7373
+ ")%n"
7474
+ " SELECT bid_with_side.auction%n"
7575
+ ", bid_with_side.bidder%n"
7676
+ ", bid_with_side.price%n"
77-
+ ", bid_with_side.dateTime%n"
77+
+ ", bid_with_side.`dateTime`%n"
7878
+ ", side.extra%n"
7979
+ " FROM bid_with_side, side%n"
8080
+ " WHERE bid_with_side.side_id = side.id");

sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/sql/SqlQuery1.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
* Query 1, 'Currency Conversion'. Convert each bid value from dollars to euros. In CQL syntax:
3636
*
3737
* <pre>
38-
* SELECT Istream(auction, DOLTOEUR(price), bidder, datetime)
38+
* SELECT Istream(auction, DOLTOEUR(price), bidder, `datetime`)
3939
* FROM bid [ROWS UNBOUNDED];
4040
* </pre>
4141
*
@@ -46,7 +46,7 @@ public class SqlQuery1 extends NexmarkQueryTransform<Bid> {
4646

4747
private static final PTransform<PInput, PCollection<Row>> QUERY =
4848
SqlTransform.query(
49-
"SELECT auction, bidder, DolToEur(price) as price, dateTime, extra FROM PCOLLECTION")
49+
"SELECT auction, bidder, DolToEur(price) as price, `dateTime`, extra FROM PCOLLECTION")
5050
.registerUdf("DolToEur", new DolToEur());
5151

5252
/** Dollar to Euro conversion. */

sdks/java/testing/nexmark/src/main/java/org/apache/beam/sdk/nexmark/queries/sql/SqlQuery7.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,16 @@ public SqlQuery7(NexmarkConfiguration configuration) {
5555

5656
String queryString =
5757
String.format(
58-
""
59-
+ " SELECT B.auction, B.price, B.bidder, B.dateTime, B.extra "
60-
+ " FROM (SELECT B.auction, B.price, B.bidder, B.dateTime, B.extra, "
61-
+ " TUMBLE_START(B.dateTime, INTERVAL '%1$d' SECOND) AS starttime "
58+
" SELECT B.auction, B.price, B.bidder, B.`dateTime`, B.extra "
59+
+ " FROM (SELECT B.auction, B.price, B.bidder, B.`dateTime`, B.extra, "
60+
+ " TUMBLE_START(B.`dateTime`, INTERVAL '%1$d' SECOND) AS starttime "
6261
+ " FROM Bid B "
63-
+ " GROUP BY B.auction, B.price, B.bidder, B.dateTime, B.extra, "
64-
+ " TUMBLE(B.dateTime, INTERVAL '%1$d' SECOND)) B "
62+
+ " GROUP BY B.auction, B.price, B.bidder, B.`dateTime`, B.extra, "
63+
+ " TUMBLE(B.`dateTime`, INTERVAL '%1$d' SECOND)) B "
6564
+ " JOIN (SELECT MAX(B1.price) AS maxprice, "
66-
+ " TUMBLE_START(B1.dateTime, INTERVAL '%1$d' SECOND) AS starttime "
65+
+ " TUMBLE_START(B1.`dateTime`, INTERVAL '%1$d' SECOND) AS starttime "
6766
+ " FROM Bid B1 "
68-
+ " GROUP BY TUMBLE(B1.dateTime, INTERVAL '%1$d' SECOND)) B1 "
67+
+ " GROUP BY TUMBLE(B1.`dateTime`, INTERVAL '%1$d' SECOND)) B1 "
6968
+ " ON B.starttime = B1.starttime AND B.price = B1.maxprice ",
7069
configuration.windowSizeSec);
7170
query = SqlTransform.query(queryString);

sdks/java/testing/tpcds/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ dependencies {
6565
implementation library.java.vendored_calcite_1_40_0
6666
implementation library.java.commons_csv
6767
implementation library.java.slf4j_api
68-
implementation "com.googlecode.json-simple:json-simple:1.1.1"
6968
implementation library.java.jackson_databind
7069
implementation project(":sdks:java:extensions:sql")
7170
implementation project(":sdks:java:io:parquet")
@@ -79,6 +78,7 @@ dependencies {
7978
testRuntimeOnly library.java.slf4j_jdk14
8079
testImplementation project(path: ":sdks:java:io:google-cloud-platform")
8180
testImplementation project(path: ":sdks:java:testing:test-utils")
81+
testImplementation library.java.junit
8282
gradleRun project(project.path)
8383
gradleRun project(path: tpcdsRunnerDependency, configuration: runnerConfiguration)
8484
}

0 commit comments

Comments
 (0)