| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
- Updated documentation for JSON class
|
|
|
|
|
| |
- Added support for additional operators
- Made return as json default (rather than text)
|
|
|
|
| |
- Removed unneeded import of psycopg2.extensions
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Fixed reference to HSTORE
- Corrected spelling of SQLAlchemy
sqlalchemy/dialects/postgresql/psycopg2:
- Added psycopg2 specific wrapper type for JSON which uses inherent json deserialization facilities
- Added code to detect and utilize the JSON wrapper if psycopg2 >= 2.5
test/dialect/postgresql/test_types:
- removed reference to use_native_hstore
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
have been modified, such that the COLLATE operator is now of lower
precedence than the comparison operators. This has the effect that
a COLLATE applied to a comparison will not render parenthesis
around the comparison, which is not parsed by backends such as
MSSQL. The change is backwards incompatible for those setups that
were working around the issue by applying :meth:`.Operators.collate`
to an individual element of the comparison expression,
rather than the comparison expression as a whole. [ticket:2879]
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
- Added import references to JSON class
sqlalchemy/dialects/postgresql/base.py:
- Added visitor method for JSON class
sqlalchemy/dialects/postgresql/pgjson (new):
- JSON class, supports automatic serialization and deserialization of json data, as well as basic json operators.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
automatic reflection support for the "secondary" table referred
to by a :func:`.relationship`. "secondary", when specified
either as a string table name, or as a :class:`.Table` object with
only a name and :class:`.MetaData` object will also be included
in the reflection process when :meth:`.DeferredReflection.prepare`
is called. [ticket:2865]
- clsregistry._resolver() now uses a stateful _class_resolver()
class in order to handle the work of mapping strings to
objects. This is to provide for simpler extensibility, namely
a ._resolvers collection of ad-hoc name resolution functions;
the DeferredReflection class adds its own resolver here in order
to handle relationship(secondary) names which generate new
Table objects.
|
|
|
|
| |
"is disconnect" codes with cx_oracle. [ticket:2864]
|
|
|
|
|
|
|
| |
:func:`.validates` function; when set to False, a validation event
will not be triggered if the event was initated as a backref to
an attribute operation from the other side. [ticket:1535]
- break out validation tests into an updated module test_validators
|
|
|
|
| |
- put list.clear() instrumentation under "if not py2k"
|
|\
| |
| |
| | |
github.com:schettino72/sqlalchemy into list_clear
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
are still useful, just include notes that for more complex descriptor operations,
hybrids are probably preferable
|
| |
| |
| |
| |
| | |
quote signs. Note that this is backwards-incompatible for existing
workarounds that manually escape the single quotes. [ticket:2878]
|
| | |
|
| |
| |
| |
| |
| | |
- get PG dialect to work around "no nonexistent binds" rule for now,
though we might want to reconsider this behavior
|
| |
| |
| |
| |
| | |
as the string name of a class or other argument within
declarative using :func:`.relationship`.
|
| |
| |
| |
| | |
versionadded
|
| | |
|
|\ \
| | |
| | | |
Fix sessionmaker.__repr__
|
| | |
| | |
| | | |
A comma separating 'class_' from the other args. It's still there even when kw is empty, which is syntactically correct.
|
|\ \ \
| | | |
| | | | |
More fixes for cross references and reducing warnings (3rd wave)
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We should probably reword this entirely as, IMHO, this should be in the
changelog and not in the doc proper (which should only describe the
current state of affairs).
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
more flexible ways to set up bound parameters and return types;
in particular, a :func:`.text` can now be turned into a full
FROM-object, embeddable in other statements as an alias or CTE
using the new method :meth:`.TextClause.columns`.
[ticket:2877]
|
| | | |
| | | |
| | | |
| | | | |
here is that "lockmode" is also public in Session.refresh().
|
| | | |
| | | |
| | | |
| | | |
| | | | |
- implement Query with_for_update()
- rework docs and tests
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- move out tests, dialect specific out of compiler, compiler tests use new API,
legacy API tests in test_selecatble
- add support for adaptation of ForUpdateArg, alias support in compilers
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
for_update_of
|
| | | | | |
|
| | | | | |
|
| | |_|/
| |/| | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
didn't match. use straight memoized_props here for now, add a perf test to check it
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
"@", or "/" must be encoded." - so re-apply encoding to both password
and username, don't encode spaces as plus signs, don't encode any chars
outside of :, @, / on stringification - but we still parse for any
%XX character (is that right?)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
:func:`.make_url` function **no longer URL encode the password**.
Database passwords that include characters like spaces, plus signs
and anything else should now represent these characters directly,
without any URL escaping. [ticket:2873]
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
self.decimal_return_scale
so that __repr__() is maintained (for alembic tests)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
to descriptors, like hybrids, synonyms, composites, user-defined
descriptors, etc. The attribute
adaptation which goes on has been made more robust, such that if a descriptor
returns another instrumented attribute, rather than a compound SQL
expression element, the operation will still proceed.
Addtionally, the "adapted" operator will retain its class; previously,
a change in class from ``InstrumentedAttribute`` to ``QueryableAttribute``
(a superclass) would interact with Python's operator system such that
an expression like ``aliased(MyClass.x) > MyClass.x`` would reverse itself
to read ``myclass.x < myclass_1.x``. The adapted attribute will also
refer to the new :class:`.AliasedClass` as its parent which was not
always the case before. [ticket:2872]
|