org.teiid.metadata.Table.setInsertPlan()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(13.0k)|赞(0)|评价(0)|浏览(82)

本文整理了Java中org.teiid.metadata.Table.setInsertPlan()方法的一些代码示例,展示了Table.setInsertPlan()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Table.setInsertPlan()方法的具体详情如下:
包路径:org.teiid.metadata.Table
类名称:Table
方法名:setInsertPlan

Table.setInsertPlan介绍

暂无

代码示例

代码示例来源:origin: org.jboss.teiid/teiid-engine

public static void alterInsteadOfTrigger(final VDBMetaData vdb, final Table t,
    final String sql, final Boolean enabled, final TriggerEvent event, boolean updateStore) {
  switch (event) {
  case DELETE:
    if (sql != null) {
      t.setDeletePlan(sql);
    } else {
      t.setDeletePlanEnabled(enabled);
    }
    break;
  case INSERT:
    if (sql != null) {
      t.setInsertPlan(sql);
    } else {
      t.setInsertPlanEnabled(enabled);
    }
    break;
  case UPDATE:
    if (sql != null) {
      t.setUpdatePlan(sql);
    } else {
      t.setUpdatePlanEnabled(enabled);
    }
    break;
  }
  TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
  indexMetadata.addToMetadataCache(t, "transformation/"+event, null); //$NON-NLS-1$
  t.setLastModified(System.currentTimeMillis());
}

代码示例来源:origin: teiid/teiid

public static void setInsteadOfTriggerDefinition(Table view, TriggerEvent event, String proc) {
  switch (event) {
  case DELETE:
    view.setDeletePlan(proc);
    break;
  case INSERT:
    view.setInsertPlan(proc);
    break;
  case UPDATE:
    view.setUpdatePlan(proc);
    break;
  }
}

代码示例来源:origin: teiid/teiid

t.setDeletePlan("");
t.setUpdatePlan("");
t.setInsertPlan("FOR EACH ROW BEGIN insert into pm1.g1 (e1) values (new.x); END");

代码示例来源:origin: teiid/teiid

public static void alterInsteadOfTrigger(final VDBMetaData vdb, final Table t,
    final String sql, final Boolean enabled, final TriggerEvent event, boolean updateStore) {
  switch (event) {
  case DELETE:
    if (sql != null) {
      t.setDeletePlan(sql);
    } else {
      t.setDeletePlanEnabled(enabled);
    }
    break;
  case INSERT:
    if (sql != null) {
      t.setInsertPlan(sql);
    } else {
      t.setInsertPlanEnabled(enabled);
    }
    break;
  case UPDATE:
    if (sql != null) {
      t.setUpdatePlan(sql);
    } else {
      t.setUpdatePlanEnabled(enabled);
    }
    break;
  }
  TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
  indexMetadata.addToMetadataCache(t, "transformation/"+event, null); //$NON-NLS-1$
  t.setLastModified(System.currentTimeMillis());
}

代码示例来源:origin: teiid/teiid

@Test public void testDynamicUpdate() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select '1' as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("");
  t.setUpdatePlan("FOR EACH ROW BEGIN execute immediate 'update pm1.g1 set e1 = new.x where e2 = new.y'; END");
  t.setInsertPlan("");
  
  String sql = "update gx set x = 1 where y = 2";
  
  HardcodedDataManager dm = new HardcodedDataManager();
  dm.addData("UPDATE pm1.g1 SET e1 = '1' WHERE e2 = 2", new List[] {Arrays.asList(1)});
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(1)};
  helpProcess(plan, context, dm, expected);
}

代码示例来源:origin: org.teiid/teiid-engine

public static void alterInsteadOfTrigger(final VDBMetaData vdb, final Table t,
    final String sql, final Boolean enabled, final TriggerEvent event, boolean updateStore) {
  switch (event) {
  case DELETE:
    if (sql != null) {
      t.setDeletePlan(sql);
    } else {
      t.setDeletePlanEnabled(enabled);
    }
    break;
  case INSERT:
    if (sql != null) {
      t.setInsertPlan(sql);
    } else {
      t.setInsertPlanEnabled(enabled);
    }
    break;
  case UPDATE:
    if (sql != null) {
      t.setUpdatePlan(sql);
    } else {
      t.setUpdatePlanEnabled(enabled);
    }
    break;
  }
  TransformationMetadata indexMetadata = vdb.getAttachment(TransformationMetadata.class);
  indexMetadata.addToMetadataCache(t, "transformation/"+event, null); //$NON-NLS-1$
  t.setLastModified(System.currentTimeMillis());
}

代码示例来源:origin: teiid/teiid

@Test public void testDynamic() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select '1' as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("FOR EACH ROW BEGIN ATOMIC END");
  t.setUpdatePlan("");
  t.setInsertPlan("FOR EACH ROW BEGIN execute immediate 'delete from gx where gx.x = new.x'; END");
  
  String sql = "insert into gx (x, y) select e1, e2 from pm1.g1";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(6)};
  helpProcess(plan, context, dm, expected);
}

代码示例来源:origin: teiid/teiid

