@Override public Schema getModelID(String modelName) throws TeiidComponentException, QueryMetadataException { Schema s = this.getMetadataStore().getSchema(modelName); if (s == null) { throw new QueryMetadataException(QueryPlugin.Event.TEIID30352, modelName+TransformationMetadata.NOT_EXISTS_MESSAGE); } return s; }
public Collection<Procedure> getStoredProcedure(String name) throws TeiidComponentException, QueryMetadataException { List<Procedure> result = new LinkedList<Procedure>(); int index = name.indexOf(TransformationMetadata.DELIMITER_STRING); if (index > -1) { String schemaName = name.substring(0, index); Schema schema = getSchema(schemaName); if (schema != null ) { Procedure proc = schema.getProcedures().get(name.substring(index + 1)); if (proc != null) { result.add(proc); return result; } } } //assume it's a partial name for (Schema schema : getSchemas().values()) { for (Procedure p : schema.getProcedures().values()) { if (matchesPartialName(name, p.getName(), schema)) { result.add(p); } } } return result; }
public CompositeMetadataStore(List<MetadataStore> metadataStores) { for (MetadataStore metadataStore : metadataStores) { merge(metadataStore); } }
public TreeMap<String, RecordHolder> getOids() { if (oids == null) { synchronized (this) { if (oids == null) { TreeMap<String, RecordHolder> map = new TreeMap<String, RecordHolder>(String.CASE_INSENSITIVE_ORDER); addOids(this.getDatatypesExcludingAliases().values(), map); for (Schema s : getSchemaList()) { assignOids(s, map); } oids = map; } } } return oids; }
/** * TODO: this resolving mode allows partial matches of a full group name containing . * @param partialGroupName * @return */ public Collection<Table> getGroupsForPartialName(String partialGroupName) { List<Table> result = new LinkedList<Table>(); for (Schema schema : getSchemas().values()) { for (Table t : schema.getTables().values()) { String name = t.getName(); if (matchesPartialName(partialGroupName, name, schema)) { result.add(t); } } } return result; }
private void assignOids(Schema schema, TreeMap<String, RecordHolder> map) { addOid(schema, map); for (Table table : schema.getTables().values()) { addOid(table, map); addOids(table.getColumns(), map); addOids(table.getAllKeys(), map); } for (Procedure proc : schema.getProcedures().values()) { addOid(proc, map); addOids(proc.getParameters(), map); if (proc.getResultSet() != null) { addOids(proc.getResultSet().getColumns(), map); } } for (FunctionMethod func : schema.getFunctions().values()) { addOid(func, map); addOids(func.getInputParameters(), map); addOid(func.getOutputParameter(), map); } }
public static TransformationMetadata createTransformationMetadata(MetadataStore metadataStore, String vdbName, FunctionTree... functionModels) { CompositeMetadataStore cms = null; if (metadataStore instanceof CompositeMetadataStore) { cms = (CompositeMetadataStore)metadataStore; } else { cms = new CompositeMetadataStore(metadataStore); } return createTransformationMetadata(cms, vdbName, null, functionModels); }
@Override public SimpleIterator<Schema> processQuery( VDBMetaData vdb, CompositeMetadataStore metadataStore, BaseIndexInfo<?> ii, TransformationMetadata metadata, CommandContext commandContext) { return processQuery(vdb, metadataStore.getSchemas(), ii, commandContext); }
CompositeMetadataStore compositeStore = new CompositeMetadataStore(store); for (MetadataStore s:additionalStores) { compositeStore.merge(s); for (Schema schema:s.getSchemas().values()) { if (!schema.getFunctions().isEmpty()) {
@Override protected TransformationMetadata getTransformationMetadata() { Database database = getCurrentDatabase(); CompositeMetadataStore store = new CompositeMetadataStore(database.getMetadataStore()); //grants are already stored on the VDBMetaData store.getGrants().clear(); return new TransformationMetadata(DatabaseUtil.convert(database), store, null, null, null); } };
this.importedModels = Collections.emptySet(); if (store.getDatatypes().isEmpty()) { store.addDataTypes(SystemMetadata.getInstance().getRuntimeTypeMap());
public Table getGroupID(final String groupName) throws TeiidComponentException, QueryMetadataException { return getMetadataStore().findGroup(groupName); }
public static String[] current_schemas(CommandContext cc, boolean include_implicit) { //TODO: when schemas are hidden we should use the system metadata or other logic to hide them here as well if (include_implicit) { VDBMetaData metadata = (VDBMetaData) cc.getVdb(); TransformationMetadata tm = metadata.getAttachment(TransformationMetadata.class); List<Schema> schemas = tm.getMetadataStore().getSchemaList(); String[] results = new String[schemas.size()]; for (int i = 0; i < results.length; i++) { results[i] = schemas.get(i).getName(); } return results; } List<Model> models = cc.getVdb().getModels(); String[] results = new String[models.size()]; for (int i = 0; i < results.length; i++) { results[i] = models.get(i).getName(); } return results; }
private void addOids(Collection<? extends AbstractMetadataRecord> records, TreeMap<String, RecordHolder> map) { if (records == null) { return; } for (AbstractMetadataRecord record : records) { addOid(record, map); } }
private void buildTransformationMetadata() { TransformationMetadata metadata = new TransformationMetadata(this.vdb, new CompositeMetadataStore(this.store), null, SFM.getSystemFunctions(), null); this.vdb.addAttchment(QueryMetadataInterface.class, metadata); this.vdb.addAttchment(TransformationMetadata.class, metadata); }
@Override public SimpleIterator<Schema> processQuery( VDBMetaData vdb, CompositeMetadataStore metadataStore, BaseIndexInfo<?> ii, TransformationMetadata metadata, CommandContext commandContext) { return processQuery(vdb, metadataStore.getSchemas(), ii, commandContext); }
public TreeMap<String, RecordHolder> getOids() { if (oids == null) { synchronized (this) { if (oids == null) { TreeMap<String, RecordHolder> map = new TreeMap<String, RecordHolder>(String.CASE_INSENSITIVE_ORDER); addOids(this.getDatatypesExcludingAliases().values(), map); for (Schema s : getSchemaList()) { assignOids(s, map); } oids = map; } } } return oids; }
public static TransformationMetadata fromDDL(String vdbName, DDLHolder... schemas) throws Exception { CompositeMetadataStore cms = new CompositeMetadataStore(Collections.EMPTY_LIST); for (DDLHolder schema : schemas) { MetadataFactory mf = TestDDLParser.helpParse(schema.ddl, schema.name); cms.merge(mf.asMetadataStore()); } TransformationMetadata tm = createTransformationMetadata(cms, vdbName); ValidatorReport report = new MetadataValidator().validate(tm.getVdbMetaData(), tm.getMetadataStore()); if (report.hasItems()) { throw new RuntimeException(report.getFailureMessage()); } return tm; } }
/** * TODO: this resolving mode allows partial matches of a full group name containing . * @param partialGroupName * @return */ public Collection<Table> getGroupsForPartialName(String partialGroupName) { List<Table> result = new LinkedList<Table>(); for (Schema schema : getSchemas().values()) { for (Table t : schema.getTables().values()) { String name = t.getName(); if (matchesPartialName(partialGroupName, name, schema)) { result.add(t); } } } return result; }
private void assignOids(Schema schema, TreeMap<String, RecordHolder> map) { addOid(schema, map); for (Table table : schema.getTables().values()) { addOid(table, map); addOids(table.getColumns(), map); addOids(table.getAllKeys(), map); } for (Procedure proc : schema.getProcedures().values()) { addOid(proc, map); addOids(proc.getParameters(), map); if (proc.getResultSet() != null) { addOids(proc.getResultSet().getColumns(), map); } } for (FunctionMethod func : schema.getFunctions().values()) { addOid(func, map); addOids(func.getInputParameters(), map); addOid(func.getOutputParameter(), map); } }