Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-27 Thread Alexander Pivovarov

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/
---

(Updated Feb. 28, 2015, 1:38 a.m.)


Review request for hive, Jason Dere and Thejas Nair.


Changes
---

rebase to the latest codebase


Bugs: HIVE-9744
https://issues.apache.org/jira/browse/HIVE-9744


Repository: hive-git


Description
---

HIVE-9744 Move common arguments validation and value extraction code to 
GenericUDF


Diffs (updated)
-

  common/src/java/org/apache/hive/common/util/DateUtils.java PRE-CREATION 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
c5968835a74195bea6b31a5c7b7346907fed5ce0 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
406fcd608a13fadb8902bf273932acb05a0f3bbe 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
3a43c571ae3a83924a00413181a62ce6f4408125 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenshtein.java 
4c9f9b1567c89e2175acd970ad12a1fd37492607 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
38f08b74609a4018221ca3f5b92cf33799604d60 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java 
4ccae97a227257294d69f728426f425d060ef0c7 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
 5346e45a6befb18f63ea24212295016fe06f2ca0 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
e2ec551d4ae39d521680ee93c791f14f27811270 
  ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
8226ac6fe89c38fcc14edeea215cd5cce7258683 
  ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
f00949e9a12285cc91032215372975753c1f3b4a 
  ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
  ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
  ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
  ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
e3cb6a447bf7bd9f09648e46ace1bcba4da55339 

Diff: https://reviews.apache.org/r/31404/diff/


Testing
---


Thanks,

Alexander Pivovarov



Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-27 Thread Jason Dere

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/#review74584
---



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java
https://reviews.apache.org/r/31404/#comment121194

Hmm, this member ends up being a part of all GenericUDFs, but is only used 
by the methods that use these new convertDate methods. Makes me wonder if we 
should package these changes (plus array of Converters) as a separate utility 
class.  What do you think of that? Not a necessary change, we can leave it as 
it is and can always revisit this later.


- Jason Dere


On Feb. 27, 2015, 12:11 a.m., Alexander Pivovarov wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/31404/
 ---
 
 (Updated Feb. 27, 2015, 12:11 a.m.)
 
 
 Review request for hive, Jason Dere and Thejas Nair.
 
 
 Bugs: HIVE-9744
 https://issues.apache.org/jira/browse/HIVE-9744
 
 
 Repository: hive-git
 
 
 Description
 ---
 
 HIVE-9744 Move common arguments validation and value extraction code to 
 GenericUDF
 
 
 Diffs
 -
 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
 8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
 c5968835a74195bea6b31a5c7b7346907fed5ce0 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
 406fcd608a13fadb8902bf273932acb05a0f3bbe 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
 3a43c571ae3a83924a00413181a62ce6f4408125 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
 de41793ba3925aa9e1ad9623d92881c57791f047 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
 38f08b74609a4018221ca3f5b92cf33799604d60 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java
  4ccae97a227257294d69f728426f425d060ef0c7 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
 4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
  e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
 e2ec551d4ae39d521680ee93c791f14f27811270 
   ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
 8226ac6fe89c38fcc14edeea215cd5cce7258683 
   ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
 f00949e9a12285cc91032215372975753c1f3b4a 
   ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
 6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
   ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
 dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
   ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
 c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
   ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
 e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
 
 Diff: https://reviews.apache.org/r/31404/diff/
 
 
 Testing
 ---
 
 
 Thanks,
 
 Alexander Pivovarov
 




Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-27 Thread Alexander Pivovarov


 On Feb. 27, 2015, 9:01 p.m., Jason Dere wrote:
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java, line 70
  https://reviews.apache.org/r/31404/diff/2-3/?file=878673#file878673line70
 
  Hmm, this member ends up being a part of all GenericUDFs, but is only 
  used by the methods that use these new convertDate methods. Makes me wonder 
  if we should package these changes (plus array of Converters) as a separate 
  utility class.  What do you think of that? Not a necessary change, we can 
  leave it as it is and can always revisit this later.

Added thread-safe DateUtils class which caches SimpleDateFormat(-MM-dd) 
for each thread.


- Alexander


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/#review74584
---


