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_r264040622
 
 

 ##########
 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;
+      }
+    } catch (IllegalArgumentException | DateTimeParseException e) {
+      logger.warn("Error while parsing type {} default value {}", type, value, 
e);
+    }
+
+    this.defaultValue = objectValue;
+  }
+
+  @Override
+  public String defaultStringValue() {
 
 Review comment:
   Done.

----------------------------------------------------------------
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

Reply via email to