Search in sources :

Example 26 with ConnectorSplitSource

use of io.prestosql.spi.connector.ConnectorSplitSource in project hetu-core by openlookeng.

the class TestDataSourceTableSplitManager method testGetTableSplits11.

// read full table.
@Test
public void testGetTableSplits11() {
    BaseJdbcConfig config = new BaseJdbcConfig();
    config.setPushDownEnable(true).setTableSplitEnable(true).setTableSplitFields("[{\"catalogName\":\"" + catalogName + "\",\"schemaName\":\"EXAMPLE\",\"tableName\":\"NONE_NUMBERS\"," + "\"splitField\":\"value\",\"calcStepEnable\":\"false\",\"dataReadOnly\":\"true\",\"splitCount\":\"2\"," + "\"fieldMinValue\":\"\",\"fieldMaxValue\":\"\"}]");
    tableHandle = getTableHandle(new SchemaTableName("example", "none_numbers"));
    splitManager = new DataSourceTableSplitManager(config, jdbcClient, nodeManager);
    ConnectorSplitSource splitSource = splitManager.getTableSplits(JdbcIdentity.from(SESSION), tableHandle);
    assertEquals(splitSource.getClass(), FixedSplitSource.class);
}
Also used : ConnectorSplitSource(io.prestosql.spi.connector.ConnectorSplitSource) SchemaTableName(io.prestosql.spi.connector.SchemaTableName) BaseJdbcConfig(io.prestosql.plugin.jdbc.BaseJdbcConfig) Test(org.testng.annotations.Test)

Example 27 with ConnectorSplitSource

use of io.prestosql.spi.connector.ConnectorSplitSource in project hetu-core by openlookeng.

the class TestDataSourceTableSplitManager method testGetTableSplits12.

@Test
public void testGetTableSplits12() {
    long[][] rangeArray = new long[][] { { 0, 2 }, { 2, 4 }, { 4, 5 } };
    BaseJdbcConfig config = new BaseJdbcConfig();
    config.setPushDownEnable(true).setTableSplitEnable(true).setTableSplitFields("[{\"catalogName\":\"" + catalogName + "\",\"schemaName\":\"EXAMPLE\",\"tableName\":\"NUMBERS\"," + "\"splitField\":\"value\",\"calcStepEnable\":\"false\",\"dataReadOnly\":\"true\",\"splitCount\":\"3\"," + "\"fieldMinValue\":\"1\",\"fieldMaxValue\":\"5\"}]");
    tableHandle = getTableHandle(new SchemaTableName("example", "numbers"));
    splitManager = new DataSourceTableSplitManager(config, jdbcClient, nodeManager);
    TableSplitConfig tableSplitConfig = splitManager.getTableSplitConfig(tableHandle);
    tableSplitConfig.setTableSplitFieldValid(true);
    ConnectorSplitSource splitSource = splitManager.getTableSplits(JdbcIdentity.from(SESSION), tableHandle);
    List<ConnectorSplit> splits = getFutureValue(splitSource.getNextBatch(NOT_PARTITIONED, 1000)).getSplits();
    int index = 0;
    for (ConnectorSplit split : splits) {
        JdbcSplit jdbcSplit = (JdbcSplit) split;
        assertEquals(Long.parseLong(jdbcSplit.getRangeStart()), rangeArray[index][0]);
        assertEquals(Long.parseLong(jdbcSplit.getRangEnd()), rangeArray[index][1]);
        index++;
        assertFalse(index > 3);
    }
}
Also used : JdbcSplit(io.prestosql.plugin.jdbc.JdbcSplit) ConnectorSplitSource(io.prestosql.spi.connector.ConnectorSplitSource) SchemaTableName(io.prestosql.spi.connector.SchemaTableName) ConnectorSplit(io.prestosql.spi.connector.ConnectorSplit) BaseJdbcConfig(io.prestosql.plugin.jdbc.BaseJdbcConfig) Test(org.testng.annotations.Test)

Example 28 with ConnectorSplitSource

use of io.prestosql.spi.connector.ConnectorSplitSource in project hetu-core by openlookeng.

the class TestDataSourceTableSplitManager method testGetTableSplits02.

// fieldMinValue and fieldMaxValue is null and dataReadOnly is true
@Test
public void testGetTableSplits02() {
    long[][] rangeArray = new long[][] { { 0, 6 }, { 6, 12 } };
    BaseJdbcConfig config = new BaseJdbcConfig();
    config.setPushDownEnable(true).setTableSplitEnable(true).setTableSplitFields("[{\"catalogName\":\"" + catalogName + "\",\"schemaName\":\"EXAMPLE\",\"tableName\":\"NUMBERS\"," + "\"splitField\":\"value\",\"calcStepEnable\":\"false\",\"dataReadOnly\":\"true\",\"splitCount\":\"2\"," + "\"fieldMinValue\":\"\",\"fieldMaxValue\":\"\"}]");
    tableHandle = getTableHandle(new SchemaTableName("example", "numbers"));
    splitManager = new DataSourceTableSplitManager(config, jdbcClient, nodeManager);
    TableSplitConfig tableSplitConfig = splitManager.getTableSplitConfig(tableHandle);
    tableSplitConfig.setTableSplitFieldValid(true);
    ConnectorSplitSource splitSource = splitManager.getTableSplits(JdbcIdentity.from(SESSION), tableHandle);
    List<ConnectorSplit> splits = getFutureValue(splitSource.getNextBatch(NOT_PARTITIONED, 1000)).getSplits();
    int index = 0;
    for (ConnectorSplit split : splits) {
        JdbcSplit jdbcSplit = (JdbcSplit) split;
        assertEquals(Long.parseLong(jdbcSplit.getRangeStart()), rangeArray[index][0]);
        assertEquals(Long.parseLong(jdbcSplit.getRangEnd()), rangeArray[index][1]);
        index++;
        assertFalse(index > 2);
    }
}
Also used : JdbcSplit(io.prestosql.plugin.jdbc.JdbcSplit) ConnectorSplitSource(io.prestosql.spi.connector.ConnectorSplitSource) SchemaTableName(io.prestosql.spi.connector.SchemaTableName) ConnectorSplit(io.prestosql.spi.connector.ConnectorSplit) BaseJdbcConfig(io.prestosql.plugin.jdbc.BaseJdbcConfig) Test(org.testng.annotations.Test)

