public boolean isVirtualGroup(final Object groupID) throws TeiidComponentException, QueryMetadataException { if (groupID instanceof Table) { return ((Table) groupID).isVirtual(); } if (groupID instanceof Procedure) { return ((Procedure) groupID).isVirtual(); } throw createInvalidRecordTypeException(groupID); }
public boolean isVirtualGroup(final Object groupID) throws TeiidComponentException, QueryMetadataException { if (groupID instanceof Table) { return ((Table) groupID).isVirtual(); } if (groupID instanceof Procedure) { return ((Procedure) groupID).isVirtual(); } throw createInvalidRecordTypeException(groupID); }
public boolean isVirtualGroup(final Object groupID) throws TeiidComponentException, QueryMetadataException { if (groupID instanceof Table) { return ((Table) groupID).isVirtual(); } if (groupID instanceof Procedure) { return ((Procedure) groupID).isVirtual(); } throw createInvalidRecordTypeException(groupID); }
public void setProcedureDefinition(final String procedureName, final String definition) { if (!assertInEditMode(Mode.SCHEMA)) { return; } Procedure procedure = (Procedure)getSchemaRecord(procedureName, ResourceType.PROCEDURE); assertGrant(Grant.Permission.Privilege.ALTER, Database.ResourceType.PROCEDURE, procedure); if (!procedure.isVirtual()) { throw new org.teiid.metadata.MetadataException(QueryPlugin.Event.TEIID31238, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31238, procedure.getFullName())); } procedure.setQueryPlan(definition); }
private void listPhysicalTables(Collection<AbstractMetadataRecord> records, TableFilter tableFilter) { for (AbstractMetadataRecord record : records) { if (record instanceof Table) { Table table = (Table)record; if (table.isPhysical()) { tableFilter.accept(table); } else { listPhysicalTables(table.getIncomingObjects(), tableFilter); } } else if (record instanceof Procedure) { Procedure proc = (Procedure)record; if (proc.isVirtual()) { listPhysicalTables(proc.getIncomingObjects(), tableFilter); } } } }
private void listPhysicalTables(Collection<AbstractMetadataRecord> records, TableFilter tableFilter) { for (AbstractMetadataRecord record : records) { if (record instanceof Table) { Table table = (Table)record; if (table.isPhysical()) { tableFilter.accept(table); } else { listPhysicalTables(table.getIncomingObjects(), tableFilter); } } else if (record instanceof Procedure) { Procedure proc = (Procedure)record; if (proc.isVirtual()) { listPhysicalTables(proc.getIncomingObjects(), tableFilter); } } } }
public void setProcedureDefinition(final String procedureName, final String definition) { if (!assertInEditMode(Mode.SCHEMA)) { return; } Procedure procedure = (Procedure)getSchemaRecord(procedureName, ResourceType.PROCEDURE); assertGrant(Grant.Permission.Privilege.ALTER, Database.ResourceType.PROCEDURE, procedure); if (!procedure.isVirtual()) { throw new org.teiid.metadata.MetadataException(QueryPlugin.Event.TEIID31238, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31238, procedure.getFullName())); } procedure.setQueryPlan(definition); }
private void listPhysicalTables(Collection<AbstractMetadataRecord> records, TableFilter tableFilter) { for (AbstractMetadataRecord record : records) { if (record instanceof Table) { Table table = (Table)record; if (table.isPhysical()) { tableFilter.accept(table); } else { listPhysicalTables(table.getIncomingObjects(), tableFilter); } } else if (record instanceof Procedure) { Procedure proc = (Procedure)record; if (proc.isVirtual()) { listPhysicalTables(proc.getIncomingObjects(), tableFilter); } } } }
@Override public void loadMetadata(MetadataFactory factory, ExecutionFactory<Object, Object> executionFactory, Object connectionFactory) throws TranslatorException { Schema s = factory.getSchema(); for (Table t : s.getTables().values()) { if (!t.isPhysical()) { continue; } Column c = t.getColumnByName(multiSourceColumnName); if (c == null) { c = factory.addColumn(multiSourceColumnName, DataTypeManager.DefaultDataTypes.STRING, t); MultiSourceMetadataWrapper.setMultiSourceElementMetadata(c); } } outer: for (Procedure p : s.getProcedures().values()) { if (p.isVirtual()) { continue; } for (ProcedureParameter pp : p.getParameters()) { if (multiSourceColumnName.equalsIgnoreCase(pp.getName())) { continue outer; } } ProcedureParameter pp = factory.addProcedureParameter(multiSourceColumnName, DataTypeManager.DefaultDataTypes.STRING, Type.In, p); pp.setNullType(NullType.Nullable); } }
public void procedureDropped(String procedureName, Boolean virtual) { if (!assertInEditMode(Mode.SCHEMA)) { return; } Procedure procedure = (Procedure)getSchemaRecord(procedureName, ResourceType.PROCEDURE); if (virtual != null && virtual^procedure.isVirtual()) { throw new org.teiid.metadata.MetadataException(QueryPlugin.Event.TEIID31273, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31273, procedure.getFullName())); } assertGrant(Grant.Permission.Privilege.DROP, Database.ResourceType.PROCEDURE, procedure); Schema s = procedure.getParent(); s.removeProcedure(procedureName); }
public void procedureDropped(String procedureName, Boolean virtual) { if (!assertInEditMode(Mode.SCHEMA)) { return; } Procedure procedure = (Procedure)getSchemaRecord(procedureName, ResourceType.PROCEDURE); if (virtual != null && virtual^procedure.isVirtual()) { throw new org.teiid.metadata.MetadataException(QueryPlugin.Event.TEIID31273, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31273, procedure.getFullName())); } assertGrant(Grant.Permission.Privilege.DROP, Database.ResourceType.PROCEDURE, procedure); Schema s = procedure.getParent(); s.removeProcedure(procedureName); }
FunctionMethod function = new FunctionMethod(procedureRecord.getName(), procedureRecord.getAnnotation(), model.getName(), procedureRecord.isVirtual()?PushDown.CAN_PUSHDOWN:PushDown.MUST_PUSHDOWN, null, null, args, outputParam, false, Determinism.DETERMINISTIC); function.setUUID(procedureRecord.getUUID()); if(procedureRecord.isVirtual()) { TransformationRecordImpl transformRecord = (TransformationRecordImpl)getRecordByType(procedureRecord.getUUID(), MetadataConstants.RECORD_TYPE.PROC_TRANSFORM, false); if(transformRecord != null) {
if(procRecord.isVirtual()) { QueryNode queryNode = new LiveQueryNode(procRecord); procInfo.setQueryPlan(queryNode);
public static FunctionMethod createFunctionMethod(Procedure proc) { FunctionMethod method = new FunctionMethod(); method.setName(proc.getName()); method.setPushdown(proc.isVirtual()?FunctionMethod.PushDown.CAN_PUSHDOWN:FunctionMethod.PushDown.MUST_PUSHDOWN);
assertNotNull(proc); assertFalse(proc.isVirtual()); assertFalse(proc.isFunction());
assertNotNull(proc); assertTrue(proc.isVirtual()); assertFalse(proc.isFunction());