From e156eb73c9f1904d5d39ad55f38efd93aa4c2148 Mon Sep 17 00:00:00 2001 From: sahusanket Date: Fri, 15 May 2026 17:37:34 +0530 Subject: [PATCH 1/2] PLUGIN-1950 : Log zero records for Table mode and SQL Statement mode. --- .../java/io/cdap/plugin/format/DBTableRecordReader.java | 8 ++++++++ src/main/java/io/cdap/plugin/format/DBTableSplit.java | 2 +- .../io/cdap/plugin/format/MultiTableDBInputFormat.java | 3 +++ .../io/cdap/plugin/format/SQLStatementRecordReader.java | 3 +++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/cdap/plugin/format/DBTableRecordReader.java b/src/main/java/io/cdap/plugin/format/DBTableRecordReader.java index ad3ac28..b612a6e 100644 --- a/src/main/java/io/cdap/plugin/format/DBTableRecordReader.java +++ b/src/main/java/io/cdap/plugin/format/DBTableRecordReader.java @@ -24,6 +24,8 @@ import org.apache.hadoop.mapreduce.InputSplit; import org.apache.hadoop.mapreduce.RecordReader; import org.apache.hadoop.mapreduce.TaskAttemptContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.sql.Connection; @@ -38,6 +40,8 @@ * Record reader that reads the entire contents of a database table using JDBC. */ public class DBTableRecordReader extends RecordReader { + private static final Logger LOG = LoggerFactory.getLogger(DBTableRecordReader.class); + private final DBTableName tableName; private final String tableNameField; private final MultiTableConf dbConf; @@ -85,6 +89,10 @@ public boolean nextKeyValue() throws IOException { schema = Schema.recordOf(tableName.getTable(), schemaFields); } if (!results.next()) { + if (pos == 0 && DBTableSplit.DEFAULT_CLAUSE.equals(split.getLowerClause()) + && DBTableSplit.DEFAULT_CLAUSE.equals(split.getUpperClause())) { + LOG.info("Source table '{}' has zero records.", tableName.fullTableName()); + } return false; } diff --git a/src/main/java/io/cdap/plugin/format/DBTableSplit.java b/src/main/java/io/cdap/plugin/format/DBTableSplit.java index 87142cb..02c115c 100644 --- a/src/main/java/io/cdap/plugin/format/DBTableSplit.java +++ b/src/main/java/io/cdap/plugin/format/DBTableSplit.java @@ -26,7 +26,7 @@ * A split representing data in a database table. */ public class DBTableSplit extends DataDrivenDBInputFormat.DataDrivenDBInputSplit { - private static final String DEFAULT_CLAUSE = "1=1"; + public static final String DEFAULT_CLAUSE = "1=1"; private DBTableName tableName; diff --git a/src/main/java/io/cdap/plugin/format/MultiTableDBInputFormat.java b/src/main/java/io/cdap/plugin/format/MultiTableDBInputFormat.java index b985e34..69d7402 100644 --- a/src/main/java/io/cdap/plugin/format/MultiTableDBInputFormat.java +++ b/src/main/java/io/cdap/plugin/format/MultiTableDBInputFormat.java @@ -196,6 +196,9 @@ private List getTableSplits(Connection connection, MultiTableDBConfi columnName, conf.getPluginConf().getWhereClause()))) { results.next(); + if (results.getObject(1) == null && results.getObject(2) == null) { + return Collections.singletonList(new DBTableSplit(info.getDbTableName())); + } // Based on the type of the results, use a different mechanism // for interpolating split points (i.e., numeric splits, text splits, diff --git a/src/main/java/io/cdap/plugin/format/SQLStatementRecordReader.java b/src/main/java/io/cdap/plugin/format/SQLStatementRecordReader.java index 4e534e8..37c4950 100644 --- a/src/main/java/io/cdap/plugin/format/SQLStatementRecordReader.java +++ b/src/main/java/io/cdap/plugin/format/SQLStatementRecordReader.java @@ -89,6 +89,9 @@ public boolean nextKeyValue() throws IOException { schema = Schema.recordOf(tableName, schemaFields); } if (!results.next()) { + if (pos == 0) { + LOG.info("SQL statement '{}' ('{}') has zero records.", split.getId(), split.getSqlStatement()); + } return false; } From 1a9d88e7617019be7898fee7c608c5d395f292d1 Mon Sep 17 00:00:00 2001 From: vanshikaagupta22 Date: Wed, 20 May 2026 11:26:58 +0000 Subject: [PATCH 2/2] Update version to 1.4.2-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 59d2ba7..b925973 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ io.cdap.plugin multi-table-plugins - 1.4.1 + 1.4.2-SNAPSHOT jar Multiple Table Plugins