arina-ielchiieva commented on a change in pull request #1684: DRILL-7073:
CREATE SCHEMA command / TupleSchema / ColumnMetadata improvements
URL: https://github.com/apache/drill/pull/1684#discussion_r264040203
##########
File path:
exec/java-exec/src/main/java/org/apache/drill/exec/record/metadata/PrimitiveColumnMetadata.java
##########
@@ -142,6 +165,87 @@ public void setDefaultValue(Object value) {
@Override
public Object defaultValue() { return defaultValue; }
+ @Override
+ public void setDefaultFromString(String value) {
+ if (value == null) {
+ return;
+ }
+ Object objectValue = null;
+ try {
+ switch (type) {
+ case INT:
+ objectValue = Integer.parseInt(value);
+ break;
+ case BIGINT:
+ objectValue = Long.parseLong(value);
+ break;
+ case FLOAT4:
+ objectValue = Float.parseFloat(value);
+ break;
+ case FLOAT8:
+ objectValue = Double.parseDouble(value);
+ break;
+ case VARDECIMAL:
+ objectValue = new BigDecimal(value);
+ break;
+ case BIT:
+ objectValue = Boolean.parseBoolean(value);
+ break;
+ case VARCHAR:
+ case VARBINARY:
+ objectValue = value;
+ break;
+ case TIME:
+ DateTimeFormatter timeFormatter = formatValue == null
+ ? DateTimeFormatter.ISO_TIME.withZone(ZoneOffset.UTC) :
DateTimeFormatter.ofPattern(formatValue);
+ objectValue = LocalTime.parse(value, timeFormatter);
+ break;
+ case DATE:
+ DateTimeFormatter dateFormatter = formatValue == null
+ ? DateTimeFormatter.ISO_DATE.withZone(ZoneOffset.UTC) :
DateTimeFormatter.ofPattern(formatValue);
+ objectValue = LocalDate.parse(value, dateFormatter);
+ break;
+ case TIMESTAMP:
+ DateTimeFormatter dateTimeFormatter = formatValue == null
+ ? DateTimeFormatter.ISO_DATE_TIME.withZone(ZoneOffset.UTC) :
DateTimeFormatter.ofPattern(formatValue);
+ objectValue = ZonedDateTime.parse(value, dateTimeFormatter);
+ break;
+ case INTERVAL:
+ case INTERVALDAY:
+ case INTERVALYEAR:
+ objectValue = Period.parse(value);
+ break;
Review comment:
Updated the code, though when we encounter unsupported type for default
value, I just log warning and return null.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services