Move plone to the end instead of the beginning.
Document how to use a configuration string instead of a file.
Better links to ZConfig, repoze.zodbconn, and the ZODB.config functions.
[skip ci]
When we updated PyPy on Travis to 5.8.0, it started producing errors
"Use multi-True when executing multiple statements", even when we are
demonstrably only executing one statement. E.g.,
https://travis-ci.org/zodb/relstorage/jobs/335720512#L923
If this doesn't fix it, then I plan to take PyPy+MySQL Connector out
of the test matrix.
Fixes#169.
We need this version for IMultiCommitStorage and the registerDB fix in
ConflictResolvingStorage. Since these versions run on Python 2.7.8,
there's no motivation for trying to go back farther.
* First basic version of appveyor.yml for testing. Still need to configure databases. Lets just see if we build.
* stdint.h is not available on MSVC before 2010, but we're not using it anyway. myssqlclient won't compile on windows
* Try a define for broken c99 support in MSVC.
* Broader macro.
* Use old form of 0 initializing struct.
* More fixes for broken c99 support of MSVC.
* Attempt to setup the database.
* need /c
* give up on running the DB tests.
* produce wheels
* produce wheels
* one more try for mysql tests.
* Run the db script as part of the test, it seems services aren't started during install phase.
* MySQL tests are running, try adding postgres.
* badges
* right bin directory for postgres
* Skip one blob test on windows/py3
Typical operations for large caches will be 3x faster or more. Python 2
and <3.4 need more memory to write, though.
The benchmark is much better and more realistic which is what drove
these changes.
Introduced an option to not compress the local cache files; they aren't
compressed by default anymore because that was a big part of the
slowness.
* Begining refactor to fix#77.
* Split schema into specific packages.
* Refactor batchers for dbs.
* Move locker implementations to db-specific places
* split oidallocator.
* split scriptrunner.
* split txncontrol.
* split stats.
* split packundo.
* Factor ObjectMover. Not quite finished, Oracle still needs some attention and there's one more massive method that needs attention.
* oracle query formatting
* consolidate oraclescriptrunner
* split oracle connmanager.
* cleaner __init__ for oracle.
* clean up postgresql adapter.
* split mysql.
* refactor the big ObjectMover.move_from_temp method.
* Minor opts.
* minor fixes for oracle. test suite is clean for oracle now.
* Adapt code from NextThought to implement umysqldb support. Fixes#79.
* exclude should be a sub-key of matrix.
* Force the right driver for the umysqldb tests.
* formatting and debuging.
* Use bytes, not bytearry, to avoid a crash in umysql.
* Tweak driver selection.
* test fixes for umysqldb.
The major difference from psycopg2/cffi is that it doesn't have native
lobject support. This is easily worked around, but this draft is not
complete because it doesn't support chunks. Some refactoring will be
required to elegantly handle this.
Two minor differences:
- It doesn't support multiple statements in a single `cursor.execute()`
call. Apparently it turns all statements into prepared statements,
because the error is from the server. Easily worked around and
unlikely to be a perfomance difference.
- It handles transaction isolation levels like most other drivers, in
SQL. This could be handled more elegantly too.
One thing: The server spits out lots of "WARNING: not in a transaction".
If I enable statement logging, I see every `commit` immediately followed
by a `rollback`, which generates the warning. I'm not sure if that's
just us, or something the driver is doing differently (e.g, maybe
psycopg2/cffi always follows `commit` with `begin`? and then when we try
to `rollback` we're already in a transaction?). Annoying but harmless.
Still, would like to figure it out though.
Testing this pure-python driver on Python 3 also revealed a lot of
connection leaks, many of which I've fixed, but there are probably more.
This should be a win for PyPy. See also zopefoundation/ZODB#78.
The testing matrix is expanded to test the pure-python drivers on
CPython too and to test pg8000. (Travis will be the first time I run
psycopg2 tests; hope I didn't break anything!)
Fixes#85.