-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Restore MySQL driver and fix ordering problem #858
Conversation
add -linkall flag which makes mysql plugin happy again
cleanup fix of ordering
* remove last vestiges of CGI script web mode * whitespace
) (#843) * hygienic references to library functions in pattern compilation * removed commented out dead code
indeed the old version shouldn't typecheck!
As hinted at by a1ffb17, Links was not handling the linearity of the End type correctly. This was because of a very subtle bug in checking linearity of dualised session types. This patch: 1. Fixes the duality bug 2. Ensures `connect` is correct given the asynchronous semantics of `close` 3. Fixes all examples which mistakenly treated `End` as unrestricted
add -linkall flag which makes mysql plugin happy again
cleanup fix of ordering
This fixes parts of #856 except for the extension to support RETURNING multiple columns which I leave as a todo. Something horrible has happened so the PR / branch probably needs to be redone from a clean checkout of master. |
Regarding something horrible happening, have you tried:
(from the following link; there are also some other solutions) |
I seem to have found / remembered the incantation needed to get the branches synced up again, which was |
Ah, good to know! |
So the CI is failing because of an apparent regression on #835... |
remove relax query type constraint flag
I take that back, I only thought that because I had a stale build. Looks like I just needed to adjust the factorials example again. |
I've decided to weaken #855 sufficiently that this fixes it. |
add efficient polymorphic append-only buffers avoid need for extra list reverse in sqlite3 add test that large database results can be obtained (constructing lists whose length > OCaml's stack bound) fix performance bug in mysql driver
Now fixed sqlite3 inefficiency and realized that mysql driver suffered from a different problem (whose solution is similar). Previously, we would randomly access the mysql library's result which was apparently slow. Now, instead I load it all into an append-only buffer. Possibly doing this for postgres results would be better and more uniform but this PR is already getting too big. |
The code for handling null integers in mySQL was broken, this is now fixed and I've added a database test that checks that null handling works correctly, as a first step towards #655. This should be ready for review now. |
This should await #859. |
Miraculously, this seems to have commited with 859 and #861, so now that they are merged, will merge this once CI passes if no one stops me. |
add -linkall flag which makes mysql plugin happy make the database tests deterministic fix inconsistent ordering behavior add configs for other drivers cleanup fix of ordering implement insert returning correctly for mysql, sqlite3 add efficient polymorphic append-only buffers avoid need for extra list reverse in sqlite3 add test that large database results can be obtained (constructing lists whose length > OCaml's stack bound) fix performance bug in mysql driver add test for null integer handling
This PR restores the MySQL driver, a precondition for #322, and fixes #856 (albeit this could be cleaned up a bit).
Marked as WIP because the way query results are constructed by Sqlite3 is still a little inefficient and could be improved, and I'd like to make progress towards #855 also before merging, unless it turns out to be harder than I think.
List.rev
s in sqlite3 driver and value.ml