Class JsonSchema

java.lang.Object
org.apache.calcite.model.JsonSchema
Direct Known Subclasses:
JsonJdbcSchema, JsonMapSchema

public abstract class JsonSchema extends Object
Schema schema element.

Occurs within JsonRoot.schemas.

See Also:
  • Field Details

    • name

      public final String name
      Name of the schema.

      Required.

      See Also:
    • path

      public final @Nullable List<Object> path
      SQL path that is used to resolve functions used in this schema.

      May be null, or a list, each element of which is a string or a string-list.

      For example,

      path: [ ['usr', 'lib'], 'lib' ]

      declares a path with two elements: the schema '/usr/lib' and the schema '/lib'. Most schemas are at the top level, and for these you can use a string.

    • materializations

      public final List<JsonMaterialization> materializations
      List of tables in this schema that are materializations of queries.

      The list may be empty.

    • lattices

      public final List<JsonLattice> lattices
    • cache

      public final @Nullable Boolean cache
      Whether to cache metadata (tables, functions and sub-schemas) generated by this schema. Default value is true.

      If false, Calcite will go back to the schema each time it needs metadata, for example, each time it needs a list of tables in order to validate a query against the schema.

      If true, Calcite will cache the metadata the first time it reads it. This can lead to better performance, especially if name-matching is case-insensitive (see Lex.caseSensitive).

      Tables, functions and sub-schemas explicitly created in a schema are not affected by this caching mechanism. They always appear in the schema immediately, and are never flushed.

    • autoLattice

      public final @Nullable Boolean autoLattice
      Whether to create lattices in this schema based on queries occurring in other schemas. Default value is false.
  • Constructor Details

  • Method Details

    • accept

      public abstract void accept(ModelHandler handler)
    • visitChildren

      public void visitChildren(ModelHandler modelHandler)