net.sf.farrago.namespace.mql
Class MedMqlDataServer

java.lang.Object
  extended by net.sf.farrago.plugin.FarragoAbstractPluginBase
      extended by net.sf.farrago.namespace.impl.MedAbstractBase
          extended by net.sf.farrago.namespace.impl.MedAbstractDataServer
              extended by net.sf.farrago.namespace.mql.MedMqlDataServer
All Implemented Interfaces:
FarragoMedDataServer, FarragoAllocation, ClosableAllocation

 class MedMqlDataServer
extends MedAbstractDataServer

MedMqlDataServer provides an implementation of the FarragoMedDataServer interface for MQL.

Version:
$Id: //open/dev/farrago/ext/mql/src/net/sf/farrago/namespace/mql/MedMqlDataServer.java#5 $
Author:
John V. Sichi

Field Summary
static String DEFAULT_UDX_SPECIFIC_NAME
           
static String DEFAULT_URL
           
static String PROP_METAWEB_TYPE
           
static String PROP_UDX_SPECIFIC_NAME
           
static String PROP_URL
           
private  String url
           
private  MedAbstractDataWrapper wrapper
           
 
Fields inherited from class net.sf.farrago.plugin.FarragoAbstractPluginBase
BOOLEAN_CHOICES_DEFAULT_FALSE, BOOLEAN_CHOICES_DEFAULT_TRUE, EMPTY_DRIVER_PROPERTIES
 
Fields inherited from interface net.sf.farrago.namespace.FarragoMedDataServer
PROP_SERVER_NAME, PROP_SERVER_TYPE, PROP_SERVER_VERSION
 
Constructor Summary
MedMqlDataServer(MedAbstractDataWrapper wrapper, String serverMofId, Properties props)
           
 
Method Summary
 FarragoMedNameDirectory getNameDirectory()
          Gets a FarragoMedNameDirectory corresponding to this server.
 String getUrl()
           
(package private)  MedAbstractDataWrapper getWrapper()
           
(package private)  void initialize()
           
 FarragoMedColumnSet newColumnSet(String[] localName, Properties tableProps, FarragoTypeFactory typeFactory, RelDataType rowType, Map<String,Properties> columnPropMap)
          Creates an instance of a FarragoMedColumnSet corresponding to row data identified by properties rather than container name.
 void registerRules(RelOptPlanner planner)
          Gives this wrapper a chance to register any special optimization rules.
 
Methods inherited from class net.sf.farrago.namespace.impl.MedAbstractDataServer
closeAllocation, getLoopbackDataSource, getProperties, getRuntimeSupport, getServerMofId, registerRelMetadataProviders, releaseResources, setLoopbackDataSource
 
Methods inherited from class net.sf.farrago.plugin.FarragoAbstractPluginBase
getBooleanProperty, getByteProperty, getDoubleProperty, getFloatProperty, getIntProperty, getLongProperty, getShortProperty, requireProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_URL

public static final String PROP_URL
See Also:
Constant Field Values

PROP_METAWEB_TYPE

public static final String PROP_METAWEB_TYPE
See Also:
Constant Field Values

PROP_UDX_SPECIFIC_NAME

public static final String PROP_UDX_SPECIFIC_NAME
See Also:
Constant Field Values

DEFAULT_URL

public static final String DEFAULT_URL
See Also:
Constant Field Values

DEFAULT_UDX_SPECIFIC_NAME

public static final String DEFAULT_UDX_SPECIFIC_NAME
See Also:
Constant Field Values

wrapper

private MedAbstractDataWrapper wrapper

url

private String url
Constructor Detail

MedMqlDataServer

MedMqlDataServer(MedAbstractDataWrapper wrapper,
                 String serverMofId,
                 Properties props)
Method Detail

initialize

void initialize()
          throws SQLException
Throws:
SQLException

getNameDirectory

public FarragoMedNameDirectory getNameDirectory()
                                         throws SQLException
Description copied from interface: FarragoMedDataServer
Gets a FarragoMedNameDirectory corresponding to this server.

Specified by:
getNameDirectory in interface FarragoMedDataServer
Overrides:
getNameDirectory in class MedAbstractDataServer
Returns:
directory, or null if this server does not have the required metadata capability
Throws:
SQLException - if directory access is unsuccessful (but not if directory access is unsupported)

newColumnSet

public FarragoMedColumnSet newColumnSet(String[] localName,
                                        Properties tableProps,
                                        FarragoTypeFactory typeFactory,
                                        RelDataType rowType,
                                        Map<String,Properties> columnPropMap)
                                 throws SQLException
Description copied from interface: FarragoMedDataServer
Creates an instance of a FarragoMedColumnSet corresponding to row data identified by properties rather than container name. This supports the SQL/MED CREATE FOREIGN TABLE statement. As much validation as possible should be performed, including accessing representative data.

Parameters:
localName - the qualified name to assign to the column set within Farrago; this should NOT be used for finding the actual data, since it can be set arbitrarily by the caller; instead, it should be used to implement the RelOptTable.getQualifiedName() method, and can be useful for correlation during debugging
tableProps - properties to use for data location and access
typeFactory - FarragoTypeFactory to use for defining types
rowType - type to impose on the rows of this column set (including column names and types), or null to infer row type; if this is non-null, it must be saved for use by the getRowType() returned from FarragoMedColumnSet
columnPropMap - map from column name to column-specific Properties; this is optional and may only be specified when rowType is also specified (the field names in rowType are used as the keys for columnPropMap)
Returns:
new FarragoMedColumnSet
Throws:
SQLException - if data access is unsuccessful

registerRules

public void registerRules(RelOptPlanner planner)
Description copied from interface: FarragoMedDataServer
Gives this wrapper a chance to register any special optimization rules. This method may be called more than once, each time with a different planner instance.

Specified by:
registerRules in interface FarragoMedDataServer
Overrides:
registerRules in class MedAbstractDataServer
Parameters:
planner - the planner in which the rules should be registered

getWrapper

MedAbstractDataWrapper getWrapper()

getUrl

public String getUrl()