You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2023/02/28 19:24:58 UTC
[asterixdb] branch master updated: [NO ISSUE]: Properly report error for buckets with dot (.) in the name (Parquet type only)
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
The following commit(s) were added to refs/heads/master by this push:
new 25e56c901c [NO ISSUE]: Properly report error for buckets with dot (.) in the name (Parquet type only)
new 92297c7d87 Merge branch 'gerrit/neo'
25e56c901c is described below
commit 25e56c901c256b991941204e02fdd264818765b6
Author: Hussain Towaileb <Hu...@couchbase.com>
AuthorDate: Fri Feb 24 03:19:01 2023 +0300
[NO ISSUE]: Properly report error for buckets with dot (.) in the name (Parquet type only)
Change-Id: I67c784f617144cd9e828307b832a4d217c450ea1
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17396
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Hussain Towaileb <hu...@gmail.com>
Reviewed-by: Wail Alkowaileet <wa...@gmail.com>
---
.../external/input/HDFSDataSourceFactory.java | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/HDFSDataSourceFactory.java b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/HDFSDataSourceFactory.java
index 419782fd9e..b190e33697 100644
--- a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/HDFSDataSourceFactory.java
+++ b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/HDFSDataSourceFactory.java
@@ -18,6 +18,10 @@
*/
package org.apache.asterix.external.input;
+import static org.apache.asterix.external.util.ExternalDataConstants.CONTAINER_NAME_FIELD_NAME;
+import static org.apache.asterix.external.util.ExternalDataConstants.FORMAT_PARQUET;
+import static org.apache.hyracks.api.util.ExceptionUtils.getMessageOrToString;
+
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
@@ -101,6 +105,7 @@ public class HDFSDataSourceFactory implements IRecordReaderFactory<Object>, IInd
}
protected void configureHdfsConf(JobConf conf, Map<String, String> configuration) throws AlgebricksException {
+ String formatString = configuration.get(ExternalDataConstants.KEY_FORMAT);
try {
confFactory = new ConfFactory(conf);
clusterLocations = getPartitionConstraint();
@@ -120,7 +125,6 @@ public class HDFSDataSourceFactory implements IRecordReaderFactory<Object>, IInd
inputSplitsFactory = new InputSplitsFactory(inputSplits);
read = new boolean[readSchedule.length];
Arrays.fill(read, false);
- String formatString = configuration.get(ExternalDataConstants.KEY_FORMAT);
if (formatString == null || formatString.equals(ExternalDataConstants.FORMAT_HDFS_WRITABLE)) {
RecordReader<?, ?> reader = conf.getInputFormat().getRecordReader(inputSplits[0], conf, Reporter.NULL);
this.recordClass = reader.createValue().getClass();
@@ -132,7 +136,19 @@ public class HDFSDataSourceFactory implements IRecordReaderFactory<Object>, IInd
this.recordClass = char[].class;
}
} catch (IOException e) {
- throw new CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR, e);
+ throw new CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR, e, getMessageOrToString(e));
+ } catch (Exception e) {
+ if (FORMAT_PARQUET.equals(formatString)) {
+ String containerName = configuration.get(CONTAINER_NAME_FIELD_NAME);
+ if (containerName != null && containerName.contains(".")) {
+ throw new CompilationException(ErrorCode.EXTERNAL_SOURCE_ERROR, e,
+ getMessageOrToString(e) + " Buckets with '.' in the name can cause issues.");
+ } else {
+ throw e;
+ }
+ } else {
+ throw e;
+ }
}
}