>From Hussain Towaileb <[email protected]>:
Hussain Towaileb has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21303?usp=email )
Change subject: [ASTERIXDB-3634][EXT]: default datetime types to return datetime
......................................................................
[ASTERIXDB-3634][EXT]: default datetime types to return datetime
Details:
set the following properties to default to "false":
- date-to-int
- time-to-int
- timestamp-to-long
Ext-ref: MB-72169
Change-Id: I3073631ac331fa14749048f6fc143b753ac1db2d
---
M
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/iceberg/converter/IcebergConverterContext.java
1 file changed, 13 insertions(+), 45 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/03/21303/1
diff --git
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/iceberg/converter/IcebergConverterContext.java
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/iceberg/converter/IcebergConverterContext.java
index c778b69..c7713ac 100644
---
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/iceberg/converter/IcebergConverterContext.java
+++
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/aws/iceberg/converter/IcebergConverterContext.java
@@ -18,7 +18,12 @@
*/
package org.apache.asterix.external.input.record.reader.aws.iceberg.converter;
-import java.io.DataOutput;
+import static org.apache.asterix.external.util.ExternalDataConstants.FALSE;
+import static
org.apache.asterix.external.util.ExternalDataConstants.IcebergOptions.DATE_AS_INT;
+import static
org.apache.asterix.external.util.ExternalDataConstants.IcebergOptions.DECIMAL_TO_DOUBLE;
+import static
org.apache.asterix.external.util.ExternalDataConstants.IcebergOptions.TIMESTAMP_AS_LONG;
+import static
org.apache.asterix.external.util.ExternalDataConstants.IcebergOptions.TIME_AS_INT;
+
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.List;
@@ -27,43 +32,24 @@
import org.apache.asterix.external.parser.jackson.ParserContext;
import org.apache.asterix.external.util.ExternalDataConstants;
-import org.apache.asterix.formats.nontagged.SerializerDeserializerProvider;
-import org.apache.asterix.om.base.ADate;
-import org.apache.asterix.om.base.ADateTime;
-import org.apache.asterix.om.base.AMutableDate;
-import org.apache.asterix.om.base.AMutableDateTime;
-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.api.exceptions.Warning;
public class IcebergConverterContext extends ParserContext {
- @SuppressWarnings("unchecked")
- private final ISerializerDeserializer<ADate> dateSerDer =
-
SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(BuiltinType.ADATE);
- @SuppressWarnings("unchecked")
- private final ISerializerDeserializer<ADateTime> datetimeSerDer =
-
SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(BuiltinType.ADATETIME);
+
private final boolean decimalToDouble;
- private final boolean timestampAsLong;
private final boolean dateAsInt;
private final boolean timeAsInt;
-
+ private final boolean timestampAsLong;
private final ZoneId timeZoneId;
- private final AMutableDate mutableDate = new AMutableDate(0);
- private final AMutableDateTime mutableDateTime = new AMutableDateTime(0);
private final List<Warning> warnings;
public IcebergConverterContext(Map<String, String> configuration,
List<Warning> warnings) {
this.warnings = warnings;
- decimalToDouble = Boolean.parseBoolean(configuration
-
.getOrDefault(ExternalDataConstants.IcebergOptions.DECIMAL_TO_DOUBLE,
ExternalDataConstants.FALSE));
- timestampAsLong = Boolean.parseBoolean(configuration
-
.getOrDefault(ExternalDataConstants.IcebergOptions.TIMESTAMP_AS_LONG,
ExternalDataConstants.TRUE));
- timeAsInt =
Boolean.parseBoolean(configuration.getOrDefault(ExternalDataConstants.IcebergOptions.TIME_AS_INT,
- ExternalDataConstants.TRUE));
- dateAsInt =
Boolean.parseBoolean(configuration.getOrDefault(ExternalDataConstants.IcebergOptions.DATE_AS_INT,
- ExternalDataConstants.TRUE));
+ decimalToDouble =
Boolean.parseBoolean(configuration.getOrDefault(DECIMAL_TO_DOUBLE, FALSE));
+ dateAsInt =
Boolean.parseBoolean(configuration.getOrDefault(DATE_AS_INT, FALSE));
+ timeAsInt =
Boolean.parseBoolean(configuration.getOrDefault(TIME_AS_INT, FALSE));
+ timestampAsLong =
Boolean.parseBoolean(configuration.getOrDefault(TIMESTAMP_AS_LONG, FALSE));
+
String configuredTimeZoneId =
configuration.get(ExternalDataConstants.IcebergOptions.TIMEZONE);
if (configuredTimeZoneId != null && !configuredTimeZoneId.isEmpty()) {
timeZoneId = TimeZone.getTimeZone(configuredTimeZoneId).toZoneId();
@@ -72,24 +58,6 @@
}
}
- public void serializeDate(int value, DataOutput output) {
- try {
- mutableDate.setValue(value);
- dateSerDer.serialize(mutableDate, output);
- } catch (HyracksDataException e) {
- throw new IllegalStateException(e);
- }
- }
-
- public void serializeDateTime(long timestamp, DataOutput output) {
- try {
- mutableDateTime.setValue(timestamp);
- datetimeSerDer.serialize(mutableDateTime, output);
- } catch (HyracksDataException e) {
- throw new IllegalStateException(e);
- }
- }
-
public boolean isDecimalToDoubleEnabled() {
return decimalToDouble;
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21303?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: lumina
Gerrit-Change-Id: I3073631ac331fa14749048f6fc143b753ac1db2d
Gerrit-Change-Number: 21303
Gerrit-PatchSet: 1
Gerrit-Owner: Hussain Towaileb <[email protected]>