@Override public JdbcTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName) { return jdbcClient.getTableHandle(tableName); }
@Override public Map<SchemaTableName, List<ColumnMetadata>> listTableColumns(ConnectorSession session, SchemaTablePrefix prefix) { ImmutableMap.Builder<SchemaTableName, List<ColumnMetadata>> columns = ImmutableMap.builder(); List<SchemaTableName> tables; if (prefix.getTableName() != null) { tables = ImmutableList.of(new SchemaTableName(prefix.getSchemaName(), prefix.getTableName())); } else { tables = listTables(session, prefix.getSchemaName()); } for (SchemaTableName tableName : tables) { try { JdbcTableHandle tableHandle = jdbcClient.getTableHandle(tableName); if (tableHandle == null) { continue; } columns.put(tableName, getTableMetadata(session, tableHandle).getColumns()); } catch (TableNotFoundException e) { // table disappeared during listing operation } } return columns.build(); }
@Test public void testMetadataWithSchemaPattern() { SchemaTableName schemaTableName = new SchemaTableName("exa_ple", "num_ers"); JdbcTableHandle table = jdbcClient.getTableHandle(schemaTableName); assertNotNull(table, "table is null"); assertEquals(jdbcClient.getColumns(session, table), ImmutableList.of( new JdbcColumnHandle(CONNECTOR_ID, "TE_T", JDBC_VARCHAR, VARCHAR), new JdbcColumnHandle(CONNECTOR_ID, "VA%UE", JDBC_BIGINT, BIGINT))); }
public Map<String, JdbcColumnHandle> getColumnHandles(String schemaName, String tableName) { JdbcTableHandle tableHandle = jdbcClient.getTableHandle(new SchemaTableName(schemaName, tableName)); List<JdbcColumnHandle> columns = jdbcClient.getColumns(session, tableHandle); checkArgument(columns != null, "table not found: %s.%s", schemaName, tableName); ImmutableMap.Builder<String, JdbcColumnHandle> columnHandles = ImmutableMap.builder(); for (JdbcColumnHandle column : columns) { columnHandles.put(column.getColumnMetadata().getName(), column); } return columnHandles.build(); } }
@BeforeClass public void setUp() throws Exception { database = new TestingDatabase(); jdbcClient = database.getJdbcClient(); split = database.getSplit("example", "numbers"); table = jdbcClient.getTableHandle(new SchemaTableName("example", "numbers")); Map<String, JdbcColumnHandle> columns = database.getColumnHandles("example", "numbers"); textColumn = columns.get("text"); textShortColumn = columns.get("text_short"); valueColumn = columns.get("value"); }
@Test public void testMetadataWithFloatAndDoubleCol() { SchemaTableName schemaTableName = new SchemaTableName("exa_ple", "table_with_float_col"); JdbcTableHandle table = jdbcClient.getTableHandle(schemaTableName); assertNotNull(table, "table is null"); assertEquals(jdbcClient.getColumns(session, table), ImmutableList.of( new JdbcColumnHandle(CONNECTOR_ID, "COL1", JDBC_BIGINT, BIGINT), new JdbcColumnHandle(CONNECTOR_ID, "COL2", JDBC_DOUBLE, DOUBLE), new JdbcColumnHandle(CONNECTOR_ID, "COL3", JDBC_DOUBLE, DOUBLE), new JdbcColumnHandle(CONNECTOR_ID, "COL4", JDBC_REAL, REAL))); } }
@Test public void testMetadata() { assertTrue(jdbcClient.getSchemaNames().containsAll(ImmutableSet.of("example", "tpch"))); assertEquals(jdbcClient.getTableNames("example"), ImmutableList.of( new SchemaTableName("example", "numbers"), new SchemaTableName("example", "view_source"), new SchemaTableName("example", "view"))); assertEquals(jdbcClient.getTableNames("tpch"), ImmutableList.of( new SchemaTableName("tpch", "lineitem"), new SchemaTableName("tpch", "orders"))); SchemaTableName schemaTableName = new SchemaTableName("example", "numbers"); JdbcTableHandle table = jdbcClient.getTableHandle(schemaTableName); assertNotNull(table, "table is null"); assertEquals(table.getCatalogName(), catalogName.toUpperCase(ENGLISH)); assertEquals(table.getSchemaName(), "EXAMPLE"); assertEquals(table.getTableName(), "NUMBERS"); assertEquals(table.getSchemaTableName(), schemaTableName); assertEquals(jdbcClient.getColumns(session, table), ImmutableList.of( new JdbcColumnHandle(CONNECTOR_ID, "TEXT", JDBC_VARCHAR, VARCHAR), new JdbcColumnHandle(CONNECTOR_ID, "TEXT_SHORT", JDBC_VARCHAR, createVarcharType(32)), new JdbcColumnHandle(CONNECTOR_ID, "VALUE", JDBC_BIGINT, BIGINT))); }
public JdbcSplit getSplit(String schemaName, String tableName) { JdbcTableHandle jdbcTableHandle = jdbcClient.getTableHandle(new SchemaTableName(schemaName, tableName)); JdbcTableLayoutHandle jdbcLayoutHandle = new JdbcTableLayoutHandle(jdbcTableHandle, TupleDomain.all()); ConnectorSplitSource splits = jdbcClient.getSplits(jdbcLayoutHandle); return (JdbcSplit) getOnlyElement(getFutureValue(splits.getNextBatch(NOT_PARTITIONED, 1000)).getSplits()); }
@Override public JdbcTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName) { return jdbcClient.getTableHandle(tableName); }
@Override public Map<SchemaTableName, List<ColumnMetadata>> listTableColumns(ConnectorSession session, SchemaTablePrefix prefix) { ImmutableMap.Builder<SchemaTableName, List<ColumnMetadata>> columns = ImmutableMap.builder(); for (SchemaTableName tableName : listTables(session, prefix.getSchemaName())) { try { JdbcTableHandle tableHandle = jdbcClient.getTableHandle(tableName); if (tableHandle == null) { continue; } columns.put(tableName, getTableMetadata(session, tableHandle).getColumns()); } catch (TableNotFoundException e) { // table disappeared during listing operation } } return columns.build(); }
public Map<String, JdbcColumnHandle> getColumnHandles(String schemaName, String tableName) { JdbcTableHandle tableHandle = jdbcClient.getTableHandle(new SchemaTableName(schemaName, tableName)); List<JdbcColumnHandle> columns = jdbcClient.getColumns(session, tableHandle); checkArgument(columns != null, "table not found: %s.%s", schemaName, tableName); ImmutableMap.Builder<String, JdbcColumnHandle> columnHandles = ImmutableMap.builder(); for (JdbcColumnHandle column : columns) { columnHandles.put(column.getColumnMetadata().getName(), column); } return columnHandles.build(); } }
@Test public void testMetadataWithSchemaPattern() { SchemaTableName schemaTableName = new SchemaTableName("exa_ple", "num_ers"); JdbcTableHandle table = jdbcClient.getTableHandle(schemaTableName); assertNotNull(table, "table is null"); assertEquals(jdbcClient.getColumns(session, table), ImmutableList.of( new JdbcColumnHandle(CONNECTOR_ID, "TE_T", JDBC_VARCHAR, VARCHAR), new JdbcColumnHandle(CONNECTOR_ID, "VA%UE", JDBC_BIGINT, BIGINT))); }
@BeforeClass public void setUp() throws Exception { database = new TestingDatabase(); jdbcClient = database.getJdbcClient(); split = database.getSplit("example", "numbers"); table = jdbcClient.getTableHandle(new SchemaTableName("example", "numbers")); Map<String, JdbcColumnHandle> columns = database.getColumnHandles("example", "numbers"); textColumn = columns.get("text"); textShortColumn = columns.get("text_short"); valueColumn = columns.get("value"); }
@Test public void testMetadataWithFloatAndDoubleCol() { SchemaTableName schemaTableName = new SchemaTableName("exa_ple", "table_with_float_col"); JdbcTableHandle table = jdbcClient.getTableHandle(schemaTableName); assertNotNull(table, "table is null"); assertEquals(jdbcClient.getColumns(session, table), ImmutableList.of( new JdbcColumnHandle(CONNECTOR_ID, "COL1", JDBC_BIGINT, BIGINT), new JdbcColumnHandle(CONNECTOR_ID, "COL2", JDBC_DOUBLE, DOUBLE), new JdbcColumnHandle(CONNECTOR_ID, "COL3", JDBC_DOUBLE, DOUBLE), new JdbcColumnHandle(CONNECTOR_ID, "COL4", JDBC_REAL, REAL))); } }
@Test public void testMetadata() { assertTrue(jdbcClient.getSchemaNames().containsAll(ImmutableSet.of("example", "tpch"))); assertEquals(jdbcClient.getTableNames("example"), ImmutableList.of( new SchemaTableName("example", "numbers"), new SchemaTableName("example", "view_source"), new SchemaTableName("example", "view"))); assertEquals(jdbcClient.getTableNames("tpch"), ImmutableList.of( new SchemaTableName("tpch", "lineitem"), new SchemaTableName("tpch", "orders"))); SchemaTableName schemaTableName = new SchemaTableName("example", "numbers"); JdbcTableHandle table = jdbcClient.getTableHandle(schemaTableName); assertNotNull(table, "table is null"); assertEquals(table.getCatalogName(), catalogName.toUpperCase(ENGLISH)); assertEquals(table.getSchemaName(), "EXAMPLE"); assertEquals(table.getTableName(), "NUMBERS"); assertEquals(table.getSchemaTableName(), schemaTableName); assertEquals(jdbcClient.getColumns(session, table), ImmutableList.of( new JdbcColumnHandle(CONNECTOR_ID, "TEXT", JDBC_VARCHAR, VARCHAR), new JdbcColumnHandle(CONNECTOR_ID, "TEXT_SHORT", JDBC_VARCHAR, createVarcharType(32)), new JdbcColumnHandle(CONNECTOR_ID, "VALUE", JDBC_BIGINT, BIGINT))); }
public JdbcSplit getSplit(String schemaName, String tableName) { JdbcTableHandle jdbcTableHandle = jdbcClient.getTableHandle(new SchemaTableName(schemaName, tableName)); JdbcTableLayoutHandle jdbcLayoutHandle = new JdbcTableLayoutHandle(jdbcTableHandle, TupleDomain.all()); ConnectorSplitSource splits = jdbcClient.getSplits(jdbcLayoutHandle); return (JdbcSplit) getOnlyElement(getFutureValue(splits.getNextBatch(NOT_PARTITIONED, 1000)).getSplits()); }