On Feb. 27, 2015, 12:11 a.m., Alexander Pivovarov wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/31404/
 ---
 
 (Updated Feb. 27, 2015, 12:11 a.m.)
 
 
 Review request for hive, Jason Dere and Thejas Nair.
 
 
 Bugs: HIVE-9744
 https://issues.apache.org/jira/browse/HIVE-9744
 
 
 Repository: hive-git
 
 
 Description
 ---
 
 HIVE-9744 Move common arguments validation and value extraction code to 
 GenericUDF
 
 
 Diffs
 -
 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
 8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
 c5968835a74195bea6b31a5c7b7346907fed5ce0 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
 406fcd608a13fadb8902bf273932acb05a0f3bbe 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
 3a43c571ae3a83924a00413181a62ce6f4408125 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
 de41793ba3925aa9e1ad9623d92881c57791f047 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
 38f08b74609a4018221ca3f5b92cf33799604d60 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java
  4ccae97a227257294d69f728426f425d060ef0c7 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
 4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
  e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
 e2ec551d4ae39d521680ee93c791f14f27811270 
   ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
 8226ac6fe89c38fcc14edeea215cd5cce7258683 
   ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
 f00949e9a12285cc91032215372975753c1f3b4a 
   ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
 6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
   ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
 dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
   ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
 c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
   ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
 e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
 
 Diff: https://reviews.apache.org/r/31404/diff/
 
 
 Testing
 ---
 
 
 Thanks,
 
 Alexander Pivovarov
 




Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-27 Thread Alexander Pivovarov

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/
---

(Updated Feb. 28, 2015, 1:28 a.m.)


Review request for hive, Jason Dere and Thejas Nair.


Changes
---

added DateUtils


Bugs: HIVE-9744
https://issues.apache.org/jira/browse/HIVE-9744


Repository: hive-git


Description
---

HIVE-9744 Move common arguments validation and value extraction code to 
GenericUDF


Diffs (updated)
-

  common/src/java/org/apache/hive/common/util/DateUtils.java PRE-CREATION 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
c5968835a74195bea6b31a5c7b7346907fed5ce0 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
406fcd608a13fadb8902bf273932acb05a0f3bbe 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
3a43c571ae3a83924a00413181a62ce6f4408125 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
de41793ba3925aa9e1ad9623d92881c57791f047 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
38f08b74609a4018221ca3f5b92cf33799604d60 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java 
4ccae97a227257294d69f728426f425d060ef0c7 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
 e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
e2ec551d4ae39d521680ee93c791f14f27811270 
  ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
8226ac6fe89c38fcc14edeea215cd5cce7258683 
  ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
f00949e9a12285cc91032215372975753c1f3b4a 
  ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
  ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
  ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
  ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
e3cb6a447bf7bd9f09648e46ace1bcba4da55339 

Diff: https://reviews.apache.org/r/31404/diff/


Testing
---


Thanks,

Alexander Pivovarov



Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-26 Thread Alexander Pivovarov


 On Feb. 26, 2015, 10:37 p.m., Jason Dere wrote:
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java, line 459
  https://reviews.apache.org/r/31404/diff/1-2/?file=875138#file875138line459
 
  Not a fan of these timestamp-related changes. It's causing you to have 
  to create 2 new arrays of Converters which seems awkward.
  
  I was going to suggest simply using a DateConverter, but I see that the 
  original behavior also allowed timestamp format strings (really, it allowed 
  anything after the '-mm-dd' part). Rather than have 2 different 
  converters, maybe just go back to what you had before, use a single 
  converter to string, and then just apply whatever format logic you are 
  going to apply to the string value.

Sure I can use SimpleDateFormat(-MM-dd) to convert short and long strings 
to Date. That was the original behaviour in last_day, next_day, add_months.
methods (obtainDateConvertor and getDateValue)

I also noticed that GenericUDFFromUtcTimestamp uses TimestampConverter for all 
input types. To support this behaviour I created 2 methods 
(obtainTimestampConvertor and getTimestampValue)


 On Feb. 26, 2015, 10:37 p.m., Jason Dere wrote:
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java,
   line 80
  https://reviews.apache.org/r/31404/diff/2/?file=878682#file878682line80
 
  So this is actually an example of something that used to be valid 
  input, but no longer works due to the change from SimpleDateFormat to 
  Timestamp/Date converter. This would be ok for the UDFs you've changed 
  since they are new ones, but I don't know if this kind of change in 
  behavior would be something that would be a concern if we were to apply 
  this same refactoring to some of the other date-related UDFs.

fixed this. all selects in last_day, next_day, add_months q files return what 
they originally returned now


- Alexander


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/#review74371
---


