Package org.apache.iceberg
Interface TableScan
-
- All Superinterfaces:
Scan<TableScan,FileScanTask,CombinedScanTask>
- All Known Implementing Classes:
AllDataFilesTable.AllDataFilesTableScan
,AllDeleteFilesTable.AllDeleteFilesTableScan
,AllFilesTable.AllFilesTableScan
,AllManifestsTable.AllManifestsTableScan
,DataFilesTable.DataFilesTableScan
,DataTableScan
,DeleteFilesTable.DeleteFilesTableScan
,FilesTable.FilesTableScan
public interface TableScan extends Scan<TableScan,FileScanTask,CombinedScanTask>
API for configuring a table scan.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default TableScan
appendsAfter(long fromSnapshotId)
Create a newTableScan
to read appended data fromfromSnapshotId
exclusive to the current snapshot inclusive.default TableScan
appendsBetween(long fromSnapshotId, long toSnapshotId)
Create a newTableScan
to read appended data fromfromSnapshotId
exclusive totoSnapshotId
inclusive.TableScan
asOfTime(long timestampMillis)
Create a newTableScan
from this scan's configuration that will use the most recent snapshot as of the given time in milliseconds.Expression
filter()
Returns this scan's filterExpression
.boolean
isCaseSensitive()
Returns whether this scan should apply column name case sensitiveness as perScan.caseSensitive(boolean)
.default TableScan
select(java.lang.String... columns)
Create a newTableScan
from this that will read the given data columns.Snapshot
snapshot()
Returns theSnapshot
that will be used by this scan.Table
table()
Returns theTable
from which this scan loads data.TableScan
useSnapshot(long snapshotId)
Create a newTableScan
from this scan's configuration that will use the given snapshot by ID.-
Methods inherited from interface org.apache.iceberg.Scan
caseSensitive, filter, ignoreResiduals, includeColumnStats, option, planFiles, planTasks, planWith, project, schema, select, splitLookback, splitOpenFileCost, targetSplitSize
-
-
-
-
Method Detail
-
useSnapshot
TableScan useSnapshot(long snapshotId)
Create a newTableScan
from this scan's configuration that will use the given snapshot by ID.- Parameters:
snapshotId
- a snapshot ID- Returns:
- a new scan based on this with the given snapshot ID
- Throws:
java.lang.IllegalArgumentException
- if the snapshot cannot be found
-
asOfTime
TableScan asOfTime(long timestampMillis)
Create a newTableScan
from this scan's configuration that will use the most recent snapshot as of the given time in milliseconds.- Parameters:
timestampMillis
- a timestamp in milliseconds.- Returns:
- a new scan based on this with the current snapshot at the given time
- Throws:
java.lang.IllegalArgumentException
- if the snapshot cannot be found
-
select
default TableScan select(java.lang.String... columns)
Create a newTableScan
from this that will read the given data columns. This produces an expected schema that includes all fields that are either selected or used by this scan's filter expression.- Parameters:
columns
- column names from the table's schema- Returns:
- a new scan based on this with the given projection columns
-
filter
Expression filter()
Returns this scan's filterExpression
.- Returns:
- this scan's filter expression
-
appendsBetween
default TableScan appendsBetween(long fromSnapshotId, long toSnapshotId)
Create a newTableScan
to read appended data fromfromSnapshotId
exclusive totoSnapshotId
inclusive.- Parameters:
fromSnapshotId
- the last snapshot id read by the user, exclusivetoSnapshotId
- read append data up to this snapshot id- Returns:
- a table scan which can read append data from
fromSnapshotId
exclusive and up totoSnapshotId
inclusive
-
appendsAfter
default TableScan appendsAfter(long fromSnapshotId)
Create a newTableScan
to read appended data fromfromSnapshotId
exclusive to the current snapshot inclusive.- Parameters:
fromSnapshotId
- - the last snapshot id read by the user, exclusive- Returns:
- a table scan which can read append data from
fromSnapshotId
exclusive and up to current snapshot inclusive
-
snapshot
Snapshot snapshot()
Returns theSnapshot
that will be used by this scan.If the snapshot was not configured using
asOfTime(long)
oruseSnapshot(long)
, the current table snapshot will be used.- Returns:
- the Snapshot this scan will use
-
isCaseSensitive
boolean isCaseSensitive()
Returns whether this scan should apply column name case sensitiveness as perScan.caseSensitive(boolean)
.- Returns:
- true if case sensitive, false otherwise.
-
-