Hi everyone,

I would like to start a discussion on FLINK-21045 [1] about supporting
`LOAD MODULE` and `UNLOAD MODULE` SQL syntax. It's first proposed by
FLIP-68 [2] as following.

-- load a module with the given name and append it to the end of the module
list
LOAD MODULE 'name' [WITH ('type'='xxx', 'prop'='myProp', ...)]

--unload a module by name from the module list and other modules remain in
the same relative positions
UNLOAD MODULE 'name'

After a round of discussion on the Jira ticket, it seems some unanswered
questions need more opinions and suggestions.

1. The way to redefine resolution order easily

    Rui Li suggested introducing `USE MODULES` and adding similar
functionality to the API because

>  1) It's very tedious to unload old modules just to reorder them.

 2) Users may not even know how to "re-load" an old module if it was not
> initially loaded by the user, e.g. don't know which type to use.


    Jane Chan wondered that module is not like the catalog which has a
concept of namespace could specify, and `USE` sounds like a
mutual-exclusive concept.
    Maybe `RELOAD MODULES` can express upgrading the priority of the loaded
module(s).


2. `LOAD/UNLOAD MODULE` v.s. `CREATE/DROP MODULE` syntax
    Jark Wu and Nicholas Jiang proposed to use `CREATE/DROP MODULE` instead
of `LOAD/UNLOAD MODULE` because

>  1) From a pure SQL user's perspective, maybe `CREATE MODULE + USE MODULE`
> is easier to use rather than `LOAD/UNLOAD`.
>  2) This will be very similar to what the catalog used now.


  Timo Walther would rather stick to the agreed design because
loading/unloading modules is a concept known from kernels etc.

3. Simplify the module design by mapping modules purely by name

LOAD MODULE geo_utils
LOAD MODULE hive WITH ('version'='2.1')  -- no dedicated 'type='/'module='
but allow only 1 module to be loaded parameterized
UNLOAD hive
USE MODULES hive, core


Please find more details in the reference link. Looking forward to your
feedback.

[1] https://issues.apache.org/jira/browse/FLINK-21045#
<https://cwiki.apache.org/confluence/display/FLINK/FLIP-68%3A+Extend+Core+Table+System+with+Pluggable+Modules>
[2]
https://cwiki.apache.org/confluence/display/FLINK/FLIP-68%3A+Extend+Core+Table+System+with+Pluggable+Modules

Best,
Jane

Reply via email to