]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
- A rework to the way that "quoted" identifiers are handled, in that
authorMike Bayer <mike_mp@zzzcomputing.com>
Wed, 28 Aug 2013 00:43:22 +0000 (20:43 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Wed, 28 Aug 2013 00:43:22 +0000 (20:43 -0400)
commit031ef0807838842a827135dbace760da7aec215e
treea677555dd6f39e64da0880035a378ed4323c8e82
parent99732dd29bd69a4a3808bfaa86c8e378d7a5e28b
- A rework to the way that "quoted" identifiers are handled, in that
instead of relying upon various ``quote=True`` flags being passed around,
these flags are converted into rich string objects with quoting information
included at the point at which they are passed to common schema constructs
like :class:`.Table`, :class:`.Column`, etc.   This solves the issue
of various methods that don't correctly honor the "quote" flag such
as :meth:`.Engine.has_table` and related methods.  The :class:`.quoted_name`
object is a string subclass that can also be used explicitly if needed;
the object will hold onto the quoting preferences passed and will
also bypass the "name normalization" performed by dialects that
standardize on uppercase symbols, such as Oracle, Firebird and DB2.
The upshot is that the "uppercase" backends can now work with force-quoted
names, such as lowercase-quoted names and new reserved words.
[ticket:2812]
23 files changed:
doc/build/changelog/changelog_09.rst
doc/build/changelog/migration_09.rst
doc/build/core/metadata.rst
doc/build/core/reflection.rst
doc/build/core/sqlelement.rst
lib/sqlalchemy/dialects/mssql/base.py
lib/sqlalchemy/dialects/mysql/base.py
lib/sqlalchemy/dialects/oracle/cx_oracle.py
lib/sqlalchemy/dialects/postgresql/base.py
lib/sqlalchemy/engine/base.py
lib/sqlalchemy/engine/default.py
lib/sqlalchemy/engine/reflection.py
lib/sqlalchemy/sql/base.py
lib/sqlalchemy/sql/compiler.py
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/sql/schema.py
lib/sqlalchemy/sql/selectable.py
lib/sqlalchemy/sql/sqltypes.py
lib/sqlalchemy/sql/util.py
test/ext/declarative/test_basic.py
test/profiles.txt
test/sql/test_metadata.py
test/sql/test_quote.py