flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-4565) Support for SQL IN operator
Date Fri, 25 Nov 2016 13:09:58 GMT

    [ https://issues.apache.org/jira/browse/FLINK-4565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15695836#comment-15695836
] 

ASF GitHub Bot commented on FLINK-4565:
---------------------------------------

GitHub user NickolayVasilishin opened a pull request:

    https://github.com/apache/flink/pull/2868

    [FLINK-4565] Support for SQL IN operator

    This PR is a part of work on SQL IN operator in Table API, which implements IN for literals.
    Two cases are covered: less and great then 20 literals.
    
    Also I have some questions:
    - converting all numeric types to BigDecimal isn't ok? I decided to make so to simplify
use of hashset.
    - validation isn't really good. It forces to use operator with same type literals. Should
I rework it or maybe just add more cases?
    
    expressionDsl.scala:
    	entry point for IN operator in scala API
    ScalarOperators.scala:
    	1) All numeric types are upcasting to BigDecimal for using in hashset, other types are
unchanged in 	castNumeric
    	2) valuesInitialization used for 2 cases: when we have more then 20 operands (then we
use hashset, 	initialized in constructor, descibed below) and less then 20 operands (then
we initialize operands in 	method's body and use them in conjunction)
    	3) comparison also covers described above cases. In first case we use callback to declare
and initialize 	hashset with all operands. Otherwise we just put all operands in conjunction.
    	4) Final code is built up with these code snippets.
    CodeGenerator.scala:
    	passes arguments and callback to declare and init hashet
    FunctionCatalog.scala:
    	registers "in" as method
    InITCase:
    	some use cases

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/NickolayVasilishin/flink FLINK-4565

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/2868.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2868
    
----
commit 7699c37a840dcb62c4984e0d63f87813d355d1f8
Author: nikolay_vasilishin <nikolay_vasilishin@epam.com>
Date:   2016-11-25T12:44:53Z

    [FLINK-4565] Support for SQL IN operator
    
    expressionDsl.scala:
    	entry point for IN operator in scala API
    ScalarOperators.scala:
    	1) All numeric types are upcasting to BigDecimal for using in hashset, other types are
unchanged in 	castNumeric
    	2) valuesInitialization used for 2 cases: when we have more then 20 operands (then we
use hashset, 	initialized in constructor, descibed below) and less then 20 operands (then
we initialize operands in 	method's body and use them in conjunction)
    	3) comparison also covers described above cases. In first case we use callback to declare
and initialize 	hashset with all operands. Otherwise we just put all operands in conjunction.
    	4) Final code is built up with these code snippets.
    CodeGenerator.scala:
    	passes arguments and callback to declare and init hashet
    FunctionCatalog.scala:
    	registers "in" as method
    InITCase:
    	some use cases

----


> Support for SQL IN operator
> ---------------------------
>
>                 Key: FLINK-4565
>                 URL: https://issues.apache.org/jira/browse/FLINK-4565
>             Project: Flink
>          Issue Type: Improvement
>          Components: Table API & SQL
>            Reporter: Timo Walther
>            Assignee: Nikolay Vasilishin
>
> It seems that Flink SQL supports the uncorrelated sub-query IN operator. But it should
also be available in the Table API and tested.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message