gharris1727 commented on PR #16035: URL: https://github.com/apache/kafka/pull/16035#issuecomment-2130356686
Hi @fanyang Thank you for contributing to Kafka! Is this something that seemed interesting to you, or do you have a use-case in mind? I labeled this ticket as requires-kip, and if you're interested in tackling the larger project I'm happy to help. If you were just looking for an introductory ticket, check out the `newbie` label in Jira: https://issues.apache.org/jira/browse/KAFKA-15283?jql=project%20%3D%20KAFKA%20AND%20resolution%20%3D%20Unresolved%20AND%20labels%20%3D%20newbie%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC . When I wrote the ticket originally, it was motivated by the three related tickets, and I included some of the motivation in a comment on one of the tickets: https://issues.apache.org/jira/browse/KAFKA-13505?focusedCommentId=17817494&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17817494 I apologize that I did not adequately summarize that comment in the description of KAFKA-16257, as I think I have caused some confusion. Connect has "primitive" types, and "logical" types. Logical types are just primitive types plus some schema metadata defining how the primitive value should be interpreted. Connect includes a few standardized primitive types in the API package (Decimal, Date, Time, and Timestamp). Where the confusion arises is that these are not the only logical types out there. Any plugin can define a new logical type at any time using SchemaBuilder. These are the types that aren't able to safely traverse the SchemaProjector, and which motivated the ticket. While the Decimal and Connect logical types aren't explicitly represented in the SchemaProjector implementation, they all use the no-op conversion path: https://github.com/apache/kafka/blob/d585a494a4871eaecdddf98f8655b8f30c5bd834/connect/api/src/main/java/org/apache/kafka/connect/data/SchemaProjector.java#L188 Regarding the conversion among the time types: A case could be made for Date -> Timestamp referring to the beginning of the day, but that assumes the intent of the user. But Time -> Timestamp interpreted as "Time t in 1970" is mostly nonsensical. I think both cases are abuses of how we represent these values using java.util.Date, and aren't actually desirable. -- 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: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org