Hi Yash, I'll take a look at your github repo, and start from there.
To get null expression and pass optiq's parsing, you may try this: SELECT 1 + _MAP['NON_EXISTS_COLUMN'] from ... When the column does not exists, it will return with NullExpression.INSTANCE. This way, you can see how the operator "+" is binded and the code generator handles the code generation for "+" operator, when input is 1 and a null expression. Jinfeng s On Wed, Nov 20, 2013 at 10:42 AM, Yash Sharma <[email protected]>wrote: > It would be great working with Jinfeng.. > > For now, > I have pushed code for (3) to look for NullExpressions on the same github > repo: > https://github.com/yashs360/incubator-drill-casting > > Unfortunately was not able to test it because all the queries I hit on > sqlline (with null parameters) were filtered by Optiq's Parsng exceptions. > If anyone can share which query they are using I can try it on sqlline and > test the flow. > > For 1 & 2, I have a weighted-cost calculation in mind, based on the TYPE > (required, optional repeated) . Open to suggestions.. > > - Yash > ________________________________________ > From: [email protected] [[email protected]] on behalf of > Jacques Nadeau [[email protected]] > Sent: Wednesday, November 20, 2013 8:26 PM > To: [email protected] > Subject: RE: hangout > > There actually three different concepts to support with null. > > 1. non-nullable types should be first attempted to cast to their > non-nullable partners in precedence (such as non-nullable int to > non-nullable big int) > > 2. data mode casting should also be supported: non-nullable int to nullable > int to repeated int to get a function match. > > 3. Missing fields (currently represented my NullExpression) should be > replaced be null nullable constants of a particular minor type based on > function implementation introspection. > > Drill-203 is focused on part three above. Agree that Jinfeng and Yash > should work together as this code is right on top of each other. > > Jacques > On Nov 20, 2013 6:39 AM, "Yash Sharma" <[email protected]> wrote: > > > Copy That. > > Will add NULL as the least precedence type in our precedence map and will > > see if the getBestFunction() can pick up the closest implementation > > provided. > > > > - Yash > > > > > > > > -----Original Message----- > > From: Timothy Chen [mailto:[email protected]] > > Sent: Wednesday, November 20, 2013 6:45 PM > > To: drill > > Subject: Re: hangout > > > > Btw Yash, we also have a bug around not handle nullable arguments well ( > > https://issues.apache.org/jira/browse/DRILL-203) > > > > and this should be also handled in the casting function search when null > > is passed. > > > > Tim > > > > > > On Wed, Nov 20, 2013 at 2:17 PM, Yash Sharma <[email protected] > > >wrote: > > > > > Sorry guys I dropped out of hangout yesterday due to connectivity > issues. > > > I am working on Implicit Casting functionality. Have put a quick > > > prototype of the proposal here: > > > https://github.com/yashs360/incubator-drill-casting > > > > > > Guys can have a look and let me know if its on right track. > > > Two prime things to mention: > > > - Am figuring out some way to convert the function call to new > > > function call. > > > - Next, I need to see how Optiq's classes can be used to determine the > > > type of casting (implicit/explicit) > > > > > > -Regards, Yash > > > > > > > > > > > > -----Original Message----- > > > From: Michael Hausenblas [mailto:[email protected]] > > > Sent: Tuesday, November 19, 2013 10:37 PM > > > To: Apache Drill Developer > > > Subject: Re: hangout > > > > > > > > > Yeah, regrets from me as well, on travel ... > > > > > > Cheers, > > > Michael > > > > > > -- > > > Michael Hausenblas > > > Ireland, Europe > > > http://mhausenblas.info/ > > > > > > On 19 Nov 2013, at 17:52, Timothy Chen <[email protected]> wrote: > > > > > > > Hey folks, > > > > > > > > Will be missing out hangout because of jetlag and time, but I just > > > > pushed the broadcast sender code to review. > > > > > > > > On the side still waiting for some response on the EMR side for more > > > > progress, but I'll try some more this week to see if I can figure > > > > out what's wrong with my script. > > > > > > > > Tim > > > > > > > > > ________________________________ > > > > > > > > > > > > > > > > > > > > > NOTE: This message may contain information that is confidential, > > > proprietary, privileged or otherwise protected by law. The message is > > > intended solely for the named addressee. If received in error, please > > > destroy and notify the sender. Any use of this email is prohibited > > > when received in error. Impetus does not represent, warrant and/or > > > guarantee, that the integrity of this communication has been > > > maintained nor that the communication is free of errors, virus, > > interception or interference. > > > > > > > ________________________________ > > > > > > > > > > > > > > NOTE: This message may contain information that is confidential, > > proprietary, privileged or otherwise protected by law. The message is > > intended solely for the named addressee. If received in error, please > > destroy and notify the sender. Any use of this email is prohibited when > > received in error. Impetus does not represent, warrant and/or guarantee, > > that the integrity of this communication has been maintained nor that the > > communication is free of errors, virus, interception or interference. > > > > ________________________________ > > > > > > > NOTE: This message may contain information that is confidential, > proprietary, privileged or otherwise protected by law. The message is > intended solely for the named addressee. If received in error, please > destroy and notify the sender. Any use of this email is prohibited when > received in error. Impetus does not represent, warrant and/or guarantee, > that the integrity of this communication has been maintained nor that the > communication is free of errors, virus, interception or interference. >
