Skip to content

Conversation

@dongwook-chan
Copy link
Collaborator

  1. minimum value for MySQL TIME datatype:
    '-838:59:59.000000' = ADDTIME('-838:00:00', ADDTIME('-00:59:00', '-00:00:59'))

  2. appropriate timedelta representation of the same value in Python:
    datetime.timedelta(hours=-838, minutes=-59, seconds=-59)
    = -1 * datetime.timedelta(hours=838, minutes=59, seconds=59)

'sign' must be multiplied to the entire timedelta,
not just to the 'hours' timedelta as in the existing code.
https://github.com/noplay/python-mysql-replication/blob/3de6ff499f7695a800409341f4f859cac5b724d0/pymysqlreplication/row_event.py#L287-L292

refer to convert_timedelta() in pymysql:
https://github.com/PyMySQL/PyMySQL/blob/fb10477caf21122a89d7f216a0670d49dd2aa5d2/pymysql/converters.py#L219-L227

Datatype tests were modified to test the correct minimum value for TIME datatype.

1. minimum value for MySQL TIME datatype: '-838:59:59.000000' = ADDTIME('-838:00:00', ADDTIME('-00:59:00', '-00:00:59')) 2. appropriate timedelta representation of the same value in Python: datetime.timedelta(hours=-838, minutes=-59, seconds=-59) = -1 * datetime.timedelta(hours=838, minutes=59, seconds=59) 'sign' must be multiplied to the entire timedelta value, not just to the 'hours' value as in the existing code. refer to convert_timedelta() in pymysql: https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/converters.py#L189 Datatype tests were modified to test the correct minimum value for TIME datatype.
@julien-duponchelle
Copy link
Owner

Sorry for the delay I will review shortly

@dongwook-chan
Copy link
Collaborator Author

No worries, please take your time.

@julien-duponchelle julien-duponchelle merged commit 689c7f7 into julien-duponchelle:main Aug 30, 2021
@julien-duponchelle
Copy link
Owner

Release soon :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants