Search in sources :

Example 76 with Schema

use of org.teiid.metadata.Schema in project teiid by teiid.

the class TestSourceHints method testHintInView.

@Test
public void testHintInView() {
    MetadataStore metadataStore = new MetadataStore();
    // $NON-NLS-1$
    Schema p1 = RealMetadataFactory.createPhysicalModel("p1", metadataStore);
    // $NON-NLS-1$
    Table t1 = RealMetadataFactory.createPhysicalGroup("t", p1);
    // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
    RealMetadataFactory.createElements(t1, new String[] { "a", "b" }, new String[] { "string", "string" });
    // $NON-NLS-1$
    Schema v1 = RealMetadataFactory.createVirtualModel("v1", metadataStore);
    // $NON-NLS-1$ //$NON-NLS-2$
    QueryNode n1 = new QueryNode("SELECT /*+ sh:'x' */ a as c, b FROM p1.t");
    // $NON-NLS-1$
    Table vt1 = RealMetadataFactory.createVirtualGroup("t1", v1, n1);
    // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
    RealMetadataFactory.createElements(vt1, new String[] { "c", "b" }, new String[] { "string", "string" });
    TransformationMetadata metadata = RealMetadataFactory.createTransformationMetadata(metadataStore, "metadata");
    // top level applies
    HardcodedDataManager manager = manager("foo x", "leading");
    // $NON-NLS-1$
    String sql = "SELECT /*+ sh:'foo' bar:'leading' */ c from t1 order by c limit 1";
    ProcessorPlan plan = helpGetPlan(sql, metadata);
    List<?>[] expected = new List[] {};
    helpProcess(plan, manager, expected);
    // use the underlying hint
    manager = manager("x", null);
    // $NON-NLS-1$
    sql = "SELECT c from t1 order by c limit 1";
    plan = helpGetPlan(sql, metadata);
    helpProcess(plan, manager, expected);
    // $NON-NLS-1$
    sql = "SELECT c from t1 union all select c from t1";
    plan = helpGetPlan(sql, metadata);
    helpProcess(plan, manager, expected);
}
Also used : MetadataStore(org.teiid.metadata.MetadataStore) TransformationMetadata(org.teiid.query.metadata.TransformationMetadata) Table(org.teiid.metadata.Table) QueryNode(org.teiid.query.mapping.relational.QueryNode) Schema(org.teiid.metadata.Schema) List(java.util.List) Test(org.junit.Test)

Example 77 with Schema

use of org.teiid.metadata.Schema in project teiid by teiid.

the class TestResolver method example_12968.

public static TransformationMetadata example_12968() {
    MetadataStore metadataStore = new MetadataStore();
    // Create models
    // $NON-NLS-1$
    Schema pm1 = RealMetadataFactory.createPhysicalModel("myModel", metadataStore);
    // $NON-NLS-1$
    Schema pm2 = RealMetadataFactory.createPhysicalModel("myModel2", metadataStore);
    // $NON-NLS-1$
    Table pm1g1 = RealMetadataFactory.createPhysicalGroup("myTable", pm1);
    // $NON-NLS-1$
    Table pm2g1 = RealMetadataFactory.createPhysicalGroup("mySchema.myTable2", pm2);
    RealMetadataFactory.createElements(pm1g1, // $NON-NLS-1$ //$NON-NLS-2$
    new String[] { "myColumn", "myColumn2" }, new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER });
    RealMetadataFactory.createElements(pm2g1, // $NON-NLS-1$ //$NON-NLS-2$
    new String[] { "myColumn", "myColumn2" }, new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER });
    return RealMetadataFactory.createTransformationMetadata(metadataStore, "12968");
}
Also used : MetadataStore(org.teiid.metadata.MetadataStore) TempMetadataStore(org.teiid.query.metadata.TempMetadataStore) Table(org.teiid.metadata.Table) Schema(org.teiid.metadata.Schema)

Example 78 with Schema

use of org.teiid.metadata.Schema in project teiid by teiid.

the class TestResolver method testExecWithDuplicateNames.

@Test
public void testExecWithDuplicateNames() {
    MetadataStore metadataStore = new MetadataStore();
    Schema pm1 = RealMetadataFactory.createPhysicalModel("pm1", metadataStore);
    // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    ColumnSet<Procedure> rs2 = RealMetadataFactory.createResultSet("rs2", new String[] { "in", "e2" }, new String[] { DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.INTEGER });
    // $NON-NLS-1$
    ProcedureParameter rs2p2 = RealMetadataFactory.createParameter("in", ParameterInfo.IN, DataTypeManager.DefaultDataTypes.STRING);
    // $NON-NLS-1$
    Procedure sq2 = RealMetadataFactory.createStoredProcedure("sq2", pm1, Arrays.asList(rs2p2));
    sq2.setResultSet(rs2);
    QueryMetadataInterface metadata = RealMetadataFactory.createTransformationMetadata(metadataStore, "example1");
    // $NON-NLS-1$ //$NON-NLS-2$
    helpResolveException("select * from pm1.sq2", metadata, "TEIID30114 Cannot access procedure pm1.sq2 using table semantics since the parameter and result set column names are not all unique.");
}
Also used : MetadataStore(org.teiid.metadata.MetadataStore) TempMetadataStore(org.teiid.query.metadata.TempMetadataStore) ProcedureParameter(org.teiid.metadata.ProcedureParameter) Schema(org.teiid.metadata.Schema) Procedure(org.teiid.metadata.Procedure) QueryMetadataInterface(org.teiid.query.metadata.QueryMetadataInterface) Test(org.junit.Test)

