szehon-ho commented on code in PR #18057:
URL: https://github.com/apache/iceberg/pull/18057#discussion_r4190601055


##########
format/udf-spec.md:
##########
@@ -118,19 +123,25 @@ following fields required. Any other fields must be 
ignored.
   e.g., `{ "type": "struct", "fields": [ { "name": "id", "type": "int" }, { 
"name": "name", "type": "string" } ] }`
 
 #### Definition ID
-The `definition-id` is a canonical string derived from the parameter types, 
formatted as a comma-separated list with no
-spaces. Each type uses the following string representation:
+The `definition-id` is a canonical string derived from the parameter types, 
formatted as a comma-separated list. The

Review Comment:
   nit: definition-id is mentioned twice, can we shorten it?  And also link to 
Types.
   
   how about:
   ```
   The definition-id is a canonical string derived from the parameter types in 
parameter order, formatted as a comma-separated list. No additional spaces may 
be inserted after commas separating function parameters, map key and value 
types, or struct fields, or after colons separating struct field names from 
their types. Embedded type strings may contain spaces as described in the 
[Types](https://iceberg.apache.org/udf-spec/#types) section. Each type uses the 
following string representation:
   ```
   



##########
format/udf-spec.md:
##########
@@ -118,19 +123,25 @@ following fields required. Any other fields must be 
ignored.
   e.g., `{ "type": "struct", "fields": [ { "name": "id", "type": "int" }, { 
"name": "name", "type": "string" } ] }`
 
 #### Definition ID
-The `definition-id` is a canonical string derived from the parameter types, 
formatted as a comma-separated list with no
-spaces. Each type uses the following string representation:
+The `definition-id` is a canonical string derived from the parameter types, 
formatted as a comma-separated list. The
+`definition-id` must not insert spaces after its separators (commas or 
colons). Embedded type strings retain their
+canonical formatting. Each type uses the following string representation:
 
 * Primitives and semi-structured: the type name (e.g., `int`, `variant`)
 * List: `list<element-type>` (e.g., `list<int>`)
 * Map: `map<key-type,value-type>` (e.g., `map<string,int>`)
 * Struct: `struct<name1:type1,name2:type2,...>` with field names and types 
(e.g., `struct<id:int,name:string>`)
 
+In a struct field name, `\`, `:`, `,`, `<`, and `>` must each be escaped with 
a preceding `\`.

Review Comment:
   nit:  must each be escaped with => must be prefixed with...



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