Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-11 Thread Dawid Wysakowicz
Thank you all for the discussion. I added a note that we might revisit the signature with an instance. I started a separate voting thread for the current state of the FLIP. I will appreciate your votes. Best, Dawid On 11/10/2019 13:21, Jark Wu wrote: > Hi Timo, > > Sounds good to me. > > Thanks

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-11 Thread Jark Wu
Hi Timo, Sounds good to me. Thanks, Jark On Fri, 11 Oct 2019 at 17:37, Timo Walther wrote: > Hi Jark, > > great to see that there is consensus on something like `CREATE FUNCTION > bf1 WITH (precision=0.001)`. > > In the near future, there should be no difference between a catalog > function an

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-11 Thread Timo Walther
Hi Jark, great to see that there is consensus on something like `CREATE FUNCTION bf1 WITH (precision=0.001)`. In the near future, there should be no difference between a catalog function and a temporary function. This should simplify the stack a lot. How about we postpone this topic after F

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-11 Thread Jark Wu
Hi Timo, The reason to put the parameter in constructor instead of `eval` is that 1) the initialization for the parameters may take long 2) there might be a lot of parameters, it's verbose to specify them in every where it's used. Having some syntax like `CREATE FUNCTION bf1 WITH (precision=0.001

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-11 Thread Timo Walther
Thanks for your feedback Kurt and Jark. I'm wondering why we allow setting `val bf1 = new BloomFilter(0.001)`, `val bf2 = new BloomFilter(0.005)`. This is not very SQL-like. Parameters should be passed when calling the function instead. Users can use the query itself to parametize the functio

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-10 Thread Jark Wu
Hi, Timo Regarding to createTemporaryFunction, I agree with Kurt, we should encourage the class way, but should keep the instance way. The reason is that this is an important feature to support parameterize function as you said, but this can't be addressed by global job parameters and open() metho

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-10 Thread Kurt Young
Regarding to createTemporaryFunction, could we just keep both choices? I agree we should encourage users to use the class, and it's the only choice when user using DDL. But for some Table API & SQL programs, I think it's actually more nature to use an object instead of use the classes. But this jus

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-10 Thread Dawid Wysakowicz
Thanks for the comments. @Timo I think your suggestion makes sense. I changed the signature to void createTemporaryFunction(String path, Class functionClass); This will mean that after we make QueryOperations string serializable and we expose the type inference in functions we will have only a

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-10 Thread Kurt Young
Thanks for the clarification Timo, that's sounds good to me. Let's continue to discuss other things. Best, Kurt On Thu, Oct 10, 2019 at 4:14 PM Timo Walther wrote: > The purpose of ConnectTableDescriptor was to have a programmatic way of > expressing `CREATE TABLE` with JavaDocs and IDE suppor

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-10 Thread Timo Walther
The purpose of ConnectTableDescriptor was to have a programmatic way of expressing `CREATE TABLE` with JavaDocs and IDE support. But I agree that it needs some rework in the future, once we have finalized the DDL to ensure that both concepts are in sync. Regards, Timo On 10.10.19 16:08, Kurt

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-10 Thread Kurt Young
Regarding to ConnectTableDescriptor, if in the end it becomes a builder of CatalogTable, I would be ok with that. But it doesn't look like a builder now, it's more like another form of TableSource/TableSink. Best, Kurt On Thu, Oct 10, 2019 at 3:44 PM Timo Walther wrote: > Hi everyone, > > than

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-10 Thread Timo Walther
Hi everyone, thanks for the great discussion with a good outcome. I have one last comment about: void createTemporaryFunction(String path, UserDefinedFunction function); We should encourage users to register a class instead of an instance. We should enforce a default constructor in the future

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-09 Thread Bowen Li
Hi Dawid, +1 for proposed changes On Wed, Oct 9, 2019 at 12:15 PM Dawid Wysakowicz wrote: > Sorry for a very delayed response. > > @Kurt Yes, this is the goal to have a function created like new > Function(...) also be wrapped into CatalogFunction. This would have to > be though a temporary fun

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-10-09 Thread Dawid Wysakowicz
Sorry for a very delayed response. @Kurt Yes, this is the goal to have a function created like new Function(...) also be wrapped into CatalogFunction. This would have to be though a temporary function as we cannot represent that as a set of properties. Similar to the createTemporaryView(DataStream

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-19 Thread Kurt Young
IIUC it's good to see that both serializable (tables description from DDL) and unserializable (tables with DataStream underneath) tables are treated unify with CatalogTable. Can I also assume functions that either come from a function class (from DDL) or function objects (newed by user) will also

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-19 Thread Jark Wu
Thanks Dawid for the design doc. In general, I’m +1 to the FLIP. +1 to the single-string and parse way to express object path. +1 to deprecate registerTableSink & registerTableSource. But I would suggest to provide an easy way to register a custom source/sink before we drop them (this is an

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-18 Thread Dawid Wysakowicz
Hi JingsongLee, >From my understanding they can. Underneath they will be CatalogTables. The difference is the lifetime of the tables. Plus some of the user facing interfaces cannot be persisted e.g. datastream. Therefore we must have a separate methods for that. In the end the temporary tables are

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-18 Thread JingsongLee
Hi dawid: Can temporary tables achieve the same capabilities as catalog table? like statistics: CatalogTableStatistics, CatalogColumnStatistics, PartitionStatistics like partition support: we have added some catalog equivalent interfaces on TableSource/TableSink: getPartitions, getPartitionFieldN

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-18 Thread Kurt Young
Hi all, Sorry to join this party late. Big +1 to this flip, especially for the dropping "registerTableSink & registerTableSource" part. These are indeed legacy and we should try to unify them through CatalogTable after we introduce the concept of Catalog. >From my understanding, what we can regis

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-18 Thread JingsongLee
After some development and thinking, I have a general understanding. +1 to registering a source/sink does not fit into the SQL world. I am OK to have a deprecated registerTemporarySource/Sink to compatible with old ways. Best, Jingsong Lee ---

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-16 Thread Timo Walther
Hi Dawid, thanks for the design document. It fixes big concept gaps due to historical reasons with proper support for serializability and catalog support in mind. I would not mind a registerTemporarySource/Sink, but the problem that I see is that many people think that this is the recommende

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-12 Thread Zhenghua Gao
Thanks david for pushing this forward. I have one concern about temporary objects and non-persistent catalog(e.g., GenericInMemoryCatalog). In SQL, temporary objects exist at the session level. They are only visible to the session in which they were created and are automatically dropped when that s

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-08 Thread JingsongLee
Hi dawid: It is difficult to describe specific examples. Sometimes users will generate some java converters through some Java code, or generate some Java classes through third-party libraries. Of course, these can be best done through properties. But this requires additional work from users.My

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-06 Thread Dawid Wysakowicz
Hi all, @Jingsong Could you elaborate a bit more what do you mean by /"//some Connectors//are difficult to convert all states to properties"/ All the Flink provided connectors will definitely be expressible with properties (In the end you should be able to use them from DDL). I think if a TableS

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-06 Thread Xuefu Z
Thanks to Dawid for starting the discussion and writeup. It looks pretty good to me except that I'm a little concerned about the object reference and string parsing in the code, which seems to an anti-pattern to OOP. Have we considered using ObjectIdenitifier with optional catalog and db parts, esp

Re: [DISCUSS] FLIP-64: Support for Temporary Objects in Table module

2019-09-05 Thread JingsongLee
Thanks dawid, +1 for this approach. One concern is the removal of registerTableSink & registerTableSource in TableEnvironment. It has two alternatives: 1.the properties approach (DDL, descriptor). 2.from/toDataStream. #1 can only be properties, not java states, and some Connectors are difficult