| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
| |
and will use the non-persistent values of their pk/fk
attributes in order to formulate the criterion.
Docs are also clarified as to the purpose of with_parent().
- fix for PG test executing an alias()
|
| |
|
| |
|
| |
|
|
|
|
| |
uphill climb
|
|
|
|
|
|
|
|
|
| |
allow the hybrid extension to work, but doesn't re-implement synonym,
comparable_property,concreteinheritedproperty
- mapper.get_property() and _entity_descriptor use plain getattr()
to get at descriptors in all cases, thereby placing more
trust in the ultimate class-bound attribute to provide mapped
properties
|
|
|
|
|
| |
up to date and clear explanations of things, including
as much context and description as possible
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
state more fully when queries are derived from
themselves + a selectable (i.e. from_self(),
union(), etc.), so that join() and such have the
correct state to work from. [ticket:1853]
- Fixed bug where Query.join() would fail if
querying a non-ORM column then joining without
an on clause when a FROM clause is already
present, now raises a checked exception the
same way it does when the clause is not
present. [ticket:1853]
|
|
|
|
|
|
| |
an expression that matches on identity the original expression
passed to the query. In particular you can pass it into order_by()
and similar.
|
|
|
|
|
|
|
|
| |
- Added "column_descriptions" accessor to Query,
returns a list of dictionaries containing
naming/typing information about the entities
the Query will return. Can be helpful for
building GUIs on top of ORM queries.
|
|
|
|
|
|
| |
form query.join(target, clause_expression),
i.e. missing the tuple, and raise an informative
error message that this is the wrong calling form.
|
|
|
|
|
|
|
|
|
|
|
| |
any existing order_by() state on the Query, allowing
subsequent generative methods to be called which do
not support ORDER BY. This is not the same as the
already existing feature of passing None, which
suppresses any existing order_by() settings, including
those configured on the mapper. False will make it
as though order_by() was never called, while
None is an active setting.
|
|
|
|
|
|
|
|
|
|
| |
the values of bind parameters, i.e. those specified
by query.params(), into the resulting SQL expression.
Previously the values would not be transferred
and bind parameters would come out as None.
- Subquery-eager-loading now works with Query objects
which include params(), as well as get() Queries.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
after a dispose() occurs.
- Engine gains an "execution_options" argument and
update_execution_options() method, which will apply to
all connections generated by this engine.
- Added more aggressive caching to the mapper's usage of
UPDATE, INSERT, and DELETE expressions. Assuming the
statement has no per-object SQL expressions attached,
the expression objects are cached by the mapper after
the first create, and their compiled form is stored
persistently in a cache dictionary for the duration of
the related Engine.
- change #3 required change #1 so that we could test
a set of mappers operating over the course of many engines without
memory usage increase.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
directly down to select().with_hint() and also accepts
entities as well as tables and aliases. See with_hint() in the
SQL section below. [ticket:921]
- Added with_hint() method to select() construct. Specify
a table/alias, hint text, and optional dialect name, and
"hints" will be rendered in the appropriate place in the
statement. Works for Oracle, Sybase, MySQL. [ticket:921]
|
|
|
|
|
| |
inheritance examples, now its improved !
- final doc pass
|
|
|
|
|
|
|
| |
- Query.join(Cls.propname, from_joinpoint=True) will check more
carefully that "Cls" is compatible with the current joinpoint,
and act the same way as Query.join("propname", from_joinpoint=True)
in that regard.
|
|
|
|
|
| |
- removed cruft
- all tests pass, now ready for API adjustments ('eagerload'->'joinedload'), docs
|
|
|
|
| |
hack tho.
|
|
|
|
|
|
|
| |
subquery into
an aliased(), so that it can be controlled. self ref breaks now. will move the
joining out to use orm.join().
|
|
|
|
| |
"FROM A JOIN A", and will raise an error if so.
|
|
|
|
| |
time being.
|
|
|
|
| |
- refined subquery strategy to use more public Query API
|
|
|
|
| |
I don't like how difficult it was to get Query() to do it, however.
|
| |
|
|
|
|
|
|
| |
join(prop) would fail to render the second join outside the
subquery, when joining on the same criterion as was on the
inside.
|
|
|
|
|
| |
in a joined inheritance scenario would double-add B as a
target and produce an invalid query. [ticket:1188]
|
|
|
|
|
|
| |
relationship(), to eliminate confusion over the relational
algebra term. relation() however will remain available
in equal capacity for the foreseeable future. [ticket:1740]
|
|
|
|
|
|
| |
that is present in the identity map with a different class
than the one requested, i.e. when using polymorphic loading.
[ticket:1727]
|
| |
|
|
|
|
|
| |
row is returned. All other behavior remains the same.
[ticket:1735]
|
|
|
|
|
|
| |
query.select_from(), query.with_polymorphic(), or
query.from_statement() raises an exception now instead of
silently dropping those criterion. [ticket:1736]
|
| |
|
|
|
|
|
|
|
| |
attribute of an aliased() construct, but there is already
an existing join made out to a compatible target, query properly
joins to the right aliased() construct instead of sticking
onto the right side of the existing join. [ticket:1706]
|
|
|
|
|
|
|
|
|
| |
ensure that it fully counts all object identities present
in the result, even in the case where joins may conceal
multiple identities for two or more rows. As a bonus,
one() can now also be called with a query that issued
from_statement() to start with since it no longer modifies
the query. [ticket:1688]
|
|
|
|
| |
[ticket:1689]
|
|
|
|
|
|
|
|
| |
the version called by column loaders on an incomplete row (i.e.
joined table inheritance). there are more dramatic changes
that can be made here but this one is conservative so far
as far as how much we're altering how InstanceState tracks
"expired" attributes.
|
|
|
|
|
|
|
|
|
|
|
|
| |
disambiguating labels in all cases. Note that this does
not apply to the existing .statement and .subquery()
accessor/method, which still honors the .with_labels()
setting that defaults to False.
- Query.union() retains disambiguating labels within the
returned statement, thus avoiding various SQL composition
errors which can result from column name conflicts.
[ticket:1676]
|
| |
|
|
|
|
|
|
| |
constructs, and mappers as arguments. In particular this
helps when querying from multiple joined-table classes to ensure
the full join gets rendered.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
passed to the resulting statement. Currently only
Select-statements have these options, and the only option
used is "stream_results", and the only dialect which knows
"stream_results" is psycopg2.
- Query.yield_per() will set the "stream_results" statement
option automatically.
- Added "statement_options()" to Selects, which set statement
specific options. These enable e.g. dialect specific options
such as whether to enable using server side cursors, etc.
- The psycopg2 now respects the statement option
"stream_results". This option overrides the connection setting
"server_side_cursors". If true, server side cursors will be
used for the statement. If false, they will not be used, even
if "server_side_cursors" is true on the
connection. [ticket:1619]
- added a "frozendict" from http://code.activestate.com/recipes/414283/,
adding more default collections as immutable class vars on
Query, Insert, Select
|
| |
|
| |
|
| |
|
|
|
|
|
| |
more information for custom mapper opts to see what's going on. add a new _reduce_path()
function to apply to the path as stored in dictionaries, adds a slight cost overhead.
|
| |
|