aio-libs / aiomysql

aiomysql is a library for accessing a MySQL database from the asyncio
https://aiomysql.rtfd.io
MIT License
1.75k stars 255 forks source link

Port PyMySQL changes #720

Open Nothing4You opened 2 years ago

Nothing4You commented 2 years ago

this is a very broad scope - probably needs a review of most aiomysql code to compare with pymysql code.

a good step to start should be porting all PyMySQL test cases to see which issues we can already identify from missing test cases. an alternative could be to review all PyMySQL commits/changes between the previously used version and the current latest version: https://github.com/PyMySQL/PyMySQL/compare/v0.9.3...v1.0.2 this may however missing ports of older changes, I don't know how close attention was paid to this before.

alviezhang commented 2 years ago

That is really lots of work, anything I can help to contribute for this?

Nothing4You commented 2 years ago

I'm not sure if there's an easy way to structure or coordinate this work, I'd be happy to hear suggestions.

One thing that should be possible to do relatively independently would be reviewing the test cases, looking into what we may be missing on our side and whether the existing test cases also test the same things. Ensuring having all test cases on our end might also help catching some missing ports due to test failures.

Outside of tests it's probably be harder to isolate individual changes. I'd probably just pick different methods and compare the internal logic to PyMySQL's logic, even though it is most likely quite cumbersome.

There's also still some cleanup that should be done unrelated to syncing up with PyMySQL, such as context manager simplification like https://github.com/aio-libs/aiopg/pull/813, which would make the code easier to follow.