org.eigenbase.relopt.volcano
Class VolcanoRelMetadataProvider

java.lang.Object
  extended by org.eigenbase.relopt.volcano.VolcanoRelMetadataProvider
All Implemented Interfaces:
RelMetadataProvider

public class VolcanoRelMetadataProvider
extends Object
implements RelMetadataProvider

VolcanoRelMetadataProvider implements the RelMetadataProvider interface by combining metadata from the rels making up an equivalence class.

Version:
$Id: //open/dev/farrago/src/org/eigenbase/relopt/volcano/VolcanoRelMetadataProvider.java#1 $
Author:
John V. Sichi

Constructor Summary
VolcanoRelMetadataProvider()
           
 
Method Summary
 Object getRelMetadata(RelNode rel, String metadataQueryName, Object[] args)
          Retrieves metadata about a relational expression.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VolcanoRelMetadataProvider

public VolcanoRelMetadataProvider()
Method Detail

getRelMetadata

public Object getRelMetadata(RelNode rel,
                             String metadataQueryName,
                             Object[] args)
Description copied from interface: RelMetadataProvider
Retrieves metadata about a relational expression.

Specified by:
getRelMetadata in interface RelMetadataProvider
Parameters:
rel - relational expression of interest
metadataQueryName - name of metadata query to invoke
args - arguments to metadata query (expected number and type depend on query name; must have well-defined hashCode/equals for use by caching); null can be used instead of empty array
Returns:
metadata result (actual type depends on query name), or null if the provider cannot answer the given query/rel combination; it is better to return null than to return a possibly incorrect answer