def = this.getInsteadOfTriggerDefinition(vdbName, vdbVersion, t, Table.TriggerEvent.INSERT);
if (def != null) {
  t.setInsertPlan(def);

代码示例来源:origin: teiid/teiid

@Test public void testUpdateWithNonConstant() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("");
  t.setUpdatePlan("FOR EACH ROW BEGIN update pm1.g1 set e2 = new.y where e2 = old.y; END");
  t.setInsertPlan("");
  
  String sql = "update gx set y = x";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(1)};
  helpProcess(plan, context, dm, expected);
  assertEquals("UPDATE pm1.g1 SET e2 = 1 WHERE e2 = 2", dm.getQueries().get(0));
}

代码示例来源:origin: teiid/teiid

@Test public void testInsertWithDefault() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("");
  t.setUpdatePlan("");
  t.setInsertPlan("FOR EACH ROW BEGIN insert into pm1.g1 (e1) values (new.x); END");
  
  String sql = "insert into gx (x) values (1)";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(1)};
  helpProcess(plan, context, dm, expected);
}

代码示例来源:origin: teiid/teiid

@Test public void testUpdate() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("");
  t.setUpdatePlan("FOR EACH ROW BEGIN update pm1.g1 set e2 = new.y where e2 = old.y; END");
  t.setInsertPlan("");
  
  String sql = "update gx set y = 5";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(1)};
  helpProcess(plan, context, dm, expected);
  assertEquals("UPDATE pm1.g1 SET e2 = 5 WHERE e2 = 2", dm.getQueries().get(0));
}

代码示例来源:origin: teiid/teiid

@Test public void testUpdateWithChanging() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("");
  t.setUpdatePlan("FOR EACH ROW BEGIN update pm1.g1 set e2 = case when changing.y then new.y end where e2 = old.y; END");
  t.setInsertPlan("");
  
  String sql = "update gx set y = 5";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(1)};
  helpProcess(plan, context, dm, expected);
  assertEquals("UPDATE pm1.g1 SET e2 = 5 WHERE e2 = 2", dm.getQueries().get(0));
}

代码示例来源:origin: teiid/teiid

@Test public void testInsert() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("");
  t.setUpdatePlan("");
  t.setInsertPlan("FOR EACH ROW BEGIN insert into pm1.g1 (e1) values (new.x); END");
  
  String sql = "insert into gx (x, y) values (1, 2)";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(1)};
  helpProcess(plan, context, dm, expected);
}

代码示例来源:origin: teiid/teiid

@Test public void testInsertWithQueryExpression() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select '1' as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("");
  t.setUpdatePlan("");
  t.setInsertPlan("FOR EACH ROW BEGIN insert into pm1.g1 (e1) values (new.x); END");
  
  String sql = "insert into gx (x, y) select e1, e2 from pm1.g1";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(6)};
  helpProcess(plan, context, dm, expected);
}

代码示例来源:origin: teiid/teiid

@Test public void testDelete() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select 1 as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("FOR EACH ROW BEGIN delete from pm1.g1 where e2 = old.x; END");
  t.setUpdatePlan("");
  t.setInsertPlan("");
  
  String sql = "delete from gx where y = 2";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  List<?>[] expected = new List[] {Arrays.asList(1)};
  helpProcess(plan, context, dm, expected);
}

代码示例来源:origin: teiid/teiid

tableRecord.setInsertPlan(insert.getTransformation());

代码示例来源:origin: org.teiid/teiid-engine

table.setInsertPlan(triggerDefinition);

代码示例来源:origin: teiid/teiid

table.setInsertPlan(triggerDefinition);

代码示例来源:origin: org.jboss.teiid/teiid-engine

table.setInsertPlan(triggerDefinition);

代码示例来源:origin: teiid/teiid

@Test public void testDynamicRecursion() throws Exception {
  TransformationMetadata metadata = TestUpdateValidator.example1();
  TestUpdateValidator.createView("select 'a' as x, 2 as y", metadata, GX);
  Table t = metadata.getMetadataStore().getSchemas().get(VM1).getTables().get(GX);
  t.setDeletePlan("FOR EACH ROW BEGIN ATOMIC insert into gx (x, y) values (old.x, old.y); END");
  t.setUpdatePlan("");
  t.setInsertPlan("FOR EACH ROW BEGIN execute immediate 'delete from gx where gx.x = new.x'; END");
  
  String sql = "insert into gx (x, y) select e1, e2 from pm1.g1";
  
  FakeDataManager dm = new FakeDataManager();
  FakeDataStore.addTable("pm1.g1", dm, metadata);
  CommandContext context = createCommandContext();
  BasicSourceCapabilities caps = TestOptimizer.getTypicalCapabilities();
  ProcessorPlan plan = TestProcessor.helpGetPlan(TestResolver.helpResolve(sql, metadata), metadata, new DefaultCapabilitiesFinder(caps), context);
  try {
    helpProcess(plan, context, dm, null);
    fail();
  } catch (QueryProcessingException e) {
    assertEquals("TEIID30168 Couldn't execute the dynamic SQL command \"EXECUTE IMMEDIATE 'delete from gx where gx.x = new.x'\" with the SQL statement \"delete from gx where gx.x = new.x\" due to: TEIID30347 There is a recursive invocation of group 'I gx'. Please correct the SQL.", e.getMessage());
  }
}

相关文章

微信公众号

最新文章

更多