Skip to content

protocol: Query Table snapshot API - #109

Draft
littlegrasscao wants to merge 40 commits into
server/split2/18-protocol-query-tablefrom
server/split2/19-protocol-query-table
Draft

littlegrasscao wants to merge 40 commits into
server/split2/18-protocol-query-tablefrom
server/split2/19-protocol-query-table

Conversation

@littlegrasscao

@littlegrasscao littlegrasscao commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • add Delta Sharing POST /shares/{share}/schemas/{schema}/tables/{table}/query to OpenSharingProtocolService, as parquet or delta NDJSON with the version in Delta-Table-Version
  • read the latest snapshot, or one at a version or timestamp, through Kernel as the share owner; a historical query reports the version on metaData and every file
  • presign every data file and on-disk deletion vector with UrlSigners for an hour, or until the catalog credentials expire if sooner; there is no URL lifetime or URL access setting, and tables need the url access mode
  • the fileidhash header picks MD5 or SHA-256 file ids and is echoed back
  • delta responses require the reader features the table declares; parquet cannot read a table that has any
  • the body is optional; predicate and limit hints and startingVersion/endingVersion are not implemented

Testing

  • mvn clean install: 181 tests passed
  • ProtocolTableQueryTest: latest, version, and timestamp queries on a local Delta log with no data files, both response formats, fileidhash, no body, invalid parameters, ungranted share
  • ProtocolTableQueryIntegrationTest: signed S3, Azure, and GCS file URLs, a schema grant, and deletion vector signing on the cloud test tables; each case is skipped without credentials
  • TableActionsTest, FileIdHashTest, DeltaSharingCapabilitiesTest cover file actions, ids, and reader features

Stacked on #108.

@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 65624a8 to a1373c3 Compare September 29, 2026 22:02
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 95b8b31 to dbf6206 Compare September 29, 2026 22:06
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch 5 times, most recently from 3646035 to b9fbe9a Compare September 29, 2026 23:32
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 42a853b to 8a41489 Compare October 1, 2026 17:24
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 608c9ff to 48968da Compare October 1, 2026 17:25
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 8a41489 to 218ae45 Compare October 1, 2026 18:34
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 48968da to 299af3a Compare October 1, 2026 18:34
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 218ae45 to 9233fb9 Compare October 1, 2026 18:39
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 299af3a to 0a286e9 Compare October 1, 2026 18:39
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 9233fb9 to 4e36e66 Compare October 1, 2026 18:44
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 0a286e9 to d37ee92 Compare October 1, 2026 18:44
@littlegrasscao
littlegrasscao marked this pull request as ready for review October 1, 2026 21:59
@littlegrasscao
littlegrasscao marked this pull request as draft October 7, 2026 01:57
@littlegrasscao littlegrasscao changed the title Query Table snapshot API protocol: Query Table snapshot API Oct 9, 2026
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch 2 times, most recently from 39841fa to bca6420 Compare October 14, 2026 02:07
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from c406d81 to 2754a65 Compare October 14, 2026 02:07
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from bca6420 to 3dad5a4 Compare October 14, 2026 19:25
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 2754a65 to c166868 Compare October 14, 2026 19:25
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 3dad5a4 to 85ff185 Compare October 15, 2026 16:47
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from c166868 to 0bc72a0 Compare October 15, 2026 16:47
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 85ff185 to 58daefb Compare October 15, 2026 18:14
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 0bc72a0 to ad07dee Compare October 15, 2026 18:14
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 58daefb to 1b7dd09 Compare October 15, 2026 18:29
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from ad07dee to 8291661 Compare October 15, 2026 18:29
Sun Cao added 27 commits October 19, 2026 17:00
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 111a6f7 to 7e61f1a Compare October 20, 2026 00:31
@littlegrasscao
littlegrasscao force-pushed the server/split2/19-protocol-query-table branch from 137a1b5 to aadc709 Compare October 20, 2026 00:31
@littlegrasscao
littlegrasscao force-pushed the server/split2/18-protocol-query-table branch from 7e61f1a to 26ed6ec Compare October 21, 2026 17:01
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.

1 participant