| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| |
|
|
|
|
| |
as select().autocommit() are deprecated - now call
.execution_options(autocommit=True) on either of those
constructs, also available directly on Connection and orm.Query.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of statements have more consistent behavior w.r.t.
parenthesizing. Each compound element embedded within
another will now be grouped with parenthesis - previously,
the first compound element in the list would not be grouped,
as SQLite doesn't like a statement to start with
parenthesis. However, Postgresql in particular has
precedence rules regarding INTERSECT, and it is
more consistent for parenthesis to be applied equally
to all sub-elements. So now, the workaround for SQLite
is also what the workaround for PG was previously -
when nesting compound elements, the first one usually needs
".alias().select()" called on it to wrap it inside
of a subquery. [ticket:1665]
|
| |
|
|
|
|
|
|
|
| |
which accepts keywords that affect how the statement
is executed w.r.t. the DBAPI. Currently supports
"stream_results", causes psycopg2 to use a server
side cursor for that statement. Can also be set
upon select() and text() constructs directly as well
as ORM Query().
|
| |
|
|
| |
if a transaction is in progress.
|
| |
|
|
|
|
| |
case-sensitive column name during reflect and add
"quote=True" to the generated Column, so that proper
quoting is maintained.
|
| |
|
|
| |
and now supports SAVEPOINT operations.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
also replaces PickledResultProxy.
Allows RowProxy objects to reference just the metadata they need and provides the "core" of ResultProxy
detached from the object itself, allowing ResultProxy implementations to vary more easily. will also
enable [ticket:1635]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
only the DAY TO SECOND interval type so far due to lack
of support in cx_oracle for YEAR TO MONTH. [ticket:1467]
- The Interval type includes a "native" flag which controls
if native INTERVAL types (postgresql + oracle) are selected
if available, or not. "day_precision" and "second_precision"
arguments are also added which propagate as appropriately
to these native types. Related to [ticket:1467].
- DefaultDialect.type_descriptor moves back to being per-dialect.
TypeEngine/TypeDecorator key type impls to the dialect class
+ server_version_info so that the colspecs dict can be modified
per-dialect based on server version.
- Fixed TypeDecorator's incorrect usage of _impl_dict
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
lifecycle events, including begin(), rollback(), commit()
begin_nested(), begin_prepared(), prepare(), release_savepoint(),
etc.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- updated oursql driver with latest fixes using options. [ticket:1613]
- all the MySQL drivers get a shoutout in the docs
- marked tests that OurSQL has problems with (only three), passes 100% now
|
| |
|
|
|
| |
used with dialects that don't support "rowcount" adequately.
[ticket:1569]
|
| |
|
|
| |
NotImplementedError but will see if this gets the message across
|
| |
|
|
|
|
|
| |
Uses a straight CheckConstraint with a generic expression. Preparing for boolean
constraint in [ticket:1589]
- CheckConstraint now accepts SQL expressions, though support for quoting of values
will be very limited. we don't want to get into formatting dates and such.
|
| |
|
|
|
| |
not rely upon silly tb_info trick to determine import
error status. [ticket:1630]
|
| |
|
|
|
|
|
|
|
|
| |
types to more intelligently determine float() vs. Decimal(),
[ticket:1567]
- since result processing is a hot issue of late, the DBAPI type
returned from cursor.description is certainly useful in cases like
these to determine an efficient result processor. There's likely
other result processors that can make use of it. But, backwards
incompat change to result_processor(). Happy major version number..
|
| |
|
|
| |
on each execution.
|
| |
|
|
|
| |
didn't set the full state which allows subsequent close()
call to succeed. [ticket:1603]
|
| | |
|
| |
|
|
|
| |
public via dialect.default_schema_name.
[ticket:1571]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on all new connections, which allows all String/Text/etc.
types to skip the need to post-process bytestrings into
unicode (an expensive step due to its volume). Other
dialects which return unicode natively (pg8000, zxjdbc)
also skip unicode post-processing.
- String/Text/Unicode types now skip the unicode() check
on each result column value if the dialect has
detected the DBAPI as returning Python unicode objects
natively. This check is issued on first connect
using "SELECT CAST 'some text' AS VARCHAR(10)" or
equivalent, then checking if the returned object
is a Python unicode. This allows vast performance
increases for native-unicode DBAPIs, including
pysqlite/sqlite3, psycopg2, and pg8000.
|
| |
|
|
|
|
|
|
| |
method call counts when fetching columns that have no
type-level processing applied. Provides a 100% speed
improvement when fetching large result sets with no unicode
conversion. Many thanks to Elixir's Gaëtan de Menten
for this dramatic improvement ! [ticket:1586]
|
| |
|
|
|
|
|
| |
Implicit identities in mssql work the same as implicit sequences on any
other dialects. Explicit sequences are enabled through the use of
"default=Sequence()". See the MSSQL dialect documentation for more
information.
|
| |
|
|
|
| |
or explicit sequence-stated schema, into account.
[ticket:1576]
|
| |
|
|
|
| |
- support exceptions raised in dialect initialize phase
- provide default dialect create_connect_args() method
|
| |
|
|
|
|
|
|
|
|
|
|
| |
sets require that all keys are present which are
present in the first bound parameter set. The structure
and behavior of an insert/update statement is very much
determined by the first parameter set, including which
defaults are going to fire off, and a minimum of
guesswork is performed with all the rest so that performance
is not impacted. For this reason defaults would otherwise
silently "fail" for missing parameters, so this is now guarded
against. [ticket:1566]
|
| |
|
|
|
|
|
| |
of this object has been simplified and moved into
ExecutionContext. Dialects which support sequences should
add a `fire_sequence()` method to their execution context
implementation. [ticket:1566]
|
| |
|
|
|
|
| |
by result.fetchone(), result.fetchall() etc.
- the "named tuple" objects returned when iterating a
Query() are now pickleable.
|
| |
|
|
| |
called "sqlalchemy.dialects". external dialects need to be changed to work with 0.6 in any case.
|
| |
|
|
|
|
| |
inspector info_cache()
- added awareness of sqlite implicit auto indexes [ticket:1551]
|
| |
|
|
|
|
| |
context.current_parameters
- metadata docs continued
|
| |
|
|
|
|
|
|
|
|
|
| |
will allow the "not null constraint" error to raise,
not an attempt to execute a nonexistent "col_id_seq"
sequence. [ticket:1516]
- autoincrement SELECT statements, i.e. those which
select from a procedure that modifies rows, now work
with server-side cursor mode (the named cursor isn't
used for such statements.)
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
is a standardized interface which allows the creation of custom
ClauseElement subclasses and compilers. In particular it's
handy as an alternative to text() when you'd like to
build a construct that has database-specific compilations.
See the extension docs for details.
|
| | |
|
| |
|
|
|
|
|
| |
class. It can be subclassed to provide user-defined
SQL functions in an imperative style, including
with pre-established behaviors. The postgis.py
example illustrates one usage of this.
|
| |
|
|
| |
workaround for the pyodbc dbapi.
|
| |
|
|
|
| |
This is used for encoding the column name when processing the metadata. This
usually defaults to utf-8.
|
| |
|
|
| |
sent to connection.execute() and friends. [ticket:935]
|