FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Fixed SQLAlchemy DDL statements by Yureien · Pull Request #226 · encode/databases · GitHub

This repository was archived by the owner on Aug 19, 2025. It is now read-only.
/ databases Public archive

Fixed SQLAlchemy DDL statements - #226

Merged
vmarkovtsev merged 5 commits into
encode:masterfrom
Yureien:master
Aug 20, 2020
Merged

Fixed SQLAlchemy DDL statements#226
vmarkovtsev merged 5 commits into
encode:masterfrom
Yureien:master

Conversation

Yureien commented Jul 14, 2020

Copy link
Copy Markdown
Contributor

DDL statements made with SQLAlchemy (such as sqlalchemy.schema.CreateTable) used to have issues such as:

Traceback (most recent call last):
  File "../database.py", line 50, in <module>
    loop.run_until_complete(prepare_tables())
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "../database.py", line 40, in prepare_tables
    resp = await engine.fetch_one(query)
  File "/home/user/Documents/Projects/Python-Projects/test/databases/databases/core.py", line 146, in fetch_one
    return await connection.fetch_one(query, values)
  File "/home/user/Documents/Projects/Python-Projects/test/databases/databases/core.py", line 244, in fetch_one
    return await self._connection.fetch_one(built_query)
  File "/home/user/Documents/Projects/Python-Projects/test/databases/databases/backends/postgres.py", line 159, in fetch_one
    query, args, result_columns = self._compile(query)
  File "/home/user/Documents/Projects/Python-Projects/test/databases/databases/backends/postgres.py", line 205, in _compile
    compiled_params = sorted(compiled.params.items())
AttributeError: 'NoneType' object has no attribute 'items'

This PR fixes the issue for postgres, aiopg, and mysql backends.

Copy link
Copy Markdown
Member

Heya looks like there's a type error being reported by the test suite?... https://github.com/encode/databases/pull/226/checks?check_run_id=868682403#step:6:54

Yureien commented Jul 14, 2020
edited
Loading

Copy link
Copy Markdown
Contributor Author

Heya looks like there's a type error being reported by the test suite?... https://github.com/encode/databases/pull/226/checks?check_run_id=868682403#step:6:54

This is a weird one, I'm not able to reproduce it locally... and it says there's a incompatible type in backends/sqlite.py which wasn't even modified. Does it depend on backends/mysql.py, or backends/postgres.py or backends/sqlite.py?

Yureien commented Jul 14, 2020
edited
Loading

Copy link
Copy Markdown
Contributor Author

@tomchristie um I tried doing the tests on my PC and both this PR and the master branch has the same error:

databases/backends/sqlite.py:81: error: Incompatible types in assignment (expression has type "Connection", variable has type "None")

Yureien commented Jul 14, 2020

Copy link
Copy Markdown
Contributor Author

Seems like aiosqlite added type hinting too (omnilib/aiosqlite@bc94ad9). I can fix sqlite.py but that'd be a separate PR.

Copy link
Copy Markdown
Contributor

This closes #40

Copy link
Copy Markdown
Contributor

@fadedcoder The tests still fail, can you PTAL?

Yureien commented Jul 20, 2020

Copy link
Copy Markdown
Contributor Author

@vmarkovtsev hey, there was an issue in code formatting (was using autopep8 earlier). Now all the tests pass :D

vmarkovtsev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

Two things:

  1. We need the tests.
  2. Is it possible to follow the snippet in #40 (comment) so that we have to touch less code and move the responsibility higher?

Yureien commented Jul 20, 2020

Copy link
Copy Markdown
Contributor Author

Sure, will implement the changes soon.

Copy link
Copy Markdown
Contributor

@fadedcoder friendly ping

Yureien commented Aug 11, 2020

Copy link
Copy Markdown
Contributor Author

@vmarkovtsev Implemented the changes :)

By the way, DDLElement is a subclass of ClauseElement so we don't have to do typing.Union[ClauseElement, DDLElement] for strict typing.

vmarkovtsev left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

LGTM. Let's give a chance to somebody else to review this (@tomchristie?). If there is no reaction within a week, I'll merge as-is.

