[email protected] has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/3131
Change subject: MB32699 : preserve user specified DateTime separator - user
model changes: no - storage format changes: no - interface changes:
......................................................................
MB32699 : preserve user specified DateTime separator
- user model changes: no
- storage format changes: no
- interface changes:
Details: Changed interface for dateTime input and output
to keep track of user specified dateTime separator.
By default the separator 'T' is used.
Change-Id: I09478c76cb85a02048b1d36f8fbaafa4efcb0e4f
---
M
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
1 file changed, 15 insertions(+), 5 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/31/3131/1
diff --git
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
index 98abb97..9310cda 100644
---
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
+++
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/temporal/DateTimeFormatUtils.java
@@ -274,14 +274,14 @@
public boolean parseDateTime(AMutableInt64 outChronon, byte[] data, int
dataStart, int dataLength, byte[] format,
int formatStart, int formatLength, DateTimeParseMode parseMode,
boolean raiseParseDataError)
throws AsterixTemporalTypeParseException {
- return parseDateTime(outChronon, null, null, data, dataStart,
dataLength, format, formatStart, formatLength,
- parseMode, raiseParseDataError, (byte) '\0');
+ return parseDateTime(outChronon, null, null, null, data, dataStart,
dataLength, format, formatStart,
+ formatLength, parseMode, raiseParseDataError, (byte) '\0');
}
public boolean parseDateTime(AMutableInt64 outChronon, Mutable<Boolean>
outTimeZoneExists,
- AMutableInt32 outTimeZone, byte[] data, int dataStart, int
dataLength, byte[] format, int formatStart,
- int formatLength, DateTimeParseMode parseMode, boolean
raiseParseDataError, byte altSeparatorChar)
- throws AsterixTemporalTypeParseException {
+ AMutableInt32 outTimeZone, Mutable<Byte> dateTimeSeparator, byte[]
data, int dataStart, int dataLength,
+ byte[] format, int formatStart, int formatLength,
DateTimeParseMode parseMode, boolean raiseParseDataError,
+ byte altSeparatorChar) throws AsterixTemporalTypeParseException {
int year = 0, month = 0, day = 0, hour = 0, min = 0, sec = 0, ms = 0,
timezone = 0;
boolean timezoneExists = false;
@@ -291,6 +291,10 @@
int dataStringPointer = 0, formatPointer = 0;
byte separatorChar = '\0';
+
+ byte lastSeparatorChar = '\0';
+
+ byte dateTimeSeparatorChar = '\0';
DateTimeProcessState processState;
@@ -541,6 +545,7 @@
dataStringPointer += processedWeekdayFieldsCount;
break;
case HOUR:
+ dateTimeSeparatorChar = lastSeparatorChar;
case MINUTE:
case SECOND:
case MILLISECOND:
@@ -757,6 +762,7 @@
return false;
}
}
+ lastSeparatorChar = b;
dataStringPointer++;
}
break;
@@ -786,7 +792,11 @@
long chronon = parseMode == DateTimeParseMode.TIME_ONLY ?
CAL.getChronon(hour, min, sec, ms, timezone)
: CAL.getChronon(year, month, day, hour, min, sec, ms,
timezone);
+
outChronon.setValue(chronon);
+ if (dateTimeSeparator != null) {
+ dateTimeSeparator.setValue(dateTimeSeparatorChar);
+ }
if (outTimeZoneExists != null) {
outTimeZoneExists.setValue(timezoneExists);
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/3131
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I09478c76cb85a02048b1d36f8fbaafa4efcb0e4f
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: [email protected]