Example 29 with ConnectorSplitSource

use of io.prestosql.spi.connector.ConnectorSplitSource in project hetu-core by openlookeng.

the class TestDataSourceTableSplitManager method testGetTableSplits14.

// splitField is not number type
@Test
public void testGetTableSplits14() {
    BaseJdbcConfig config = new BaseJdbcConfig();
    config.setPushDownEnable(true).setTableSplitEnable(true).setTableSplitFields("[{\"catalogName\":\"" + catalogName + "\",\"schemaName\":\"EXAMPLE\",\"tableName\":\"NUMBERS\"," + "\"splitField\":\"text_short\",\"calcStepEnable\":\"false\",\"dataReadOnly\":\"true\",\"splitCount\":\"2\"," + "\"fieldMinValue\":\"1\",\"fieldMaxValue\":\"12\"}]");
    tableHandle = getTableHandle(new SchemaTableName("example", "numbers"));
    splitManager = new DataSourceTableSplitManager(config, jdbcClient, nodeManager);
    ConnectorSplitSource splitSource = splitManager.getSplits(JdbcIdentity.from(SESSION), tableHandle);
}
Also used : ConnectorSplitSource(io.prestosql.spi.connector.ConnectorSplitSource) SchemaTableName(io.prestosql.spi.connector.SchemaTableName) BaseJdbcConfig(io.prestosql.plugin.jdbc.BaseJdbcConfig) Test(org.testng.annotations.Test)

Example 30 with ConnectorSplitSource

use of io.prestosql.spi.connector.ConnectorSplitSource in project hetu-core by openlookeng.

the class TestDataSourceTableSplitManager method testGetTableSplits09.

// splitField is not exist.
@Test
public void testGetTableSplits09() {
    BaseJdbcConfig config = new BaseJdbcConfig();
    config.setPushDownEnable(true).setTableSplitEnable(true).setTableSplitFields("[{\"catalogName\":\"" + catalogName + "\",\"schemaName\":\"EXAMPLE\",\"tableName\":\"NUMBERS\"," + "\"calcStepEnable\":\"false\",\"dataReadOnly\":\"true\",\"splitCount\":\"2\"," + "\"fieldMinValue\":\"1\",\"fieldMaxValue\":\"12\"}]");
    tableHandle = getTableHandle(new SchemaTableName("example", "numbers"));
    splitManager = new DataSourceTableSplitManager(config, jdbcClient, nodeManager);
    ConnectorSplitSource splitSource = splitManager.getTableSplits(JdbcIdentity.from(SESSION), tableHandle);
    assertEquals(splitSource.getClass(), FixedSplitSource.class);
}
Also used : ConnectorSplitSource(io.prestosql.spi.connector.ConnectorSplitSource) SchemaTableName(io.prestosql.spi.connector.SchemaTableName) BaseJdbcConfig(io.prestosql.plugin.jdbc.BaseJdbcConfig) Test(org.testng.annotations.Test)

Aggregations

ConnectorSplitSource (io.prestosql.spi.connector.ConnectorSplitSource)45 Test (org.testng.annotations.Test)36 ConnectorSession (io.prestosql.spi.connector.ConnectorSession)27 SchemaTableName (io.prestosql.spi.connector.SchemaTableName)19 ColumnHandle (io.prestosql.spi.connector.ColumnHandle)18 ConnectorSplit (io.prestosql.spi.connector.ConnectorSplit)17 ConnectorTransactionHandle (io.prestosql.spi.connector.ConnectorTransactionHandle)17 BaseJdbcConfig (io.prestosql.plugin.jdbc.BaseJdbcConfig)14 ConnectorTableHandle (io.prestosql.spi.connector.ConnectorTableHandle)14 TupleDomain (io.prestosql.spi.predicate.TupleDomain)13 TopicName (org.apache.pulsar.common.naming.TopicName)12 ConnectorMetadata (io.prestosql.spi.connector.ConnectorMetadata)10 TestingConnectorSession (io.prestosql.testing.TestingConnectorSession)10 HashMap (java.util.HashMap)10 Collection (java.util.Collection)9 Domain (io.prestosql.spi.predicate.Domain)7 JdbcSplit (io.prestosql.plugin.jdbc.JdbcSplit)6 ConnectorPageSource (io.prestosql.spi.connector.ConnectorPageSource)6 PrestoException (io.prestosql.spi.PrestoException)5 ColumnMetadata (io.prestosql.spi.connector.ColumnMetadata)5