@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); } }
/** * Get the effective ddl text for the given schema * @param vdbName * @param schemaName * @return the ddl or null if the vdb/schema does not exist */ public String getSchemaDdl(String vdbName, String schemaName) { VDBMetaData vdb = repo.getVDB(vdbName, "1"); //$NON-NLS-1$ if (vdb == null) { return null; } TransformationMetadata metadata = vdb.getAttachment(TransformationMetadata.class); if (metadata == null) { return null; } Schema schema = metadata.getMetadataStore().getSchema(schemaName); if (schema == null) { return null; } return DDLStringVisitor.getDDLString(schema, null, null); }
private void helpTest(String ddl, String expected) { Schema s = TestDDLParser.helpParse(ddl, "model").getSchema(); String metadataDDL = DDLStringVisitor.getDDLString(s, null, null); assertEquals(expected, metadataDDL); }
@Test public void testFunction() throws Exception { Schema s = new Schema(); s.addFunction(MetadataFactory.createFunctionFromMethod("x", TestDDLStringVisitor.class.getMethod("someMethod", int.class))); String metadataDDL = DDLStringVisitor.getDDLString(s, null, null); assertEquals("CREATE VIRTUAL FUNCTION x(param1 integer) RETURNS string[]" + "\nOPTIONS (NAMEINSOURCE 'x', JAVA_CLASS 'org.teiid.query.metadata.TestDDLStringVisitor', JAVA_METHOD 'someMethod');", metadataDDL); }
@Test public void testDatabase() throws Exception { Database db = new Database("foo", "2"); String metadataDDL = DDLStringVisitor.getDDLString(db); String expected = "\n" + "/*\n" + "###########################################\n" + "# START DATABASE foo\n" + "###########################################\n" + "*/\n" + "CREATE DATABASE foo VERSION '2';\n" + "USE DATABASE foo VERSION '2';\n" + "\n" + "/*\n" + "###########################################\n" + "# END DATABASE foo\n" + "###########################################\n" + "*/\n" + "\n"; assertEquals(expected, metadataDDL); }
String metadataDDL = DDLStringVisitor.getDDLString(db);
@Test public void testFK() throws Exception { String ddl = "CREATE FOREIGN TABLE G1(\"g1-e1\" integer, g1e2 varchar, PRIMARY KEY(\"g1-e1\", g1e2));\n" + "CREATE FOREIGN TABLE G2( g2e1 integer, g2e2 varchar, " + "FOREIGN KEY (g2e1, g2e2) REFERENCES G1 (\"g1-e1\", g1e2))"; String expected = "CREATE FOREIGN TABLE G1 (\n" + " \"g1-e1\" integer,\n" + " g1e2 string,\n" + " PRIMARY KEY(\"g1-e1\", g1e2)\n" + ");\n" + "\n" + "CREATE FOREIGN TABLE G2 (\n" + " g2e1 integer,\n" + " g2e2 string,\n" + " FOREIGN KEY(g2e1, g2e2) REFERENCES G1 (\"g1-e1\", g1e2)\n" + ");"; TransformationMetadata vdb = RealMetadataFactory.fromDDL(ddl, "x", "y"); Schema s = vdb.getModelID("y"); String metadataDDL = DDLStringVisitor.getDDLString(s, null, null); assertEquals(expected, metadataDDL); }
LogManager.logTrace(LogConstants.CTX_RUNTIME, "CREATE SCHEMA", factory.getSchema().getName(), ";\n", DDLStringVisitor.getDDLString(factory.getSchema(), null, null)); //$NON-NLS-1$ //$NON-NLS-2$
table.setProperties(options); String metadataDDL = DDLStringVisitor.getDDLString(mf.getSchema(), null, null); assertEquals(ddl, metadataDDL);
private ModelMetaData buildSourceTableWithPK() { ModelMetaData model = new ModelMetaData(); model.setName("source"); model.setModelType(Model.Type.PHYSICAL); MetadataFactory target = new MetadataFactory(VDBNAME, VDBVERSION, SystemMetadata.getInstance().getRuntimeTypeMap(), model); Table t = target.addTable("Person"); target.addColumn("id", "integer", t); target.addColumn("name", "string", t); target.addColumn("dob", "date", t); target.addPrimaryKey("PK", Arrays.asList("id"), t); Table addr = target.addTable("address"); target.addColumn("id", "integer", addr); target.addColumn("street", "string", addr); target.addColumn("pid", "integer", addr); target.addPrimaryKey("PK", Arrays.asList("id"), addr); target.addForeignKey("FK", Arrays.asList("pid"), Arrays.asList("id"), "Person", addr); String ddl = DDLStringVisitor.getDDLString(target.getSchema(), null, null); model.addSourceMetadata("ddl", ddl); model.addAttchment(MetadataFactory.class, target); return model; }
private ModelMetaData buildSourceTableWithCompositePK() { ModelMetaData model = new ModelMetaData(); model.setName("source"); model.setModelType(Model.Type.PHYSICAL); MetadataFactory target = new MetadataFactory(VDBNAME, VDBVERSION, SystemMetadata.getInstance().getRuntimeTypeMap(), model); Table t = target.addTable("Person"); target.addColumn("id", "integer", t); target.addColumn("name", "string", t); target.addColumn("dob", "date", t); target.addPrimaryKey("PK", Arrays.asList("id", "name"), t); String ddl = DDLStringVisitor.getDDLString(target.getSchema(), null, null); model.addSourceMetadata("ddl", ddl); model.addAttchment(MetadataFactory.class, target); return model; }
LogManager.logTrace(LogConstants.CTX_RUNTIME, "CREATE SCHEMA", factory.getSchema().getName(), ";\n", DDLStringVisitor.getDDLString(factory.getSchema(), null, null)); //$NON-NLS-1$ //$NON-NLS-2$
private ModelMetaData buildSourceTable() { ModelMetaData model = new ModelMetaData(); model.setName("source"); model.setModelType(Model.Type.PHYSICAL); MetadataFactory target = new MetadataFactory(VDBNAME, VDBVERSION, SystemMetadata.getInstance().getRuntimeTypeMap(), model); Table t = target.addTable("Person"); target.addColumn("id", "integer", t); target.addColumn("name", "string", t); target.addColumn("dob", "date", t); model.addAttchment(MetadataFactory.class, target); String ddl = DDLStringVisitor.getDDLString(target.getSchema(), null, null); model.addSourceMetadata("ddl", ddl); return model; }
db.addSchema(schema); String metadataDDL = DDLStringVisitor.getDDLString(db); String expected = "\n" + "/*\n" +
"\n"; String metadataDDL = DDLStringVisitor.getDDLString(db); assertEquals(expected, metadataDDL);