[
https://issues.apache.org/jira/browse/CALCITE-2815?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16790038#comment-16790038
]
Andrei Sereda commented on CALCITE-2815:
----------------------------------------
{quote}
But I don't understand how I would use take the SchemaFactory from one schema
and convert it to a SchemaFactory in another VM.
{quote}
All SchemaFactories have public( ? ) no-arg constructor so if you have schema
configuration and factory class you can instantiate factory and thus the schema
in a different VM. So your constraint of primitive objects is applied to
SchemaFactory (but not Schema).
Here is an *approximate* API:
{code:java}
interface SchemaConfiguration {
// can be Map<String, Object> or Serializable or something else
ObjectNode config();
// original factory which created this schema
Class<? extends SchemaFactory> factory();
}
interface ConfigurableSchema extends Schema {
SchemaConfiguration config();
}
// internal schema factory
public AutoconfigurableSchemaFactory implements SchemaFactory {
private final SchemaFactory factory;
public static AutoconfigurableSchemaFactory of(SchemaFactory factory) {
return new AutoconfigurableSchemaFactory();
}
public Schema create(
SchemaPlus parentSchema,
String name,
Map<String, Object> operand) {
final SchemaConfiguration copy = new SchemaConfiguration(operand.clone(),
delegate.getClass());
final Schema delegate = factory.create(parentSchema, name, operand);
return new ConfigurableSchema() {
@Override
SchemaConfiguration config() {
return copy;
}
// all other methods are just delegates
public getTableMap() {
return delegate.getTableMap();
}
}
}
}
{code}
> GeodeSchemaFactory change to pass in clientCache using geode jndi context
> -------------------------------------------------------------------------
>
> Key: CALCITE-2815
> URL: https://issues.apache.org/jira/browse/CALCITE-2815
> Project: Calcite
> Issue Type: Improvement
> Components: geode
> Reporter: Sandeep Chada
> Assignee: Andrei Sereda
> Priority: Major
> Labels: pull-request-available
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> We need ability to pass clientCache to GeodeSchemaFactory create static
> function. In our application we already have clientCache pre created.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)