vmarkovtsev merged commit 4088e42 into encode:master Aug 20, 2020
vmarkovtsev added a commit to vmarkovtsev/databases that referenced this pull request Oct 19, 2020
Changelog:

- Use backend native fetch_val() implementation when available (encode#132)
- Replace psycopg2-binary with psycopg2 (encode#198) (encode#204)
- Speed up PostgresConnection fetch() and iterate() (encode#193)
- Access asyncpg Record field by key on raw query (encode#207)
- Fix type hinting for sqlite backend (encode#227)
- Allow setting min_size and max_size in postgres DSN (encode#210)
- Add option pool_recycle in postgres DSN (encode#233)
- Fix SQLAlchemy DDL statements (encode#226)
- Make fetch_val call fetch_one for type conversion (encode#246)
- Allow extra transaction options (encode#242)
- Unquote username and password in DatabaseURL (encode#248)
vmarkovtsev added a commit to vmarkovtsev/databases that referenced this pull request Oct 19, 2020
Changelog:

- Use backend native fetch_val() implementation when available (encode#132)
- Replace psycopg2-binary with psycopg2 (encode#198) (encode#204)
- Speed up PostgresConnection fetch() and iterate() (encode#193)
- Access asyncpg Record field by key on raw query (encode#207)
- Fix type hinting for sqlite backend (encode#227)
- Allow setting min_size and max_size in postgres DSN (encode#210)
- Add option pool_recycle in postgres DSN (encode#233)
- Fix SQLAlchemy DDL statements (encode#226)
- Make fetch_val call fetch_one for type conversion (encode#246)
- Allow extra transaction options (encode#242)
- Unquote username and password in DatabaseURL (encode#248)
vmarkovtsev mentioned this pull request Oct 19, 2020
vmarkovtsev added a commit to vmarkovtsev/databases that referenced this pull request Oct 20, 2020
Changelog:

- Use backend native fetch_val() implementation when available (encode#132)
- Replace psycopg2-binary with psycopg2 (encode#198) (encode#204)
- Speed up PostgresConnection fetch() and iterate() (encode#193)
- Access asyncpg Record field by key on raw query (encode#207)
- Fix type hinting for sqlite backend (encode#227)
- Allow setting min_size and max_size in postgres DSN (encode#210)
- Add option pool_recycle in postgres DSN (encode#233)
- Fix SQLAlchemy DDL statements (encode#226)
- Make fetch_val call fetch_one for type conversion (encode#246)
- Allow extra transaction options (encode#242)
- Unquote username and password in DatabaseURL (encode#248)
vmarkovtsev added a commit to vmarkovtsev/databases that referenced this pull request Oct 20, 2020
Changelog:

- Use backend native fetch_val() implementation when available (encode#132)
- Replace psycopg2-binary with psycopg2 (encode#198) (encode#204)
- Speed up PostgresConnection fetch() and iterate() (encode#193)
- Access asyncpg Record field by key on raw query (encode#207)
- Fix type hinting for sqlite backend (encode#227)
- Allow setting min_size and max_size in postgres DSN (encode#210)
- Add option pool_recycle in postgres DSN (encode#233)
- Fix SQLAlchemy DDL statements (encode#226)
- Make fetch_val call fetch_one for type conversion (encode#246)
- Allow extra transaction options (encode#242)
- Unquote username and password in DatabaseURL (encode#248)
vmarkovtsev added a commit that referenced this pull request Oct 20, 2020
Changelog:

- Use backend native fetch_val() implementation when available (#132)
- Replace psycopg2-binary with psycopg2 (#198) (#204)
- Speed up PostgresConnection fetch() and iterate() (#193)
- Access asyncpg Record field by key on raw query (#207)
- Fix type hinting for sqlite backend (#227)
- Allow setting min_size and max_size in postgres DSN (#210)
- Add option pool_recycle in postgres DSN (#233)
- Fix SQLAlchemy DDL statements (#226)
- Make fetch_val call fetch_one for type conversion (#246)
- Allow extra transaction options (#242)
- Unquote username and password in DatabaseURL (#248)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants


Back | FazBrowse Home | New Git URL