Hi, guys. thanks for advices. allow me to make a small summary:
1.Support ILIKE 2.Using catalog api to support show operations 3.Need a dedicated FLIP try to support INFORMATION_SCHEMA 4.Support SHOW CONNECTORS If there are no other questions, i will try to start a VOTE for this FLIP. WDYT? Best Regards, Ran Tao Sergey Nuyanzin <snuyan...@gmail.com> 于2023年2月27日周一 21:12写道: > Hi Jark, > > thanks for your comment. > > >Considering they > > are orthogonal and information schema requires more complex design and > > discussion, it deserves a separate FLIP > I'm ok with a separate FLIP for INFORMATION_SCHEMA. > > >Sergey, are you willing to contribute this FLIP? > Seems I need to have more research done for that. > I would try to help/contribute here > > > On Mon, Feb 27, 2023 at 3:46 AM Ran Tao <chucheng...@gmail.com> wrote: > > > HI, Jing. thanks. > > > > @about ILIKE, from my collections of some popular engines founds that > just > > snowflake has this syntax in show with filtering. > > do we need to support it? if yes, then current some existed show > operations > > need to be addressed either. > > @about ShowOperation with like. it's a good idea. yes, two parameters for > > constructor can work. thanks for your advice. > > > > > > Best Regards, > > Ran Tao > > > > > > Jing Ge <j...@ververica.com.invalid> 于2023年2月27日周一 06:29写道: > > > > > Hi, > > > > > > @Aitozi > > > > > > This is exactly why LoD has been introduced: to avoid exposing internal > > > structure(2nd and lower level API). > > > > > > @Jark > > > > > > IMHO, there is no conflict between LoD and "High power-to-weight ratio" > > > with the given example, List.subList() returns List interface itself, > no > > > internal or further interface has been exposed. After offering > > > tEvn.getCatalog(), "all" methods in Catalog Interface have been > provided > > by > > > TableEnvironment(via getCatalog()). From user's perspective and > > maintenance > > > perspective there is no/less difference between providing them directly > > via > > > TableEnvironment or via getCatalog(). They are all exposed. Using > > > getCatalog() will reduce the number of boring wrapper methods, but on > the > > > other hand not every method in Catalog needs to be exposed, so the > number > > > of wrapper methods would be limited/less, if we didn't expose Catalog. > > > Nevertheless, since we already offered getCatalog(), it makes sense to > > > continue using it. The downside is the learning effort for users - they > > > have to know that listDatabases() is hidden in Catalog, go to another > > > haystack and then find the needle in there. > > > > > > +1 for Information schema with a different FLIP. From a design > > perspective, > > > information schema should be the first choice for most cases and easy > to > > > use. Catalog, on the other hand, will be more powerful and offer more > > > advanced features. > > > > > > Best regards, > > > Jing > > > > > > > > > On Sat, Feb 25, 2023 at 3:57 PM Jark Wu <imj...@gmail.com> wrote: > > > > > > > Hi Sergey, > > > > > > > > I think INFORMATION_SCHEMA is a very interesting idea, and I hope we > > can > > > > support it. However, it doesn't conflict with the idea of auxiliary > > > > statements. I can see different benefits of them. The information > > schema > > > > provides powerful and flexible capabilities but needs to learn the > > > complex > > > > entity relationship[1]. The auxiliary SQL statements are super handy > > and > > > > can resolve most problems, but they offer limited features. > > > > > > > > I can see almost all the mature systems support both of them. I think > > it > > > > also makes sense to support both of them in Flink. Considering they > > > > are orthogonal and information schema requires more complex design > and > > > > discussion, it deserves a separate FLIP. Sergey, are you willing to > > > > contribute this FLIP? > > > > > > > > Best, > > > > Jark > > > > > > > > [1]: > > > > > > > > > > > > > > https://docs.databricks.com/sql/language-manual/sql-ref-information-schema.html > > > > > > > > > > > > On Fri, 24 Feb 2023 at 22:43, Ran Tao <chucheng...@gmail.com> wrote: > > > > > > > > > Thanks John. > > > > > > > > > > It seems that most people prefer the information_schema > > implementation. > > > > > information_schema does have more benefits (however, the show > > operation > > > > is > > > > > also an option and supplement). > > > > > Otherwise, the sql syntax and keywords may be changed frequently. > > > > > Of course, it will be more complicated than the extension of the > show > > > > > operation. > > > > > It is necessary to design various tables in information_schema, > > which > > > > may > > > > > take a period of effort. > > > > > > > > > > I will try to design the information_schema and integrate it with > > > flink. > > > > > This may be a relatively big feature for me. I hope you guys can > give > > > > > comments and opinions later. > > > > > Thank you all. > > > > > > > > > > Best Regards, > > > > > Ran Tao > > > > > > > > > > > > > > > John Roesler <vvcep...@apache.org> 于2023年2月24日周五 21:53写道: > > > > > > > > > > > Hello Ran, > > > > > > > > > > > > Thanks for the FLIP! > > > > > > > > > > > > Do you mind if we revisit the topic of doing this by adding an > > > > > Information > > > > > > schema? The SHOW approach requires modifying the parser/language > > for > > > > > every > > > > > > gap we identify. On the flip side, an Information schema is much > > > easier > > > > > to > > > > > > discover and remember how to use, and the ability to run queries > on > > > it > > > > is > > > > > > quite valuable for admins. It’s also better for Flink > maintainers, > > > > > because > > > > > > the information tables’ schemas can be evolved over time just > like > > > > > regular > > > > > > tables, whereas every change to a SHOW statement would be a > > breaking > > > > > > change. > > > > > > > > > > > > I understand that it may seem like a big effort, but we’re > > proposing > > > > > quite > > > > > > a big extension to the space of SHOW statement, so it seems > > > appropriate > > > > > to > > > > > > take the opportunity and migrate to a better framework rather > than > > > > > > incrementally building on (and tying us even more firmly to) the > > > > existing > > > > > > approach. > > > > > > > > > > > > Thanks for your consideration, > > > > > > John > > > > > > > > > > > > On Fri, Feb 24, 2023, at 05:58, Sergey Nuyanzin wrote: > > > > > > > thanks for explanation > > > > > > > > > > > > > >>But it's not clear to me what exactly > > > > > > >> you want to display? Is it the name of the plugin? > > > > > > > > > > > > > > I was thinking about name, type (source/sink) and may be > version > > > (not > > > > > > sure > > > > > > > if it's possible right now) > > > > > > > > > > > > > > On Fri, Feb 24, 2023 at 12:46 PM Ran Tao < > chucheng...@gmail.com> > > > > > wrote: > > > > > > > > > > > > > >> Hi, Sergey. thanks. first step we can support filtering for > show > > > > > > operations > > > > > > >> in this FLIP try to align other engines. > > > > > > >> If we want to support describe other objects, of course we > need > > to > > > > > > design > > > > > > >> how to get these metadatas or informations and printAsStyle. > (So > > > it > > > > > > maybe > > > > > > >> need another FLIP for more details). > > > > > > >> > > > > > > >> > Does it make sense to add support for connectors e.g. show > > > > > > >> > {sink|source|all} connectors? > > > > > > >> I think we can support it, currently flink do support some > > > > operations > > > > > > only > > > > > > >> for flink itself such as showJobs. But it's not clear to me > what > > > > > exactly > > > > > > >> you want to display? Is it the name of the plugin? > > > > > > >> Just Like: > > > > > > >> Kafka > > > > > > >> Hudi > > > > > > >> Files > > > > > > >> > > > > > > >> Best Regards, > > > > > > >> Ran Tao > > > > > > >> > > > > > > >> > > > > > > >> Sergey Nuyanzin <snuyan...@gmail.com> 于2023年2月24日周五 19:11写道: > > > > > > >> > > > > > > >> > Thanks for driving the FLIP > > > > > > >> > > > > > > > >> > I have a couple of questions > > > > > > >> > Am I right that INFORMATION_SCHEMA mentioned by Timo[1] is > > out > > > of > > > > > > scope > > > > > > >> of > > > > > > >> > this FLIP? > > > > > > >> > I noticed there are some support of it in > > > > > > Spark[2]/Hive[3]/Snowflake[4] > > > > > > >> and > > > > > > >> > others > > > > > > >> > > > > > > > >> > Does it make sense to add support for connectors e.g. show > > > > > > >> > {sink|source|all} connectors? > > > > > > >> > > > > > > > >> > [1] > > > > > https://lists.apache.org/thread/2g108qlfwbhb56wnoc5qj0yq29dvq1vv > > > > > > >> > [2] https://issues.apache.org/jira/browse/SPARK-16452 > > > > > > >> > [3] https://issues.apache.org/jira/browse/HIVE-1010 > > > > > > >> > [4] https://docs.snowflake.com/en/sql-reference/info-schema > > > > > > >> > > > > > > > >> > > > > > > > >> > On Fri, Feb 24, 2023 at 4:19 AM Jark Wu <imj...@gmail.com> > > > wrote: > > > > > > >> > > > > > > > >> > > Hi Jing, > > > > > > >> > > > > > > > > >> > > > we'd better reduce the dependency chain and follow the > Law > > > of > > > > > > >> > > Demeter(LoD, clean code). > > > > > > >> > > > Adding a new method in TableEnvironment is therefore > > better > > > > than > > > > > > >> > calling > > > > > > >> > > an API chain > > > > > > >> > > > > > > > > >> > > I think I don't fully agree that LoD is a good practice. > > > > > Actually, I > > > > > > >> > would > > > > > > >> > > prefer to keep the API clean and concise. > > > > > > >> > > This is also the Java Collection Framework design > principle > > > [1]: > > > > > > "High > > > > > > >> > > power-to-weight ratio". Otherwise, > > > > > > >> > > it will explode the API interfaces with different > > combinations > > > > of > > > > > > >> > methods. > > > > > > >> > > Currently, TableEnvironment > > > > > > >> > > already provides 60+ methods. > > > > > > >> > > > > > > > > >> > > IMO, with the increasing methods of accessing and > > manipulating > > > > > > >> metadata, > > > > > > >> > > they can be extracted to > > > > > > >> > > a separate interface, where we can add richer methods. > This > > > work > > > > > > can be > > > > > > >> > > aligned with the > > > > > > >> > > CatalogManager interface (FLIP-295) [2]. > > > > > > >> > > > > > > > > >> > > Best, > > > > > > >> > > Jark > > > > > > >> > > > > > > > > >> > > [1]: > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > https://stackoverflow.com/questions/7568819/why-no-tail-or-head-method-in-list-to-get-last-or-first-element > > > > > > >> > > [2]: > > > > > > https://lists.apache.org/thread/9bnjblgd9wvrl75lkm84oo654c4lqv70 > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > On Fri, 24 Feb 2023 at 10:38, Aitozi < > gjying1...@gmail.com> > > > > > wrote: > > > > > > >> > > > > > > > > >> > > > Hi, > > > > > > >> > > > Thanks for the nice proposal, Ran. > > > > > > >> > > > Regarding this api usage, I have some discussion > with > > > > > @twalthr > > > > > > >> > before > > > > > > >> > > > as here < > > > > > > >> > > > > > > > > > > https://github.com/apache/flink/pull/15137#issuecomment-1356124138 > > > > > > > > > >> > > > Personally, I think leaking the Catalog to the user side > > is > > > > not > > > > > > >> > suitable, > > > > > > >> > > > since there are some read/write operations in the > Catalog, > > > the > > > > > > >> > > > TableEnvironment#getCatalog will expose all of them to > the > > > > user > > > > > > side. > > > > > > >> > So > > > > > > >> > > I > > > > > > >> > > > learned to add a new api in TableEnvironment to reduce > > > > reliance > > > > > on > > > > > > >> the > > > > > > >> > > > current TableEnvironment#getCatalog. > > > > > > >> > > > > > > > > > >> > > > Thanks, > > > > > > >> > > > Aitozi > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > Ran Tao <chucheng...@gmail.com> 于2023年2月23日周四 23:44写道: > > > > > > >> > > > > > > > > > >> > > > > Hi, JingSong, Jing. > > > > > > >> > > > > > > > > > > >> > > > > thank for sharing your opinions. > > > > > > >> > > > > > > > > > > >> > > > > What you say makes sense, both approaches have pros > and > > > > cons. > > > > > > >> > > > > > > > > > > >> > > > > If it is a modification of `TableEnvrionment`, such as > > > > > > >> > > > > listDatabases(catalog). It is actually consistent with > > the > > > > > other > > > > > > >> > > > overloaded > > > > > > >> > > > > methods before, > > > > > > >> > > > > and defining this method means that TableEnvrionment > > does > > > > > > provide > > > > > > >> > this > > > > > > >> > > > > capability (rather than relying on the functionality > of > > > > > another > > > > > > >> > class). > > > > > > >> > > > > The disadvantage is that api changes may be required, > > and > > > > may > > > > > > >> > continue > > > > > > >> > > to > > > > > > >> > > > > be modified in the future. > > > > > > >> > > > > But from the TableEnvrionment itself, it really > doesn't > > > pay > > > > > > >> attention > > > > > > >> > > to > > > > > > >> > > > > how the underlying layer is implemented. > > > > > > >> > > > > (Although it is actually taken from the catalogManager > > at > > > > > > present, > > > > > > >> > this > > > > > > >> > > > is > > > > > > >> > > > > another question) > > > > > > >> > > > > > > > > > > >> > > > > Judging from the current dependencies, > > > flink-table-api-java > > > > > > >> strongly > > > > > > >> > > > relies > > > > > > >> > > > > on flink-table-common to use various common classes > and > > > > > > interfaces, > > > > > > >> > > > > especially the catalog interface. > > > > > > >> > > > > So we can extract various metadata information in the > > > > catalog > > > > > > >> through > > > > > > >> > > > > `tEnv.getCatalog`. > > > > > > >> > > > > The advantage is that it will not cause api > > modification, > > > > but > > > > > > this > > > > > > >> > > method > > > > > > >> > > > > of use breaks LoD. > > > > > > >> > > > > In fact, the current flink-table-api-java design is > > > > completely > > > > > > >> bound > > > > > > >> > to > > > > > > >> > > > the > > > > > > >> > > > > catalog interface. > > > > > > >> > > > > > > > > > > >> > > > > If the mandatory modification of PublicApi is > > constrained > > > > (may > > > > > > be > > > > > > >> > > > modified > > > > > > >> > > > > again and later), I tend to use `tEnv.getCatalog` > > > directly, > > > > > > >> otherwise > > > > > > >> > > > > It would actually be more standard to add overloaded > > > methods > > > > > to > > > > > > >> > > > > `TableEnvrionment`. > > > > > > >> > > > > > > > > > > >> > > > > Another question, can the later capabilities of > > > > > > TableEnvrionment be > > > > > > >> > > > > implemented through SupportXXX? > > > > > > >> > > > > In order to solve the problem that the method needs to > > be > > > > > added > > > > > > in > > > > > > >> > the > > > > > > >> > > > > future. This kind of usage occurs frequently in flink. > > > > > > >> > > > > > > > > > > >> > > > > Looking forward to your other considerations, > > > > > > >> > > > > and also try to wait to see if there are other > relevant > > > API > > > > > > >> designers > > > > > > >> > > or > > > > > > >> > > > > committers to provide comments. > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > Best Regards, > > > > > > >> > > > > Ran Tao > > > > > > >> > > > > > > > > > > >> > > > > Jing Ge <j...@ververica.com.invalid> 于2023年2月23日周四 > > > 18:58写道: > > > > > > >> > > > > > > > > > > >> > > > > > Hi Jingson, > > > > > > >> > > > > > > > > > > > >> > > > > > Thanks for sharing your thoughts. Please see my > reply > > > > below. > > > > > > >> > > > > > > > > > > > >> > > > > > On Thu, Feb 23, 2023 at 10:16 AM Jingsong Li < > > > > > > >> > jingsongl...@gmail.com > > > > > > >> > > > > > > > > > >> > > > > > wrote: > > > > > > >> > > > > > > > > > > > >> > > > > > > Hi Jing Ge, > > > > > > >> > > > > > > > > > > > > >> > > > > > > First, flink-table-common contains all common > > classes > > > of > > > > > > Flink > > > > > > >> > > Table, > > > > > > >> > > > > > > I think it is hard to bypass its dependence. > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > If any time when we use flink-table-api-java, we > have > > to > > > > > cross > > > > > > >> > > through > > > > > > >> > > > > > flink-table-api-java and use flink-table-common, we > > > should > > > > > > >> > reconsider > > > > > > >> > > > the > > > > > > >> > > > > > design of these two modules and how > interfaces/classes > > > are > > > > > > >> > classified > > > > > > >> > > > > into > > > > > > >> > > > > > those modules. > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > Secondly, almost all methods in Catalog looks > useful > > > to > > > > > me, > > > > > > so > > > > > > >> if > > > > > > >> > > we > > > > > > >> > > > > > > are following LoD, we should add all methods again > > to > > > > > > >> > > > > > > TableEnvironment. I think it is redundant. > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > That is the enlarged issue I mentioned previously. A > > > > simple > > > > > > >> > solution > > > > > > >> > > is > > > > > > >> > > > > to > > > > > > >> > > > > > move Catalog to the top level API. The fact is that > a > > > > > catalog > > > > > > >> > package > > > > > > >> > > > > > already exists in flink-table-api-java but the > Catalog > > > > > > interface > > > > > > >> is > > > > > > >> > > in > > > > > > >> > > > > > flink-table-common. I don't know the historical > > context > > > of > > > > > > this > > > > > > >> > > design. > > > > > > >> > > > > > Maybe you could share some insight with us? Thanks > in > > > > > advance. > > > > > > >> > Beyond > > > > > > >> > > > > that, > > > > > > >> > > > > > there should be other AOP options but need more time > > to > > > > > > figure it > > > > > > >> > > out. > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > And, this API chain does not look deep. > > > > > > >> > > > > > > - > > > > > > >> > > > > "tEnv.getCatalog(tEnv.getCurrentCatalog()).get().listDatabases()" > > > > > > >> > > > > > > looks a little complicated. The complex part is > > ahead. > > > > > > >> > > > > > > - If we have a method to get Catalog directly, can > > be > > > > > > simplify > > > > > > >> to > > > > > > >> > > > > > > "tEnv.catalog().listDatabase()", this is simple. > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > Commonly, it will need more effort to always follow > > LoD, > > > > but > > > > > > for > > > > > > >> > the > > > > > > >> > > > top > > > > > > >> > > > > > level facade API like TableEnvironment, both the API > > > > > > developer, > > > > > > >> API > > > > > > >> > > > > > consumer and the project itself from a long-term > > > > perspective > > > > > > will > > > > > > >> > > > benefit > > > > > > >> > > > > > from sticking to LoD. Since we already have the > > > > > > getCatalog(String > > > > > > >> > > > > catalog) > > > > > > >> > > > > > method in TableEnvironment, it also makes sense to > > > follow > > > > > your > > > > > > >> > > > > suggestion, > > > > > > >> > > > > > if we only want to limit/avoid public API changes. > But > > > > > please > > > > > > be > > > > > > >> > > aware > > > > > > >> > > > > that > > > > > > >> > > > > > we will have all known long-term drawbacks because > of > > > LoD > > > > > > >> > > > > > violation, especially the cross modules violation. I > > > just > > > > > > checked > > > > > > >> > all > > > > > > >> > > > > > usages of getCatalog(String catalog) in the master > > > branch. > > > > > > >> > Currently > > > > > > >> > > > > there > > > > > > >> > > > > > are very limited calls. It is better to pay > attention > > to > > > > it > > > > > > >> before > > > > > > >> > it > > > > > > >> > > > > goes > > > > > > >> > > > > > worse. Just my 2 cents. :) > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > Best, > > > > > > >> > > > > > > Jingsong > > > > > > >> > > > > > > > > > > > > >> > > > > > > On Thu, Feb 23, 2023 at 4:47 PM Jing Ge > > > > > > >> > <j...@ververica.com.invalid > > > > > > >> > > > > > > > > > >> > > > > > > wrote: > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > Hi Jingson, > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > Thanks for the knowledge sharing. IMHO, it looks > > > more > > > > > > like a > > > > > > >> > > design > > > > > > >> > > > > > > > guideline question than just avoiding public API > > > > change. > > > > > > >> Please > > > > > > >> > > > > correct > > > > > > >> > > > > > > me > > > > > > >> > > > > > > > if I'm wrong. > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > Catalog is in flink-table-common module and > > > > > > TableEnvironment > > > > > > >> is > > > > > > >> > > in > > > > > > >> > > > > > > > flink-table-api-java. Depending on how and where > > > those > > > > > > >> features > > > > > > >> > > > > > proposed > > > > > > >> > > > > > > in > > > > > > >> > > > > > > > this FLIP will be used, we'd better reduce the > > > > > dependency > > > > > > >> chain > > > > > > >> > > and > > > > > > >> > > > > > > follow > > > > > > >> > > > > > > > the Law of Demeter(LoD, clean code) [1]. Adding > a > > > new > > > > > > method > > > > > > >> in > > > > > > >> > > > > > > > TableEnvironment is therefore better than > calling > > an > > > > API > > > > > > >> chain. > > > > > > >> > > It > > > > > > >> > > > is > > > > > > >> > > > > > > also > > > > > > >> > > > > > > > more user friendly for the caller, because there > > is > > > no > > > > > > need > > > > > > >> to > > > > > > >> > > > > > understand > > > > > > >> > > > > > > > the internal structure of the called API. The > > > downside > > > > > of > > > > > > >> doing > > > > > > >> > > > this > > > > > > >> > > > > is > > > > > > >> > > > > > > > that we might have another issue with the > current > > > > > > >> > > TableEnvironment > > > > > > >> > > > > > > design - > > > > > > >> > > > > > > > the TableEnvironment interface got enlarged with > > > more > > > > > > wrapper > > > > > > >> > > > > methods. > > > > > > >> > > > > > > This > > > > > > >> > > > > > > > is a different issue that could be solved with > > > > improved > > > > > > >> > > abstraction > > > > > > >> > > > > > > design > > > > > > >> > > > > > > > in the future. After considering pros and cons, > if > > > we > > > > > > want to > > > > > > >> > add > > > > > > >> > > > > those > > > > > > >> > > > > > > > features now, I would prefer following LoD than > > API > > > > > chain > > > > > > >> > calls. > > > > > > >> > > > > WDYT? > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > Best regards, > > > > > > >> > > > > > > > Jing > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > [1] > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > https://hackernoon.com/object-oriented-tricks-2-law-of-demeter-4ecc9becad85 > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > On Thu, Feb 23, 2023 at 6:26 AM Ran Tao < > > > > > > >> chucheng...@gmail.com > > > > > > >> > > > > > > > > >> > > > > wrote: > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > Hi Jingsong. thanks. i got it. > > > > > > >> > > > > > > > > In this way, there is no need to introduce new > > API > > > > > > changes. > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > Best Regards, > > > > > > >> > > > > > > > > Ran Tao > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > Jingsong Li <jingsongl...@gmail.com> > > > 于2023年2月23日周四 > > > > > > >> 12:26写道: > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > Hi Ran, > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > I mean we can just use > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > TableEnvironment.getCatalog(getCurrentCatalog).get().listDatabases(). > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > We don't need to provide new apis just for > > > utils. > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > Best, > > > > > > >> > > > > > > > > > Jingsong > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > On Thu, Feb 23, 2023 at 12:11 PM Ran Tao < > > > > > > >> > > > chucheng...@gmail.com> > > > > > > >> > > > > > > wrote: > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > Hi Jingsong, thanks. > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > The implementation of these statements in > > > > > > >> > > > TableEnvironmentImpl > > > > > > >> > > > > is > > > > > > >> > > > > > > > > called > > > > > > >> > > > > > > > > > > through the catalog api. > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > but it does support some new override > > methods > > > on > > > > > the > > > > > > >> > > catalog > > > > > > >> > > > > api > > > > > > >> > > > > > > side, > > > > > > >> > > > > > > > > > and > > > > > > >> > > > > > > > > > > I will update it later. Thank you. > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > e.g. > > > > > > >> > > > > > > > > > > TableEnvironmentImpl > > > > > > >> > > > > > > > > > > @Override > > > > > > >> > > > > > > > > > > public String[] listDatabases() { > > > > > > >> > > > > > > > > > > return catalogManager > > > > > > >> > > > > > > > > > > > > > > > > >> > > > .getCatalog(catalogManager.getCurrentCatalog()) > > > > > > >> > > > > > > > > > > .get() > > > > > > >> > > > > > > > > > > .listDatabases() > > > > > > >> > > > > > > > > > > .toArray(new String[0]); > > > > > > >> > > > > > > > > > > } > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > Best Regards, > > > > > > >> > > > > > > > > > > Ran Tao > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > Jingsong Li <jingsongl...@gmail.com> > > > > > 于2023年2月23日周四 > > > > > > >> > > 11:47写道: > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > > > > Thanks for the proposal. > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > +1 for the proposal. > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > I am confused about "Proposed > > > TableEnvironment > > > > > SQL > > > > > > >> API > > > > > > >> > > > > > Changes", > > > > > > >> > > > > > > can > > > > > > >> > > > > > > > > > > > we just use catalog api for this > > > requirement? > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > Best, > > > > > > >> > > > > > > > > > > > Jingsong > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > On Thu, Feb 23, 2023 at 10:48 AM Jacky > > Lau < > > > > > > >> > > > > > liuyong...@gmail.com > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > wrote: > > > > > > >> > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > Hi Ran: > > > > > > >> > > > > > > > > > > > > Thanks for driving the FLIP. the > google > > > doc > > > > > > looks > > > > > > >> > > really > > > > > > >> > > > > > good. > > > > > > >> > > > > > > it > > > > > > >> > > > > > > > > is > > > > > > >> > > > > > > > > > > > > important to improve user interactive > > > > > > experience. > > > > > > >> +1 > > > > > > >> > to > > > > > > >> > > > > > support > > > > > > >> > > > > > > > > this > > > > > > >> > > > > > > > > > > > > feature. > > > > > > >> > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > Jing Ge <j...@ververica.com.invalid> > > > > > > 于2023年2月23日周四 > > > > > > >> > > > > 00:51写道: > > > > > > >> > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > Hi Ran, > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > Thanks for driving the FLIP. It > looks > > > > > overall > > > > > > >> > good. > > > > > > >> > > > > Would > > > > > > >> > > > > > > you > > > > > > >> > > > > > > > > > like to > > > > > > >> > > > > > > > > > > > add > > > > > > >> > > > > > > > > > > > > > a description of useLike and > notLike? > > I > > > > > guess > > > > > > >> > useLike > > > > > > >> > > > > true > > > > > > >> > > > > > > is for > > > > > > >> > > > > > > > > > > > "LIKE" > > > > > > >> > > > > > > > > > > > > > and notLike true is for "NOT LIKE" > > but I > > > > am > > > > > > not > > > > > > >> > sure > > > > > > >> > > > if I > > > > > > >> > > > > > > > > > understood it > > > > > > >> > > > > > > > > > > > > > correctly. Furthermore, does it make > > > sense > > > > > to > > > > > > >> > support > > > > > > >> > > > > > "ILIKE" > > > > > > >> > > > > > > > > too? > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > Best regards, > > > > > > >> > > > > > > > > > > > > > Jing > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > On Wed, Feb 22, 2023 at 1:17 PM Ran > > Tao > > > < > > > > > > >> > > > > > > chucheng...@gmail.com> > > > > > > >> > > > > > > > > > wrote: > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > Currently flink sql auxiliary > > > statements > > > > > has > > > > > > >> > > > supported > > > > > > >> > > > > > some > > > > > > >> > > > > > > > > good > > > > > > >> > > > > > > > > > > > features > > > > > > >> > > > > > > > > > > > > > > such as catalog/databases/table > > > support. > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > But these features are not very > > > complete > > > > > > >> compared > > > > > > >> > > > with > > > > > > >> > > > > > > other > > > > > > >> > > > > > > > > > popular > > > > > > >> > > > > > > > > > > > > > > engines such as spark, presto, > hive > > > and > > > > > > >> > commercial > > > > > > >> > > > > > engines > > > > > > >> > > > > > > such > > > > > > >> > > > > > > > > > as > > > > > > >> > > > > > > > > > > > > > > snowflake. > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > For example, many engines support > > show > > > > > > >> operation > > > > > > >> > > with > > > > > > >> > > > > > > filtering > > > > > > >> > > > > > > > > > > > except > > > > > > >> > > > > > > > > > > > > > > flink, and support describe other > > > > > > object(flink > > > > > > >> > only > > > > > > >> > > > > > support > > > > > > >> > > > > > > > > > describe > > > > > > >> > > > > > > > > > > > > > > table). > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > I wonder can we add these useful > > > > features > > > > > > for > > > > > > >> > > flink? > > > > > > >> > > > > > > > > > > > > > > You can find details in this > doc.[1] > > > or > > > > > > >> FLIP.[2] > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > Also, please let me know if there > > is a > > > > > > mistake. > > > > > > >> > > > Looking > > > > > > >> > > > > > > forward > > > > > > >> > > > > > > > > > to > > > > > > >> > > > > > > > > > > > your > > > > > > >> > > > > > > > > > > > > > > reply. > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > [1] > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > https://docs.google.com/document/d/1hAiOfPx14VTBTOlpyxG7FA2mB1k5M31VnKYad2XpJ1I/ > > > > > > >> > > > > > > > > > > > > > > [2] > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-297%3A+Improve+Auxiliary+Sql+Statements > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > Best Regards, > > > > > > >> > > > > > > > > > > > > > > Ran Tao > > > > > > >> > > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > >> > -- > > > > > > >> > Best regards, > > > > > > >> > Sergey > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > Best regards, > > > > > > > Sergey > > > > > > > > > > > > > > > > > > > > > > > -- > Best regards, > Sergey >