@Override public ConnectorPageSource createPageSource(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorSplit split, List<ColumnHandle> columns) { return new RecordPageSource(recordSetProvider.getRecordSet(transactionHandle, session, split, columns)); } }
@Override public void close() { inner.close(); } }
@Override public long getCompletedBytes() { return inner.getCompletedBytes(); }
@Override public Page getOutput() { if (split == null) { return null; } if (!finishing && pageSource == null && cursor == null) { ConnectorPageSource source = pageSourceProvider.createPageSource(operatorContext.getSession(), split, columns); if (source instanceof RecordPageSource) { cursor = ((RecordPageSource) source).getCursor(); } else { pageSource = source; } } if (pageSource != null) { return processPageSource(); } else { return processColumnSource(); } }
@Override public Page getNextPage() { return inner.getNextPage(); }
@Override public Page getOutput() { if (split == null) { return null; } if (!finishing && pageSource == null && cursor == null) { ConnectorPageSource source = pageSourceProvider.createPageSource(operatorContext.getSession(), split, columns); if (source instanceof RecordPageSource) { cursor = ((RecordPageSource) source).getCursor(); } else { pageSource = source; } } if (pageSource != null) { return processPageSource(); } else { return processColumnSource(); } }
@Override public ConnectorPageSource createPageSource(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorSplit split, List<ColumnHandle> columns) { return new RecordPageSource(recordSetProvider.getRecordSet(transactionHandle, session, split, columns)); } }
private static void assertFileContents( ConnectorSession session, File dataFile, Iterator<?>[] expectedValues, List<String> columnNames, List<Type> columnTypes) throws IOException { try (ConnectorPageSource pageSource = getFileFormat().createFileFormatReader( session, HDFS_ENVIRONMENT, dataFile, columnNames, columnTypes)) { if (pageSource instanceof RecordPageSource) { assertRecordCursor(columnTypes, expectedValues, ((RecordPageSource) pageSource).getCursor()); } else { assertPageSource(columnTypes, expectedValues, pageSource); } assertFalse(stream(expectedValues).allMatch(Iterator::hasNext)); } }
@Override public ConnectorPageSource lookup(RecordSet rawInputRecordSet) { // convert the input record set from the column ordering in the query to // match the column ordering of the index RecordSet inputRecordSet = keyFormatter.apply(rawInputRecordSet); // lookup the values in the index RecordSet rawOutputRecordSet = indexedTable.lookupKeys(inputRecordSet); // convert the output record set of the index into the column ordering // expect by the query return new RecordPageSource(outputFormatter.apply(rawOutputRecordSet)); } }
private static void assertFileContents( ConnectorSession session, File dataFile, Iterator<?>[] expectedValues, List<String> columnNames, List<Type> columnTypes) throws IOException { try (ConnectorPageSource pageSource = getFileFormat().createFileFormatReader( session, HDFS_ENVIRONMENT, dataFile, columnNames, columnTypes)) { if (pageSource instanceof RecordPageSource) { assertRecordCursor(columnTypes, expectedValues, ((RecordPageSource) pageSource).getCursor()); } else { assertPageSource(columnTypes, expectedValues, pageSource); } assertFalse(stream(expectedValues).allMatch(Iterator::hasNext)); } }
@Override public ConnectorPageSource createPageSource(ConnectorTransactionHandle transactionHandle, ConnectorSession session, ConnectorSplit split, List<ColumnHandle> columns) { KuduRecordSet recordSet = (KuduRecordSet) recordSetProvider.getRecordSet(transactionHandle, session, split, columns); if (columns.contains(KuduColumnHandle.ROW_ID_HANDLE)) { return new KuduUpdatablePageSource(recordSet); } else { return new RecordPageSource(recordSet); } } }
false); RecordCursor cursor = ((RecordPageSource) pageSource.get()).getCursor();
public KuduUpdatablePageSource(KuduRecordSet recordSet) { this.clientSession = recordSet.getClientSession(); this.table = recordSet.getTable(); this.inner = new RecordPageSource(recordSet); }
false); RecordCursor cursor = ((RecordPageSource) pageSource.get()).getCursor();
private static <T extends TpchEntity> ConnectorPageSource createPageSource(TpchTable<T> table, List<String> columnNames, SplitInfo splitInfo) { List<TpchColumn<T>> columns = columnNames.stream().map(table::getColumn).collect(toList()); return new RecordPageSource(createTpchRecordSet( table, columns, schemaNameToScaleFactor(splitInfo.getSchemaName()), splitInfo.getPartNumber(), splitInfo.getTotalParts(), TupleDomain.all())); }
protected static void assertPageSourceType(ConnectorPageSource pageSource, HiveStorageFormat hiveStorageFormat) { if (pageSource instanceof RecordPageSource) { RecordCursor hiveRecordCursor = ((RecordPageSource) pageSource).getCursor(); hiveRecordCursor = ((HiveRecordCursor) hiveRecordCursor).getRegularColumnRecordCursor(); if (hiveRecordCursor instanceof HiveCoercionRecordCursor) { hiveRecordCursor = ((HiveCoercionRecordCursor) hiveRecordCursor).getRegularColumnRecordCursor(); } assertInstanceOf(hiveRecordCursor, recordCursorType(hiveStorageFormat), hiveStorageFormat.name()); } else { assertInstanceOf(((HivePageSource) pageSource).getPageSource(), pageSourceType(hiveStorageFormat), hiveStorageFormat.name()); } }
return new RecordPageSource(new MappedRecordSet(toRecordSet(systemTransaction.getConnectorTransactionHandle(), systemTable, session, newContraint), userToSystemFieldIndex.build()));
protected static void assertPageSourceType(ConnectorPageSource pageSource, HiveStorageFormat hiveStorageFormat) { if (pageSource instanceof RecordPageSource) { RecordCursor hiveRecordCursor = ((RecordPageSource) pageSource).getCursor(); hiveRecordCursor = ((HiveRecordCursor) hiveRecordCursor).getRegularColumnRecordCursor(); if (hiveRecordCursor instanceof HiveCoercionRecordCursor) { hiveRecordCursor = ((HiveCoercionRecordCursor) hiveRecordCursor).getRegularColumnRecordCursor(); } assertInstanceOf(hiveRecordCursor, recordCursorType(hiveStorageFormat), hiveStorageFormat.name()); } else { assertInstanceOf(((HivePageSource) pageSource).getPageSource(), pageSourceType(hiveStorageFormat), hiveStorageFormat.name()); } }
return new RecordPageSource(new MappedRecordSet(toRecordSet(systemTransaction.getConnectorTransactionHandle(), systemTable, session, newContraint), userToSystemFieldIndex.build()));
@Override protected ConnectorPageSource createLookupPageSource(SplitInfo splitInfo, List<String> outputColumnNames) { IndexedTable indexedTable = indexedData.getIndexedTable( splitInfo.getTableName(), schemaNameToScaleFactor(splitInfo.getSchemaName()), ImmutableSet.copyOf(splitInfo.getLookupColumnNames())) .orElseThrow(() -> new IllegalArgumentException(String.format("No such index: %s%s", splitInfo.getTableName(), splitInfo.getLookupColumnNames()))); List<Type> lookupColumnTypes = types(splitInfo.getTableName(), splitInfo.getLookupColumnNames()); RecordSet keyRecordSet = new ListBasedRecordSet(splitInfo.getKeys(), lookupColumnTypes); RecordSet outputRecordSet = lookupIndexKeys(keyRecordSet, indexedTable, outputColumnNames); return new RecordPageSource(outputRecordSet); }