It’s definitely possible, but it would be a fair amount of work on your part. 
The class JavaRowFormat already describes how rows are represented within 
generated code, and it already has a value LIST.

Now, FilterableTable is slightly different. It has to produce rows in Object[] 
format. Why? Because it (and ScannableTable and ProjectableFilterableTable) is 
intentionally a simple API.

If you have more complex requirements, you should use QueryableTable. See 
EnumerableTableScan.deduceElementType():

  public static Class deduceElementType(Table table) {
    if (table instanceof QueryableTable) {
      final QueryableTable queryableTable = (QueryableTable) table;
      final Type type = queryableTable.getElementType();
      if (type instanceof Class) {
        return (Class) type;
      } else {
        return Object[].class;
      }
    } else if (table instanceof ScannableTable
        || table instanceof FilterableTable
        || table instanceof ProjectableFilterableTable
        || table instanceof StreamableTable) {
      return Object[].class;
    } else {
      return Object.class;
    }
  }

Then you will need to decide whether rows remain as List all the way through 
the pipeline or whether you convert them to Object[] at some point.

Julian


> On Jan 13, 2017, at 1:38 AM, Leur, Maxime <maxime.l...@fisglobal.com> wrote:
> 
> Hi all,
>  
> First thanks for your project, it is very great and help me a lot to provide 
> SQL interface to own internal DB.
> I succeed to implement my own Schema/Table with the tutorial but I have 
> performance issues on high volume.
>  
> I mean when I have 1 millions of rows with many columns (> 20), it takes too 
> long time to execute request.
> I check the code and I think that is due to the fact that I must convert my 
> internal object (row) to “Object[]” 
> (org.apache.calcite.schema.FilterableTable).
>  
> It is possible to give a Map / List or any proxy Object to “Apache Calcite” 
> instead of “Object[]” array?
> I check some Table implementation on GitHub (MongoDB, Cassandra) and debug 
> code in Eclipse but I do not succeed.
> I think that is linked to 
> “org.apache.calcite.adapter.java.AbstractQueryableTable” but despite all my 
> efforts I cannot understand how to do it.
>  
> Could you please help me on that subject?
>  
> Regards,
>  
> Maxime Leur
> J2EE Architect
> Global Trading / TCC
> T:  +33 (0)1 53 40 57 46
> C:  1746
> E: maxime.l...@fisglobal.com <mailto:maxime.l...@fisglobal.com>
> FIS | Empowering the Financial World  <https://www.facebook.com/FIStoday> 
> <https://twitter.com/FISGlobal> <https://www.linkedin.com/company/fis>
>  
> _____________
> The information contained in this message is proprietary and/or confidential. 
> If you are not the intended recipient, please: (i) delete the message and all 
> copies; (ii) do not disclose, distribute or use the message in any manner; 
> and (iii) notify the sender immediately. In addition, please be aware that 
> any message addressed to our domain is subject to archiving and review by 
> persons other than the intended recipient. Thank you.

Reply via email to