public Schema getSchema(String schemaName) { return this.store.getSchema(schemaName); }
private static Table findTableByName(MetadataStore store, String name) { Table table = null; int index = name.indexOf(Table.NAME_DELIM_CHAR); if(index == -1) { for(Schema schema : store.getSchemaList()) { table = schema.getTable(name); if(table != null) { break; } } } else { String schemaName = name.substring(0, index); Schema schema = store.getSchema(schemaName); if(schema != null) { table = schema.getTable(name.substring(index+1)); } } return table; }
static Table findTable(EdmEntityType entityType, MetadataStore store) { FullQualifiedName fqn = entityType.getFullQualifiedName(); // remove the vdb name String withoutVDB = fqn.getNamespace().substring(fqn.getNamespace().lastIndexOf('.')+1); Schema schema = store.getSchema(withoutVDB); return schema.getTable(entityType.getName()); }
private Table findTable(String tableName, MetadataStore store) { int idx = tableName.indexOf('.'); if (idx > 0) { Schema s = store.getSchema(tableName.substring(0, idx)); if (s != null) { Table t = s.getTable(tableName.substring(idx+1)); if (t != null) { return t; } } } for (Schema s : store.getSchemaList()) { Table t = s.getTables().get(tableName); if (t != null) { return t; } } return null; } //TODO: allow the generated key building.
public ProcedureSQLBuilder(MetadataStore metadata, EdmOperation edmOperation, OperationParameterValueProvider parameterProvider, ArrayList<SQLParameter> params) throws TeiidProcessingException { FullQualifiedName fqn = edmOperation.getFullQualifiedName(); String withoutVDB = fqn.getNamespace().substring(fqn.getNamespace().lastIndexOf('.')+1); Schema schema = metadata.getSchema(withoutVDB); this.procedure = schema.getProcedure(edmOperation.getName()); this.parameterValueProvider = parameterProvider; this.sqlParameters = params; visit(edmOperation); }
private static Table findTableByName(MetadataStore store, String name) { Table table = null; int index = name.indexOf(Table.NAME_DELIM_CHAR); if(index == -1) { for(Schema schema : store.getSchemaList()) { table = schema.getTable(name); if(table != null) { break; } } } else { String schemaName = name.substring(0, index); Schema schema = store.getSchema(schemaName); if(schema != null) { table = schema.getTable(name.substring(index+1)); } } return table; }
public void addSchema(Schema schema) { Schema s = this.store.getSchema(schema.getName()); if ( s != null) { throw new DuplicateRecordException(DataPlugin.Event.TEIID60021, DataPlugin.Util.gs(DataPlugin.Event.TEIID60021, schema.getName())); } else { this.store.addSchema(schema); } }
private static Table findTableByName(MetadataStore store, String name) { Table table = null; int index = name.indexOf(Table.NAME_DELIM_CHAR); if(index == -1) { for(Schema schema : store.getSchemaList()) { table = schema.getTable(name); if(table != null) { break; } } } else { String schemaName = name.substring(0, index); Schema schema = store.getSchema(schemaName); if(schema != null) { table = schema.getTable(name.substring(index+1)); } } return table; }
Schema schema = metadataStore.getSchema(model.getName()); if (schema == null) { continue; //OTHER type, which does not have a corresponding Teiid schema
@Override public String getSchema(String vdbName, String vdbVersion, String modelName, EnumSet<SchemaObjectType> allowedTypes, String typeNamePattern) throws AdminException { if (vdbVersion == null) { vdbVersion = "1"; } VDBMetaData vdb = checkVDB(vdbName, vdbVersion); MetadataStore metadataStore = vdb.getAttachment(TransformationMetadata.class).getMetadataStore(); if (modelName != null) { Schema schema = metadataStore.getSchema(modelName); return DDLStringVisitor.getDDLString(schema, allowedTypes, typeNamePattern); } else { Database db = DatabaseUtil.convert(vdb, metadataStore); return DDLStringVisitor.getDDLString(db); } }
public ODataHttpHandler getHandler(String baseUri, Client client, String schemaName) throws ServletException { ODataHttpHandler handler = this.handlers.get(schemaName); if (handler != null) { return handler; } VDBMetaData vdb = client.getVDB(); org.teiid.metadata.Schema teiidSchema = client.getMetadataStore().getSchema(schemaName); if (teiidSchema == null || !isVisible(vdb, teiidSchema)) { throw new ServletException(ODataPlugin.Util.gs(ODataPlugin.Event.TEIID16022)); } synchronized (this) { handler = this.handlers.get(schemaName); if (handler != null) { return handler; } loadAllHandlers(baseUri, client, vdb); } return handlers.get(schemaName); }
public static ComplexDocumentNode buildComplexDocumentNode( EdmOperation edmOperation, MetadataStore metadata, OData odata, UniqueNameGenerator nameGenerator, boolean useAlias, UriInfo uriInfo, URLParseService parseService) throws TeiidProcessingException { ComplexDocumentNode resource = new ComplexDocumentNode(); FullQualifiedName fqn = edmOperation.getFullQualifiedName(); String withoutVDB = fqn.getNamespace().substring(fqn.getNamespace().lastIndexOf('.')+1); Schema schema = metadata.getSchema(withoutVDB); Procedure procedure = schema.getProcedure(edmOperation.getName()); StoredProcedure storedQuery = new StoredProcedure(); storedQuery.setProcedureName(procedure.getFullName()); //$NON-NLS-1$ for (int i = 0; i < procedure.getParameters().size(); i++) { storedQuery.setParameter(new SPParameter(i+1, new Reference(i))); } String group = nameGenerator.getNextGroup(); SubqueryFromClause sfc = new SubqueryFromClause(group, storedQuery); //$NON-NLS-1$ resource.setGroupSymbol(new GroupSymbol(group)); resource.setFromClause(sfc); resource.procedure = procedure; return resource; }
@Test public void testCrossReferenceFKReferenceOrder() throws Exception { String ddl = "CREATE FOREIGN TABLE G1(g1e1 integer, g1e2 integer, PRIMARY KEY(g1e1, g1e2));"; String ddl2 = "CREATE FOREIGN TABLE G2( g2e1 integer, g2e2 integer, PRIMARY KEY(g2e1, g2e2), FOREIGN KEY (g2e1, g2e2) REFERENCES pm1.G1(g1e2, g1e1))"; buildModel("pm1", true, this.vdb, this.store, ddl); buildModel("pm2", true, this.vdb, this.store, ddl2); buildTransformationMetadata(); ValidatorReport report = new ValidatorReport(); report = new MetadataValidator().validate(this.vdb, this.store); assertFalse(printError(report), report.hasItems()); assertNotNull(this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey()); assertEquals(2, this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().size()); assertEquals("g1e1", this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().get(0).getName()); assertEquals("g2e2", this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getColumns().get(0).getName()); }
@Test public void testCrossReferenceResoveOptionalFK() throws Exception { String ddl = "CREATE FOREIGN TABLE G1(g1e1 integer, g1e2 varchar, PRIMARY KEY(g1e1, g1e2));"; String ddl2 = "CREATE FOREIGN TABLE G2( g2e1 integer, g2e2 varchar, FOREIGN KEY (g2e1, g2e2) REFERENCES pm1.G1)"; buildModel("pm1", true, this.vdb, this.store, ddl); buildModel("pm2", true, this.vdb, this.store, ddl2); buildTransformationMetadata(); ValidatorReport report = new ValidatorReport(); report = new MetadataValidator().validate(this.vdb, this.store); assertFalse(printError(report), report.hasItems()); assertNotNull(this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey()); assertEquals(2, this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().size()); assertEquals("g1e1", this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().get(0).getName()); }
@Test public void testCrossReferenceFK() throws Exception { String ddl = "CREATE FOREIGN TABLE G1(g1e1 integer, g1e2 varchar, PRIMARY KEY(g1e1, g1e2));"; String ddl2 = "CREATE FOREIGN TABLE G2( g2e1 integer, g2e2 varchar, PRIMARY KEY(g2e1, g2e2), FOREIGN KEY (g2e1, g2e2) REFERENCES pm1.G1(g1e1, g1e2))"; buildModel("pm1", true, this.vdb, this.store, ddl); buildModel("pm2", true, this.vdb, this.store, ddl2); buildTransformationMetadata(); ValidatorReport report = new ValidatorReport(); report = new MetadataValidator().validate(this.vdb, this.store); assertFalse(printError(report), report.hasItems()); assertNotNull(this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey()); assertEquals(2, this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().size()); assertEquals("g1e1", this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().get(0).getName()); }
@Test public void testCrossReferenceFKFromUniqueKey() throws Exception { String ddl = "CREATE FOREIGN TABLE G1(g1e1 integer, g1e2 varchar, UNIQUE(g1e2));"; String ddl2 = "CREATE FOREIGN TABLE G2(g2e1 integer, g2e2 varchar, FOREIGN KEY (g2e2) REFERENCES pm1.G1(g1e2))"; buildModel("pm1", true, this.vdb, this.store, ddl); buildModel("pm2", true, this.vdb, this.store, ddl2); buildTransformationMetadata(); ValidatorReport report = new ValidatorReport(); report = new MetadataValidator().validate(this.vdb, this.store); assertFalse(printError(report), report.hasItems()); assertNotNull(this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey()); assertEquals(1, this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().size()); assertEquals("g1e2", this.store.getSchema("pm2").getTable("G2").getForeignKeys().get(0).getReferenceKey().getColumns().get(0).getName()); }
@Test public void testEmptyKey() throws Exception { String ddl = "CREATE FOREIGN TABLE G1(g1e1 integer, g1e2 varchar, PRIMARY KEY(g1e1, g1e2));"; buildModel("pm1", true, this.vdb, this.store, ddl); buildTransformationMetadata(); this.store.getSchema("pm1").getTable("G1").getPrimaryKey().getColumns().clear(); ValidatorReport report = new ValidatorReport(); report = new MetadataValidator().validate(this.vdb, this.store); assertTrue(printError(report), report.hasItems()); }
@Test public void testExternalMaterializationValidate() throws Exception { String ddl = "CREATE FOREIGN TABLE G1(e1 integer, e2 varchar);" + STATUS; String ddl2 = "CREATE VIEW G2 OPTIONS (MATERIALIZED 'true', MATERIALIZED_TABLE 'pm1.G1', \"teiid_rel:MATVIEW_STATUS_TABLE\" 'pm1.status', \"teiid_rel:MATVIEW_LOAD_SCRIPT\" 'begin end') AS SELECT * FROM pm1.G1"; buildModel("pm1", true, this.vdb, this.store, ddl); buildModel("vm1", false, this.vdb, this.store, ddl2); buildTransformationMetadata(); ValidatorReport report = new ValidatorReport(); report = new MetadataValidator().validate(this.vdb, this.store); assertFalse(printError(report), report.hasItems()); assertNotNull("pm1.G1", store.getSchema("vm1").getTable("G2").getMaterializedTable()); assertEquals("G1", store.getSchema("vm1").getTable("G2").getMaterializedTable().getName()); }
Table table = store.getSchema("phy1").getTable("v1");