On Feb. 26, 2015, 9:16 p.m., Alexander Pivovarov wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/31404/
 ---
 
 (Updated Feb. 26, 2015, 9:16 p.m.)
 
 
 Review request for hive, Jason Dere and Thejas Nair.
 
 
 Bugs: HIVE-9744
 https://issues.apache.org/jira/browse/HIVE-9744
 
 
 Repository: hive-git
 
 
 Description
 ---
 
 HIVE-9744 Move common arguments validation and value extraction code to 
 GenericUDF
 
 
 Diffs
 -
 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
 8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
 c5968835a74195bea6b31a5c7b7346907fed5ce0 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
 406fcd608a13fadb8902bf273932acb05a0f3bbe 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
 3a43c571ae3a83924a00413181a62ce6f4408125 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
 de41793ba3925aa9e1ad9623d92881c57791f047 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
 38f08b74609a4018221ca3f5b92cf33799604d60 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java
  4ccae97a227257294d69f728426f425d060ef0c7 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
 4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
  e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
 e2ec551d4ae39d521680ee93c791f14f27811270 
   ql/src/test/queries/clientpositive/udf_next_day.q 
 db821f00c39b84c4bc59ea70b0cc0aacf69cbd18 
   ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
 8226ac6fe89c38fcc14edeea215cd5cce7258683 
   ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
 f00949e9a12285cc91032215372975753c1f3b4a 
   ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
 6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
   ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
 dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
   ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
 c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
   ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
 e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
   ql/src/test/results/clientpositive/udf_add_months.q.out 
 8c37fc282a25e350435ff6a4b39e02fc2d4f17df 
   ql/src/test/results/clientpositive/udf_last_day.q.out 
 2d39e3897625c7651b110779b89652f0d785bc92 
 
 Diff: 

Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-26 Thread Alexander Pivovarov


 On Feb. 26, 2015, 7:46 a.m., Jason Dere wrote:
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java, line 383
  https://reviews.apache.org/r/31404/diff/1/?file=875138#file875138line383
 
  Why go away from using the formatter as it was doing before? Are there 
  any ramifications here to switching to Timestamp.valueOf()? I think 
  Timestamp.valueOf() is probably less forgiving when checking the format.

Instead of Timestamp.valueOf and SimpleDateFormat.parse I'm going to use 
PrimitiveObjectInspectorConverter.DateConverters and TimestempConverters to 
convert string to Date/Timestamp. Internally converters use Date.valueOf 
(PrimitiveObjectInspectorUtils lines 999, 1008) and Timestamp.valueOf 
(PrimitiveObjectInspectorUtils line 1099).
Timestamp.valueOf supports optional milliseconds part (from 1 to 9 digits)


 On Feb. 26, 2015, 7:46 a.m., Jason Dere wrote:
  ql/src/test/results/clientpositive/udf_last_day.q.out, line 67
  https://reviews.apache.org/r/31404/diff/1/?file=875155#file875155line67
 
  What's the cause of the output difference here?

I use ObjectInspectorConverters.getConverter to get DateConverters and 
TimestempConverters to convert string to Date/Timestamp. I noticed that 
DateConverter can convert 2014-02-30 to non-null Date but 2014-02-32 is 
converted to null. In this particular case the function deals with 2014-01-34. 
DateConverter converts it to null (which is right because 2014-01-34 is not 
valid date).


- Alexander


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/#review74226
---


On Feb. 25, 2015, 3:57 a.m., Alexander Pivovarov wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/31404/
 ---
 
 (Updated Feb. 25, 2015, 3:57 a.m.)
 
 
 Review request for hive, Jason Dere and Thejas Nair.
 
 
 Bugs: HIVE-9744
 https://issues.apache.org/jira/browse/HIVE-9744
 
 
 Repository: hive-git
 
 
 Description
 ---
 
 HIVE-9744 Move common arguments validation and value extraction code to 
 GenericUDF
 
 
 Diffs
 -
 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
 8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
 c5968835a74195bea6b31a5c7b7346907fed5ce0 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
 406fcd608a13fadb8902bf273932acb05a0f3bbe 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
 3a43c571ae3a83924a00413181a62ce6f4408125 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
 de41793ba3925aa9e1ad9623d92881c57791f047 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
 38f08b74609a4018221ca3f5b92cf33799604d60 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java
  4ccae97a227257294d69f728426f425d060ef0c7 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
  e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
 e2ec551d4ae39d521680ee93c791f14f27811270 
   ql/src/test/queries/clientpositive/udf_next_day.q 
 db821f00c39b84c4bc59ea70b0cc0aacf69cbd18 
   ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
 8226ac6fe89c38fcc14edeea215cd5cce7258683 
   ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
 f00949e9a12285cc91032215372975753c1f3b4a 
   ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
 6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
   ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
 dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
   ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
 c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
   ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
 e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
   ql/src/test/results/clientpositive/udf_add_months.q.out 
 8c37fc282a25e350435ff6a4b39e02fc2d4f17df 
   ql/src/test/results/clientpositive/udf_last_day.q.out 
 2d39e3897625c7651b110779b89652f0d785bc92 
   ql/src/test/results/clientpositive/udf_next_day.q.out 
 37f5640fde267f1635d72f23e76fa89de6403ab5 
 
 Diff: https://reviews.apache.org/r/31404/diff/
 
 
 Testing
 ---
 
 
 Thanks,
 
 Alexander Pivovarov
 




Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-26 Thread Alexander Pivovarov

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/
---

