diff --git a/open-api/rest-catalog-open-api.py b/open-api/rest-catalog-open-api.py index c8889271b203..c193b53e9452 100644 --- a/open-api/rest-catalog-open-api.py +++ b/open-api/rest-catalog-open-api.py @@ -347,6 +347,11 @@ class RemoveStatisticsUpdate(BaseUpdate): snapshot_id: int = Field(..., alias='snapshot-id') +class RemovePartitionStatisticsUpdate(BaseUpdate): + action: Literal['remove-partition-statistics'] + snapshot_id: int = Field(..., alias='snapshot-id') + + class TableRequirement(BaseModel): type: str @@ -618,6 +623,12 @@ class BlobMetadata(BaseModel): properties: Optional[Dict[str, Any]] = None +class PartitionStatisticsFile(BaseModel): + snapshot_id: int = Field(..., alias='snapshot-id') + statistics_path: str = Field(..., alias='statistics-path') + file_size_in_bytes: int = Field(..., alias='file-size-in-bytes') + + class CreateNamespaceRequest(BaseModel): namespace: Namespace properties: Optional[Dict[str, str]] = Field( @@ -638,6 +649,13 @@ class TransformTerm(BaseModel): term: Reference +class SetPartitionStatisticsUpdate(BaseUpdate): + action: Literal['set-partition-statistics'] + partition_statistics: PartitionStatisticsFile = Field( + ..., alias='partition-statistics' + ) + + class ReportMetricsRequest2(CommitReport): report_type: str = Field(..., alias='report-type') @@ -754,6 +772,12 @@ class TableMetadata(BaseModel): last_sequence_number: Optional[int] = Field(None, alias='last-sequence-number') snapshot_log: Optional[SnapshotLog] = Field(None, alias='snapshot-log') metadata_log: Optional[MetadataLog] = Field(None, alias='metadata-log') + statistics_files: Optional[List[StatisticsFile]] = Field( + None, alias='statistics-files' + ) + partition_statistics_files: Optional[List[PartitionStatisticsFile]] = Field( + None, alias='partition-statistics-files' + ) class ViewMetadata(BaseModel): diff --git a/open-api/rest-catalog-open-api.yaml b/open-api/rest-catalog-open-api.yaml index 1048425147e9..e1d3c7df2264 100644 --- a/open-api/rest-catalog-open-api.yaml +++ b/open-api/rest-catalog-open-api.yaml @@ -2058,6 +2058,15 @@ components: $ref: '#/components/schemas/SnapshotLog' metadata-log: $ref: '#/components/schemas/MetadataLog' + # statistics + statistics-files: + type: array + items: + $ref: '#/components/schemas/StatisticsFile' + partition-statistics-files: + type: array + items: + $ref: '#/components/schemas/PartitionStatisticsFile' SQLViewRepresentation: type: object @@ -2181,6 +2190,8 @@ components: set-current-view-version: '#/components/schemas/SetCurrentViewVersionUpdate' set-statistics: '#/components/schemas/SetStatisticsUpdate' remove-statistics: '#/components/schemas/RemoveStatisticsUpdate' + set-partition-statistics: '#/components/schemas/SetPartitionStatisticsUpdate' + remove-partition-statistics: '#/components/schemas/RemovePartitionStatisticsUpdate' type: object required: - action @@ -2456,6 +2467,33 @@ components: type: integer format: int64 + SetPartitionStatisticsUpdate: + allOf: + - $ref: '#/components/schemas/BaseUpdate' + required: + - action + - partition-statistics + properties: + action: + type: string + enum: [ "set-partition-statistics" ] + partition-statistics: + $ref: '#/components/schemas/PartitionStatisticsFile' + + RemovePartitionStatisticsUpdate: + allOf: + - $ref: '#/components/schemas/BaseUpdate' + required: + - action + - snapshot-id + properties: + action: + type: string + enum: [ "remove-partition-statistics" ] + snapshot-id: + type: integer + format: int64 + TableUpdate: anyOf: - $ref: '#/components/schemas/AssignUUIDUpdate' @@ -3270,6 +3308,22 @@ components: properties: type: object + PartitionStatisticsFile: + type: object + required: + - snapshot-id + - statistics-path + - file-size-in-bytes + properties: + snapshot-id: + type: integer + format: int64 + statistics-path: + type: string + file-size-in-bytes: + type: integer + format: int64 + ############################# # Reusable Response Objects #