etseidl commented on code in PR #603:
URL: https://github.com/apache/parquet-format/pull/603#discussion_r3813862519


##########
LogicalTypes.md:
##########
@@ -735,41 +732,35 @@ only.
 A value resolves to bytes based on which of `inline`, `uri`, `offset`, and 
`size` are
 set:
 
-| `inline` | `uri` | `offset` | `size` | Resolves to                           
                |
-|----------|-------|----------|--------|-------------------------------------------------------|
-| set      | -     | -        | -      | the inline bytes                      
                |
-| -        | set   | -        | -      | whole external file at `uri`          
                |
-| -        | set   | set      | -      | invalid                               
                |
-| -        | set   | -        | set    | external `uri`, `[0, size)`           
                |
-| -        | set   | set      | set    | external `uri`, `[offset, offset + 
size)`             |
-| -        | -     | set      | -      | invalid                               
                |
-| -        | -     | -        | set    | invalid                               
                |
-| -        | -     | set      | set    | this file, `[offset, offset + size)` 
(self-reference) |
-| -        | -     | -        | -      | nothing - invalid                     
                |
+| `inline` | `uri` | `offset` | `size` | Resolves to                           
    |
+|----------|-------|----------|--------|-------------------------------------------|
+| set      | -     | -        | -      | the inline bytes                      
    |
+| -        | set   | -        | -      | whole external file at `uri`          
    |
+| -        | set   | set      | -      | invalid                               
    |
+| -        | set   | -        | set    | external `uri`, `[0, size)`           
    |
+| -        | set   | set      | set    | external `uri`, `[offset, offset + 
size)` |
+| -        | -     | set      | -      | invalid                               
    |
+| -        | -     | -        | set    | invalid                               
    |
+| -        | -     | set      | set    | invalid                               
    |
+| -        | -     | -        | -      | nothing - invalid                     
    |
 
 `size` must be set whenever `offset` is set, so any offset-based read always 
carries an
-explicit `size`. A self-reference (`uri` not set) must set `offset`, and 
therefore also
-`size`. `size` may be omitted only for a whole-file external reference, where 
the range
-runs to the end of the referenced file.
+explicit `size`. `size` may be omitted only for a whole-file external 
reference, where
+the range runs to the end of the referenced file. A byte range within the 
current file
+cannot be referenced: `offset` and `size` apply only to data referenced by 
`uri`.

Review Comment:
   My point is that
   > A byte range within the current file cannot be referenced
   
   implies self-reference is disallowed, but the `uri` hack is seemingly still 
possible. It's these types of grey areas in the spec that always get us in 
trouble. I'd be more comfortable either explicitly disallowing self reference 
by saying `uri` cannot reference the current file, or discuss the possibility 
of self reference and the ramifications (no encryption, no compression), and 
perhaps retain the `uri` unset/`offset+size` set form of self reference.



-- 
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