(Updated Feb. 26, 2015, 9:16 p.m.)


Review request for hive, Jason Dere and Thejas Nair.


Bugs: HIVE-9744
https://issues.apache.org/jira/browse/HIVE-9744


Repository: hive-git


Description
---

HIVE-9744 Move common arguments validation and value extraction code to 
GenericUDF


Diffs (updated)
-

  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
c5968835a74195bea6b31a5c7b7346907fed5ce0 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
406fcd608a13fadb8902bf273932acb05a0f3bbe 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
3a43c571ae3a83924a00413181a62ce6f4408125 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
de41793ba3925aa9e1ad9623d92881c57791f047 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
38f08b74609a4018221ca3f5b92cf33799604d60 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java 
4ccae97a227257294d69f728426f425d060ef0c7 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
 e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
e2ec551d4ae39d521680ee93c791f14f27811270 
  ql/src/test/queries/clientpositive/udf_next_day.q 
db821f00c39b84c4bc59ea70b0cc0aacf69cbd18 
  ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
8226ac6fe89c38fcc14edeea215cd5cce7258683 
  ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
f00949e9a12285cc91032215372975753c1f3b4a 
  ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
  ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
  ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
  ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
  ql/src/test/results/clientpositive/udf_add_months.q.out 
8c37fc282a25e350435ff6a4b39e02fc2d4f17df 
  ql/src/test/results/clientpositive/udf_last_day.q.out 
2d39e3897625c7651b110779b89652f0d785bc92 

Diff: https://reviews.apache.org/r/31404/diff/


Testing
---


Thanks,

Alexander Pivovarov



Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-26 Thread Jason Dere

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/#review74371
---



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java
https://reviews.apache.org/r/31404/#comment120934

Not a fan of these timestamp-related changes. It's causing you to have to 
create 2 new arrays of Converters which seems awkward.

I was going to suggest simply using a DateConverter, but I see that the 
original behavior also allowed timestamp format strings (really, it allowed 
anything after the '-mm-dd' part). Rather than have 2 different converters, 
maybe just go back to what you had before, use a single converter to string, 
and then just apply whatever format logic you are going to apply to the string 
value.



ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java
https://reviews.apache.org/r/31404/#comment120945

So this is actually an example of something that used to be valid input, 
but no longer works due to the change from SimpleDateFormat to Timestamp/Date 
converter. This would be ok for the UDFs you've changed since they are new 
ones, but I don't know if this kind of change in behavior would be something 
that would be a concern if we were to apply this same refactoring to some of 
the other date-related UDFs.


- Jason Dere


