Search in sources :

Example 41 with RuntimeMetadata

use of org.teiid.metadata.RuntimeMetadata in project teiid by teiid.

the class TestEmbeddedServer method testExternalMaterializationManagement.

@Test
public void testExternalMaterializationManagement() throws Exception {
    EmbeddedConfiguration ec = new EmbeddedConfiguration();
    ec.setUseDisk(false);
    ec.setTransactionManager(SimpleMock.createSimpleMock(TransactionManager.class));
    es.transactionService.setXaTerminator(SimpleMock.createSimpleMock(XATerminator.class));
    es.transactionService.setWorkManager(new FakeWorkManager());
    es.start(ec);
    es.transactionService.setDetectTransactions(false);
    final AtomicBoolean loaded = new AtomicBoolean();
    final AtomicBoolean valid = new AtomicBoolean();
    final AtomicInteger matTableCount = new AtomicInteger();
    final AtomicInteger tableCount = new AtomicInteger();
    final AtomicBoolean hasStatus = new AtomicBoolean();
    es.addTranslator("y", new ExecutionFactory<AtomicInteger, Object>() {

        public boolean supportsCompareCriteriaEquals() {
            return true;
        }

        @Override
        public Object getConnection(AtomicInteger factory) throws TranslatorException {
            return factory.incrementAndGet();
        }

        @Override
        public void closeConnection(Object connection, AtomicInteger factory) {
        }

        @Override
        public void getMetadata(MetadataFactory metadataFactory, Object conn) throws TranslatorException {
            assertEquals(conn, Integer.valueOf(1));
            Table t = metadataFactory.addTable("my_table");
            t.setSupportsUpdate(true);
            Column c = metadataFactory.addColumn("my_column", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            // mat table
            t = metadataFactory.addTable("mat_table");
            t.setSupportsUpdate(true);
            c = metadataFactory.addColumn("my_column", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            // status table
            t = metadataFactory.addTable("status");
            t.setSupportsUpdate(true);
            c = metadataFactory.addColumn("VDBName", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("VDBVersion", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("SchemaName", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("Name", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("TargetSchemaName", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("TargetName", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("Valid", TypeFacility.RUNTIME_NAMES.BOOLEAN, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("LoadState", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("Cardinality", TypeFacility.RUNTIME_NAMES.LONG, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("Updated", TypeFacility.RUNTIME_NAMES.TIMESTAMP, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("LoadNumber", TypeFacility.RUNTIME_NAMES.LONG, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("NodeName", TypeFacility.RUNTIME_NAMES.STRING, t);
            c.setUpdatable(true);
            c = metadataFactory.addColumn("StaleCount", TypeFacility.RUNTIME_NAMES.LONG, t);
            c.setUpdatable(true);
            metadataFactory.addPrimaryKey("PK", Arrays.asList("VDBName", "VDBVersion", "SchemaName", "Name"), t);
        }

        @Override
        public ResultSetExecution createResultSetExecution(final QueryExpression command, final ExecutionContext executionContext, final RuntimeMetadata metadata, final Object connection) throws TranslatorException {
            return new ResultSetExecution() {

                Iterator<? extends List<? extends Object>> results;

                @Override
                public void execute() throws TranslatorException {
                }

                @Override
                public void close() {
                }

                @Override
                public void cancel() throws TranslatorException {
                }

                @Override
                public List<?> next() throws TranslatorException, DataNotAvailableException {
                    String status = "SELECT status.TargetSchemaName, status.TargetName, status.Valid, " + "status.LoadState, status.Updated, status.Cardinality, status.LoadNumber " + "FROM status WHERE status.VDBName = 'test' AND status.VDBVersion = '1.0.0' " + "AND status.SchemaName = 'virt' AND status.Name = 'my_view'";
                    if (results == null) {
                        String commandString = command.toString();
                        if (hasStatus.get() && commandString.equals(status)) {
                            results = Arrays.asList(Arrays.asList(null, "mat_table", valid.get(), loaded.get() ? "LOADED" : "LOADING", new Timestamp(System.currentTimeMillis()), -1, new Integer(1))).iterator();
                        } else if (hasStatus.get() && commandString.startsWith("SELECT status.Valid, status.LoadState FROM status")) {
                            results = Arrays.asList(Arrays.asList(valid.get(), loaded.get() ? "LOADED" : "LOADING")).iterator();
                        } else if (loaded.get() && commandString.equals("SELECT mat_table.my_column FROM mat_table")) {
                            matTableCount.getAndIncrement();
                            results = Arrays.asList(Arrays.asList("mat_column0"), Arrays.asList("mat_column1")).iterator();
                        } else if (commandString.equals("SELECT my_table.my_column FROM my_table")) {
                            tableCount.getAndIncrement();
                            results = Arrays.asList(Arrays.asList("regular_column")).iterator();
                        }
                    }
                    if (results != null && results.hasNext()) {
                        return results.next();
                    }
                    return null;
                }
            };
        }

        @Override
        public UpdateExecution createUpdateExecution(final Command command, final ExecutionContext executionContext, final RuntimeMetadata metadata, final Object connection) throws TranslatorException {
            UpdateExecution ue = new UpdateExecution() {

                @Override
                public void execute() throws TranslatorException {
                    String commandString = command.toString();
                    if (commandString.startsWith("INSERT INTO status")) {
                        hasStatus.set(true);
                    }
                    if (commandString.startsWith("INSERT INTO status") || commandString.startsWith("UPDATE status SET")) {
                        if (commandString.contains("LoadState")) {
                            synchronized (loaded) {
                                loaded.set(commandString.indexOf("LOADED") != -1);
                                loaded.notifyAll();
                            }
                        }
                        if (commandString.contains("Valid")) {
                            valid.set(commandString.indexOf("TRUE") != -1);
                        }
                    }
                }

                @Override
                public void close() {
                }

                @Override
                public void cancel() throws TranslatorException {
                }

                @Override
                public int[] getUpdateCounts() throws DataNotAvailableException, TranslatorException {
                    return new int[] { 1 };
                }
            };
            return ue;
        }
    });
    final AtomicInteger counter = new AtomicInteger();
    ConnectionFactoryProvider<AtomicInteger> cfp = new EmbeddedServer.SimpleConnectionFactoryProvider<AtomicInteger>(counter);
    es.addConnectionFactoryProvider("z", cfp);
    ModelMetaData mmd = new ModelMetaData();
    mmd.setName("my_schema");
    mmd.addSourceMapping("x", "y", "z");
    ModelMetaData mmd1 = new ModelMetaData();
    mmd1.setName("virt");
    mmd1.setModelType(Type.VIRTUAL);
    mmd1.setSchemaSourceType("ddl");
    mmd1.setSchemaText("	create view my_view OPTIONS (" + "UPDATABLE 'true',MATERIALIZED 'TRUE',\n" + "MATERIALIZED_TABLE 'my_schema.mat_table', \n" + "\"teiid_rel:MATERIALIZED_STAGE_TABLE\" 'my_schema.mat_table',\n" + "\"teiid_rel:ALLOW_MATVIEW_MANAGEMENT\" 'true', \n" + "\"teiid_rel:MATVIEW_STATUS_TABLE\" 'my_schema.status', \n" + "\"teiid_rel:MATVIEW_AFTER_LOAD_SCRIPT\" 'select 1; select 1, ''a''', \n" + "\"teiid_rel:MATVIEW_SHARE_SCOPE\" 'NONE',\n" + "\"teiid_rel:MATVIEW_ONERROR_ACTION\" 'THROW_EXCEPTION',\n" + "\"teiid_rel:MATVIEW_TTL\" 100000)" + "as select * from \"my_table\";" + " create view mat_table as select 'I conflict';");
    es.deployVDB("test", mmd, mmd1);
    synchronized (loaded) {
        while (!loaded.get()) {
            loaded.wait();
        }
    }
    // need to ensure that the mat view is built
    Thread.sleep(2000);
    final TeiidDriver td = es.getDriver();
    Connection c = td.connect("jdbc:teiid:test", null);
    Statement s = c.createStatement();
    ResultSet rs = s.executeQuery("select * from my_view");
    assertTrue(rs.next());
    assertEquals("mat_column0", rs.getString(1));
    s.execute("update my_schema.status set valid=false");
    try {
        rs = s.executeQuery("select * from my_view");
        fail("expected throw exception to work");
    } catch (SQLException e) {
    }
    assertEquals(1, tableCount.get());
    // make sure a similar name doesn't cause an issue
    rs = s.executeQuery("select * from (call sysadmin.updateMatView('virt', 'my_view', 'true')) as x");
    rs.next();
    assertEquals(2, rs.getInt(1));
    assertEquals(2, tableCount.get());
    s.execute("call setProperty((SELECT UID FROM Sys.Tables WHERE SchemaName = 'virt' AND Name = 'my_view'), 'teiid_rel:MATVIEW_ONERROR_ACTION', 'WAIT')");
    // this thread should hang, until the status changes
    final AtomicBoolean success = new AtomicBoolean();
    Thread t = new Thread() {

        public void run() {
            try {
                Connection c1 = td.connect("jdbc:teiid:test", null);
                Statement s1 = c1.createStatement();
                s1.executeQuery("select * from my_view");
                success.set(true);
            } catch (SQLException e) {
            }
        }
    };
    t.start();
    // wait to ensure that the thread is blocked
    Thread.sleep(5000);
    // update the status and make sure the thread finished
    s.execute("update my_schema.status set valid=true");
    t.join(10000);
    assertTrue(success.get());
}
Also used : XATerminator(javax.resource.spi.XATerminator) TeiidSQLException(org.teiid.jdbc.TeiidSQLException) UpdateExecution(org.teiid.translator.UpdateExecution) RuntimeMetadata(org.teiid.metadata.RuntimeMetadata) Column(org.teiid.metadata.Column) List(java.util.List) ArrayList(java.util.ArrayList) DataNotAvailableException(org.teiid.translator.DataNotAvailableException) QueryExpression(org.teiid.language.QueryExpression) Table(org.teiid.metadata.Table) FakeWorkManager(org.teiid.common.queue.FakeWorkManager) ModelMetaData(org.teiid.adminapi.impl.ModelMetaData) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ResultSetExecution(org.teiid.translator.ResultSetExecution) ExecutionContext(org.teiid.translator.ExecutionContext) MetadataFactory(org.teiid.metadata.MetadataFactory) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Command(org.teiid.language.Command) DummyTransactionManager(org.infinispan.transaction.tm.DummyTransactionManager) TranslatorException(org.teiid.translator.TranslatorException) TeiidDriver(org.teiid.jdbc.TeiidDriver) Test(org.junit.Test)

Example 42 with RuntimeMetadata

use of org.teiid.metadata.RuntimeMetadata in project teiid by teiid.

the class TestEmbeddedServer method testGeneratedKeysVirtual.

@Test
public void testGeneratedKeysVirtual() throws Exception {
    EmbeddedConfiguration ec = new EmbeddedConfiguration();
    MockTransactionManager tm = new MockTransactionManager();
    ec.setTransactionManager(tm);
    ec.setUseDisk(false);
    es.start(ec);
    HardCodedExecutionFactory hcef = new HardCodedExecutionFactory() {

        @Override
        public UpdateExecution createUpdateExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
            UpdateExecution ue = super.createUpdateExecution(command, executionContext, metadata, connection);
            GeneratedKeys keys = executionContext.getCommandContext().returnGeneratedKeys(new String[] { "y" }, new Class<?>[] { Integer.class });
            keys.addKey(Arrays.asList(1));
            return ue;
        }
    };
    hcef.addUpdate("INSERT INTO tbl (x) VALUES (1)", new int[] { 1 });
    es.addTranslator("t", hcef);
    ModelMetaData mmd1 = new ModelMetaData();
    mmd1.setName("b");
    mmd1.addSourceMapping("b", "t", null);
    mmd1.addSourceMetadata("ddl", "create foreign table tbl (x integer, y integer auto_increment primary key) OPTIONS (UPDATABLE true);" + "create view v (i integer, k integer auto_increment primary key) OPTIONS (UPDATABLE true) as select x, y from tbl;" + "create view v1 (i integer, k integer not null auto_increment primary key) OPTIONS (UPDATABLE true) as select x, y from tbl;" + "create trigger on v1 instead of insert as for each row begin atomic " + "insert into tbl (x) values (new.i); key.k = cast(generated_key('y') as integer); end;");
    es.deployVDB("vdb", mmd1);
    Connection c = es.getDriver().connect("jdbc:teiid:vdb", null);
    PreparedStatement ps = c.prepareStatement("insert into v (i) values (1)", Statement.RETURN_GENERATED_KEYS);
    assertEquals(1, ps.executeUpdate());
    ResultSet rs = ps.getGeneratedKeys();
    assertTrue(rs.next());
    assertEquals("k", rs.getMetaData().getColumnLabel(1));
    ps = c.prepareStatement("insert into v1 (i) values (1)", Statement.RETURN_GENERATED_KEYS);
    assertEquals(1, ps.executeUpdate());
    rs = ps.getGeneratedKeys();
    assertTrue(rs.next());
    assertEquals("k", rs.getMetaData().getColumnLabel(1));
}
Also used : UpdateExecution(org.teiid.translator.UpdateExecution) GeneratedKeys(org.teiid.GeneratedKeys) RuntimeMetadata(org.teiid.metadata.RuntimeMetadata) ModelMetaData(org.teiid.adminapi.impl.ModelMetaData) ExecutionContext(org.teiid.translator.ExecutionContext) Command(org.teiid.language.Command) Test(org.junit.Test)

Example 43 with RuntimeMetadata

use of org.teiid.metadata.RuntimeMetadata in project teiid by teiid.

the class TestLocalConnections method oneTimeSetup.

@SuppressWarnings("serial")
@BeforeClass
public static void oneTimeSetup() throws Exception {
    server.setUseCallingThread(true);
    server.setConnectorManagerRepository(new ConnectorManagerRepository() {

        @Override
        public ConnectorManager getConnectorManager(String connectorName) {
            return new ConnectorManager(connectorName, connectorName) {

                @Override
                public ExecutionFactory<Object, Object> getExecutionFactory() {
                    return new ExecutionFactory<Object, Object>() {

                        @Override
                        public boolean isSourceRequired() {
                            return false;
                        }

                        @Override
                        public Execution createExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
                            return new ResultSetExecution() {

                                boolean returnedRow = false;

                                @Override
                                public void execute() throws TranslatorException {
                                    lock.lock();
                                    try {
                                        sourceCounter.release();
                                        if (!wait.await(5, TimeUnit.SECONDS)) {
                                            throw new RuntimeException();
                                        }
                                    } catch (InterruptedException e) {
                                        throw new RuntimeException(e);
                                    } finally {
                                        lock.unlock();
                                    }
                                }

                                @Override
                                public void close() {
                                }

                                @Override
                                public void cancel() throws TranslatorException {
                                }

                                @Override
                                public List<?> next() throws TranslatorException, DataNotAvailableException {
                                    if (returnedRow) {
                                        return null;
                                    }
                                    returnedRow = true;
                                    return new ArrayList<Object>(Collections.singleton(null));
                                }
                            };
                        }
                    };
                }

                @Override
                public Object getConnectionFactory() throws TranslatorException {
                    return null;
                }
            };
        }
    });
    FunctionMethod function = new FunctionMethod("foo", null, FunctionCategoryConstants.MISCELLANEOUS, PushDown.CANNOT_PUSHDOWN, TestLocalConnections.class.getName(), "blocking", null, new FunctionParameter("result", DataTypeManager.DefaultDataTypes.INTEGER), false, FunctionMethod.Determinism.NONDETERMINISTIC);
    HashMap<String, Collection<FunctionMethod>> udfs = new HashMap<String, Collection<FunctionMethod>>();
    udfs.put("test", Arrays.asList(function));
    server.deployVDB("PartsSupplier", UnitTestUtil.getTestDataPath() + "/PartsSupplier.vdb", new DeployVDBParameter(udfs, null));
}
Also used : HashMap(java.util.HashMap) RuntimeMetadata(org.teiid.metadata.RuntimeMetadata) Execution(org.teiid.translator.Execution) ResultSetExecution(org.teiid.translator.ResultSetExecution) FunctionMethod(org.teiid.metadata.FunctionMethod) List(java.util.List) ArrayList(java.util.ArrayList) DataNotAvailableException(org.teiid.translator.DataNotAvailableException) FunctionParameter(org.teiid.metadata.FunctionParameter) ConnectorManagerRepository(org.teiid.dqp.internal.datamgr.ConnectorManagerRepository) ExecutionFactory(org.teiid.translator.ExecutionFactory) ConnectorManager(org.teiid.dqp.internal.datamgr.ConnectorManager) DeployVDBParameter(org.teiid.jdbc.FakeServer.DeployVDBParameter) ResultSetExecution(org.teiid.translator.ResultSetExecution) ExecutionContext(org.teiid.translator.ExecutionContext) Command(org.teiid.language.Command) Collection(java.util.Collection) TranslatorException(org.teiid.translator.TranslatorException) BeforeClass(org.junit.BeforeClass)

Example 44 with RuntimeMetadata

use of org.teiid.metadata.RuntimeMetadata in project teiid by teiid.

the class TestExecutionReuse method oneTimeSetUp.

@BeforeClass
public static void oneTimeSetUp() throws Exception {
    EmbeddedConfiguration config = new EmbeddedConfiguration();
    config.setUserRequestSourceConcurrency(1);
    server = new FakeServer(false);
    server.setConnectorManagerRepository(new ConnectorManagerRepository() {

        private ConnectorManager cm = new ConnectorManager("x", "y") {

            private ExecutionFactory<Object, Object> ef = new ExecutionFactory<Object, Object>() {

                @Override
                public ResultSetExecution createResultSetExecution(QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
                    ec = executionContext;
                    return execution;
                }

                public boolean isSourceRequired() {
                    return false;
                }
            };

            @Override
            public ExecutionFactory<Object, Object> getExecutionFactory() {
                return ef;
            }

            @Override
            public Object getConnectionFactory() throws TranslatorException {
                return null;
            }
        };

        @Override
        public ConnectorManager getConnectorManager(String connectorName) {
            return cm;
        }
    });
    server.start(config, false);
    server.deployVDB("PartsSupplier", UnitTestUtil.getTestDataPath() + "/PartsSupplier.vdb");
}
Also used : FakeServer(org.teiid.jdbc.FakeServer) ConnectorManagerRepository(org.teiid.dqp.internal.datamgr.ConnectorManagerRepository) EmbeddedConfiguration(org.teiid.runtime.EmbeddedConfiguration) ExecutionFactory(org.teiid.translator.ExecutionFactory) ConnectorManager(org.teiid.dqp.internal.datamgr.ConnectorManager) RuntimeMetadata(org.teiid.metadata.RuntimeMetadata) ResultSetExecution(org.teiid.translator.ResultSetExecution) ExecutionContext(org.teiid.translator.ExecutionContext) TranslatorException(org.teiid.translator.TranslatorException) QueryExpression(org.teiid.language.QueryExpression) BeforeClass(org.junit.BeforeClass)

Example 45 with RuntimeMetadata

use of org.teiid.metadata.RuntimeMetadata in project teiid by teiid.

the class TestResultsCache method testScope.

@Test
public void testScope() throws Exception {
    ModelMetaData mmd = new ModelMetaData();
    mmd.setName("x");
    mmd.addProperty("teiid_rel:determinism", "USER_DETERMINISTIC");
    mmd.addSourceMapping("x", "x", null);
    mmd.addSourceMetadata("ddl", "create foreign table t (c string); create foreign procedure p () returns table (c string);");
    final AtomicBoolean setScope = new AtomicBoolean();
    server.addTranslator("x", new ExecutionFactory() {

        @Override
        public boolean isSourceRequired() {
            return false;
        }

        @Override
        public ResultSetExecution createResultSetExecution(QueryExpression command, final ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
            return createProcedureExecution(null, executionContext, metadata, connection);
        }

        @Override
        public ProcedureExecution createProcedureExecution(Call command, final ExecutionContext executionContext, RuntimeMetadata metadata, Object connection) throws TranslatorException {
            return new ProcedureExecution() {

                boolean returned = false;

                @Override
                public void execute() throws TranslatorException {
                }

                @Override
                public void close() {
                }

                @Override
                public void cancel() throws TranslatorException {
                }

                @Override
                public List<?> next() throws TranslatorException, DataNotAvailableException {
                    if (setScope.get()) {
                        // prevent caching altogether
                        executionContext.setScope(Scope.SESSION);
                    }
                    if (returned) {
                        return null;
                    }
                    returned = true;
                    return Arrays.asList(executionContext.getSession().getSessionId());
                }

                @Override
                public List<?> getOutputParameterValues() throws TranslatorException {
                    return null;
                }
            };
        }
    });
    server.deployVDB("x", mmd);
    Connection c = server.getDriver().connect("jdbc:teiid:x;user=alice", null);
    Statement s = c.createStatement();
    ResultSet rs = s.executeQuery("/* cache */ select * from t");
    assertTrue(rs.next());
    String sessionid = rs.getString(1);
    // should be the same with same user/session
    rs = s.executeQuery("/* cache */ select * from t");
    assertTrue(rs.next());
    assertEquals(sessionid, rs.getString(1));
    c.close();
    c = server.getDriver().connect("jdbc:teiid:x;user=alice", null);
    s = c.createStatement();
    rs = s.executeQuery("/* cache */ select * from t");
    assertTrue(rs.next());
    assertEquals(sessionid, rs.getString(1));
    c.close();
    // for the final test
    setScope.set(true);
    // should be different with another user
    c = server.getDriver().connect("jdbc:teiid:x;user=bill", null);
    s = c.createStatement();
    rs = s.executeQuery("/* cache */ select * from t");
    assertTrue(rs.next());
    String sessionid1 = rs.getString(1);
    c.close();
    assertNotEquals(sessionid, sessionid1);
    c = server.getDriver().connect("jdbc:teiid:x;user=bill", null);
    s = c.createStatement();
    rs = s.executeQuery("/* cache */ select * from t");
    assertTrue(rs.next());
    // scope session should prevent reuse
    assertNotEquals(sessionid1, rs.getString(1));
    setScope.set(false);
    rs = s.executeQuery("/* cache */ call p()");
    assertTrue(rs.next());
    sessionid = rs.getString(1);
    c.close();
    c = server.getDriver().connect("jdbc:teiid:x;user=alice", null);
    s = c.createStatement();
    rs = s.executeQuery("/* cache */ call p()");
    assertTrue(rs.next());
    assertNotEquals(sessionid, rs.getString(1));
    c.close();
}
Also used : Call(org.teiid.language.Call) Statement(java.sql.Statement) Connection(java.sql.Connection) ExecutionFactory(org.teiid.translator.ExecutionFactory) RuntimeMetadata(org.teiid.metadata.RuntimeMetadata) ModelMetaData(org.teiid.adminapi.impl.ModelMetaData) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ResultSetExecution(org.teiid.translator.ResultSetExecution) ExecutionContext(org.teiid.translator.ExecutionContext) ProcedureExecution(org.teiid.translator.ProcedureExecution) ResultSet(java.sql.ResultSet) TranslatorException(org.teiid.translator.TranslatorException) List(java.util.List) DataNotAvailableException(org.teiid.translator.DataNotAvailableException) QueryExpression(org.teiid.language.QueryExpression) Test(org.junit.Test)

Aggregations

RuntimeMetadata (org.teiid.metadata.RuntimeMetadata)46 ExecutionContext (org.teiid.translator.ExecutionContext)40 Test (org.junit.Test)38 Command (org.teiid.language.Command)33 TranslationUtility (org.teiid.cdk.api.TranslationUtility)26 ResultSetExecution (org.teiid.translator.ResultSetExecution)14 QueryExpression (org.teiid.language.QueryExpression)11 TranslatorException (org.teiid.translator.TranslatorException)10 LdapContext (javax.naming.ldap.LdapContext)9 List (java.util.List)8 ExecutionFactory (org.teiid.translator.ExecutionFactory)8 ModelMetaData (org.teiid.adminapi.impl.ModelMetaData)7 SalesforceConnection (org.teiid.translator.salesforce.SalesforceConnection)7 ArrayList (java.util.ArrayList)6 DataNotAvailableException (org.teiid.translator.DataNotAvailableException)5 ResultSetFuture (com.datastax.driver.core.ResultSetFuture)4 SObject (com.sforce.soap.partner.sobject.SObject)4 ByteArrayInputStream (java.io.ByteArrayInputStream)4 EntityManager (javax.persistence.EntityManager)4 UpdateExecution (org.teiid.translator.UpdateExecution)4