public QualifiedTablePrefix asQualifiedTablePrefix() { return new QualifiedTablePrefix(catalogName, schemaName, objectName); }
public QualifiedTablePrefix asQualifiedTablePrefix() { return new QualifiedTablePrefix(catalogName, schemaName, objectName); }
public static QualifiedTablePrefix tablePrefix(String catalog, Optional<String> schema, Optional<String> table) { QualifiedTablePrefix prefix = new QualifiedTablePrefix(catalog); if (schema.isPresent()) { prefix = new QualifiedTablePrefix(catalog, schema.get()); if (table.isPresent()) { prefix = new QualifiedTablePrefix(catalog, schema.get(), table.get()); } } return prefix; }
public static QualifiedTablePrefix tablePrefix(String catalog, Optional<String> schema, Optional<String> table) { QualifiedTablePrefix prefix = new QualifiedTablePrefix(catalog); if (schema.isPresent()) { prefix = new QualifiedTablePrefix(catalog, schema.get()); if (table.isPresent()) { prefix = new QualifiedTablePrefix(catalog, schema.get(), table.get()); } } return prefix; }
private Set<QualifiedTablePrefix> calculatePrefixesWithSchemaName( ConnectorSession connectorSession, TupleDomain<ColumnHandle> constraint, Optional<Predicate<Map<ColumnHandle, NullableValue>>> predicate) { Optional<Set<String>> schemas = filterString(constraint, SCHEMA_COLUMN_HANDLE); if (schemas.isPresent()) { return schemas.get().stream() .filter(this::isLowerCase) .map(schema -> new QualifiedTablePrefix(catalogName, schema)) .collect(toImmutableSet()); } Session session = ((FullConnectorSession) connectorSession).getSession(); return metadata.listSchemaNames(session, catalogName).stream() .filter(schema -> !predicate.isPresent() || predicate.get().test(schemaAsFixedValues(schema))) .map(schema -> new QualifiedTablePrefix(catalogName, schema)) .collect(toImmutableSet()); }
@Test public void testBadTable() { try { new QualifiedTablePrefix("catalog", null, "table"); fail(); } catch (RuntimeException e) { // ok } }
private Set<QualifiedTablePrefix> calculatePrefixesWithSchemaName( ConnectorSession connectorSession, TupleDomain<ColumnHandle> constraint, Optional<Predicate<Map<ColumnHandle, NullableValue>>> predicate) { Optional<Set<String>> schemas = filterString(constraint, SCHEMA_COLUMN_HANDLE); if (schemas.isPresent()) { return schemas.get().stream() .filter(this::isLowerCase) .map(schema -> new QualifiedTablePrefix(catalogName, schema)) .collect(toImmutableSet()); } Session session = ((FullConnectorSession) connectorSession).getSession(); return metadata.listSchemaNames(session, catalogName).stream() .filter(schema -> !predicate.isPresent() || predicate.get().test(schemaAsFixedValues(schema))) .map(schema -> new QualifiedTablePrefix(catalogName, schema)) .collect(toImmutableSet()); }
@Test public void testBadTable() { try { new QualifiedTablePrefix("catalog", null, "table"); fail(); } catch (RuntimeException e) { // ok } }
@Override public List<QualifiedObjectName> listTables(Session session, String catalog, String schema) { lock.readLock().lock(); try { return transaction(transactionManager, accessControl) .readOnly() .execute(session, transactionSession -> { return getMetadata().listTables(transactionSession, new QualifiedTablePrefix(catalog, schema)); }); } finally { lock.readLock().unlock(); } }
@Override public List<QualifiedObjectName> listTables(Session session, String catalog, String schema) { lock.readLock().lock(); try { return transaction(transactionManager, accessControl) .readOnly() .execute(session, transactionSession -> { return getMetadata().listTables(transactionSession, new QualifiedTablePrefix(catalog, schema)); }); } finally { lock.readLock().unlock(); } }
@Test public void testRoundTrip() { QualifiedTablePrefix table = new QualifiedTablePrefix("abc", "xyz", "fgh"); assertEquals(CODEC.fromJson(CODEC.toJson(table)), table); } }
@Test public void testCatalog() { QualifiedTablePrefix tableName = new QualifiedTablePrefix("catalog"); assertEquals("catalog", tableName.getCatalogName()); assertFalse(tableName.hasSchemaName()); assertFalse(tableName.hasTableName()); }
@Test public void testRoundTrip() { QualifiedTablePrefix table = new QualifiedTablePrefix("abc", "xyz", "fgh"); assertEquals(CODEC.fromJson(CODEC.toJson(table)), table); } }
@Test public void testSchema() { QualifiedTablePrefix tableName = new QualifiedTablePrefix("catalog", "schema"); assertEquals("catalog", tableName.getCatalogName()); assertTrue(tableName.hasSchemaName()); assertEquals("schema", tableName.getSchemaName().get()); assertFalse(tableName.hasTableName()); }
@Test public void testCatalog() { QualifiedTablePrefix tableName = new QualifiedTablePrefix("catalog"); assertEquals("catalog", tableName.getCatalogName()); assertFalse(tableName.hasSchemaName()); assertFalse(tableName.hasTableName()); }
@Test public void testSchema() { QualifiedTablePrefix tableName = new QualifiedTablePrefix("catalog", "schema"); assertEquals("catalog", tableName.getCatalogName()); assertTrue(tableName.hasSchemaName()); assertEquals("schema", tableName.getSchemaName().get()); assertFalse(tableName.hasTableName()); }
@Test public void testTable() { QualifiedTablePrefix tableName = new QualifiedTablePrefix("catalog", "schema", "table"); assertEquals("catalog", tableName.getCatalogName()); assertTrue(tableName.hasSchemaName()); assertEquals("schema", tableName.getSchemaName().get()); assertTrue(tableName.hasTableName()); assertEquals("table", tableName.getTableName().get()); }
@Test public void testTable() { QualifiedTablePrefix tableName = new QualifiedTablePrefix("catalog", "schema", "table"); assertEquals("catalog", tableName.getCatalogName()); assertTrue(tableName.hasSchemaName()); assertEquals("schema", tableName.getSchemaName().get()); assertTrue(tableName.hasTableName()); assertEquals("table", tableName.getTableName().get()); }
public List<QualifiedObjectName> listTables(Session session, String catalog, String schema) { return transaction(prestoServer.getTransactionManager(), prestoServer.getAccessControl()) .readOnly() .execute(session, transactionSession -> { return prestoServer.getMetadata().listTables(transactionSession, new QualifiedTablePrefix(catalog, schema)); }); }
/** * Tests information schema predicate pushdown when both schema and table name are specified. */ @Test public void testInformationSchemaPredicatePushdown() { TransactionId transactionId = transactionManager.beginTransaction(false); ImmutableMap.Builder<ColumnHandle, Domain> domains = new ImmutableMap.Builder<>(); domains.put(new InformationSchemaColumnHandle("table_schema"), Domain.singleValue(VARCHAR, Slices.utf8Slice("test_schema"))); domains.put(new InformationSchemaColumnHandle("table_name"), Domain.singleValue(VARCHAR, Slices.utf8Slice("test_view"))); Constraint<ColumnHandle> constraint = new Constraint<>(TupleDomain.withColumnDomains(domains.build())); InformationSchemaMetadata informationSchemaMetadata = new InformationSchemaMetadata("test_catalog", metadata); List<ConnectorTableLayoutResult> layoutResults = informationSchemaMetadata.getTableLayouts( createNewSession(transactionId), new InformationSchemaTableHandle("test_catalog", "information_schema", "views"), constraint, Optional.empty()); assertEquals(layoutResults.size(), 1); ConnectorTableLayoutHandle handle = layoutResults.get(0).getTableLayout().getHandle(); assertTrue(handle instanceof InformationSchemaTableLayoutHandle); InformationSchemaTableLayoutHandle tableHandle = (InformationSchemaTableLayoutHandle) handle; assertEquals(tableHandle.getPrefixes(), ImmutableSet.of(new QualifiedTablePrefix("test_catalog", "test_schema", "test_view"))); }