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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants