jackye1995 commented on code in PR #9695: URL: https://github.com/apache/iceberg/pull/9695#discussion_r1623316275
########## open-api/rest-catalog-open-api.yaml: ########## @@ -3642,6 +3781,173 @@ components: type: integer description: "List of equality field IDs" + PreplanTableRequest: + type: object + required: + - table-scan-context + properties: + table-scan-context: + $ref: '#/components/schemas/TableScanContext' + + PlanTableRequest: + type: object + required: + - table-scan-context + properties: + table-scan-context: + $ref: '#/components/schemas/TableScanContext' + plan-task: + $ref: '#/components/schemas/PlanTask' + stats-fields: + description: + A list of fields that the client requests the server to send statistics + in each `FileScanTask` returned in the response + type: array + items: + $ref: '#/components/schemas/FieldName' + + TableScanContext: + anyOf: + - $ref: '#/components/schemas/SnapshotScanContext' + - $ref: '#/components/schemas/IncrementalSnapshotScanContext' + + BaseTableScanContext: Review Comment: After a few different attempts to refactor this part, I ended up with this model. The main consideration is that this allows different types of scans, as we see for single snapshot vs incremental scan. And I would anticipate some metadata table planning like manifest table and partition table can also be done through this route in the future, and they can just supply another scan context. In addition, this also allows us to reuse the context object definition in both PlanTableRequest and PreplanTableRequest. I remember we said that we do not want to share too many code, but I think this logical division overall makes sense, as the parameters left in the PlanTableRequest are indeed the ones only controlling the PlanTableResponse related bahaviors. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org