On Feb. 26, 2015, 9:16 p.m., Alexander Pivovarov wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/31404/
 ---
 
 (Updated Feb. 26, 2015, 9:16 p.m.)
 
 
 Review request for hive, Jason Dere and Thejas Nair.
 
 
 Bugs: HIVE-9744
 https://issues.apache.org/jira/browse/HIVE-9744
 
 
 Repository: hive-git
 
 
 Description
 ---
 
 HIVE-9744 Move common arguments validation and value extraction code to 
 GenericUDF
 
 
 Diffs
 -
 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
 8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
 c5968835a74195bea6b31a5c7b7346907fed5ce0 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
 406fcd608a13fadb8902bf273932acb05a0f3bbe 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
 3a43c571ae3a83924a00413181a62ce6f4408125 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
 de41793ba3925aa9e1ad9623d92881c57791f047 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
 38f08b74609a4018221ca3f5b92cf33799604d60 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java
  4ccae97a227257294d69f728426f425d060ef0c7 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
 4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
  e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
 e2ec551d4ae39d521680ee93c791f14f27811270 
   ql/src/test/queries/clientpositive/udf_next_day.q 
 db821f00c39b84c4bc59ea70b0cc0aacf69cbd18 
   ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
 8226ac6fe89c38fcc14edeea215cd5cce7258683 
   ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
 f00949e9a12285cc91032215372975753c1f3b4a 
   ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
 6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
   ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
 dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
   ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
 c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
   ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
 e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
   ql/src/test/results/clientpositive/udf_add_months.q.out 
 8c37fc282a25e350435ff6a4b39e02fc2d4f17df 
   ql/src/test/results/clientpositive/udf_last_day.q.out 
 2d39e3897625c7651b110779b89652f0d785bc92 
 
 Diff: https://reviews.apache.org/r/31404/diff/
 
 
 Testing
 ---
 
 
 Thanks,
 
 Alexander Pivovarov
 




Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-26 Thread Alexander Pivovarov

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/
---

(Updated Feb. 27, 2015, 12:11 a.m.)


Review request for hive, Jason Dere and Thejas Nair.


Bugs: HIVE-9744
https://issues.apache.org/jira/browse/HIVE-9744


Repository: hive-git


Description
---

HIVE-9744 Move common arguments validation and value extraction code to 
GenericUDF


Diffs (updated)
-

  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
c5968835a74195bea6b31a5c7b7346907fed5ce0 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
406fcd608a13fadb8902bf273932acb05a0f3bbe 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
3a43c571ae3a83924a00413181a62ce6f4408125 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
de41793ba3925aa9e1ad9623d92881c57791f047 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
38f08b74609a4018221ca3f5b92cf33799604d60 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java 
4ccae97a227257294d69f728426f425d060ef0c7 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLastDay.java 
4b233a6966bbdf6902c53f2aaf53cc0eb422b205 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
 e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
e2ec551d4ae39d521680ee93c791f14f27811270 
  ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
8226ac6fe89c38fcc14edeea215cd5cce7258683 
  ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
f00949e9a12285cc91032215372975753c1f3b4a 
  ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
  ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
  ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
  ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
e3cb6a447bf7bd9f09648e46ace1bcba4da55339 

Diff: https://reviews.apache.org/r/31404/diff/


Testing
---


Thanks,

Alexander Pivovarov



Re: Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-25 Thread Jason Dere

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/#review74226
---



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java
https://reviews.apache.org/r/31404/#comment120755

Why go away from using the formatter as it was doing before? Are there any 
ramifications here to switching to Timestamp.valueOf()? I think 
Timestamp.valueOf() is probably less forgiving when checking the format.



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java
https://reviews.apache.org/r/31404/#comment120750

I'm not sure if all of this is actally necesary, at least at the time that 
you are trying to retrieve a value from a converter. If you created a Converter 
with PrimitiveObjectInspectorFactory.writableLongObjectInspector specified as 
the output type, LongConverter.convert() already has a similar switch statement 
that will do the necessary conversion to give you back a LongWritable object. 

So with a properly created Converter, you would just need to call 
(LongWritable) converter.convert(arguments[i].get())

It would probably be a good idea to still do this checking when creating 
the Converter object.



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java
https://reviews.apache.org/r/31404/#comment120748

Does this need to check for null values, or does the caller check for them 
before calling this method?



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java
https://reviews.apache.org/r/31404/#comment120753

Rather than having to convert from long to int (and risk overflow), just 
accept byte/short/int here, and leave the caller of the UDF with the option to 
explicitly cast their long parameter to int if they really want it to work with 
the UDF.



ql/src/test/results/clientpositive/udf_last_day.q.out
https://reviews.apache.org/r/31404/#comment120756

What's the cause of the output difference here?


- Jason Dere


