Package org.apache.calcite.schema
Interface SchemaFactory
- All Known Implementing Classes:
AbstractSchema.Factory,ArrowSchemaFactory,CassandraSchemaFactory,CloneSchema.Factory,CsvSchemaFactory,DruidSchemaFactory,ElasticsearchSchemaFactory,FileSchemaFactory,GeodeSchemaFactory,GeodeSimpleSchemaFactory,InnodbSchemaFactory,JdbcSchema.Factory,MongoSchemaFactory,PigSchemaFactory,RedisSchemaFactory,ReflectiveSchema.Factory,TpcdsSchemaFactory,TpchSchemaFactory
public interface SchemaFactory
Factory for
Schema objects.
A schema factory allows you to include a custom schema in a model file. For example, here is a model that contains a custom schema whose tables read CSV files. (See the example CSV adapter for more details about this particular adapter.)
{
"version": "1.0",
"defaultSchema": "SALES",
"schemas": [
{
"name": "SALES",
"type": "custom",
"factory": "org.apache.calcite.adapter.csv.CsvSchemaFactory",
"mutable": true,
"operand": {
directory: "sales"
},
"tables": [
{
"name": "FEMALE_EMPS",
"type": "view",
"sql": "SELECT * FROM emps WHERE gender = 'F'"
}
]
}
]
}
If you do not wish to allow model authors to add additional tables (including views) to an instance of your schema, specify 'mutable: false'.
A class that implements SchemaFactory specified in a schema must have a public default constructor.
-
Method Summary
-
Method Details
-
create
Creates a Schema.- Parameters:
parentSchema- Parent schemaname- Name of this schemaoperand- The "operand" JSON property- Returns:
- Created schema
-