Example 79 with Schema

use of org.teiid.metadata.Schema in project teiid by teiid.

the class TestValidator method exampleMetadata1.

public TransformationMetadata exampleMetadata1() {
    MetadataStore metadataStore = new MetadataStore();
    // Create metadata objects
    // $NON-NLS-1$
    Schema modelObj = RealMetadataFactory.createPhysicalModel("test", metadataStore);
    // $NON-NLS-1$
    Table groupObj = RealMetadataFactory.createPhysicalGroup("group", modelObj);
    // $NON-NLS-1$
    Column elemObj0 = RealMetadataFactory.createElement("e0", groupObj, DataTypeManager.DefaultDataTypes.INTEGER);
    // $NON-NLS-1$
    Column elemObj1 = RealMetadataFactory.createElement("e1", groupObj, DataTypeManager.DefaultDataTypes.STRING);
    // $NON-NLS-1$
    Column elemObj2 = RealMetadataFactory.createElement("e2", groupObj, DataTypeManager.DefaultDataTypes.STRING);
    // $NON-NLS-1$
    RealMetadataFactory.createElement("e3", groupObj, DataTypeManager.DefaultDataTypes.STRING);
    elemObj0.setNullType(NullType.No_Nulls);
    elemObj1.setNullType(NullType.Nullable);
    elemObj1.setDefaultValue(Boolean.TRUE.toString());
    elemObj2.setNullType(NullType.Nullable);
    elemObj2.setDefaultValue(Boolean.FALSE.toString());
    return RealMetadataFactory.createTransformationMetadata(metadataStore, "example1");
}
Also used : MetadataStore(org.teiid.metadata.MetadataStore) Table(org.teiid.metadata.Table) Column(org.teiid.metadata.Column) Schema(org.teiid.metadata.Schema)

Example 80 with Schema

use of org.teiid.metadata.Schema in project teiid by teiid.

the class TestValidator method exampleMetadata2.

/**
 * Group has element with type object
 * @return QueryMetadataInterface
 */
public static TransformationMetadata exampleMetadata2() {
    MetadataStore metadataStore = new MetadataStore();
    // Create metadata objects
    // $NON-NLS-1$
    Schema modelObj = RealMetadataFactory.createPhysicalModel("test", metadataStore);
    // $NON-NLS-1$
    Table groupObj = RealMetadataFactory.createPhysicalGroup("group", modelObj);
    RealMetadataFactory.createElements(groupObj, new String[] { // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
    "e0", // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
    "e1", // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
    "e2", // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
    "e3", // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
    "e4", // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
    "e5" }, new String[] { DataTypeManager.DefaultDataTypes.INTEGER, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.OBJECT, DataTypeManager.DefaultDataTypes.BLOB, DataTypeManager.DefaultDataTypes.CLOB, DataTypeManager.DefaultDataTypes.XML });
    return RealMetadataFactory.createTransformationMetadata(metadataStore, "example2");
}
Also used : MetadataStore(org.teiid.metadata.MetadataStore) Table(org.teiid.metadata.Table) Schema(org.teiid.metadata.Schema)

Aggregations

Schema (org.teiid.metadata.Schema)92 MetadataStore (org.teiid.metadata.MetadataStore)47 TransformationMetadata (org.teiid.query.metadata.TransformationMetadata)37 Table (org.teiid.metadata.Table)35 Test (org.junit.Test)34 QueryNode (org.teiid.query.mapping.relational.QueryNode)20 FakeCapabilitiesFinder (org.teiid.query.optimizer.capabilities.FakeCapabilitiesFinder)19 Column (org.teiid.metadata.Column)18 BasicSourceCapabilities (org.teiid.query.optimizer.capabilities.BasicSourceCapabilities)18 Procedure (org.teiid.metadata.Procedure)16 QueryMetadataInterface (org.teiid.query.metadata.QueryMetadataInterface)11 List (java.util.List)10 ArrayList (java.util.ArrayList)9 VDBMetaData (org.teiid.adminapi.impl.VDBMetaData)8 ProcedureParameter (org.teiid.metadata.ProcedureParameter)8 ModelMetaData (org.teiid.adminapi.impl.ModelMetaData)7 FunctionMethod (org.teiid.metadata.FunctionMethod)6 TempMetadataStore (org.teiid.query.metadata.TempMetadataStore)6 CompositeMetadataStore (org.teiid.query.metadata.CompositeMetadataStore)5 DefaultCapabilitiesFinder (org.teiid.query.optimizer.capabilities.DefaultCapabilitiesFinder)5