@Override public ProcessorPlan optimize(Command command, IDGenerator idGenerator, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord, CommandContext context) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { return new DdlPlan(command); }
@Override public void initialize(CommandContext context, ProcessorDataManager dataMgr, BufferManager bufferMgr) { this.setContext(context); this.pdm = dataMgr; }
getMetadataRepository(target, vdb).setProperty(vdbName, vdbVersion, target, key, strVal); result = DdlPlan.setProperty(vdb, target, key, strVal); if (eventDistributor != null) { eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal); getMetadataRepository(table, vdb).setColumnStats(vdbName, vdbVersion, c, columnStats); DdlPlan.setColumnStats(vdb, c, columnStats); if (eventDistributor != null) { eventDistributor.setColumnStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), columnName, columnStats); getMetadataRepository(table, vdb).setTableStats(vdbName, vdbVersion, table, tableStats); DdlPlan.setTableStats(vdb, table, tableStats); if (eventDistributor != null) { eventDistributor.setTableStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), tableStats);
@Override public void setProcedureDefinition(String vdbName, String vdbVersion,String schema, String procName, String definition) { Schema s = getSchema(vdbName, vdbVersion, schema); if (s == null) { return; } Procedure p = s.getProcedures().get(procName); if (p == null) { return; } DdlPlan.alterProcedureDefinition(getVdbRepository().getLiveVDB(vdbName, vdbVersion), p, definition, true); }
@Override public void setViewDefinition(String vdbName, String vdbVersion, String schema, String viewName, String definition) { Table t = getTable(vdbName, vdbVersion, schema, viewName); if (t == null) { return; } DdlPlan.alterView(getVdbRepository().getLiveVDB(vdbName, vdbVersion), t, definition, true); }
@Override public void setInsteadOfTriggerDefinition(String vdbName, String vdbVersion, String schema, String viewName, TriggerEvent triggerEvent, String triggerDefinition, Boolean enabled) { Table t = getTable(vdbName, vdbVersion, schema, viewName); if (t == null) { return; } DdlPlan.alterInsteadOfTrigger(getVdbRepository().getLiveVDB(vdbName, vdbVersion), t, triggerDefinition, enabled, triggerEvent, true); }
@Override public void setTableStats(String vdbName, String vdbVersion, String schemaName, String tableName, TableStats stats) { VDBMetaData vdb = getVdbRepository().getLiveVDB(vdbName, vdbVersion); Table t = getTable(vdbName, vdbVersion, schemaName, tableName); if (t == null) { return; } DdlPlan.setTableStats(vdb, t, stats); }
@Override public void setColumnStats(String vdbName, String vdbVersion, String schemaName, String tableName, String columnName, ColumnStats stats) { VDBMetaData vdb = getVdbRepository().getLiveVDB(vdbName, vdbVersion); Table t = getTable(vdbName, vdbVersion, schemaName, tableName); if (t == null) { return; } Column c = t.getColumnByName(columnName); if (c != null) { DdlPlan.setColumnStats(vdb, c, stats); } }
@Override public void setProperty(String vdbName, String vdbVersion, String uuid, String name, String value) { VDBMetaData vdb = getVdbRepository().getLiveVDB(vdbName, vdbVersion); if (vdb == null) { return; } TransformationMetadata tm = vdb.getAttachment(TransformationMetadata.class); if (tm == null) { return; } AbstractMetadataRecord record = DataTierManagerImpl.getByUuid(tm.getMetadataStore(), uuid); if (record != null) { DdlPlan.setProperty(vdb, record, name, value); } }
getMetadataRepository(target, vdb).setProperty(vdbName, vdbVersion, target, key, strVal); result = DdlPlan.setProperty(vdb, target, key, strVal); if (eventDistributor != null) { eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal); getMetadataRepository(table, vdb).setColumnStats(vdbName, vdbVersion, c, columnStats); DdlPlan.setColumnStats(vdb, c, columnStats); if (eventDistributor != null) { eventDistributor.setColumnStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), columnName, columnStats); getMetadataRepository(table, vdb).setTableStats(vdbName, vdbVersion, table, tableStats); DdlPlan.setTableStats(vdb, table, tableStats); if (eventDistributor != null) { eventDistributor.setTableStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), tableStats);
@Override public void visit(AlterProcedure obj) { Procedure p = (Procedure)obj.getTarget().getMetadataID(); String sql = obj.getDefinition().toString(); if (getMetadataRepository(vdb, p.getParent().getName()) != null) { getMetadataRepository(vdb, p.getParent().getName()).setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql); } alterProcedureDefinition(vdb, p, sql, false); if (pdm.getEventDistributor() != null) { pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql); } }
@Override public void visit(AlterView obj) { Table t = (Table)obj.getTarget().getMetadataID(); String sql = obj.getDefinition().toString(); if (getMetadataRepository(vdb, t.getParent().getName()) != null) { getMetadataRepository(vdb, t.getParent().getName()).setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, sql); } alterView(vdb, t, sql, false); if (pdm.getEventDistributor() != null) { pdm.getEventDistributor().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), sql); } }
@Override public void visit(AlterTrigger obj) { Table t = (Table)obj.getTarget().getMetadataID(); String sql = null; TriggerEvent event = obj.getEvent(); if (obj.getEnabled() == null) { if (obj.isCreate()) { if (getPlanForEvent(t, event) != null) { throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30156, t.getName(), obj.getEvent()))); } } else if (getPlanForEvent(t, event) == null) { throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30158, t.getName(), obj.getEvent()))); } sql = obj.getDefinition().toString(); } else if (getPlanForEvent(t, event) == null) { throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30158, t.getName(), obj.getEvent()))); } if (getMetadataRepository(vdb, t.getParent().getName()) != null) { if (sql != null) { getMetadataRepository(vdb, t.getParent().getName()).setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), sql); } else { getMetadataRepository(vdb, t.getParent().getName()).setInsteadOfTriggerEnabled(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), obj.getEnabled()); } } alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event, false); if (pdm.getEventDistributor() != null) { pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql, obj.getEnabled()); } } }
getMetadataRepository(target, vdb).setProperty(vdbName, vdbVersion, target, key, strVal); result = DdlPlan.setProperty(vdb, target, key, strVal); if (eventDistributor != null) { eventDistributor.setProperty(vdbName, vdbVersion, uuid, key, strVal); getMetadataRepository(table, vdb).setColumnStats(vdbName, vdbVersion, c, columnStats); DdlPlan.setColumnStats(vdb, c, columnStats); if (eventDistributor != null) { eventDistributor.setColumnStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), columnName, columnStats); getMetadataRepository(table, vdb).setTableStats(vdbName, vdbVersion, table, tableStats); DdlPlan.setTableStats(vdb, table, tableStats); if (eventDistributor != null) { eventDistributor.setTableStats(vdbName, vdbVersion, table.getParent().getName(), table.getName(), tableStats);
@Override public void visit(AlterProcedure obj) { Procedure p = (Procedure)obj.getTarget().getMetadataID(); String sql = obj.getDefinition().toString(); if (getMetadataRepository(vdb, p.getParent().getName()) != null) { getMetadataRepository(vdb, p.getParent().getName()).setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql); } alterProcedureDefinition(vdb, p, sql, false); if (pdm.getEventDistributor() != null) { pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql); } }
@Override public void visit(AlterView obj) { Table t = (Table)obj.getTarget().getMetadataID(); String sql = obj.getDefinition().toString(); if (getMetadataRepository(vdb, t.getParent().getName()) != null) { getMetadataRepository(vdb, t.getParent().getName()).setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, sql); } alterView(vdb, t, sql, false); if (pdm.getEventDistributor() != null) { pdm.getEventDistributor().setViewDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), sql); } }
@Override public void visit(AlterTrigger obj) { Table t = (Table)obj.getTarget().getMetadataID(); String sql = null; TriggerEvent event = obj.getEvent(); if (obj.getEnabled() == null) { if (obj.isCreate()) { if (getPlanForEvent(t, event) != null) { throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30156, t.getName(), obj.getEvent()))); } } else if (getPlanForEvent(t, event) == null) { throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30158, t.getName(), obj.getEvent()))); } sql = obj.getDefinition().toString(); } else if (getPlanForEvent(t, event) == null) { throw new TeiidRuntimeException(new TeiidProcessingException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30158, t.getName(), obj.getEvent()))); } if (getMetadataRepository(vdb, t.getParent().getName()) != null) { if (sql != null) { getMetadataRepository(vdb, t.getParent().getName()).setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), sql); } else { getMetadataRepository(vdb, t.getParent().getName()).setInsteadOfTriggerEnabled(workContext.getVdbName(), workContext.getVdbVersion(), t, obj.getEvent(), obj.getEnabled()); } } alterInsteadOfTrigger(vdb, t, sql, obj.getEnabled(), event, false); if (pdm.getEventDistributor() != null) { pdm.getEventDistributor().setInsteadOfTriggerDefinition(workContext.getVdbName(), workContext.getVdbVersion(), t.getParent().getName(), t.getName(), obj.getEvent(), sql, obj.getEnabled()); } } }
@Override public ProcessorPlan optimize(Command command, IDGenerator idGenerator, QueryMetadataInterface metadata, CapabilitiesFinder capFinder, AnalysisRecord analysisRecord, CommandContext context) throws QueryPlannerException, QueryMetadataException, TeiidComponentException { return new DdlPlan(command); }
@Override public void initialize(CommandContext context, ProcessorDataManager dataMgr, BufferManager bufferMgr) { this.setContext(context); this.pdm = dataMgr; }
@Override public void visit(AlterProcedure obj) { Procedure p = (Procedure)obj.getTarget().getMetadataID(); String sql = obj.getDefinition().toString(); if (getMetadataRepository(vdb, p.getParent().getName()) != null) { getMetadataRepository(vdb, p.getParent().getName()).setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p, sql); } alterProcedureDefinition(vdb, p, sql, false); if (pdm.getEventDistributor() != null) { pdm.getEventDistributor().setProcedureDefinition(workContext.getVdbName(), workContext.getVdbVersion(), p.getParent().getName(), p.getName(), sql); } }