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

Reply via email to