dpol1 commented on code in PR #3035:
URL: https://github.com/apache/hugegraph/pull/3035#discussion_r3333421160


##########
hugegraph-server/hugegraph-core/src/main/java/org/apache/hugegraph/schema/PropertyKey.java:
##########
@@ -121,7 +121,12 @@ public void defineDefaultValue(Object value) {
 
     public Object defaultValue() {
         // TODO add a field default_value
-        return this.userdata().get(Userdata.DEFAULT_VALUE);
+        Object value = this.userdata().get(Userdata.DEFAULT_VALUE);
+        // Userdata is reloaded from JSON as a raw Map, so a typed default
+        // value (e.g. Date) comes back as a String. Normalize it to the
+        // runtime type expected by this property key's data type. Idempotent
+        // for values already of the expected type.
+        return value == null ? null : this.validValue(value);

Review Comment:
   Good catch, thanks! You were right about the container semantics. I reverted 
the broader change in `convValue()` to avoid breaking other paths, and instead 
only normalize the `defaultValue()` when the cardinality is `SET`, wrapping it 
in a `LinkedHashSet` so duplicates are collapsed but order is preserved. I also 
updated the tests to inject duplicates and verify that `SET` defaults behave as 
expected while `SINGLE/LIST` stay unchanged. Latest fix is in a0fe682.



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