@Override public RecordCursor cursor(ConnectorTransactionHandle transactionHandle, ConnectorSession connectorSession, TupleDomain<Integer> constraint) { Session session = toSession(transactionHandle, connectorSession); Optional<String> catalogFilter = stringFilter(constraint, 0); Optional<String> schemaFilter = stringFilter(constraint, 1); Optional<String> tableFilter = stringFilter(constraint, 2); Builder table = InMemoryRecordSet.builder(METADATA); for (String catalog : filter(listCatalogs(session, metadata, accessControl).keySet(), catalogFilter)) { QualifiedTablePrefix prefix = FilterUtil.tablePrefix(catalog, schemaFilter, tableFilter); for (Entry<SchemaTableName, List<ColumnMetadata>> entry : listTableColumns(session, metadata, accessControl, prefix).entrySet()) { addColumnRows(table, catalog, entry.getKey(), entry.getValue()); } } return table.build().cursor(); }
@Override public RecordCursor cursor(ConnectorTransactionHandle transactionHandle, ConnectorSession connectorSession, TupleDomain<Integer> constraint) { Session session = toSession(transactionHandle, connectorSession); Optional<String> catalogFilter = stringFilter(constraint, 0); Optional<String> schemaFilter = stringFilter(constraint, 1); Optional<String> tableFilter = stringFilter(constraint, 2); Builder table = InMemoryRecordSet.builder(METADATA); for (String catalog : filter(listCatalogs(session, metadata, accessControl).keySet(), catalogFilter)) { QualifiedTablePrefix prefix = FilterUtil.tablePrefix(catalog, schemaFilter, tableFilter); for (Entry<SchemaTableName, List<ColumnMetadata>> entry : listTableColumns(session, metadata, accessControl, prefix).entrySet()) { addColumnRows(table, catalog, entry.getKey(), entry.getValue()); } } return table.build().cursor(); }
private InternalTable buildColumns(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_COLUMNS)); for (QualifiedTablePrefix prefix : prefixes) { for (Entry<SchemaTableName, List<ColumnMetadata>> entry : listTableColumns(session, metadata, accessControl, prefix).entrySet()) { SchemaTableName tableName = entry.getKey(); int ordinalPosition = 1; for (ColumnMetadata column : entry.getValue()) { if (column.isHidden()) { continue; } table.add( prefix.getCatalogName(), tableName.getSchemaName(), tableName.getTableName(), column.getName(), ordinalPosition, null, "YES", column.getType().getDisplayName(), column.getComment(), column.getExtraInfo()); ordinalPosition++; } } } return table.build(); }
private InternalTable buildColumns(Session session, Set<QualifiedTablePrefix> prefixes) { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_COLUMNS)); for (QualifiedTablePrefix prefix : prefixes) { for (Entry<SchemaTableName, List<ColumnMetadata>> entry : listTableColumns(session, metadata, accessControl, prefix).entrySet()) { SchemaTableName tableName = entry.getKey(); int ordinalPosition = 1; for (ColumnMetadata column : entry.getValue()) { if (column.isHidden()) { continue; } table.add( prefix.getCatalogName(), tableName.getSchemaName(), tableName.getTableName(), column.getName(), ordinalPosition, null, "YES", column.getType().getDisplayName(), column.getComment(), column.getExtraInfo()); ordinalPosition++; } } } return table.build(); }