use of org.teiid.adminapi.impl.VDBMetaData in project teiid by teiid.
the class TestReplication method deployTtlVDB.
private void deployTtlVDB(FakeServer server) throws ConnectorManagerException, VirtualDatabaseException, TranslatorException {
ModelMetaData mmd = new ModelMetaData();
mmd.setName("mv");
mmd.setModelType(Type.VIRTUAL);
mmd.addSourceMetadata("ddl", "create view c options (materialized true) as /*+ cache(ttl:1000) */ select 'hello world'");
VDBMetaData vdb = new VDBMetaData();
vdb.setXmlDeployment(true);
vdb.setName("ttl");
vdb.setModels(Arrays.asList(mmd));
vdb.addProperty("lazy-invalidate", "true");
server.deployVDB(vdb);
}
use of org.teiid.adminapi.impl.VDBMetaData in project teiid by teiid.
the class PlanToProcessConverter method aliasCommand.
private Command aliasCommand(AccessNode aNode, Command command, Object modelID) throws TeiidComponentException, QueryPlannerException {
try {
command = (Command) command.clone();
boolean aliasGroups = modelID != null && (CapabilitiesUtil.supportsGroupAliases(modelID, metadata, capFinder) || CapabilitiesUtil.supports(Capability.QUERY_FROM_INLINE_VIEWS, modelID, metadata, capFinder));
boolean aliasColumns = modelID != null && (CapabilitiesUtil.supports(Capability.QUERY_SELECT_EXPRESSION, modelID, metadata, capFinder) || CapabilitiesUtil.supports(Capability.QUERY_FROM_INLINE_VIEWS, modelID, metadata, capFinder));
AliasGenerator visitor = new AliasGenerator(aliasGroups, !aliasColumns);
SourceHint sh = command.getSourceHint();
if (sh != null && aliasGroups) {
VDBMetaData vdb = context.getDQPWorkContext().getVDB();
ModelMetaData model = vdb.getModel(aNode.getModelName());
List<String> sourceNames = model.getSourceNames();
SpecificHint sp = null;
if (sourceNames.size() == 1) {
sp = sh.getSpecificHint(sourceNames.get(0));
}
if (sh.isUseAliases() || (sp != null && sp.isUseAliases())) {
visitor.setAliasMapping(context.getAliasMapping());
}
}
List<Reference> references = ReferenceCollectorVisitor.getReferences(command);
if (!references.isEmpty()) {
Set<String> correleatedGroups = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
for (Reference ref : references) {
if (ref.isCorrelated() && ref.getExpression().getGroupSymbol() != null) {
correleatedGroups.add(ref.getExpression().getGroupSymbol().getName());
}
}
visitor.setCorrelationGroups(correleatedGroups);
}
command.acceptVisitor(visitor);
} catch (QueryMetadataException err) {
throw new TeiidComponentException(QueryPlugin.Event.TEIID30249, err);
} catch (TeiidRuntimeException e) {
if (e.getCause() instanceof QueryPlannerException) {
throw (QueryPlannerException) e.getCause();
}
throw e;
}
return command;
}
use of org.teiid.adminapi.impl.VDBMetaData in project teiid by teiid.
the class EmbeddedAdminImpl method undeploy.
@Override
public void undeploy(String deployedName) throws AdminException {
VDBMetaData vdb = checkVDB(deployedName);
if (null == vdb) {
throw new AdminProcessingException(RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40134, deployedName));
}
this.embeddedServer.undeployVDB(deployedName);
}
use of org.teiid.adminapi.impl.VDBMetaData in project teiid by teiid.
the class EmbeddedAdminImpl method updateSource.
@Override
public void updateSource(String vdbName, String vdbVersion, String sourceName, String translatorName, String dsName) throws AdminException {
VDBMetaData vdb = checkVDB(vdbName, vdbVersion);
synchronized (vdb) {
for (ModelMetaData m : vdb.getModelMetaDatas().values()) {
SourceMappingMetadata mapping = m.getSourceMapping(sourceName);
if (mapping != null) {
mapping.setTranslatorName(translatorName);
mapping.setConnectionJndiName(dsName);
}
}
}
}
use of org.teiid.adminapi.impl.VDBMetaData in project teiid by teiid.
the class EmbeddedAdminImpl method addDataRoleMapping.
@Override
public void addDataRoleMapping(String vdbName, String vdbVersion, String dataRole, String mappedRoleName) throws AdminException {
VDBMetaData vdb = checkVDB(vdbName, vdbVersion);
synchronized (vdb) {
DataPolicyMetadata policy = getPolicy(vdb, dataRole);
policy.addMappedRoleName(mappedRoleName);
}
}
Aggregations