Skip to content

feat: basic table scan planning #112

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

Conversation

gty404
Copy link
Contributor

@gty404 gty404 commented May 27, 2025

Introducing basic scan table data interface

namespace iceberg {

/// \brief Builder class for creating TableScan instances.
class ICEBERG_EXPORT TableScanBuilder {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need an abstraction for common parts of other scan builders? We may need more scan types for incremental, append-only, changelog, etc. If there's not much to abstract, I'm fine to keep it as is for now and refactor them later.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, in the Java implementation, the hierarchy of Scan and ScanTask has been defined. I will review this part and try to make it more abstract.

};

/// \brief Represents a task to scan a portion of a data file.
struct ICEBERG_EXPORT FileScanTask {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before defining FileScanTask, should we abstract it a little bit? I haven't looked at other implementations yet. From the java impl, there's a hierarchy of ScanTask and FileScanTask is a combination of ContentScanTask and PartitionScanTask.

I'm not sure if we want to take the complexity to support the java SplittableScanTask, MergableScanTask, and ScanTaskGroup. We can revisit these later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants