diff --git a/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcIO.java b/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcIO.java index 971bfb74feb8d..94b73eb4b682e 100644 --- a/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcIO.java +++ b/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcIO.java @@ -1106,6 +1106,11 @@ public void populateDisplayData(DisplayData.Builder builder) { super.populateDisplayData(builder); builder.add(DisplayData.item("rowMapper", getRowMapper().getClass().getName())); builder.add(DisplayData.item("coder", getCoder().getClass().getName())); + builder.add(DisplayData.item("partitionColumn", getPartitionColumn())); + builder.add(DisplayData.item("table", getTable())); + builder.add(DisplayData.item("numPartitions", getNumPartitions())); + builder.add(DisplayData.item("lowerBound", getLowerBound())); + builder.add(DisplayData.item("upperBound", getUpperBound())); if (getDataSourceProviderFn() instanceof HasDisplayData) { ((HasDisplayData) getDataSourceProviderFn()).populateDisplayData(builder); } diff --git a/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcUtil.java b/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcUtil.java index 598b6da8783c6..dff05f4af1c68 100644 --- a/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcUtil.java +++ b/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/JdbcUtil.java @@ -271,6 +271,11 @@ public void processElement(ProcessContext c) { Integer lowerBound = params.get(0); Integer upperBound = params.get(1); Integer numPartitions = params.get(2); + if (lowerBound > upperBound) { + throw new RuntimeException( + String.format( + "Lower bound [%s] is higher than upper bound [%s]", lowerBound, upperBound)); + } int stride = (upperBound - lowerBound) / numPartitions + 1; for (int i = lowerBound; i < upperBound - stride; i += stride) { String range = String.format("%s,%s", i, i + stride);