shunping commented on code in PR #35243:
URL: https://github.com/apache/beam/pull/35243#discussion_r2161737747


##########
sdks/python/apache_beam/io/external/xlang_jdbcio_it_test.py:
##########
@@ -255,10 +253,6 @@ def test_xlang_jdbc_write_read(self, database):
               classpath=config['classpath'],
           ))
 
-    # Register MillisInstant logical type to override the mapping from 
Timestamp
-    # originally handled by MicrosInstant.
-    LogicalType.register_logical_type(MillisInstant)

Review Comment:
   So the two logical types `MillisInstant` 
(https://github.com/apache/beam/blob/5532af8438fca1bcffc221a2b9394dc31c342425/sdks/python/apache_beam/typehints/schemas.py#L867)
 and `MicrosInstant` 
(https://github.com/apache/beam/blob/5532af8438fca1bcffc221a2b9394dc31c342425/sdks/python/apache_beam/typehints/schemas.py#L911)
 both register `Timestamp` as their language type and `MillisInstant` goes 
first and then `MicrosIntant` goes second in the file.
   
   There is a map internally to map a language type to its logical type and it 
is used when it tries to determine the coder. Without my fix and the 
workaround, the internal map is going to map `Timestamp` to `MicroInstant`.
   
   Then the whole code path when determining the coder of `MillisInstant` will 
be  `MillisInstant` -> `TimeStamp` -> Logical Type of `TimeStamp` -> 
`MicroInstant` and its representation type. 
   
   The workaround is to calling the register function again for 
`MillisInstant`, so that it overwrite the internal mapping to `Timestamp` -> 
`Millistant`.
   
   My fix was trying to eliminate the need of the workaround.
   



-- 
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: github-unsubscr...@beam.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to