aokolnychyi commented on code in PR #15372:
URL: https://github.com/apache/iceberg/pull/15372#discussion_r2867075524


##########
core/src/main/java/org/apache/iceberg/TableProperties.java:
##########
@@ -247,6 +247,15 @@ private TableProperties() {}
   public static final String DELETE_PLANNING_MODE = 
"read.delete-planning-mode";
   public static final String PLANNING_MODE_DEFAULT = 
PlanningMode.AUTO.modeName();
 
+  /**
+   * When true, declares that the table's identifier fields can be relied upon 
as a primary key by
+   * query engines for optimization purposes (e.g. eliminating redundant joins 
or distinct). This is
+   * not enforced at write time and does not validate existing data.
+   */
+  public static final String READ_IDENTIFIER_FIELDS_RELY = 
"read.identifier-fields.rely";

Review Comment:
   I don't feel strongly about the default, so I am okay with whatever you 
folks decide here.
   
   Let me elaborate on my earlier comment about whether it is read specific. 
Use cases I know are indeed read-time optimizations. That said, we expose this 
on `Table$constraints` in Spark. At that point, we don't really know if the 
table is going to be used for reads or writes and we don't know what kind of 
read or write time optimization the engine will perform. Hence, my question was 
whether we strictly need the `read.` prefix or we can just go for 
`identifier-fields.rely`. 
   



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