| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
to not export __names__ [ticket:1215].
|
| |
|
|
|
|
|
| |
on Insert/Update/Delete constructs. These items
currently don't support this functionality, which
also would be a little misleading compared to
values().
|
| |
|
|
|
| |
- flattened an unnecessary KeyError in identity.py
- memoized the default list of mapper properties queried in MapperEntity.setup_context
|
| | |
|
| |
|
|
|
| |
Connection object, Connection.info should be used.
- Method consoliation in Connection, ExecutionContext
|
| |
|
|
| |
a couple of insures that should be ensure.
|
| | |
|
| |
|
|
| |
all we're going to squeeze out of compiler at this point.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
multiple aliases of the same class (will add tests in
[ticket:1218])
- Added a new extension sqlalchemy.ext.serializer. Provides
Serializer/Deserializer "classes" which mirror Pickle/Unpickle,
as well as dumps() and loads(). This serializer implements
an "external object" pickler which keeps key context-sensitive
objects, including engines, sessions, metadata, Tables/Columns,
and mappers, outside of the pickle stream, and can later
restore the pickle using any engine/metadata/session provider.
This is used not for pickling regular object instances, which are
pickleable without any special logic, but for pickling expression
objects and full Query objects, such that all mapper/engine/session
dependencies can be restored at unpickle time.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Pass in the argument "label_length=<value>" to create_engine()
to adjust how many characters max will be present in dynamically
generated column labels, i.e. "somecolumn AS somelabel". Any
value less than 6 will result in a label of minimal size,
consiting of an underscore and a numeric counter.
The compiler uses the value of dialect.max_identifier_length
as a default. [ticket:1211]
- removed ANON_NAME regular expression, using string patterns now
- _generated_label() unicode subclass is used to indicate generated names
which are subject to truncation
|
| |
|
|
|
|
|
|
|
|
|
| |
accurately adapt the expressions generated, which helps
particularly with self-referential comparisons. [ticket:1171]
- Fixed bug involving primaryjoin/secondaryjoin conditions
constructed from class-bound attributes (as often occurs
when using declarative), which later would be inappropriately
aliased by Query, particularly with the various EXISTS
based comparators.
|
| | |
|
| |
|
|
|
|
|
| |
class to reduce dependencies
- implemented _generative decorator for select/update/insert/delete constructs
- other minutiae
|
| | |
|
| | |
|
| |
|
|
| |
- added stack logic back to visit_compound(), pared down is_subquery
|
| | |
|
| |
|
|
| |
test_in_filtering_advanced test for mssql.
|
| |
|
|
| |
Now results in inequality comparison against self. More portable, but breaks with stored procedures that aren't pure functions.
|
| |
|
|
| |
insert. If supports_empty_insert is True then the backend specifically supports the 'insert into t1 () values ()' syntax. If supports_default_values is True then the backend supports the 'insert into t1 default values' syntax. If both are false then the backend has no support for empty inserts at all and an exception gets raised. Changes here are careful to not change current behavior except where the current behavior was failing to begin with.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- The internal notion of an "OID" or "ROWID" column has been
removed. It's basically not used by any dialect, and the
possibility of its usage with psycopg2's cursor.lastrowid
is basically gone now that INSERT..RETURNING is available.
- Removed "default_order_by()" method on all FromClause
objects.
- profile/compile/select test is 8 function calls over on buildbot 2.4 for some reason, will adjust after checking
the results of this commit
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to an instance will not drop into an EXISTS clause
and will compare foreign key columns instead.
- removed not-really-working use cases of comparing
a collection to an iterable. Use contains() to test
for collection membership.
- Further simplified SELECT compilation and its relationship
to result row processing.
- Direct execution of a union() construct will properly set up
result-row processing. [ticket:1194]
|
| |
|
|
|
|
|
|
|
|
|
| |
it (regression from 0.4).
- Removed the "raiseerror" keyword argument from object_mapper()
and class_mapper(). These functions raise in all cases
if the given class/instance is not mapped.
- Refined ExtensionCarrier to be itself a dict, removed
'methods' accessor
- moved identity_key tests to test/orm/utils.py
- some docstrings
|
| |
|
|
|
|
|
| |
- turned properties in sql/expressions.py to @property
- column.in_(someselect) can now be used as
a columns-clause expression without the subquery
bleeding into the FROM clause [ticket:1074]
|
| |
|
|
| |
- removed unneeded grouping from BooleanClauseList, generated needless parens
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
selectable by orm.query (they already had most ColumnElement
semantics).
- Added select_from() method to exists() construct, which becomes
more and more compatible with a regular select().
- Bind parameters/literals given a True/False value will detect
their type as Boolean
|
| |
|
|
|
|
|
|
|
| |
of elements as FROM clauses, allowing them to be used more
effectively in the columns clause of a SELECT.
- and_() and or_() now generate a ColumnElement, allowing
boolean expressions as result columns, i.e.
select([and_(1, 0)]). [ticket:798]
|
| |
|
|
|
|
|
|
|
|
| |
which basically allows for their return type to be determined
automatically. Helps with dates on SQLite, decimal types,
others. [ticket:1160]
- added decimal.Decimal as an "auto-detect" type; bind parameters
and generic functions will set their type to Numeric when a
Decimal is used.
|
| |
|
|
|
| |
primary key referenced another table that was not defined
yet [ticket:1161]
|
| |
|
|
|
|
| |
and instead uses subqueries in conjunction with a special
Oracle optimization comment. Allows LIMIT/OFFSET to work
in conjunction with DISTINCT. [ticket:536]
|
| |
|
|
|
|
|
|
|
|
| |
- Added "sorted_tables" accessor to MetaData, which returns
Table objects sorted in order of dependency as a list.
This deprecates the MetaData.table_iterator() method.
The "reverse=False" keyword argument has also been
removed from util.sort_tables(); use the Python
'reversed' function to reverse the results.
[ticket:1033]
|
| | |
|
| |
|
|
|
| |
from [ticket:1068]. This feature is on hold
pending further development.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
own name
and not its contained expression, if the dialect reports true for supports_simple_order_by_label.
the flag is not propagated forwards, meant to closely mimic the syntax Postgres expects which is
that only a simple name can be in the ORDER BY, not a more complex expression or function call
with the label name embedded (mysql and sqlite support more complex expressions).
This further sets the standard for propigation of **kwargs within compiler, that we can't just send
**kwargs along blindly to each XXX.process() call; whenever a **kwarg needs to propagate through,
most methods will have to be aware of it and know when they should send it on forward and when not.
This was actually already the case with result_map as well.
The supports_simple_order_by dialect flag defaults to True but is conservatively explicitly set to
False on all dialects except SQLite/MySQL/Postgres to start.
[ticket:1068]
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
(sets.Set-based collections & DB-API returns still work.)
|
| | |
|
| |
|
|
| |
- Some import tidying
|
| |
|
|
| |
or select([bindparam('foo')]).
|
| |
|
|
| |
on PostgreSQL, SQLite, MySQL, MS-SQL, and Oracle backends.
|
| |
|
|
|
| |
- removed ancient descriptor() functions from dialects; replaced with Dialect.name
- removed similarly ancient sys.modules silliness in Engine.name
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
the list of attributes does not include any column-based
attributes.
- query() raises an informative error message if no columns
or mappers are specified.
- lazy loaders now trigger autoflush before proceeding. This
allows expire() of a collection or scalar relation to
function properly in the context of autoflush.
- whitespace fix to new Table prefixes option
|
| |
|
|
| |
CREATE in the CREATE TABLE statement. Closes #1075.
|