kevinliu-stripe opened a new issue #4204:
URL: https://github.com/apache/iceberg/issues/4204


   #### Ask
   Metadata tables (defined in #252) defines `snapshot_id` and `parent_id` a 
`LongType` value. Can this be defined as string value instead? As far as I 
know, there's no arithmetic operations on snapshot it, nor should there be. 
   
   #### Problem
   In our setup of Iceberg + Trino, we use an internal frontend to display the 
metadata table from Trino. The `snapshot_id` field is represented in `LongType` 
which is translated to Javascript Number. Because of the length of the snapshot 
id, the representation is truncated so snapshot id `5184430069070270604` 
becomes `5184430069070270000`, with the last 3 digits are 0'ed out.
   
   This problem is due to transporting the result data to the frontend as JSON 
representation and JSON representation of numbers has an upper limit on the 
size of the number it can handle. [Here are some relevant 
links](https://www.npmjs.com/package/json-bigint#links).
   
   #### Possible solution
   The workaround on our side was to use the [`bignumber` javascript 
library](https://mikemcl.github.io/bignumber.js/) to represent snapshot id in 
JSON as a "big number" so it is not truncated...
   
   I think a better solution is to represent the `snapshot_id` (and related 
fields) as string value in the schema definition of the metadata tables
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to