You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Vladimir Sitnikov (JIRA)" <ji...@apache.org> on 2014/12/01 17:16:12 UTC

[jira] [Created] (CALCITE-501) Implement indexed access paths in ReflectiveSchema

Vladimir Sitnikov created CALCITE-501:
-----------------------------------------

             Summary: Implement indexed access paths in ReflectiveSchema
                 Key: CALCITE-501
                 URL: https://issues.apache.org/jira/browse/CALCITE-501
             Project: Calcite
          Issue Type: Bug
    Affects Versions: 1.0.0-incubating
            Reporter: Vladimir Sitnikov
            Assignee: Julian Hyde


{{ReflectiveSchema}} is not able to perform indexed scan of a particular collection.
It would be nice if it could find rows by a given key.

This would demonstrate the way to implement indexed access path in Calcite: rules, filter matching.

The sketch API can be as follows:
{code:java}
  public static class CatchallSchema {
    public final Employee[] employees = {
      new Employee(1, 10, "A", 0f, null),
      new Employee(2, 10, "Ab", 0f, null),
      new Employee(3, 10, "Abc", 0f, null),
      new Employee(4, 10, "Abd", 0f, null),
    };

// Return the data
   public Employee[] findEmployeesByName(String name);
// or
// List of indices into "employees" collection
   public int[] findEmployeesByName(String name);
}
{code}

Alternative solution is to treat {{Map/SortedMap}} somehow in a special way.
{code:java}
// When Filter(name=?, Scan) can be transformed to MapGet(name=?)
public Map<String, Employee> employees;
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)