Yes I can do that of course. What I need is basically the possibility to translate a where clause to a filter function. Is there any utility class that does that in Flink?
On 9 Sep 2017 21:54, "Fabian Hueske" <fhue...@gmail.com> wrote: > Hi Flavio, > > I tried to follow your example. If I got it right, you would like to > change the registered table by assigning a different DataStream to the > original myDs variable. > > With registerDataStream("test", myDs, ...) you don't register the variable > myDs as a table but it's current value, i.e., a reference to a DataStream > object. > By changing the value of myDs, you just override the reference in myDs but > do not change the reference that was registered in Calcite's catalog. > This is common behavior in many programming languages including Java. > > Right now, there is no way to change or override a registered table. We > had this functionality once, but had to remove it after a Calcite version > upgrade. > Can you use a new TableEnvironment and register the new table there? > > Best, Fabian > > 2017-09-08 17:55 GMT+02:00 Flavio Pompermaier <pomperma...@okkam.it>: > >> Hi to all, >> I have a doubt about Table API. >> Let's say my code is something like: >> >> >> StreamTableEnvironment te = ...; >> RowTypeInfo rtf = new RowTypeInfo(...); >> DataStream<Row> myDs = >> te.registerDataStream("test",myDs,columnNames); >> >> Table table = te.sql("SELECT *, (NAME = 'John') as VALID FROM test WHERE >> ..."; >> myDs = te.toDataStream(table.where("VALID").select(columnNames), rtf); >> >> If I do: >> >> DataStream<Row> res = te.sql("SELECT * FROM test"); >> >> I'd like that res could take the data from the last version of myDs...is >> this program correct..? >> Or should I override the "test" table in the tableEnvironment? Is that >> possible? I don't see any API to allow this.. >> >> Best, >> Flavio >> > >