On Feb. 25, 2015, 3:57 a.m., Alexander Pivovarov wrote:
 
 ---
 This is an automatically generated e-mail. To reply, visit:
 https://reviews.apache.org/r/31404/
 ---
 
 (Updated Feb. 25, 2015, 3:57 a.m.)
 
 
 Review request for hive, Jason Dere and Thejas Nair.
 
 
 Bugs: HIVE-9744
 https://issues.apache.org/jira/browse/HIVE-9744
 
 
 Repository: hive-git
 
 
 Description
 ---
 
 HIVE-9744 Move common arguments validation and value extraction code to 
 GenericUDF
 
 
 Diffs
 -
 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
 8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
 c5968835a74195bea6b31a5c7b7346907fed5ce0 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
 406fcd608a13fadb8902bf273932acb05a0f3bbe 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
 3a43c571ae3a83924a00413181a62ce6f4408125 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
 de41793ba3925aa9e1ad9623d92881c57791f047 
   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
 38f08b74609a4018221ca3f5b92cf33799604d60 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java
  4ccae97a227257294d69f728426f425d060ef0c7 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
  e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
   
 ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
 e2ec551d4ae39d521680ee93c791f14f27811270 
   ql/src/test/queries/clientpositive/udf_next_day.q 
 db821f00c39b84c4bc59ea70b0cc0aacf69cbd18 
   ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
 8226ac6fe89c38fcc14edeea215cd5cce7258683 
   ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
 f00949e9a12285cc91032215372975753c1f3b4a 
   ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
 6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
   ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
 dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
   ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
 c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
   ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
 e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
   ql/src/test/results/clientpositive/udf_add_months.q.out 
 8c37fc282a25e350435ff6a4b39e02fc2d4f17df 
   ql/src/test/results/clientpositive/udf_last_day.q.out 
 2d39e3897625c7651b110779b89652f0d785bc92 
   ql/src/test/results/clientpositive/udf_next_day.q.out 
 37f5640fde267f1635d72f23e76fa89de6403ab5 
 
 Diff: https://reviews.apache.org/r/31404/diff/
 
 
 Testing
 ---
 
 
 Thanks,
 
 Alexander Pivovarov
 




Review Request 31404: HIVE-9744 Move common arguments validation and value extraction code to GenericUDF

2015-02-24 Thread Alexander Pivovarov

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31404/
---

Review request for hive and Jason Dere.


Bugs: HIVE-9744
https://issues.apache.org/jira/browse/HIVE-9744


Repository: hive-git


Description
---

HIVE-9744 Move common arguments validation and value extraction code to 
GenericUDF


Diffs
-

  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDF.java 
8a0f573648c51c4945be8ffec4a0b06dfa7061c8 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFAddMonths.java 
c5968835a74195bea6b31a5c7b7346907fed5ce0 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFInitCap.java 
406fcd608a13fadb8902bf273932acb05a0f3bbe 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLastDay.java 
3a43c571ae3a83924a00413181a62ce6f4408125 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFLevenstein.java 
de41793ba3925aa9e1ad9623d92881c57791f047 
  ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFNextDay.java 
38f08b74609a4018221ca3f5b92cf33799604d60 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFAddMonths.java 
4ccae97a227257294d69f728426f425d060ef0c7 
  
ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFLevenshtein.java
 e674d9f38cf7b5cdffcad6eca07dba74ff1e834b 
  ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFNextDay.java 
e2ec551d4ae39d521680ee93c791f14f27811270 
  ql/src/test/queries/clientpositive/udf_next_day.q 
db821f00c39b84c4bc59ea70b0cc0aacf69cbd18 
  ql/src/test/results/clientnegative/udf_add_months_error_1.q.out 
8226ac6fe89c38fcc14edeea215cd5cce7258683 
  ql/src/test/results/clientnegative/udf_add_months_error_2.q.out 
f00949e9a12285cc91032215372975753c1f3b4a 
  ql/src/test/results/clientnegative/udf_last_day_error_1.q.out 
6e718a0c15e84d89b1cfe7f36231e472ff03c37f 
  ql/src/test/results/clientnegative/udf_last_day_error_2.q.out 
dc8e3d14f14205ce65355cd53a95cfc788f45fe0 
  ql/src/test/results/clientnegative/udf_next_day_error_1.q.out 
c67b9c42f7e7fdf20caa34d028b02fd4819e8343 
  ql/src/test/results/clientnegative/udf_next_day_error_2.q.out 
e3cb6a447bf7bd9f09648e46ace1bcba4da55339 
  ql/src/test/results/clientpositive/udf_add_months.q.out 
8c37fc282a25e350435ff6a4b39e02fc2d4f17df 
  ql/src/test/results/clientpositive/udf_last_day.q.out 
2d39e3897625c7651b110779b89652f0d785bc92 
  ql/src/test/results/clientpositive/udf_next_day.q.out 
37f5640fde267f1635d72f23e76fa89de6403ab5 

Diff: https://reviews.apache.org/r/31404/diff/


Testing
---


Thanks,

Alexander Pivovarov