[ 
https://issues.apache.org/jira/browse/HIVE-27199?focusedWorklogId=857339&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-857339
 ]

ASF GitHub Bot logged work on HIVE-27199:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 17/Apr/23 10:40
            Start Date: 17/Apr/23 10:40
    Worklog Time Spent: 10m 
      Work Description: TuroczyX commented on code in PR #4170:
URL: https://github.com/apache/hive/pull/4170#discussion_r1168500611


##########
common/src/java/org/apache/hive/common/util/TimestampParser.java:
##########
@@ -199,6 +205,19 @@ public Timestamp parseTimestamp(final String text) {
 
   }
 
+  public TimestampTZ parseTimestamp(String text, ZoneId defaultTimeZone) {
+    Objects.requireNonNull(text);
+    for (DateTimeFormatter f : dtFormatters) {
+      try {
+        return TimestampTZUtil.parse(text, defaultTimeZone, f);
+      } catch (DateTimeException e) {

Review Comment:
   Also, from pattern perspective a TryParse would be more elegant in this 
case. Of course it is just preferences, but I like this pattern. Way more 
descriptive from code reading perspective.
   
https://learn.microsoft.com/en-us/dotnet/api/system.int32.tryparse?view=net-8.0#system-int32-tryparse(system-string-system-int32@)
   
   I know ref and out keyword are not exists in Java but with return type it is 
possible to handle. (Just FYI, no need to change)





Issue Time Tracking
-------------------

    Worklog Id:     (was: 857339)
    Time Spent: 50m  (was: 40m)

> Read TIMESTAMP WITH LOCAL TIME ZONE columns from text files using custom 
> formats
> --------------------------------------------------------------------------------
>
>                 Key: HIVE-27199
>                 URL: https://issues.apache.org/jira/browse/HIVE-27199
>             Project: Hive
>          Issue Type: Improvement
>          Components: Serializers/Deserializers
>    Affects Versions: 4.0.0-alpha-2
>            Reporter: Stamatis Zampetakis
>            Assignee: Stamatis Zampetakis
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> Timestamp values come in many flavors and formats and there is no single 
> representation that can satisfy everyone especially when such values are 
> stored in plain text/csv files.
> HIVE-9298, added a special SERDE property, {{{}timestamp.formats{}}}, that 
> allows to provide custom timestamp patterns to parse correctly TIMESTAMP 
> values coming from files.
> However, when the column type is TIMESTAMP WITH LOCAL TIME ZONE (LTZ) it is 
> not possible to use a custom pattern thus when the built-in Hive parser does 
> not match the expected format a NULL value is returned.
> Consider a text file, F1, with the following values:
> {noformat}
> 2016-05-03 12:26:34
> 2016-05-03T12:26:34
> {noformat}
> and a table with a column declared as LTZ.
> {code:sql}
> CREATE TABLE ts_table (ts TIMESTAMP WITH LOCAL TIME ZONE);
> LOAD DATA LOCAL INPATH './F1' INTO TABLE ts_table;
> SELECT * FROM ts_table;
> 2016-05-03 12:26:34.0 US/Pacific
> NULL
> {code}
> In order to give more flexibility to the users relying on the TIMESTAMP WITH 
> LOCAL TIME ZONE datatype and also align the behavior with the TIMESTAMP type 
> this JIRA aims to reuse the {{timestamp.formats}} property for both TIMESTAMP 
> types.
> The work here focuses exclusively on simple text files but the same could be 
> done for other SERDE such as JSON etc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to