> On April 20, 2015, 9:46 p.m., Jason Altekruse wrote:
> > exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonRecordReader.java,
> >  line 81
> > <https://reviews.apache.org/r/33289/diff/2-3/?file=936938#file936938line81>
> >
> >     I don't aggree with this suggestion, this test could 'pass' if any 
> > error thrown in the system comes back with as an unsupported operation 
> > exception type. I think we should be checking messages. If we want to avoid 
> > some mangement overhead, the tests and project live together in the same 
> > source. You can refer to a static final string from wherever in the source 
> > the error message is produced when you go to check it in the test.
> 
> abdelhakim deneche wrote:
>     True, but testing if the error message contains "UNSUPPORTED OPERATION 
> ERROR" won't be enough either as all unsupported operation errors will 
> contain this string.
> 
> Jason Altekruse wrote:
>     I should have looked more carefully, I didn't realize the only string he 
> was checking for before was the portion that will be common to unsupported 
> operation exceptions. What I should ahve said is that on top of a check for 
> the type of exception we should at least make an effort to make sure that the 
> correct path we intend to check is being executed. This could be as simple as 
> checking for the string JSON in the error message for at least basic coverage 
> in this case. Obviously it would be better to check for the whole message, 
> but there is the burden then of dealing with cases where error messages are 
> actually format strings with %s, %d, etc. and we would need to have the same 
> String.format statement in the test to produce the full error message. We 
> could possibly look at also implementing a little code to help on the test 
> writing side, possibly looking for the format sequences in the test 
> verification of the messages and giving the option to have them somewhat 
> ignored by subsi
 tuting them with regex expressions for the appropriate type (such as %d 
substitutued with [0-9]*.[0-9]*)

I'm not the best with regex, but reviewboard pulled out part of my comment, I 
had a star after both numeric character classes and a backslash before the dot 
in the middle, this probably does not cover everything, but it is a little more 
valid that what reviewboard said I posted :p  (I should have put a ? on the dot 
to match it for an integer number or a decimal one)


- Jason


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


On April 20, 2015, 9:31 p.m., Parth Chandra wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/33289/
> -----------------------------------------------------------
> 
> (Updated April 20, 2015, 9:31 p.m.)
> 
> 
> Review request for drill, abdelhakim deneche and Jason Altekruse.
> 
> 
> Repository: drill-git
> 
> 
> Description
> -------
> 
> DRILL-2350: Improve exception handling and error messages in JSON reader.
> 
> Errors reported from the JSON reader will now look like the following:
> 
> Query failed: UNSUPPORTED_OPERATION ERROR: In a list of type FLOAT8, 
> encountered a value of type BIGINT. Drill does not support lists of different 
> types.
> 
> File:  /Users/pchandra/work/data/test/DRILL-2350.json
> Record:  1
> Line:  2
> Column:  23
> Field:  loc
> 
> [c4b33cca-0a52-4126-a300-2ab91d0ed9d1 on localhost:31010]
> 
> 
> Diffs
> -----
> 
>   exec/java-exec/src/main/codegen/includes/vv_imports.ftl 371d8d0 
>   exec/java-exec/src/main/codegen/templates/ListWriters.java 29708d7 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JSONRecordReader.java
>  b41de31 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/JsonProcessor.java
>  b310818 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/reader/BaseJsonProcessor.java
>  718bb09 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/vector/complex/fn/JsonReader.java
>  c196fd2 
>   
> exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonRecordReader.java
>  8b09e80 
>   exec/java-exec/src/test/resources/jsoninput/DRILL-2350.json PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/33289/diff/
> 
> 
> Testing
> -------
> 
> All unit tests.
> 
> 
> Thanks,
> 
> Parth Chandra
> 
>

Reply via email to