Till Westmann has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/603
Change subject: some exception cleanup for external data
......................................................................
some exception cleanup for external data
Change-Id: Icf9591046c44f5fa2281874ff0c98d780e741267
---
M
asterix-external-data/src/main/java/org/apache/asterix/external/api/IDataParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/api/IFunctionHelper.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/api/IJObject.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordDataParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/api/IStreamDataParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectUtil.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjects.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractDataParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/parser/HiveRecordParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/parser/RecordWithMetadataParser.java
M
asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java
M
asterix-maven-plugins/lexer-generator-maven-plugin/src/main/java/org/apache/asterix/lexergenerator/LexerGenerator.java
M
asterix-maven-plugins/lexer-generator-maven-plugin/src/main/resources/LexerException.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/ExternalDatasetDetails.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeGroupTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeTupleTranslator.java
M
asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtils.java
M asterix-om/src/main/java/org/apache/asterix/builders/IARecordBuilder.java
M asterix-om/src/main/java/org/apache/asterix/builders/RecordBuilder.java
M
asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M asterix-om/src/main/java/org/apache/asterix/om/base/AMutableInterval.java
M
asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java
M
asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/constructors/OpenRecordConstructorDescriptor.java
M
asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
M
asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
42 files changed, 333 insertions(+), 522 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/03/603/1
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IDataParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IDataParser.java
index 4ad4c4f..e680822 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IDataParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IDataParser.java
@@ -55,18 +55,16 @@
* 2. The query compiler.
* @param recordType
* The expected record type
- * @throws HyracksDataException
* @throws IOException
*/
- public void configure(Map<String, String> configuration, ARecordType
recordType)
- throws HyracksDataException, IOException;
+ public void configure(Map<String, String> configuration, ARecordType
recordType) throws IOException;
/*
* The following two static methods are expensive. right now, they are
used by RSSFeeds and Twitter feed
* TODO: Get rid of them
*/
public static void writeRecord(AMutableRecord record, DataOutput
dataOutput, IARecordBuilder recordBuilder)
- throws IOException, AsterixException {
+ throws HyracksDataException {
ArrayBackedValueStorage fieldValue = new ArrayBackedValueStorage();
int numFields = record.getType().getFieldNames().length;
for (int pos = 0; pos < numFields; pos++) {
@@ -79,7 +77,7 @@
}
@SuppressWarnings("unchecked")
- public static void writeObject(IAObject obj, DataOutput dataOutput) throws
IOException, AsterixException {
+ public static void writeObject(IAObject obj, DataOutput dataOutput) throws
HyracksDataException {
switch (obj.getType().getTypeTag()) {
case RECORD: {
IARecordBuilder recordBuilder = new RecordBuilder();
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IFunctionHelper.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IFunctionHelper.java
index ebd0757..b8be685 100755
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IFunctionHelper.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IFunctionHelper.java
@@ -18,10 +18,8 @@
*/
package org.apache.asterix.external.api;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.external.library.java.JTypeTag;
-
-import java.io.IOException;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public interface IFunctionHelper {
@@ -29,7 +27,7 @@
public IJObject getResultObject();
- public void setResult(IJObject result) throws IOException,
AsterixException;
+ public void setResult(IJObject result) throws HyracksDataException;
public boolean isValidResult();
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IJObject.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IJObject.java
index a88f47d..250e4fa 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IJObject.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IJObject.java
@@ -22,7 +22,6 @@
import org.apache.asterix.om.base.IAObject;
import org.apache.asterix.om.types.ATypeTag;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.api.exceptions.HyracksDataException;
public interface IJObject {
@@ -33,5 +32,5 @@
public void serialize(DataOutput dataOutput, boolean writeTypeTag) throws
HyracksDataException;
- public void reset() throws AlgebricksException;
+ public void reset() throws HyracksDataException;
}
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordDataParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordDataParser.java
index cc24847..3cb8f37 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordDataParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IRecordDataParser.java
@@ -19,6 +19,7 @@
package org.apache.asterix.external.api;
import java.io.DataOutput;
+import java.io.IOException;
public interface IRecordDataParser<T> extends IDataParser {
@@ -27,7 +28,7 @@
* @param out
* @throws Exception
*/
- public void parse(IRawRecord<? extends T> record, DataOutput out) throws
Exception;
+ public void parse(IRawRecord<? extends T> record, DataOutput out) throws
IOException;
/**
* @return the record class
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IStreamDataParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IStreamDataParser.java
index 531d050..8d11e4b 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/api/IStreamDataParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/api/IStreamDataParser.java
@@ -18,6 +18,8 @@
*/
package org.apache.asterix.external.api;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
import java.io.DataOutput;
import java.io.IOException;
import java.io.InputStream;
@@ -26,7 +28,7 @@
/**
* Sets the inputStream for the parser. called only for parsers that
support InputStreams
*/
- public void setInputStream(InputStream in) throws Exception;
+ public void setInputStream(InputStream in) throws IOException;
/**
* Parse data into output AsterixDataModel binary records.
@@ -34,7 +36,7 @@
* @param out
* DataOutput instance that for writing the parser output.
*/
- public boolean parse(DataOutput out) throws Exception;
+ public boolean parse(DataOutput out) throws IOException;
/**
* reset the parser state. this is called when a failure takes place
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
index 13ea589..34e3878 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/JavaFunctionHelper.java
@@ -18,6 +18,10 @@
*/
package org.apache.asterix.external.library;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.external.api.IFunctionHelper;
import org.apache.asterix.external.api.IJObject;
@@ -39,10 +43,6 @@
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IDataOutputProvider;
import org.apache.hyracks.data.std.api.IValueReference;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
public class JavaFunctionHelper implements IFunctionHelper {
@@ -80,18 +80,14 @@
}
@Override
- public void setResult(IJObject result) throws IOException,
AsterixException {
+ public void setResult(IJObject result) throws HyracksDataException {
if (result == null) {
JNull.INSTANCE.serialize(outputProvider.getDataOutput(), true);
isValidResult = false;
} else {
- try {
- isValidResult = true;
- result.serialize(outputProvider.getDataOutput(), true);
- result.reset();
- } catch (IOException | AlgebricksException e) {
- throw new HyracksDataException(e);
- }
+ isValidResult = true;
+ result.serialize(outputProvider.getDataOutput(), true);
+ result.reset();
}
}
@@ -99,7 +95,7 @@
* Gets the value of the result flag
*
* @return
- * boolean True is the setResult is called and result is not null
+ * boolean True is the setResult is called and result is not null
*/
@Override
public boolean isValidResult() {
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java
index 1835739..5923354 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectAccessors.java
@@ -88,7 +88,6 @@
import org.apache.asterix.om.types.EnumDeserializer;
import org.apache.asterix.om.types.IAType;
import org.apache.asterix.om.util.container.IObjectPool;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.util.string.UTF8StringReader;
@@ -337,11 +336,7 @@
long intervalEnd =
AIntervalSerializerDeserializer.getIntervalEnd(b, s);
byte intervalType =
AIntervalSerializerDeserializer.getIntervalTimeType(b, s);
IJObject jObject = objectPool.allocate(BuiltinType.AINTERVAL);
- try {
- ((JInterval) jObject).setValue(intervalStart, intervalEnd,
intervalType);
- } catch (AlgebricksException e) {
- throw new HyracksDataException(e);
- }
+ ((JInterval) jObject).setValue(intervalStart, intervalEnd,
intervalType);
return jObject;
}
}
@@ -464,11 +459,7 @@
@Override
public JRecord access(ARecordVisitablePointable pointable,
IObjectPool<IJObject, IAType> objectPool,
ARecordType recordType, JObjectPointableVisitor
pointableVisitor) throws HyracksDataException {
- try {
- jRecord.reset();
- } catch (AlgebricksException e) {
- throw new HyracksDataException(e);
- }
+ jRecord.reset();
ARecordVisitablePointable recordPointable = pointable;
List<IVisitablePointable> fieldPointables =
recordPointable.getFieldValues();
List<IVisitablePointable> fieldTypeTags =
recordPointable.getFieldTypeTags();
@@ -525,11 +516,7 @@
}
public void reset() throws HyracksDataException {
- try {
- jRecord.reset();
- } catch (AlgebricksException e) {
- throw new HyracksDataException(e);
- }
+ jRecord.reset();
openFields.clear();
}
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectUtil.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectUtil.java
index e7c1ec1..8c3c645 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectUtil.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjectUtil.java
@@ -22,7 +22,6 @@
import java.util.ArrayList;
import java.util.List;
-import org.apache.asterix.common.exceptions.AsterixException;
import
org.apache.asterix.dataflow.data.nontagged.serde.AStringSerializerDeserializer;
import
org.apache.asterix.dataflow.data.nontagged.serde.SerializerDeserializerUtil;
import org.apache.asterix.external.api.IJObject;
@@ -57,13 +56,13 @@
import org.apache.asterix.om.types.IAType;
import org.apache.asterix.om.util.NonTaggedFormatUtil;
import org.apache.asterix.om.util.container.IObjectPool;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
public class JObjectUtil {
/**
* Normalize an input string by removing linebreaks, and replace them with
space
* Also remove non-readable special characters
+ *
* @param originalString
* The input String
* @return
@@ -88,7 +87,7 @@
}
public static IJObject getJType(ATypeTag typeTag, IAType type,
ByteArrayAccessibleDataInputStream dis,
- IObjectPool<IJObject, IAType> objectPool) throws IOException,
AsterixException {
+ IObjectPool<IJObject, IAType> objectPool) throws IOException {
IJObject jObject;
switch (typeTag) {
@@ -160,11 +159,7 @@
long start = dis.readLong();
long end = dis.readLong();
byte intervalType = dis.readByte();
- try {
- ((JInterval) jObject).setValue(start, end, intervalType);
- } catch (AlgebricksException e) {
- throw new AsterixException(e);
- }
+ ((JInterval) jObject).setValue(start, end, intervalType);
break;
}
@@ -408,7 +403,7 @@
return fields;
}
- private static ARecordType mergeRecordTypes(ARecordType recType1,
ARecordType recType2) throws AsterixException {
+ private static ARecordType mergeRecordTypes(ARecordType recType1,
ARecordType recType2) {
String[] fieldNames = new String[recType1.getFieldNames().length +
recType2.getFieldNames().length];
IAType[] fieldTypes = new IAType[recType1.getFieldTypes().length +
recType2.getFieldTypes().length];
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjects.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjects.java
index 42b0742..55b2185 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjects.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/library/java/JObjects.java
@@ -91,7 +91,6 @@
import org.apache.asterix.om.types.ATypeTag;
import org.apache.asterix.om.types.AUnorderedListType;
import org.apache.asterix.om.types.IAType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
@@ -550,7 +549,7 @@
super(new AMutableInterval(intervalStart, intervalEnd, (byte) 0));
}
- public void setValue(long intervalStart, long intervalEnd, byte
typetag) throws AlgebricksException {
+ public void setValue(long intervalStart, long intervalEnd, byte
typetag) throws HyracksDataException {
((AMutableInterval) value).setValue(intervalStart, intervalEnd,
typetag);
}
@@ -579,7 +578,7 @@
}
@Override
- public void reset() throws AlgebricksException {
+ public void reset() throws HyracksDataException {
((AMutableInterval) value).setValue(0L, 0L, (byte) 0);
}
@@ -1099,14 +1098,10 @@
recordBuilder.addField(openFieldName, openFieldValue);
}
}
- } catch (IOException | AsterixException ae) {
+ } catch (IOException ae) {
throw new HyracksDataException(ae);
}
- try {
- recordBuilder.write(output, writeTypeTag);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ recordBuilder.write(output, writeTypeTag);
}
@Override
@@ -1115,7 +1110,7 @@
}
@Override
- public void reset() throws AlgebricksException {
+ public void reset() throws HyracksDataException {
if (openFields != null && !openFields.isEmpty()) {
openFields.clear();
}
@@ -1128,7 +1123,7 @@
}
}
- public void reset(IJObject[] fields, LinkedHashMap<String, IJObject>
openFields) throws AlgebricksException {
+ public void reset(IJObject[] fields, LinkedHashMap<String, IJObject>
openFields) throws HyracksDataException {
this.reset();
this.fields = fields;
this.openFields = openFields;
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java
index 14a3e2a..74ffb03 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/ADMDataParser.java
@@ -33,7 +33,6 @@
import org.apache.asterix.builders.OrderedListBuilder;
import org.apache.asterix.builders.RecordBuilderFactory;
import org.apache.asterix.builders.UnorderedListBuilder;
-import org.apache.asterix.common.exceptions.AsterixException;
import
org.apache.asterix.dataflow.data.nontagged.serde.APolygonSerializerDeserializer;
import
org.apache.asterix.external.api.IExternalDataSourceFactory.DataSourceType;
import org.apache.asterix.external.api.IRawRecord;
@@ -54,7 +53,6 @@
import org.apache.asterix.om.util.container.IObjectPool;
import org.apache.asterix.om.util.container.ListObjectPool;
import org.apache.asterix.runtime.operators.file.adm.AdmLexer;
-import org.apache.asterix.runtime.operators.file.adm.AdmLexerException;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IMutableValueStorage;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
@@ -82,7 +80,7 @@
private String mismatchErrorMessage2 = " got a value of type ";
private Map<String, String> configuration;
- static class ParseException extends AsterixException {
+ static class ParseException extends HyracksDataException {
private static final long serialVersionUID = 1L;
private String filename;
private int line = -1;
@@ -137,17 +135,15 @@
}
@Override
- public boolean parse(DataOutput out) throws AsterixException {
+ public boolean parse(DataOutput out) throws IOException {
try {
resetPools();
return parseAdmInstance(recordType, out);
- } catch (IOException e) {
- throw new ParseException(e, filename, admLexer.getLine(),
admLexer.getColumn());
- } catch (AdmLexerException e) {
- throw new AsterixException(e);
} catch (ParseException e) {
e.setLocation(filename, admLexer.getLine(), admLexer.getColumn());
throw e;
+ } catch (IOException e) {
+ throw new ParseException(e, filename, admLexer.getLine(),
admLexer.getColumn());
}
}
@@ -168,18 +164,16 @@
}
@Override
- public void parse(IRawRecord<? extends char[]> record, DataOutput out)
throws Exception {
+ public void parse(IRawRecord<? extends char[]> record, DataOutput out)
throws IOException {
try {
resetPools();
admLexer.setBuffer(record.get());
parseAdmInstance(recordType, out);
- } catch (IOException e) {
- throw new ParseException(e, filename, admLexer.getLine(),
admLexer.getColumn());
- } catch (AdmLexerException e) {
- throw new AsterixException(e);
} catch (ParseException e) {
e.setLocation(filename, admLexer.getLine(), admLexer.getColumn());
throw e;
+ } catch (IOException e) {
+ throw new ParseException(e, filename, admLexer.getLine(),
admLexer.getColumn());
}
}
@@ -189,12 +183,11 @@
}
@Override
- public void setInputStream(InputStream in) throws Exception {
+ public void setInputStream(InputStream in) throws IOException {
admLexer = new AdmLexer(new java.io.InputStreamReader(in));
}
- protected boolean parseAdmInstance(IAType objectType, DataOutput out)
- throws AsterixException, IOException, AdmLexerException {
+ protected boolean parseAdmInstance(IAType objectType, DataOutput out)
throws IOException {
int token = admLexer.next();
if (token == AdmLexer.TOKEN_EOF) {
return false;
@@ -204,8 +197,7 @@
}
}
- private void admFromLexerStream(int token, IAType objectType, DataOutput
out)
- throws AsterixException, IOException, AdmLexerException {
+ private void admFromLexerStream(int token, IAType objectType, DataOutput
out) throws IOException {
switch (token) {
case AdmLexer.TOKEN_NULL_LITERAL: {
@@ -529,7 +521,7 @@
return null; // wont get here
}
- private ATypeTag getTargetTypeTag(ATypeTag expectedTypeTag, IAType
aObjectType) throws IOException {
+ private ATypeTag getTargetTypeTag(ATypeTag expectedTypeTag, IAType
aObjectType) throws HyracksDataException {
if (aObjectType == null) {
return expectedTypeTag;
}
@@ -559,8 +551,7 @@
return getTargetTypeTag(expectedTypeTag, aObjectType) != null;
}
- private void parseRecord(ARecordType recType, DataOutput out)
- throws IOException, AsterixException, AdmLexerException {
+ private void parseRecord(ARecordType recType, DataOutput out) throws
IOException {
ArrayBackedValueStorage fieldValueBuffer = getTempBuffer();
ArrayBackedValueStorage fieldNameBuffer = getTempBuffer();
@@ -702,8 +693,7 @@
return -1;
}
- private void parseOrderedList(AOrderedListType oltype, DataOutput out)
- throws IOException, AsterixException, AdmLexerException {
+ private void parseOrderedList(AOrderedListType oltype, DataOutput out)
throws IOException {
ArrayBackedValueStorage itemBuffer = getTempBuffer();
OrderedListBuilder orderedListBuilder = (OrderedListBuilder)
getOrderedListBuilder();
@@ -744,8 +734,7 @@
orderedListBuilder.write(out, true);
}
- private void parseUnorderedList(AUnorderedListType uoltype, DataOutput out)
- throws IOException, AsterixException, AdmLexerException {
+ private void parseUnorderedList(AUnorderedListType uoltype, DataOutput
out) throws IOException {
ArrayBackedValueStorage itemBuffer = getTempBuffer();
UnorderedListBuilder unorderedListBuilder = (UnorderedListBuilder)
getUnorderedListBuilder();
@@ -821,16 +810,14 @@
}
}
- private void parseToNumericTarget(ATypeTag typeTag, IAType objectType,
DataOutput out)
- throws AsterixException, IOException {
+ private void parseToNumericTarget(ATypeTag typeTag, IAType objectType,
DataOutput out) throws IOException {
final ATypeTag targetTypeTag = getTargetTypeTag(typeTag, objectType);
if (targetTypeTag == null || !parseValue(admLexer.getLastTokenImage(),
targetTypeTag, out)) {
throw new ParseException(mismatchErrorMessage +
objectType.getTypeName() + mismatchErrorMessage2 + typeTag);
}
}
- private void parseAndCastNumeric(ATypeTag typeTag, IAType objectType,
DataOutput out)
- throws AsterixException, IOException {
+ private void parseAndCastNumeric(ATypeTag typeTag, IAType objectType,
DataOutput out) throws IOException {
final ATypeTag targetTypeTag = getTargetTypeTag(typeTag, objectType);
DataOutput dataOutput = out;
if (targetTypeTag != typeTag) {
@@ -848,8 +835,7 @@
// can promote typeTag to targetTypeTag
ITypeConvertComputer promoteComputer =
ATypeHierarchy.getTypePromoteComputer(typeTag, targetTypeTag);
if (promoteComputer == null) {
- throw new AsterixException(
- "Can't cast the " + typeTag + " type to the " +
targetTypeTag + " type.");
+ throw new ParseException("Can't cast the " + typeTag + "
type to the " + targetTypeTag + " type.");
}
// do the promotion; note that the type tag field should be
skipped
promoteComputer.convertType(castBuffer.getByteArray(),
castBuffer.getStartOffset() + 1,
@@ -858,8 +844,7 @@
//can demote source type to the target type
ITypeConvertComputer demoteComputer =
ATypeHierarchy.getTypeDemoteComputer(typeTag, targetTypeTag);
if (demoteComputer == null) {
- throw new AsterixException(
- "Can't cast the " + typeTag + " type to the " +
targetTypeTag + " type.");
+ throw new ParseException("Can't cast the " + typeTag + "
type to the " + targetTypeTag + " type.");
}
// do the demotion; note that the type tag field should be
skipped
demoteComputer.convertType(castBuffer.getByteArray(),
castBuffer.getStartOffset() + 1,
@@ -868,8 +853,7 @@
}
}
- private void parseConstructor(ATypeTag typeTag, IAType objectType,
DataOutput out)
- throws AsterixException, AdmLexerException, IOException {
+ private void parseConstructor(ATypeTag typeTag, IAType objectType,
DataOutput out) throws IOException {
final ATypeTag targetTypeTag = getTargetTypeTag(typeTag, objectType);
if (targetTypeTag != null) {
DataOutput dataOutput = out;
@@ -906,8 +890,7 @@
throw new ParseException(mismatchErrorMessage +
objectType.getTypeName() + ". Got " + typeTag + " instead.");
}
- private boolean parseValue(final String unquoted, ATypeTag typeTag,
DataOutput out)
- throws AsterixException, HyracksDataException, IOException {
+ private boolean parseValue(final String unquoted, ATypeTag typeTag,
DataOutput out) throws HyracksDataException {
switch (typeTag) {
case BOOLEAN:
parseBoolean(unquoted, out);
@@ -981,7 +964,7 @@
}
}
- private void parseBoolean(String bool, DataOutput out) throws
AsterixException, HyracksDataException {
+ private void parseBoolean(String bool, DataOutput out) throws
HyracksDataException {
String errorMessage = "This can not be an instance of boolean";
if (bool.equals("true")) {
booleanSerde.serialize(ABoolean.TRUE, out);
@@ -992,7 +975,7 @@
}
}
- private void parseInt8(String int8, DataOutput out) throws
AsterixException, HyracksDataException {
+ private void parseInt8(String int8, DataOutput out) throws
HyracksDataException {
String errorMessage = "This can not be an instance of int8";
boolean positive = true;
byte value = 0;
@@ -1023,7 +1006,7 @@
int8Serde.serialize(aInt8, out);
}
- private void parseInt16(String int16, DataOutput out) throws
AsterixException, HyracksDataException {
+ private void parseInt16(String int16, DataOutput out) throws
HyracksDataException {
String errorMessage = "This can not be an instance of int16";
boolean positive = true;
short value = 0;
@@ -1055,7 +1038,7 @@
int16Serde.serialize(aInt16, out);
}
- private void parseInt32(String int32, DataOutput out) throws
AsterixException, HyracksDataException {
+ private void parseInt32(String int32, DataOutput out) throws
HyracksDataException {
String errorMessage = "This can not be an instance of int32";
boolean positive = true;
int value = 0;
@@ -1088,7 +1071,7 @@
int32Serde.serialize(aInt32, out);
}
- private void parseInt64(String int64, DataOutput out) throws
AsterixException, HyracksDataException {
+ private void parseInt64(String int64, DataOutput out) throws
HyracksDataException {
String errorMessage = "This can not be an instance of int64";
boolean positive = true;
long value = 0;
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractDataParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractDataParser.java
index f5f2793..20b4124 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractDataParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/AbstractDataParser.java
@@ -73,7 +73,6 @@
import org.apache.asterix.om.base.temporal.GregorianCalendarSystem;
import org.apache.asterix.om.types.ATypeTag;
import org.apache.asterix.om.types.BuiltinType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.util.bytes.Base64Parser;
@@ -198,23 +197,13 @@
}
protected void parseTime(String time, DataOutput out) throws
HyracksDataException {
- int chrononTimeInMs;
- try {
- chrononTimeInMs = ATimeParserFactory.parseTimePart(time, 0,
time.length());
- } catch (Exception e) {
- throw new HyracksDataException(e);
- }
+ int chrononTimeInMs = ATimeParserFactory.parseTimePart(time, 0,
time.length());
aTime.setValue(chrononTimeInMs);
timeSerde.serialize(aTime, out);
}
protected void parseDate(String date, DataOutput out) throws
HyracksDataException {
- long chrononTimeInMs = 0;
- try {
- chrononTimeInMs = ADateParserFactory.parseDatePart(date, 0,
date.length());
- } catch (Exception e) {
- throw new HyracksDataException(e);
- }
+ long chrononTimeInMs = ADateParserFactory.parseDatePart(date, 0,
date.length());
short temp = 0;
if (chrononTimeInMs < 0 && chrononTimeInMs %
GregorianCalendarSystem.CHRONON_OF_DAY != 0) {
temp = 1;
@@ -224,56 +213,39 @@
}
protected void parseDateTime(String datetime, DataOutput out) throws
HyracksDataException {
- long chrononTimeInMs = 0;
- try {
- // +1 if it is negative (-)
- short timeOffset = (short) ((datetime.charAt(0) == '-') ? 1 : 0);
+ // +1 if it is negative (-)
+ short timeOffset = (short) ((datetime.charAt(0) == '-') ? 1 : 0);
- timeOffset += 8;
+ timeOffset += 8;
+ if (datetime.charAt(timeOffset) != 'T') {
+ timeOffset += 2;
if (datetime.charAt(timeOffset) != 'T') {
- timeOffset += 2;
- if (datetime.charAt(timeOffset) != 'T') {
- throw new AlgebricksException("This can not be an instance
of datetime: missing T");
- }
+ throw new HyracksDataException("This can not be an instance of
datetime: missing T");
}
- chrononTimeInMs = ADateParserFactory.parseDatePart(datetime, 0,
timeOffset);
- chrononTimeInMs += ATimeParserFactory.parseTimePart(datetime,
timeOffset + 1,
- datetime.length() - timeOffset - 1);
- } catch (Exception e) {
- throw new HyracksDataException(e);
}
+ long chrononTimeInMs = ADateParserFactory.parseDatePart(datetime, 0,
timeOffset);
+ chrononTimeInMs += ATimeParserFactory.parseTimePart(datetime,
timeOffset + 1,
+ datetime.length() - timeOffset - 1);
aDateTime.setValue(chrononTimeInMs);
datetimeSerde.serialize(aDateTime, out);
}
protected void parseDuration(String duration, DataOutput out) throws
HyracksDataException {
- try {
- ADurationParserFactory.parseDuration(duration, 0,
duration.length(), aDuration, ADurationParseOption.All);
- durationSerde.serialize(aDuration, out);
- } catch (Exception e) {
- throw new HyracksDataException(e);
- }
+ ADurationParserFactory.parseDuration(duration, 0, duration.length(),
aDuration, ADurationParseOption.All);
+ durationSerde.serialize(aDuration, out);
}
protected void parseDateTimeDuration(String durationString, DataOutput
out) throws HyracksDataException {
- try {
- ADurationParserFactory.parseDuration(durationString, 0,
durationString.length(), aDayTimeDuration,
- ADurationParseOption.All);
- dayTimeDurationSerde.serialize(aDayTimeDuration, out);
- } catch (Exception e) {
- throw new HyracksDataException(e);
- }
+ ADurationParserFactory.parseDuration(durationString, 0,
durationString.length(), aDayTimeDuration,
+ ADurationParseOption.All);
+ dayTimeDurationSerde.serialize(aDayTimeDuration, out);
}
protected void parseYearMonthDuration(String durationString, DataOutput
out) throws HyracksDataException {
- try {
- ADurationParserFactory.parseDuration(durationString, 0,
durationString.length(), aYearMonthDuration,
- ADurationParseOption.All);
- yearMonthDurationSerde.serialize(aYearMonthDuration, out);
- } catch (Exception e) {
- throw new HyracksDataException(e);
- }
+ ADurationParserFactory.parseDuration(durationString, 0,
durationString.length(), aYearMonthDuration,
+ ADurationParseOption.All);
+ yearMonthDurationSerde.serialize(aYearMonthDuration, out);
}
protected void parsePoint(String point, DataOutput out) throws
HyracksDataException {
@@ -362,138 +334,103 @@
}
protected void parseDateTimeInterval(String interval, DataOutput out)
throws HyracksDataException {
- long chrononTimeInMsStart = 0;
- long chrononTimeInMsEnd = 0;
- try {
- // the starting point for parsing (so for the accessor)
- int startOffset = 0;
- int endOffset, timeSeperatorOffsetInDatetimeString;
+ // the starting point for parsing (so for the accessor)
+ int startOffset = 0;
+ int endOffset, timeSeperatorOffsetInDatetimeString;
- // Get the index for the comma
- int commaIndex = interval.indexOf(',');
- if (commaIndex < 1) {
- throw new AlgebricksException("comma is missing for a string
of interval");
- }
-
- endOffset = commaIndex - 1;
- timeSeperatorOffsetInDatetimeString = interval.indexOf('T');
-
- if (timeSeperatorOffsetInDatetimeString < 0) {
- throw new AlgebricksException(
- "This can not be an instance of interval: missing T
for a datetime value.");
- }
-
- chrononTimeInMsStart = parseDatePart(interval, startOffset,
timeSeperatorOffsetInDatetimeString - 1);
-
- chrononTimeInMsStart += parseTimePart(interval,
timeSeperatorOffsetInDatetimeString + 1, endOffset);
-
- // Interval End
- startOffset = commaIndex + 1;
- endOffset = interval.length() - 1;
-
- timeSeperatorOffsetInDatetimeString = interval.indexOf('T',
startOffset);
-
- if (timeSeperatorOffsetInDatetimeString < 0) {
- throw new AlgebricksException(
- "This can not be an instance of interval: missing T
for a datetime value.");
- }
-
- chrononTimeInMsEnd = parseDatePart(interval, startOffset,
timeSeperatorOffsetInDatetimeString - 1);
-
- chrononTimeInMsEnd += parseTimePart(interval,
timeSeperatorOffsetInDatetimeString + 1, endOffset);
- } catch (Exception e) {
- throw new HyracksDataException(e);
+ // Get the index for the comma
+ int commaIndex = interval.indexOf(',');
+ if (commaIndex < 1) {
+ throw new HyracksDataException("comma is missing for a string of
interval");
}
- try {
- aInterval.setValue(chrononTimeInMsStart, chrononTimeInMsEnd,
ATypeTag.DATETIME.serialize());
- } catch (AlgebricksException e) {
- throw new HyracksDataException(e);
+ endOffset = commaIndex - 1;
+ timeSeperatorOffsetInDatetimeString = interval.indexOf('T');
+
+ if (timeSeperatorOffsetInDatetimeString < 0) {
+ throw new HyracksDataException("This can not be an instance of
interval: missing T for a datetime value.");
}
+
+ long chrononTimeInMsStart = parseDatePart(interval, startOffset,
timeSeperatorOffsetInDatetimeString - 1);
+
+ chrononTimeInMsStart += parseTimePart(interval,
timeSeperatorOffsetInDatetimeString + 1, endOffset);
+
+ // Interval End
+ startOffset = commaIndex + 1;
+ endOffset = interval.length() - 1;
+
+ timeSeperatorOffsetInDatetimeString = interval.indexOf('T',
startOffset);
+
+ if (timeSeperatorOffsetInDatetimeString < 0) {
+ throw new HyracksDataException("This can not be an instance of
interval: missing T for a datetime value.");
+ }
+
+ long chrononTimeInMsEnd = parseDatePart(interval, startOffset,
timeSeperatorOffsetInDatetimeString - 1);
+
+ chrononTimeInMsEnd += parseTimePart(interval,
timeSeperatorOffsetInDatetimeString + 1, endOffset);
+
+ aInterval.setValue(chrononTimeInMsStart, chrononTimeInMsEnd,
ATypeTag.DATETIME.serialize());
intervalSerde.serialize(aInterval, out);
}
protected void parseTimeInterval(String interval, DataOutput out) throws
HyracksDataException {
- long chrononTimeInMsStart = 0;
- long chrononTimeInMsEnd = 0;
- try {
- int startOffset = 0;
- int endOffset;
+ int startOffset = 0;
+ int endOffset;
- // Get the index for the comma
- int commaIndex = interval.indexOf(',');
- if (commaIndex < 0) {
- throw new AlgebricksException("comma is missing for a string
of interval");
- }
-
- endOffset = commaIndex - 1;
- // Interval Start
- chrononTimeInMsStart = parseTimePart(interval, startOffset,
endOffset);
-
- if (chrononTimeInMsStart < 0) {
- chrononTimeInMsStart += GregorianCalendarSystem.CHRONON_OF_DAY;
- }
-
- // Interval End
- startOffset = commaIndex + 1;
- endOffset = interval.length() - 1;
-
- chrononTimeInMsEnd = parseTimePart(interval, startOffset,
endOffset);
- if (chrononTimeInMsEnd < 0) {
- chrononTimeInMsEnd += GregorianCalendarSystem.CHRONON_OF_DAY;
- }
-
- } catch (Exception e) {
- throw new HyracksDataException(e);
+ // Get the index for the comma
+ int commaIndex = interval.indexOf(',');
+ if (commaIndex < 0) {
+ throw new HyracksDataException("comma is missing for a string of
interval");
}
- try {
- aInterval.setValue(chrononTimeInMsStart, chrononTimeInMsEnd,
ATypeTag.TIME.serialize());
- } catch (AlgebricksException e) {
- throw new HyracksDataException(e);
+ endOffset = commaIndex - 1;
+ // Interval Start
+ long chrononTimeInMsStart = parseTimePart(interval, startOffset,
endOffset);
+
+ if (chrononTimeInMsStart < 0) {
+ chrononTimeInMsStart += GregorianCalendarSystem.CHRONON_OF_DAY;
}
+
+ // Interval End
+ startOffset = commaIndex + 1;
+ endOffset = interval.length() - 1;
+
+ long chrononTimeInMsEnd = parseTimePart(interval, startOffset,
endOffset);
+ if (chrononTimeInMsEnd < 0) {
+ chrononTimeInMsEnd += GregorianCalendarSystem.CHRONON_OF_DAY;
+ }
+
+ aInterval.setValue(chrononTimeInMsStart, chrononTimeInMsEnd,
ATypeTag.TIME.serialize());
intervalSerde.serialize(aInterval, out);
}
protected void parseDateInterval(String interval, DataOutput out) throws
HyracksDataException {
- long chrononTimeInMsStart = 0;
- long chrononTimeInMsEnd = 0;
- try {
- // the starting point for parsing (so for the accessor)
- int startOffset = 0;
- int endOffset;
+ // the starting point for parsing (so for the accessor)
+ int startOffset = 0;
+ int endOffset;
- // Get the index for the comma
- int commaIndex = interval.indexOf(',');
- if (commaIndex < 1) {
- throw new AlgebricksException("comma is missing for a string
of interval");
- }
-
- endOffset = commaIndex - 1;
- chrononTimeInMsStart = parseDatePart(interval, startOffset,
endOffset);
-
- // Interval End
- startOffset = commaIndex + 1;
- endOffset = interval.length() - 1;
-
- chrononTimeInMsEnd = parseDatePart(interval, startOffset,
endOffset);
-
- } catch (Exception e) {
- throw new HyracksDataException(e);
+ // Get the index for the comma
+ int commaIndex = interval.indexOf(',');
+ if (commaIndex < 1) {
+ throw new HyracksDataException("comma is missing for a string of
interval");
}
- try {
- aInterval.setValue((chrononTimeInMsStart /
GregorianCalendarSystem.CHRONON_OF_DAY),
- (chrononTimeInMsEnd /
GregorianCalendarSystem.CHRONON_OF_DAY), ATypeTag.DATE.serialize());
- } catch (AlgebricksException e) {
- throw new HyracksDataException(e);
- }
+ endOffset = commaIndex - 1;
+ long chrononTimeInMsStart = parseDatePart(interval, startOffset,
endOffset);
+
+ // Interval End
+ startOffset = commaIndex + 1;
+ endOffset = interval.length() - 1;
+
+ long chrononTimeInMsEnd = parseDatePart(interval, startOffset,
endOffset);
+
+ aInterval.setValue((chrononTimeInMsStart /
GregorianCalendarSystem.CHRONON_OF_DAY),
+ (chrononTimeInMsEnd / GregorianCalendarSystem.CHRONON_OF_DAY),
ATypeTag.DATE.serialize());
intervalSerde.serialize(aInterval, out);
}
- private long parseDatePart(String interval, int startOffset, int endOffset)
- throws AlgebricksException, HyracksDataException {
+ private long parseDatePart(String interval, int startOffset, int
endOffset) throws HyracksDataException {
while (interval.charAt(endOffset) == '"' || interval.charAt(endOffset)
== ' ') {
endOffset--;
@@ -506,8 +443,7 @@
return ADateParserFactory.parseDatePart(interval, startOffset,
endOffset - startOffset + 1);
}
- private int parseTimePart(String interval, int startOffset, int endOffset)
- throws AlgebricksException, HyracksDataException {
+ private int parseTimePart(String interval, int startOffset, int endOffset)
throws HyracksDataException {
while (interval.charAt(endOffset) == '"' || interval.charAt(endOffset)
== ' ') {
endOffset--;
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java
index 2f0fc86..7e231a4 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/DelimitedDataParser.java
@@ -26,7 +26,6 @@
import org.apache.asterix.builders.IARecordBuilder;
import org.apache.asterix.builders.RecordBuilder;
-import org.apache.asterix.common.exceptions.AsterixException;
import
org.apache.asterix.dataflow.data.nontagged.serde.ANullSerializerDeserializer;
import org.apache.asterix.external.api.IDataParser;
import
org.apache.asterix.external.api.IExternalDataSourceFactory.DataSourceType;
@@ -72,7 +71,7 @@
}
@Override
- public boolean parse(DataOutput out) throws AsterixException, IOException {
+ public boolean parse(DataOutput out) throws IOException {
while (cursor.nextRecord()) {
parseRecord(out);
if (!areAllNullFields) {
@@ -83,7 +82,7 @@
return false;
}
- private void parseRecord(DataOutput out) throws AsterixException,
IOException {
+ private void parseRecord(DataOutput out) throws IOException {
recBuilder.reset(recordType);
recBuilder.init();
areAllNullFields = true;
@@ -100,7 +99,7 @@
// NULL. Note that string type can also process empty field as
an
// empty string
if
(!NonTaggedFormatUtil.isOptional(recordType.getFieldTypes()[i])) {
- throw new AsterixException("At record: " +
cursor.recordCount + " - Field " + cursor.fieldCount
+ throw new HyracksDataException("At record: " +
cursor.recordCount + " - Field " + cursor.fieldCount
+ " is not an optional type so it cannot accept
null value. ");
}
fieldValueBufferOutput.writeByte(ATypeTag.NULL.serialize());
@@ -174,7 +173,7 @@
}
@Override
- public void parse(IRawRecord<? extends char[]> record, DataOutput out)
throws Exception {
+ public void parse(IRawRecord<? extends char[]> record, DataOutput out)
throws IOException {
cursor.nextRecord(record.get(), record.size());
parseRecord(out);
if (!areAllNullFields) {
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/HiveRecordParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/HiveRecordParser.java
index fb61339..1c91130 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/HiveRecordParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/HiveRecordParser.java
@@ -119,25 +119,28 @@
}
@Override
- public void parse(IRawRecord<? extends Writable> record, DataOutput out)
throws Exception {
- Writable hiveRawRecord = record.get();
- Object hiveObject = hiveSerde.deserialize(hiveRawRecord);
- int n = aRecord.getFieldNames().length;
- List<Object> attributesValues =
oi.getStructFieldsDataAsList(hiveObject);
- recBuilder.reset(aRecord);
- recBuilder.init();
- for (int i = 0; i < n; i++) {
- final Object value = attributesValues.get(i);
- final ObjectInspector foi =
fieldRefs.get(i).getFieldObjectInspector();
- fieldValueBuffer.reset();
- final DataOutput dataOutput = fieldValueBuffer.getDataOutput();
- dataOutput.writeByte(fieldTypeTags[i]);
- //get field type
- parseItem(fieldTypes[i], value, foi, dataOutput, false);
- recBuilder.addField(i, fieldValueBuffer);
+ public void parse(IRawRecord<? extends Writable> record, DataOutput out)
throws HyracksDataException {
+ try {
+ Writable hiveRawRecord = record.get();
+ Object hiveObject = hiveSerde.deserialize(hiveRawRecord);
+ int n = aRecord.getFieldNames().length;
+ List<Object> attributesValues =
oi.getStructFieldsDataAsList(hiveObject);
+ recBuilder.reset(aRecord);
+ recBuilder.init();
+ for (int i = 0; i < n; i++) {
+ final Object value = attributesValues.get(i);
+ final ObjectInspector foi =
fieldRefs.get(i).getFieldObjectInspector();
+ fieldValueBuffer.reset();
+ final DataOutput dataOutput = fieldValueBuffer.getDataOutput();
+ dataOutput.writeByte(fieldTypeTags[i]);
+ //get field type
+ parseItem(fieldTypes[i], value, foi, dataOutput, false);
+ recBuilder.addField(i, fieldValueBuffer);
+ }
+ recBuilder.write(out, true);
+ } catch (Exception e) {
+ throw new HyracksDataException(e);
}
- recBuilder.write(out, true);
-
}
private void parseItem(IAType itemType, Object value, ObjectInspector foi,
DataOutput dataOutput,
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
index 4d93dc5..3a3bd7d 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RSSParser.java
@@ -59,7 +59,7 @@
}
@Override
- public void parse(IRawRecord<? extends SyndEntryImpl> record, DataOutput
out) throws Exception {
+ public void parse(IRawRecord<? extends SyndEntryImpl> record, DataOutput
out) throws IOException {
SyndEntryImpl entry = record.get();
tupleFieldValues[0] = idPrefix + ":" + id;
tupleFieldValues[1] = entry.getTitle();
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RecordWithMetadataParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RecordWithMetadataParser.java
index ecdb03d..67d84b5 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RecordWithMetadataParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/RecordWithMetadataParser.java
@@ -89,19 +89,23 @@
}
@Override
- public void parse(IRawRecord<? extends RecordWithMetadata<T>> record,
DataOutput out) throws Exception {
- recBuilder.reset(recordType);
- valueBuffer.reset();
- recBuilder.init();
- RecordWithMetadata<T> rwm = record.get();
- for (int i = 0; i < numberOfFields; i++) {
- if (i == valueIndex) {
- valueParser.parse(rwm.getRecord(),
valueBuffer.getDataOutput());
- recBuilder.addField(i, valueBuffer);
- } else {
- recBuilder.addField(i, rwm.getMetadata(metaIndexes[i]));
+ public void parse(IRawRecord<? extends RecordWithMetadata<T>> record,
DataOutput out) throws HyracksDataException {
+ try {
+ recBuilder.reset(recordType);
+ valueBuffer.reset();
+ recBuilder.init();
+ RecordWithMetadata<T> rwm = record.get();
+ for (int i = 0; i < numberOfFields; i++) {
+ if (i == valueIndex) {
+ valueParser.parse(rwm.getRecord(),
valueBuffer.getDataOutput());
+ recBuilder.addField(i, valueBuffer);
+ } else {
+ recBuilder.addField(i, rwm.getMetadata(metaIndexes[i]));
+ }
}
+ recBuilder.write(out, true);
+ } catch (IOException e) {
+ throw new HyracksDataException(e);
}
- recBuilder.write(out, true);
}
}
diff --git
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java
index b9cd60b..7ae3303 100644
---
a/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java
+++
b/asterix-external-data/src/main/java/org/apache/asterix/external/parser/TweetParser.java
@@ -92,7 +92,7 @@
}
@Override
- public void parse(IRawRecord<? extends Status> record, DataOutput out)
throws Exception {
+ public void parse(IRawRecord<? extends Status> record, DataOutput out)
throws HyracksDataException {
Status tweet = record.get();
User user = tweet.getUser();
// Tweet user data
diff --git
a/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/java/org/apache/asterix/lexergenerator/LexerGenerator.java
b/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/java/org/apache/asterix/lexergenerator/LexerGenerator.java
index 1588c39..3ae7339 100644
---
a/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/java/org/apache/asterix/lexergenerator/LexerGenerator.java
+++
b/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/java/org/apache/asterix/lexergenerator/LexerGenerator.java
@@ -131,14 +131,14 @@
Set<String> functions = main.neededAuxFunctions();
for (String token : functions) {
result.append("private int parse_" + token
- + "(char currentChar) throws IOException,
[LEXER_NAME]Exception{\n");
+ + "(char currentChar) throws IOException {\n");
result.append(tokens.get(token).getNode().toJavaAuxFunction());
result.append("\n}\n\n");
}
return result.toString();
}
- private static String readFile(Reader input) throws FileNotFoundException,
IOException {
+ private static String readFile(Reader input) throws IOException {
StringBuffer fileData = new StringBuffer(1000);
BufferedReader reader = new BufferedReader(input);
char[] buf = new char[1024];
@@ -152,14 +152,14 @@
return fileData.toString();
}
- private static String readFile(InputStream input) throws
FileNotFoundException, IOException {
+ private static String readFile(InputStream input) throws IOException {
if (input == null) {
throw new FileNotFoundException();
}
return readFile(new InputStreamReader(input));
}
- private static String readFile(String fileName) throws
FileNotFoundException, IOException {
+ private static String readFile(String fileName) throws IOException {
return readFile(new FileReader(fileName));
}
diff --git
a/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/resources/LexerException.java
b/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/resources/LexerException.java
index 9030eb2..06b12d2 100644
---
a/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/resources/LexerException.java
+++
b/asterix-maven-plugins/lexer-generator-maven-plugin/src/main/resources/LexerException.java
@@ -18,7 +18,9 @@
*/
package [PACKAGE];
-public class [LEXER_NAME]Exception extends Exception {
+import java.io.IOException;
+
+public class [LEXER_NAME]Exception extends IOException {
public [LEXER_NAME]Exception(String message) {
super(message);
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/ExternalDatasetDetails.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/ExternalDatasetDetails.java
index b16344d..ab1d2a5 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/ExternalDatasetDetails.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/ExternalDatasetDetails.java
@@ -20,7 +20,6 @@
package org.apache.asterix.metadata.entities;
import java.io.DataOutput;
-import java.io.IOException;
import java.util.Date;
import java.util.Map;
@@ -29,7 +28,6 @@
import org.apache.asterix.builders.RecordBuilder;
import org.apache.asterix.common.config.DatasetConfig.DatasetType;
import
org.apache.asterix.common.config.DatasetConfig.ExternalDatasetTransactionState;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.IDatasetDetails;
import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
@@ -124,12 +122,7 @@
intSerde.serialize(new AInt32(state.ordinal()),
fieldValue.getDataOutput());
externalRecordBuilder.addField(MetadataRecordTypes.EXTERNAL_DETAILS_ARECORD_TRANSACTION_STATE_FIELD_INDEX,
fieldValue);
- try {
- externalRecordBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
-
+ externalRecordBuilder.write(out, true);
}
@Override
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
index 73c263f..a772c39 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/InternalDatasetDetails.java
@@ -20,14 +20,12 @@
package org.apache.asterix.metadata.entities;
import java.io.DataOutput;
-import java.io.IOException;
import java.util.List;
import org.apache.asterix.builders.IARecordBuilder;
import org.apache.asterix.builders.OrderedListBuilder;
import org.apache.asterix.builders.RecordBuilder;
import org.apache.asterix.common.config.DatasetConfig.DatasetType;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.IDatasetDetails;
import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
@@ -156,8 +154,8 @@
fieldValue);
// write field 2
- primaryKeyListBuilder
- .reset((AOrderedListType)
MetadataRecordTypes.INTERNAL_DETAILS_RECORDTYPE.getFieldTypes()[MetadataRecordTypes.INTERNAL_DETAILS_ARECORD_PARTITIONKEY_FIELD_INDEX]);
+ primaryKeyListBuilder.reset((AOrderedListType)
MetadataRecordTypes.INTERNAL_DETAILS_RECORDTYPE
+
.getFieldTypes()[MetadataRecordTypes.INTERNAL_DETAILS_ARECORD_PARTITIONKEY_FIELD_INDEX]);
for (List<String> field : partitioningKeys) {
listBuilder.reset(stringList);
for (String subField : field) {
@@ -176,8 +174,8 @@
fieldValue);
// write field 3
- primaryKeyListBuilder
- .reset((AOrderedListType)
MetadataRecordTypes.INTERNAL_DETAILS_RECORDTYPE.getFieldTypes()[MetadataRecordTypes.INTERNAL_DETAILS_ARECORD_PRIMARYKEY_FIELD_INDEX]);
+ primaryKeyListBuilder.reset((AOrderedListType)
MetadataRecordTypes.INTERNAL_DETAILS_RECORDTYPE
+
.getFieldTypes()[MetadataRecordTypes.INTERNAL_DETAILS_ARECORD_PRIMARYKEY_FIELD_INDEX]);
for (List<String> field : primaryKeys) {
listBuilder.reset(stringList);
for (String subField : field) {
@@ -216,18 +214,10 @@
}
fieldValue.reset();
listBuilder.write(fieldValue.getDataOutput(), true);
- try {
- internalRecordBuilder.addField(nameValue, fieldValue);
- } catch (AsterixException e) {
- throw new HyracksDataException(e);
- }
+ internalRecordBuilder.addField(nameValue, fieldValue);
}
- try {
- internalRecordBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ internalRecordBuilder.write(out, true);
}
protected void writePropertyTypeRecord(String name, String value,
DataOutput out, ARecordType recordType)
@@ -252,11 +242,7 @@
stringSerde.serialize(aString, fieldValue.getDataOutput());
propertyRecordBuilder.addField(1, fieldValue);
- try {
- propertyRecordBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ propertyRecordBuilder.write(out, true);
}
}
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
index 9ff90ca..e5dfb4e 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/CompactionPolicyTupleTranslator.java
@@ -24,7 +24,6 @@
import java.io.DataInputStream;
import java.io.IOException;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.MetadataException;
import org.apache.asterix.metadata.bootstrap.MetadataPrimaryIndexes;
@@ -33,6 +32,7 @@
import org.apache.asterix.om.base.ARecord;
import org.apache.asterix.om.base.AString;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
/**
@@ -71,7 +71,7 @@
CompactionPolicy compactionPolicy = null;
String dataverseName = ((AString) compactionPolicyRecord
.getValueByPos(MetadataRecordTypes.COMPACTION_POLICY_ARECORD_DATAVERSE_NAME_FIELD_INDEX))
- .getStringValue();
+ .getStringValue();
String policyName = ((AString) compactionPolicyRecord
.getValueByPos(MetadataRecordTypes.COMPACTION_POLICY_ARECORD_POLICY_NAME_FIELD_INDEX)).getStringValue();
String className = ((AString) compactionPolicyRecord
@@ -82,8 +82,8 @@
}
@Override
- public ITupleReference getTupleFromMetadataEntity(CompactionPolicy
compactionPolicy) throws IOException,
- MetadataException {
+ public ITupleReference getTupleFromMetadataEntity(CompactionPolicy
compactionPolicy)
+ throws IOException, MetadataException {
tupleBuilder.reset();
aString.setValue(compactionPolicy.getDataverseName());
@@ -117,7 +117,7 @@
// write record
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
index 00f46d4..41c4c58 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
@@ -38,7 +38,6 @@
import org.apache.asterix.builders.UnorderedListBuilder;
import org.apache.asterix.common.config.DatasetConfig.DatasetType;
import
org.apache.asterix.common.config.DatasetConfig.ExternalDatasetTransactionState;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.IDatasetDetails;
import org.apache.asterix.metadata.MetadataException;
@@ -345,7 +344,7 @@
// write record
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
@@ -406,11 +405,7 @@
stringSerde.serialize(aString, fieldValue.getDataOutput());
propertyRecordBuilder.addField(1, fieldValue);
- try {
- propertyRecordBuilder.write(out, true);
- } catch (IOException | AsterixException ioe) {
- throw new HyracksDataException(ioe);
- }
+ propertyRecordBuilder.write(out, true);
}
}
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
index b0d5f76..a824551 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasourceAdapterTupleTranslator.java
@@ -25,9 +25,7 @@
import java.io.IOException;
import java.util.Calendar;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.external.api.IDataSourceAdapter;
-import org.apache.asterix.external.api.IDataSourceAdapter.AdapterType;
import org.apache.asterix.external.dataset.adapter.AdapterIdentifier;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.MetadataException;
@@ -72,13 +70,14 @@
private DatasourceAdapter createAdapterFromARecord(ARecord adapterRecord) {
String dataverseName = ((AString) adapterRecord
.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_DATAVERSENAME_FIELD_INDEX))
- .getStringValue();
+ .getStringValue();
String adapterName = ((AString) adapterRecord
.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_NAME_FIELD_INDEX)).getStringValue();
String classname = ((AString) adapterRecord
.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_CLASSNAME_FIELD_INDEX)).getStringValue();
- IDataSourceAdapter.AdapterType adapterType =
IDataSourceAdapter.AdapterType.valueOf(((AString) adapterRecord
-
.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TYPE_FIELD_INDEX)).getStringValue());
+ IDataSourceAdapter.AdapterType adapterType =
IDataSourceAdapter.AdapterType.valueOf(
+ ((AString)
adapterRecord.getValueByPos(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TYPE_FIELD_INDEX))
+ .getStringValue());
return new DatasourceAdapter(new AdapterIdentifier(dataverseName,
adapterName), classname, adapterType);
}
@@ -129,11 +128,7 @@
recordBuilder.addField(MetadataRecordTypes.DATASOURCE_ADAPTER_ARECORD_TIMESTAMP_FIELD_INDEX,
fieldValue);
// write record
- try {
- recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.write(tupleBuilder.getDataOutput(), true);
tupleBuilder.addFieldEndOffset();
tuple.reset(tupleBuilder.getFieldEndOffsets(),
tupleBuilder.getByteArray());
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
index 8948f43..46f4451 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
@@ -224,7 +224,7 @@
// write record
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
index ecc53da..a5e60a6 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DataverseTupleTranslator.java
@@ -37,6 +37,7 @@
import org.apache.asterix.om.base.AString;
import org.apache.asterix.om.types.BuiltinType;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
/**
@@ -112,7 +113,7 @@
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
index efb9318..1c3c7c9 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/ExternalFileTupleTranslator.java
@@ -25,7 +25,6 @@
import java.util.Date;
import org.apache.asterix.common.config.DatasetConfig.ExternalFilePendingOp;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.external.indexing.ExternalFile;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.MetadataException;
@@ -97,14 +96,13 @@
.getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_NAME_FIELD_INDEX)).getStringValue();
long fileSize = ((AInt64) externalFileRecord
.getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_SIZE_FIELD_INDEX)).getLongValue();
- Date lastMoDifiedDate = new Date(
- ((ADateTime) externalFileRecord
-
.getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_MOD_DATE_FIELD_INDEX))
- .getChrononTime());
+ Date lastMoDifiedDate = new Date(((ADateTime) externalFileRecord
+
.getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_MOD_DATE_FIELD_INDEX)).getChrononTime());
ExternalFilePendingOp pendingOp =
ExternalFilePendingOp.values()[((AInt32) externalFileRecord
.getValueByPos(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_PENDING_OP_FIELD_INDEX))
- .getIntegerValue()];
- return new ExternalFile(dataverseName, datasetName, fileNumber,
fileName, lastMoDifiedDate, fileSize, pendingOp);
+ .getIntegerValue()];
+ return new ExternalFile(dataverseName, datasetName, fileNumber,
fileName, lastMoDifiedDate, fileSize,
+ pendingOp);
}
@Override
@@ -170,11 +168,7 @@
recordBuilder.addField(MetadataRecordTypes.EXTERNAL_FILE_ARECORD_FILE_PENDING_OP_FIELD_INDEX,
fieldValue);
// write record
- try {
- recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.write(tupleBuilder.getDataOutput(), true);
tupleBuilder.addFieldEndOffset();
tuple.reset(tupleBuilder.getFieldEndOffsets(),
tupleBuilder.getByteArray());
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
index 00e3e63..4839065 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedPolicyTupleTranslator.java
@@ -30,7 +30,6 @@
import org.apache.asterix.builders.IARecordBuilder;
import org.apache.asterix.builders.RecordBuilder;
import org.apache.asterix.builders.UnorderedListBuilder;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.MetadataException;
import org.apache.asterix.metadata.bootstrap.MetadataPrimaryIndexes;
@@ -111,7 +110,8 @@
}
@Override
- public ITupleReference getTupleFromMetadataEntity(FeedPolicyEntity
feedPolicy) throws IOException, MetadataException {
+ public ITupleReference getTupleFromMetadataEntity(FeedPolicyEntity
feedPolicy)
+ throws IOException, MetadataException {
// write the key in the first three fields of the tuple
ArrayBackedValueStorage itemValue = new ArrayBackedValueStorage();
@@ -161,11 +161,7 @@
recordBuilder.addField(MetadataRecordTypes.FEED_POLICY_ARECORD_PROPERTIES_FIELD_INDEX,
fieldValue);
// write record
- try {
- recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.write(tupleBuilder.getDataOutput(), true);
tupleBuilder.addFieldEndOffset();
tuple.reset(tupleBuilder.getFieldEndOffsets(),
tupleBuilder.getByteArray());
@@ -192,10 +188,6 @@
stringSerde.serialize(aString, fieldValue.getDataOutput());
propertyRecordBuilder.addField(1, fieldValue);
- try {
- propertyRecordBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ propertyRecordBuilder.write(out, true);
}
}
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedTupleTranslator.java
index dc9fb50..007026e 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FeedTupleTranslator.java
@@ -31,7 +31,6 @@
import org.apache.asterix.builders.IARecordBuilder;
import org.apache.asterix.builders.OrderedListBuilder;
import org.apache.asterix.builders.RecordBuilder;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.common.functions.FunctionSignature;
import org.apache.asterix.external.feed.api.IFeed;
import org.apache.asterix.external.feed.api.IFeed.FeedType;
@@ -200,7 +199,7 @@
// write record
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
@@ -250,11 +249,7 @@
MetadataRecordTypes.FEED_ARECORD_PRIMARY_FIELD_DETAILS_ADAPTOR_CONFIGURATION_FIELD_INDEX,
primaryRecordfieldValue);
- try {
-
primaryDetailsRecordBuilder.write(fieldValue.getDataOutput(), true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ primaryDetailsRecordBuilder.write(fieldValue.getDataOutput(),
true);
recordBuilder.addField(MetadataRecordTypes.FEED_ARECORD_PRIMARY_TYPE_DETAILS_FIELD_INDEX,
fieldValue);
}
@@ -273,11 +268,7 @@
MetadataRecordTypes.FEED_ARECORD_SECONDARY_FIELD_DETAILS_SOURCE_FEED_NAME_FIELD_INDEX,
secondaryFieldValue);
- try {
-
secondaryDetailsRecordBuilder.write(fieldValue.getDataOutput(), true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+
secondaryDetailsRecordBuilder.write(fieldValue.getDataOutput(), true);
recordBuilder.addField(MetadataRecordTypes.FEED_ARECORD_SECONDARY_TYPE_DETAILS_FIELD_INDEX,
fieldValue);
break;
}
@@ -305,10 +296,6 @@
stringSerde.serialize(aString, fieldValue.getDataOutput());
propertyRecordBuilder.addField(1, fieldValue);
- try {
- propertyRecordBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ propertyRecordBuilder.write(out, true);
}
}
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
index 7850c3d..afa2f6e 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
@@ -27,7 +27,6 @@
import java.util.List;
import org.apache.asterix.builders.OrderedListBuilder;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.MetadataException;
import org.apache.asterix.metadata.bootstrap.MetadataPrimaryIndexes;
@@ -146,8 +145,8 @@
// write field 3
OrderedListBuilder listBuilder = new OrderedListBuilder();
ArrayBackedValueStorage itemValue = new ArrayBackedValueStorage();
- listBuilder
- .reset((AOrderedListType)
MetadataRecordTypes.FUNCTION_RECORDTYPE.getFieldTypes()[MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_PARAM_LIST_FIELD_INDEX]);
+ listBuilder.reset((AOrderedListType)
MetadataRecordTypes.FUNCTION_RECORDTYPE
+
.getFieldTypes()[MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_PARAM_LIST_FIELD_INDEX]);
for (String param : function.getParams()) {
itemValue.reset();
aString.setValue(param);
@@ -183,11 +182,7 @@
recordBuilder.addField(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_KIND_FIELD_INDEX,
fieldValue);
// write record
- try {
- recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.write(tupleBuilder.getDataOutput(), true);
tupleBuilder.addFieldEndOffset();
tuple.reset(tupleBuilder.getFieldEndOffsets(),
tupleBuilder.getByteArray());
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
index 611c703..404a8c7 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
@@ -29,7 +29,6 @@
import org.apache.asterix.builders.OrderedListBuilder;
import org.apache.asterix.common.config.DatasetConfig.IndexType;
-import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.common.transactions.JobId;
import org.apache.asterix.formats.nontagged.AqlSerializerDeserializerProvider;
import org.apache.asterix.metadata.MetadataException;
@@ -253,11 +252,7 @@
aString.setValue(GRAM_LENGTH_FIELD_NAME);
stringSerde.serialize(aString, nameValue.getDataOutput());
intSerde.serialize(new AInt32(instance.getGramLength()),
fieldValue.getDataOutput());
- try {
- recordBuilder.addField(nameValue, fieldValue);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.addField(nameValue, fieldValue);
}
if (instance.isEnforcingKeyFileds()) {
@@ -279,11 +274,7 @@
}
fieldValue.reset();
typeListBuilder.write(fieldValue.getDataOutput(), true);
- try {
- recordBuilder.addField(nameValue, fieldValue);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.addField(nameValue, fieldValue);
// write optional field 10
fieldValue.reset();
@@ -294,19 +285,11 @@
booleanSerde.serialize(ABoolean.TRUE, fieldValue.getDataOutput());
- try {
- recordBuilder.addField(nameValue, fieldValue);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.addField(nameValue, fieldValue);
}
// write record
- try {
- recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
- throw new MetadataException(e);
- }
+ recordBuilder.write(tupleBuilder.getDataOutput(), true);
tupleBuilder.addFieldEndOffset();
tuple.reset(tupleBuilder.getFieldEndOffsets(),
tupleBuilder.getByteArray());
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
index 77c81a1..3e3048c 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/LibraryTupleTranslator.java
@@ -34,6 +34,7 @@
import org.apache.asterix.om.base.ARecord;
import org.apache.asterix.om.base.AString;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
/**
@@ -113,7 +114,7 @@
// write record
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeGroupTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeGroupTupleTranslator.java
index 4cb0cf8..0e63801 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeGroupTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeGroupTupleTranslator.java
@@ -40,6 +40,7 @@
import org.apache.asterix.om.base.IACursor;
import org.apache.asterix.om.types.AUnorderedListType;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
@@ -122,7 +123,7 @@
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeTupleTranslator.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeTupleTranslator.java
index a592460..c3df4a9 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeTupleTranslator.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/NodeTupleTranslator.java
@@ -32,7 +32,9 @@
import org.apache.asterix.om.types.BuiltinType;
import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.dataflow.std.join.InMemoryHashJoinOperatorDescriptor;
/**
* Translates a Node metadata entity to an ITupleReference and vice versa.
@@ -129,7 +131,7 @@
try {
recordBuilder.write(tupleBuilder.getDataOutput(), true);
- } catch (AsterixException e) {
+ } catch (HyracksDataException e) {
throw new MetadataException(e);
}
tupleBuilder.addFieldEndOffset();
diff --git
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtils.java
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtils.java
index f011f04..9919962 100644
---
a/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtils.java
+++
b/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtils.java
@@ -26,8 +26,8 @@
import org.apache.asterix.builders.IARecordBuilder;
import org.apache.asterix.builders.RecordBuilder;
-import org.apache.asterix.common.config.MetadataConstants;
import org.apache.asterix.common.config.DatasetConfig.DatasetType;
+import org.apache.asterix.common.config.MetadataConstants;
import org.apache.asterix.common.context.CorrelatedPrefixMergePolicyFactory;
import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.external.indexing.IndexingConstants;
@@ -276,10 +276,6 @@
stringSerde.serialize(aString, fieldValue.getDataOutput());
propertyRecordBuilder.addField(1, fieldValue);
- try {
- propertyRecordBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ propertyRecordBuilder.write(out, true);
}
}
diff --git
a/asterix-om/src/main/java/org/apache/asterix/builders/IARecordBuilder.java
b/asterix-om/src/main/java/org/apache/asterix/builders/IARecordBuilder.java
index ee15d5d..ea3bd51 100644
--- a/asterix-om/src/main/java/org/apache/asterix/builders/IARecordBuilder.java
+++ b/asterix-om/src/main/java/org/apache/asterix/builders/IARecordBuilder.java
@@ -24,6 +24,7 @@
import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IValueReference;
/**
@@ -57,7 +58,7 @@
* @throws AsterixException
* if the field name conflicts with a closed field name
*/
- public void addField(IValueReference name, IValueReference value) throws
AsterixException;
+ public void addField(IValueReference name, IValueReference value) throws
HyracksDataException;
/**
* @param out
@@ -69,7 +70,7 @@
* @throws AsterixException
* if any open field names conflict with each other
*/
- public void write(DataOutput out, boolean writeTypeTag) throws
IOException, AsterixException;
+ public void write(DataOutput out, boolean writeTypeTag) throws
HyracksDataException;
public int getFieldId(String fieldName);
diff --git
a/asterix-om/src/main/java/org/apache/asterix/builders/RecordBuilder.java
b/asterix-om/src/main/java/org/apache/asterix/builders/RecordBuilder.java
index e3ed6fb..f4c4d8d 100644
--- a/asterix-om/src/main/java/org/apache/asterix/builders/RecordBuilder.java
+++ b/asterix-om/src/main/java/org/apache/asterix/builders/RecordBuilder.java
@@ -179,29 +179,20 @@
}
@Override
- public void addField(IValueReference name, IValueReference value) throws
AsterixException {
+ public void addField(IValueReference name, IValueReference value) throws
HyracksDataException {
if (numberOfOpenFields == openPartOffsets.length) {
openPartOffsets = Arrays.copyOf(openPartOffsets,
openPartOffsets.length + DEFAULT_NUM_OPEN_FIELDS);
openFieldNameLengths = Arrays.copyOf(openFieldNameLengths,
openFieldNameLengths.length + DEFAULT_NUM_OPEN_FIELDS);
}
- int fieldNameHashCode;
- try {
- fieldNameHashCode = utf8HashFunction.hash(name.getByteArray(),
name.getStartOffset() + 1,
+ int fieldNameHashCode = utf8HashFunction.hash(name.getByteArray(),
name.getStartOffset() + 1,
name.getLength() - 1);
- } catch (HyracksDataException e1) {
- throw new AsterixException(e1);
- }
if (recType != null) {
int cFieldPos;
- try {
cFieldPos = recTypeInfo.getFieldIndex(name.getByteArray(),
name.getStartOffset() + 1,
name.getLength() - 1);
- } catch (HyracksDataException e) {
- throw new AsterixException(e);
- }
if (cFieldPos >= 0) {
- throw new AsterixException("Open field \"" +
recType.getFieldNames()[cFieldPos]
+ throw new HyracksDataException("Open field \"" +
recType.getFieldNames()[cFieldPos]
+ "\" has the same field name as closed field at index
" + cFieldPos);
}
}
@@ -214,7 +205,7 @@
}
@Override
- public void write(DataOutput out, boolean writeTypeTag) throws
IOException, AsterixException {
+ public void write(DataOutput out, boolean writeTypeTag) throws
HyracksDataException {
int h = headerSize;
int recordLength;
// prepare the open part
@@ -233,7 +224,7 @@
openBytes, (int) openPartOffsets[i],
openFieldNameLengths[i]) == 0) {
String field = utf8SerDer.deserialize(new
DataInputStream(new ByteArrayInputStream(openBytes,
(int) openPartOffsets[i],
openFieldNameLengths[i])));
- throw new AsterixException(
+ throw new HyracksDataException(
"Open fields " + (i - 1) + " and " + i + "
have the same field name \"" + field + "\"");
}
}
@@ -253,34 +244,38 @@
} else
recordLength = h + numberOfSchemaFields * 4 +
closedPartOutputStream.size();
- // write the record header
- if (writeTypeTag) {
- out.writeByte(RECORD_TYPE_TAG);
- }
- out.writeInt(recordLength);
- if (isOpen) {
- if (this.numberOfOpenFields > 0) {
- out.writeBoolean(true);
- out.writeInt(openPartOffset);
- } else
- out.writeBoolean(false);
- }
+ try {
+ // write the record header
+ if (writeTypeTag) {
+ out.writeByte(RECORD_TYPE_TAG);
+ }
+ out.writeInt(recordLength);
+ if (isOpen) {
+ if (this.numberOfOpenFields > 0) {
+ out.writeBoolean(true);
+ out.writeInt(openPartOffset);
+ } else
+ out.writeBoolean(false);
+ }
- // write the closed part
- if (numberOfSchemaFields > 0) {
- out.writeInt(numberOfClosedFields);
- if (isNullable)
- out.write(nullBitMap, 0, nullBitMapSize);
- for (int i = 0; i < numberOfSchemaFields; i++)
- out.writeInt(closedPartOffsets[i] + h + (numberOfSchemaFields
* 4));
- out.write(closedPartOutputStream.toByteArray());
- }
+ // write the closed part
+ if (numberOfSchemaFields > 0) {
+ out.writeInt(numberOfClosedFields);
+ if (isNullable)
+ out.write(nullBitMap, 0, nullBitMapSize);
+ for (int i = 0; i < numberOfSchemaFields; i++)
+ out.writeInt(closedPartOffsets[i] + h +
(numberOfSchemaFields * 4));
+ out.write(closedPartOutputStream.toByteArray());
+ }
- // write the open part
- if (numberOfOpenFields > 0) {
- out.writeInt(numberOfOpenFields);
- out.write(openPartOffsetArray, 0, openPartOffsetArraySize);
- out.write(openPartOutputStream.toByteArray());
+ // write the open part
+ if (numberOfOpenFields > 0) {
+ out.writeInt(numberOfOpenFields);
+ out.write(openPartOffsetArray, 0, openPartOffsetArraySize);
+ out.write(openPartOutputStream.toByteArray());
+ }
+ } catch (IOException ioe) {
+ throw new HyracksDataException(ioe);
}
}
diff --git
a/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
b/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
index 543b20e..53943b8 100644
---
a/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
+++
b/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
@@ -182,11 +182,7 @@
serializers[fieldIndex].serialize(instance.getValueByPos(fieldIndex),
fieldValue.getDataOutput());
recordBuilder.addField(fieldIndex, fieldValue);
}
- try {
- recordBuilder.write(out, writeTypeTag);
- } catch (IOException | AsterixException e) {
- throw new HyracksDataException(e);
- }
+ recordBuilder.write(out, writeTypeTag);
} else {
throw new NotImplementedException("Serializer for schemaless
records is not implemented.");
}
diff --git
a/asterix-om/src/main/java/org/apache/asterix/om/base/AMutableInterval.java
b/asterix-om/src/main/java/org/apache/asterix/om/base/AMutableInterval.java
index fa9b587..15bda6b 100644
--- a/asterix-om/src/main/java/org/apache/asterix/om/base/AMutableInterval.java
+++ b/asterix-om/src/main/java/org/apache/asterix/om/base/AMutableInterval.java
@@ -18,7 +18,7 @@
*/
package org.apache.asterix.om.base;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
public class AMutableInterval extends AInterval {
@@ -26,9 +26,9 @@
super(intervalStart, intervalEnd, typetag);
}
- public void setValue(long intervalStart, long intervalEnd, byte typetag)
throws AlgebricksException {
+ public void setValue(long intervalStart, long intervalEnd, byte typetag)
throws HyracksDataException {
if (intervalStart >= intervalEnd) {
- throw new AlgebricksException("Invalid interval: the starting time
should be less than the ending time.");
+ throw new HyracksDataException("Invalid interval: the starting
time should be less than the ending time.");
}
this.intervalStart = intervalStart;
this.intervalEnd = intervalEnd;
diff --git
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java
index d9f2949..d33845c 100644
---
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java
+++
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/common/ClosedRecordConstructorEvalFactory.java
@@ -30,6 +30,7 @@
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.runtime.base.ICopyEvaluator;
import org.apache.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IDataOutputProvider;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
@@ -92,7 +93,7 @@
}
}
recBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
+ } catch (HyracksDataException e) {
throw new AlgebricksException(e);
}
}
diff --git
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/constructors/OpenRecordConstructorDescriptor.java
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/constructors/OpenRecordConstructorDescriptor.java
index 2a7348c..9dc2d1c 100644
---
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/constructors/OpenRecordConstructorDescriptor.java
+++
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/constructors/OpenRecordConstructorDescriptor.java
@@ -34,6 +34,7 @@
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
import org.apache.hyracks.algebricks.runtime.base.ICopyEvaluator;
import org.apache.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.data.std.api.IDataOutputProvider;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
@@ -106,7 +107,7 @@
}
}
recBuilder.write(out, true);
- } catch (IOException | AsterixException e) {
+ } catch (HyracksDataException e) {
throw new AlgebricksException(e);
}
}
diff --git
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
index c26daca..a4cfdbd 100644
---
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
+++
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
@@ -187,7 +187,7 @@
}
addFields(recordPointable, listPointable);
recordBuilder.write(output.getDataOutput(), true);
- } catch (IOException | AsterixException e) {
+ } catch (HyracksDataException e) {
throw new AlgebricksException(e);
}
}
diff --git
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
index 73d5cd9..2e493c5 100644
---
a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
+++
b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
@@ -168,8 +168,8 @@
switch (type2) {
case YEARMONTHDURATION:
- yearMonth =
AYearMonthDurationSerializerDeserializer.getYearMonth(
- argOut2.getByteArray(), 1);
+ yearMonth =
AYearMonthDurationSerializerDeserializer
+ .getYearMonth(argOut2.getByteArray(),
1);
int yearStart =
GREG_CAL.getYear(chrononToStart);
int monthStart =
GREG_CAL.getMonthOfYear(chrononToStart, yearStart);
@@ -182,13 +182,13 @@
+ ((totalMonths < 0 && totalMonths %
yearMonth != 0) ? -1 : 0);
if (binIndex > Integer.MAX_VALUE) {
- throw new
AlgebricksException(getIdentifier().getName()
- + ": Overflowing time value to be
binned!");
+ throw new AlgebricksException(
+ getIdentifier().getName() + ":
Overflowing time value to be binned!");
}
if (binIndex < Integer.MIN_VALUE) {
- throw new
AlgebricksException(getIdentifier().getName()
- + ": Underflowing time value to be
binned!");
+ throw new AlgebricksException(
+ getIdentifier().getName() + ":
Underflowing time value to be binned!");
}
break;
@@ -210,43 +210,42 @@
}
return;
default:
- throw new AlgebricksException(
- getIdentifier().getName()
- + ": expecting
YEARMONTHDURATION/DAYTIMEDURATION for the thrid argument but got "
- + type2);
+ throw new
AlgebricksException(getIdentifier().getName()
+ + ": expecting
YEARMONTHDURATION/DAYTIMEDURATION for the thrid argument but got "
+ + type2);
}
switch (type0) {
case DATE:
- binStartChronon =
DurationArithmeticOperations.addDuration(chrononToStart, yearMonth
- * (int) binIndex, dayTime * binIndex,
false);
- binEndChronon =
DurationArithmeticOperations.addDuration(chrononToStart, yearMonth
- * ((int) binIndex + 1), dayTime *
(binIndex + 1), false);
+ binStartChronon =
DurationArithmeticOperations.addDuration(chrononToStart,
+ yearMonth * (int) binIndex, dayTime *
binIndex, false);
+ binEndChronon =
DurationArithmeticOperations.addDuration(chrononToStart,
+ yearMonth * ((int) binIndex + 1),
dayTime * (binIndex + 1), false);
- binStartChronon = binStartChronon
- /
GregorianCalendarSystem.CHRONON_OF_DAY
- + ((binStartChronon < 0 &&
binStartChronon
- %
GregorianCalendarSystem.CHRONON_OF_DAY != 0) ? -1 : 0);
- binEndChronon = binEndChronon
- /
GregorianCalendarSystem.CHRONON_OF_DAY
- + ((binEndChronon < 0 && binEndChronon
% GregorianCalendarSystem.CHRONON_OF_DAY != 0) ? -1
- : 0);
+ binStartChronon = binStartChronon /
GregorianCalendarSystem.CHRONON_OF_DAY
+ + ((binStartChronon < 0
+ && binStartChronon %
GregorianCalendarSystem.CHRONON_OF_DAY != 0) ? -1
+ : 0);
+ binEndChronon = binEndChronon /
GregorianCalendarSystem.CHRONON_OF_DAY
+ + ((binEndChronon < 0
+ && binEndChronon %
GregorianCalendarSystem.CHRONON_OF_DAY != 0) ? -1
+ : 0);
break;
case TIME:
if (yearMonth != 0) {
throw new
AlgebricksException(getIdentifier().getName()
+ ": cannot create year-month bin
for a time value");
}
- binStartChronon =
DurationArithmeticOperations.addDuration(chrononToStart, yearMonth
- * (int) binIndex, dayTime * binIndex,
true);
- binEndChronon =
DurationArithmeticOperations.addDuration(chrononToStart, yearMonth
- * ((int) binIndex + 1), dayTime *
(binIndex + 1), true);
+ binStartChronon =
DurationArithmeticOperations.addDuration(chrononToStart,
+ yearMonth * (int) binIndex, dayTime *
binIndex, true);
+ binEndChronon =
DurationArithmeticOperations.addDuration(chrononToStart,
+ yearMonth * ((int) binIndex + 1),
dayTime * (binIndex + 1), true);
break;
case DATETIME:
- binStartChronon =
DurationArithmeticOperations.addDuration(chrononToStart, yearMonth
- * (int) binIndex, dayTime * binIndex,
false);
- binEndChronon =
DurationArithmeticOperations.addDuration(chrononToStart, yearMonth
- * ((int) binIndex + 1), dayTime *
(binIndex + 1), false);
+ binStartChronon =
DurationArithmeticOperations.addDuration(chrononToStart,
+ yearMonth * (int) binIndex, dayTime *
binIndex, false);
+ binEndChronon =
DurationArithmeticOperations.addDuration(chrononToStart,
+ yearMonth * ((int) binIndex + 1),
dayTime * (binIndex + 1), false);
break;
case NULL:
try {
@@ -260,14 +259,13 @@
+ ": the first argument should be
DATE/TIME/DATETIME/NULL but got " + type0);
}
- aInterval.setValue(binStartChronon, binEndChronon,
type0.serialize());
try {
+ aInterval.setValue(binStartChronon, binEndChronon,
type0.serialize());
intervalSerde.serialize(aInterval, out);
return;
} catch (HyracksDataException ex) {
throw new AlgebricksException(ex);
}
-
}
};
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/603
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icf9591046c44f5fa2281874ff0c98d780e741267
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Till Westmann <[email protected]>