Thanks Ruben for pointing me to the answer.  I was not subscribed to the dev 
list at that time and so missed this response.  
Thanks again for your help.    On Tuesday, January 11, 2022, 08:29:50 AM EST, 
Ruben Q L <[email protected]> wrote:  
 
 Hello,

if I am not mistaken, there were already some answers to your original
email, please check
https://lists.apache.org/thread/xghcjo5xwn04ylyow5h7to507ts91qs3

Best regards,
Ruben


On Tue, Jan 11, 2022 at 1:09 PM M Singh <[email protected]>
wrote:

>  Hi folks:
> I apologize for sending the message again but wanted to see if there is
> any advice/pointers on understanding Calcite code generation.  If I have
> missed the response, please forward it to one more time.
> Thanks again for your help.
> Mans
>  Hi:
> I am working on a project that requires changing the query and the data at
> run time.  The data to be processed will be stored in memory as a list of
> strings.  I am using java 8 at the moment.
> I wanted to understand how the classes are generated in Calcite using
> janino at run time.
> Questions:
> 1. If the query is executed on the same data twice, does it generate the
> code twice ? If so, are all the classes regenerated or only specific ones
> ?2. If the query changes are all the classes regenerated ?3. If the process
> keeps running, will the regenerated classes cause oom ?  If so, is there
> any way to avoid this. 4. Is there a way to remove the generated classes at
> runtime ?5. Is there any way in Calcite to avoid generating the classes if
> the data or query changes while the process is running ?
> I tried one of the csv example tests at added the following sql line twice
> (as shown in the snippet below) (
> https://github.com/apache/calcite/blob/master/example/csv/src/test/java/org/apache/calcite/test/CsvTest.java#L351)
> and it does appear to generate some classes twice but please feel free to
> correct me if I am mistaken.
> <snippet>
>  @Test void testFilterableWhereTwice() throws SQLException {    final
> String sql =        "select empno, gender, name from EMPS where name =
> 'John'";    sql("filterable-model", sql)        .returns("EMPNO=110;
> GENDER=M; NAME=John").ok();
>    sql("filterable-model", sql)        .returns("EMPNO=110; GENDER=M;
> NAME=John").ok();  }
> </snippet>
>
> If there is any documentation, example, or advice, on how code generation
> works, is there a way to avoid it, please let me know.
> Thanks
  

Reply via email to