[ https://issues.apache.org/jira/browse/CAY-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17361475#comment-17361475 ]
Andrus Adamchik commented on CAY-2694: -------------------------------------- [~ntimofeev] The last time I tried this, it would not remove the length of 19 (that was auto-synced previously) when running dbsync. > Precision issues with reverse / forward engineering of time types on MySQL > -------------------------------------------------------------------------- > > Key: CAY-2694 > URL: https://issues.apache.org/jira/browse/CAY-2694 > Project: Cayenne > Issue Type: Bug > Affects Versions: 4.1 > Environment: MySQL 5.7.24, Java 1.8, Cayenne 4.1 > Reporter: Andrus Adamchik > Assignee: Nikita Timofeev > Priority: Major > Fix For: 4.2.M3 > > Time Spent: 1h > Remaining Estimate: 0h > > There is a number of issues with reverse and forward engineering of > time-related types on MySQL. Not sure if this affects other databases. > h2. Background > Per https://dev.mysql.com/doc/refman/8.0/en/fractional-seconds.html TIME, > TIMESTAMP and DATETIME native types can be specified either without a numeric > parameter (indicating truncation to whole seconds) or with a single numeric > parameter (indicating the number of fractional digits). So "TIME" means whole > seconds precision, "TIME(3)" means millisecond precision, "TIME(6)" - > microsecond precision. > h2. Reverse Engineering > Regardless of precision, Cayenne reverse-engineers the above 3 types to > DbAttributes with "maxlength" of "19" and no "scale". Expected - empty > "maxlength" and "scale" matching the precision of the column (e.g. none, 3, 6 > for the example above). > h2. Forward Engineering > Currently "maxlength" is included in the generated SQL (e.g. "TIME(19)"), > causing DB errors. But even if there were no errors (if it was in the > acceptable range), that would still generate invalid column definitions. > Expected - "maxlength" must be ignored, and "scale" used if present (e.g. > "TIME", "TIME(3)", etc.) > Forward engineering is particularly important for Bootique users who are > relying on Cayenne for schema generation. -- This message was sent by Atlassian Jira (v8.3.4#803005)