rahil-c commented on code in PR #9695: URL: https://github.com/apache/iceberg/pull/9695#discussion_r1731909067
########## open-api/rest-catalog-open-api.yaml: ########## @@ -3647,6 +3952,124 @@ components: type: integer description: "List of equality field IDs" + PlanTableRequest: + type: object + properties: + snapshot-id: + description: + The ID of the snapshot to use for the table scan. + type: integer + format: int64 + select: + description: + A list of fields in schema that are selected in a table scan. + When not specified, all columns in the requested schema should be selected. + type: array + items: + $ref: '#/components/schemas/FieldName' + filter: + description: + an unbounded expression to describe the filters to apply to a table scan, + $ref: '#/components/schemas/Expression' + case-sensitive: + description: If field selection and filtering should be case sensitive + type: boolean + default: true + use-snapshot-schema: + description: + If the client is performing time travel, the snapshot schema should be used. + For clients performing a plan for a branch, should default to using the table schema. + type: boolean + default: false + start-snapshot-id: + description: The ID of the starting snapshot of the incremental scan + type: integer + format: int64 + end-snapshot-id: + description: + The ID of the inclusive ending snapshot of the incremental scan. + If not specified, the snapshot at the main branch head will be used as the end snapshot. + type: integer + format: int64 + 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' + + GetTasksStatusRequest: + type: object + required: + - plan-id + properties: + plan-id: + description: id used to track status of `planTable` + type: string + + RetrieveTasksRequest: + type: object + required: + - plan-task + properties: + plan-task: + $ref: '#/components/schemas/PlanTask' + + CancelPlanRequest: + type: object + required: + - plan-id + properties: + plan-id: + description: id used to cancel `planTable` operation + type: string + + FieldName: + description: + A field name that follows the Iceberg naming standard, and can be used in APIs like + Java `Schema#findField(String name)`. + + The nested field name follows these rules + - nested struct fields are named by concatenating field names at each struct level using dot (`.`) delimiter, + e.g. employer.contact_info.address.zip_code + - nested fields in a map key are named using the keyword `key`, e.g. employee_address_map.key.first_name + - nested fields in a map value are named using the keyword `value`, e.g. employee_address_map.value.zip_code + - nested fields in a list are named using the keyword `element`, e.g. employees.element.first_name + type: string + + PlanTask: + description: + An opaque JSON object that contains information provided by the REST server + to be utilized by clients for distributed table scan planning; should be supplied + as input in `RetrieveTasks` operation. + type: object + + PlanStatus: + description: + Represents the current status of the `planTable` operation. + type: string + enum: [started, cancelled, failed] Review Comment: Yea I can rename to `planning` instead of `started`. As for if there should be a `complete/finished` enum I thought the scenario when the client receives tasks from this endpoint indicates that the `plan` is complete, thus not requiring an additional enum. Let me know what you guys think is cleaner though. -- 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