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
feat: Add support for SQLAlchemy 1.4 #177
Commits on Apr 12, 2021
-
Fixed a dependency problem that caysed test failures in Python 3.6.
The source of the dependency bug is in old versions of google-cloud-core that depend on too-old versions of google-api-core.
Commits on Apr 15, 2021
-
Started implementing SqlAlchemy dialect-compliance tests
Some tests are still failing, but we're far enough along that we have the right shape, I think.
Commits on Apr 16, 2021
-
-
Provide default values for primary keys and other fixes...
Other fixes: - Handle BIGINT - Fix string leteral formatting (and start type-specific adaptations).
-
Commits on Apr 19, 2021
-
The SQLAlchemy like convenience functions (e.g. ) escape incorrectly for BigQuery, so re-escape.
-
-
Skip tests that want to stpre floats as numeric.
We could make that work, if we want to. :)
-
Skip LongNameBlowoutTest because it requires features (indexes, prima…
…ry keys, etc., that BigQuery doesn't have.
Commits on Apr 20, 2021
-
Fixed a dependency problem that caysed test failures in Python 3.6.
The source of the dependency bug is in old versions of google-cloud-core that depend on too-old versions of google-api-core.
-
Provide a bigquery mock based on sqlite
So we don't have t mock at the api level.
-
Commits on Apr 22, 2021
-
-
- Run tests in temporary directory rather than sharing memory connections. Because simpler. :) - Introduce cross-connection state and record queries in it, so tests can make assertions bout generated queries.
-
Commits on Apr 23, 2021
-
When SQLAlchemy thinks it knows a parameter type, include it in the p…
…laceholder The BigQuery Python Client supports an extended placeholder syntax that includes type information, as in `%(foo:INT64)s` (named) or `%(:INT64)s` (unnamed). When we know the type, include it in the placeholder.
-
Don't skip some numeric tests and skip some CTE tests
The numeric tests now tun since we started passing type info from sqla to bigquery. The CTE tests test features that don't exist in bigquery.
-
-
Commits on Apr 24, 2021
-
Enable error on warnings -- a test depends on it.
Although the test isn't actually testing dialect code. Maybe it should be skipped instead. Also set the profile test pasth to a more reasonable value, although it doesn't seem to be used. <shrug>
-
Added table and column comment support.
Also inlined colspecs code, because there wasn't much and it facilitated separating literal processing into a function.
-
get_schema_names should return all of the schema names.
The tests don't disagree. :)
-
-
-
-
-
skip tests that depend on BigQuery keeping track of column details.
Like precision, length, etc.
-
-
Fixed some broken TIMESTAMP tests.
Also, removed some unneeded imports.
-
Commits on Apr 26, 2021
-
-
-
Ignore flake8 complaint about * import.
The names are known and used by pytest.
-
-
-
Get to 100% coverage in test_parse_url
- Test cases with one param set to reach an uncovered branch for write disposition. - Test parsing false.
Commits on Apr 27, 2021
-
Don't need because we can't test temp tables
Because bigquery only supports temp tables in scripts.
-
-
Added Binary literal handling, and ...
also: - Added missing small int. - Renamed `process_literal` to `process_string_literal` - some reformating.
-
Updated fauxdb to correct for some sqlite differences.
Also, rearraged conftest and the faux_conn fixture a bit to reuse sqlite connections and to go back to a memory connection.
-
-
Added a test that exercises type handling for all the types.
(Replaced a simper test.)
Commits on Apr 28, 2021
Commits on Apr 29, 2021
Commits on Apr 30, 2021
-
Also, simplify wireing of faux connections and clients.
-
-
-
String literals in bq can start with ".
-
Simplify string and binary literal processors to not expect None.
It can't happen.
-
-
BTW column.doc is a Python docs thing for the ORM, not a database level comment/description.
-
-
-
Commits on May 3, 2021
-
-
-
-
-
-
Enable generation of random primary keys when running compliance tests.
Because the tests expect tables to have primary keys that het provided somehow.
-
Commits on May 4, 2021
-
-
-
Added a tiny metadata convenience.
A convenience here, a convenience there ...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Commits on May 5, 2021
-
Added a test for compiling a single column.
Also,simplified other test using the metadata helper.
-
-
We always quote unless told not to. Also, exclude a method for getting default primary-key values. It's only used in compliance tests.
-
-
-
need newer sqlalchemy and google-auth
sqlalchemy because comments. google-auth because we need very recent bigquery.
-
-
-
-
-
-
-
-
-
-
-
-
-
Commits on May 6, 2021
-
-
-
-
-
-
Don't use upsert to update comments.
The version of sqlite in the CI image doesn't support upsert.
-
use the default value of returns_unicode_strings
which is true, but differently than it was before. :/
-
-
Deal with differences in the way "expanding" is handled in sqlalchemy…
… versions. Also made some helper functions more private, because inheritence.
-
-
Commits on May 7, 2021
-
-
Consider bind param expanding status
- in visit_bindparam use different strategies for applying type information. - in handling in (and not in) apply different transformations.
-
And made skipping conditional on sqlalchemy versions.
Commits on May 10, 2021
-
Make the google-auth requirement consistent with the Python 3.6 test …
…constraint. The test constraint was really diven by the requitements of other requirements, not this package. <shrug>
-
chore(revert): revert preventing normalization (#132)
reverts previous commit for preventing normalization of versioning
-
Explain why we add where clauses in delete statements that lack them
but only during test cleanup.
-
-
-
-
-
-
-
-
don't need to call out the project in the test config.
We get it from the creds.
-
Commits on May 11, 2021
-
Update tests/sqlalchemy_dialect_compliance/README.rst
Co-authored-by: Peter Lamut <plamut@users.noreply.github.com>
-
Update tests/sqlalchemy_dialect_compliance/README.rst
Co-authored-by: Peter Lamut <plamut@users.noreply.github.com>
-
-
-
- Provide primary key values in override. sigh. - Skip sane_multi_rowcount tests because googleapis/python-bigquery#659
-
make sure we wait for the drops at the beginning of the session.
And get rid of the sleep, at least termporarily.
-
-
-
-
Commits on May 12, 2021
-
- test_round_trip_executemany depends on databases providing primary-key generation. - The fix for TimestampMicrosecondsTest test_literal needed a fix because 1.4 wants an additional fixture.
-
-
Removed machinery to clean tests schemas
Because: - It duplicated the `--dropfirst` option. - Unlike `--dropfirst`, it didn't honor the `--dburi` option that lets you use an alternate URL/dataset.
-
Added an alternate requirements class that skips schema tests.
The schema-tests schema is hard coded, and cleaning it and running it's tests could conflict with other test runs.
-
use --dropfirst to clean test schemas at start of compliance run.
Also, use multiple simple --only-rerun options rather than one complex one.
-
-
-
-
-
-
-
-
-
Commits on May 13, 2021
Commits on May 16, 2021
-
notin needs to wrap its result in ()s
Because it ends up generating 2 subexpressions.
-
-
-
-
-
-
-
-