>From Peeyush Gupta <[email protected]>:
Peeyush Gupta has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19472 )
Change subject: [NO ISSUE][EXT] Error with query on delta table with IN
predicate
......................................................................
[NO ISSUE][EXT] Error with query on delta table with IN predicate
- user model changes: no
- storage format changes: no
- interface changes: no
Ext-ref: MB-65533
Change-Id: I7177a10da9145a8de862991b3e57213138dae9b9
---
M
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/filter/DeltaTableFilterBuilder.java
M
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
M
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/DeltaReaderFactory.java
3 files changed, 25 insertions(+), 3 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/72/19472/1
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/DeltaReaderFactory.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/DeltaReaderFactory.java
index 3c998a5..05bec6e 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/DeltaReaderFactory.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/delta/DeltaReaderFactory.java
@@ -62,6 +62,7 @@
import io.delta.kernel.data.Row;
import io.delta.kernel.defaults.engine.DefaultEngine;
import io.delta.kernel.engine.Engine;
+import io.delta.kernel.exceptions.KernelEngineException;
import io.delta.kernel.exceptions.KernelException;
import io.delta.kernel.expressions.Expression;
import io.delta.kernel.expressions.Predicate;
@@ -107,7 +108,7 @@
Snapshot snapshot;
try {
snapshot = table.getLatestSnapshot(engine);
- } catch (KernelException e) {
+ } catch (KernelException | KernelEngineException e) {
LOGGER.info("Failed to get latest snapshot for table: {}",
tableMetadataPath, e);
throw RuntimeDataException.create(ErrorCode.EXTERNAL_SOURCE_ERROR,
e, getMessageOrToString(e));
}
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
index 82b5dad..fac1199 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataUtils.java
@@ -120,6 +120,7 @@
import io.delta.kernel.defaults.engine.DefaultEngine;
import io.delta.kernel.engine.Engine;
+import io.delta.kernel.exceptions.KernelEngineException;
import io.delta.kernel.exceptions.KernelException;
public class ExternalDataUtils {
@@ -540,7 +541,7 @@
io.delta.kernel.Table table = io.delta.kernel.Table.forPath(engine,
tableMetadataPath);
try {
table.getLatestSnapshot(engine);
- } catch (KernelException e) {
+ } catch (KernelException | KernelEngineException e) {
LOGGER.info("Failed to get latest snapshot for table: {}",
tableMetadataPath, e);
throw CompilationException.create(ErrorCode.EXTERNAL_SOURCE_ERROR,
e, getMessageOrToString(e));
}
diff --git
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/filter/DeltaTableFilterBuilder.java
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/filter/DeltaTableFilterBuilder.java
index 73ed81e..1c7065d 100644
---
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/filter/DeltaTableFilterBuilder.java
+++
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/filter/DeltaTableFilterBuilder.java
@@ -72,7 +72,7 @@
try {
deltaTablePredicate = createExpression(filterExpression);
} catch (Exception e) {
- LOGGER.error("Error creating DeltaTable filter expression ",
e);
+ LOGGER.error("Error creating DeltaTable filter expression,
skipping filter pushdown", e);
}
}
if (deltaTablePredicate != null && !(deltaTablePredicate instanceof
Predicate)) {
@@ -141,8 +141,14 @@
List<Expression> args = handleArgs(funcExpr);
FunctionIdentifier fid = fd.getIdentifier();
if (fid.equals(AlgebricksBuiltinFunctions.AND)) {
+ if (args.size() != 2) {
+ throw new RuntimeException("AND predicate should only have 2
arguments: " + funcExpr);
+ }
return new Predicate("AND", args);
} else if (fid.equals(AlgebricksBuiltinFunctions.OR)) {
+ if (args.size() != 2) {
+ throw new RuntimeException("OR predicate should only have 2
arguments: " + funcExpr);
+ }
return new Predicate("OR", args);
} else if (fid.equals(AlgebricksBuiltinFunctions.EQ)) {
return new Predicate("=", args);
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19472
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I7177a10da9145a8de862991b3e57213138dae9b9
Gerrit-Change-Number: 19472
Gerrit-PatchSet: 1
Gerrit-Owner: Peeyush Gupta <[email protected]>
Gerrit-MessageType: newchange