Sqlalchemy

Latest version: v2.0.36

Safety actively analyzes 683249 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 48 of 51

0.3.4

Not secure
:released: Tue Jan 23 2007

.. change::
:tags: general
:tickets:

global "insure"->"ensure" change. in US english "insure" is actually
largely interchangeable with "ensure" (so says the dictionary), so I'm not
completely illiterate, but its definitely sub-optimal to "ensure" which is
non-ambiguous.

.. change::
:tags: sql
:tickets:

added "fetchmany()" support to ResultProxy

.. change::
:tags: sql
:tickets:

added support for column "key" attribute to be usable in
row[<key>]/row.<key>

.. change::
:tags: sql
:tickets:

changed "BooleanExpression" to subclass from "BinaryExpression", so that
boolean expressions can also follow column-clause behaviors (i.e. label(),
etc).

.. change::
:tags: sql
:tickets:

trailing underscores are trimmed from func.<xxx> calls, such as func.if_()

.. change::
:tags: sql
:tickets:

fix to correlation of subqueries when the column list of the select
statement is constructed with individual calls to append_column(); this
fixes an ORM bug whereby nested select statements were not getting
correlated with the main select generated by the Query object.

.. change::
:tags: sql
:tickets:

another fix to subquery correlation so that a subquery which has only one
FROM element will *not* correlate that single element, since at least one
FROM element is required in a query.

.. change::
:tags: sql
:tickets: 414

default "timezone" setting is now False. this corresponds to Python's
datetime behavior as well as Postgres' timestamp/time types (which is the
only timezone-sensitive dialect at the moment)

.. change::
:tags: sql
:tickets:

the "op()" function is now treated as an "operation", rather than a
"comparison". the difference is, an operation produces a BinaryExpression
from which further operations can occur whereas comparison produces the
more restrictive BooleanExpression

.. change::
:tags: sql
:tickets:

trying to redefine a reflected primary key column as non-primary key raises
an error

.. change::
:tags: sql
:tickets:

type system slightly modified to support TypeDecorators that can be
overridden by the dialect (ok, that's not very clear, it allows the mssql
tweak below to be possible)

.. change::
:tags: mssql
:tickets:

added an NVarchar type (produces NVARCHAR), also MSUnicode which provides
Unicode-translation for the NVarchar regardless of dialect convert_unicode
setting.

.. change::
:tags: postgres
:tickets: 424

fix to the initial checkfirst for tables to take current schema into
account

.. change::
:tags: postgres
:tickets:

postgres has an optional "server_side_cursors=True" flag which will utilize
server side cursors. these are appropriate for fetching only partial
results and are necessary for working with very large unbounded result
sets. While we'd like this to be the default behavior, different
environments seem to have different results and the causes have not been
isolated so we are leaving the feature off by default for now. Uses an
apparently undocumented psycopg2 behavior recently discovered on the
psycopg mailing list.

.. change::
:tags: postgres
:tickets:

added "BIGSERIAL" support for postgres table with
PGBigInteger/autoincrement

.. change::
:tags: postgres
:tickets: 402

fixes to postgres reflection to better handle when schema names are
present; thanks to jason (at) ncsmags.com

.. change::
:tags: mysql
:tickets: 420

mysql is inconsistent with what kinds of quotes it uses in foreign keys
during a SHOW CREATE TABLE, reflection updated to accommodate for all three
styles

.. change::
:tags: mysql
:tickets: 418

mysql table create options work on a generic passthru now, i.e. Table(...,
mysql_engine='InnoDB', mysql_collate="latin1_german2_ci",
mysql_auto_increment="5", mysql_<somearg>...), helps

.. change::
:tags: firebird
:tickets: 408

order of constraint creation puts primary key first before all other
constraints; required for firebird, not a bad idea for others

.. change::
:tags: firebird
:tickets: 409

Firebird fix to autoload multifield foreign keys

.. change::
:tags: firebird
:tickets: 409

Firebird NUMERIC type properly handles a type without precision

.. change::
:tags: oracle
:tickets:

*slight* support for binary, but still need to figure out how to insert
reasonably large values (over 4K). requires auto_setinputsizes=True sent to
create_engine(), rows must be fully fetched individually, etc.

.. change::
:tags: orm
:tickets:

poked the first hole in the can of worms: saying
query.select_by(somerelationname=someinstance) will create the join of the
primary key columns represented by "somerelationname"'s mapper to the
actual primary key in "someinstance".

.. change::
:tags: orm
:tickets:

reworked how relations interact with "polymorphic" mappers, i.e. mappers
that have a select_table as well as polymorphic flags. better determination
of proper join conditions, interaction with user- defined join conditions,
and support for self-referential polymorphic mappers.

.. change::
:tags: orm
:tickets:

related to polymorphic mapping relations, some deeper error checking when
compiling relations, to detect an ambiguous "primaryjoin" in the case that
both sides of the relationship have foreign key references in the primary
join condition. also tightened down conditions used to locate "relation
direction", associating the "foreignkey" of the relationship with the
"primaryjoin"

.. change::
:tags: orm
:tickets:

a little bit of improvement to the concept of a "concrete" inheritance
mapping, though that concept is not well fleshed out yet (added test case
to support concrete mappers on top of a polymorphic base).

.. change::
:tags: orm
:tickets:

fix to "proxy=True" behavior on synonym()

.. change::
:tags: orm
:tickets: 427

fixed bug where delete-orphan basically didn't work with many-to-many
relationships, backref presence generally hid the symptom

.. change::
:tags: orm
:tickets:

added a mutex to the mapper compilation step. ive been reluctant to add any
kind of threading anything to SA but this is one spot that its really
needed since mappers are typically "global", and while their state does not
change during normal operation, the initial compilation step does modify
internal state significantly, and this step usually occurs not at
module-level initialization time (unless you call compile()) but at
first-request time

.. change::
:tags: orm
:tickets:

basic idea of "session.merge()" actually implemented. needs more testing.

.. change::
:tags: orm
:tickets:

added "compile_mappers()" function as a shortcut to compiling all mappers

.. change::
:tags: orm
:tickets:

fix to MapperExtension create_instance so that entity_name properly
associated with new instance

.. change::
:tags: orm
:tickets:

speed enhancements to ORM object instantiation, eager loading of rows

.. change::
:tags: orm
:tickets: 406

invalid options sent to 'cascade' string will raise an exception

.. change::
:tags: orm
:tickets: 407

fixed bug in mapper refresh/expire whereby eager loaders didn't properly
re-populate item lists

.. change::
:tags: orm
:tickets: 413

fix to post_update to ensure rows are updated even for non insert/delete
scenarios

.. change::
:tags: orm
:tickets: 412

added an error message if you actually try to modify primary key values on
an entity and then flush it

.. change::
:tags: extensions
:tickets: 426

added "validate=False" argument to assign_mapper, if True will ensure that
only mapped attributes are named

.. change::
:tags: extensions
:tickets:

assign_mapper gets "options", "instances" functions added (i.e.
MyClass.instances())

.. changelog::

0.3.3

Not secure
:released: Fri Dec 15 2006

.. change::
:tags:
:tickets:

string-based FROM clauses fixed, i.e. select(..., from_obj=["sometext"])

.. change::
:tags:
:tickets:

fixes to passive_deletes flag, lazy=None (noload) flag

.. change::
:tags:
:tickets:

added example/docs for dealing with large collections

.. change::
:tags:
:tickets:

added object_session() method to sqlalchemy namespace

.. change::
:tags:
:tickets:

fixed QueuePool bug whereby its better able to reconnect to a database
that was not reachable (thanks to Sébastien Lelong), also fixed dispose()
method

.. change::
:tags:
:tickets: 396

patch that makes MySQL rowcount work correctly!

.. change::
:tags:
:tickets:

fix to MySQL catch of 2006/2014 errors to properly re-raise OperationalError
exception

.. changelog::

0.3.2

Not secure
:released: Sun Dec 10 2006

.. change::
:tags:
:tickets: 387

major connection pool bug fixed. fixes MySQL out of sync
errors, will also prevent transactions getting rolled back
accidentally in all DBs

.. change::
:tags:
:tickets:

major speed enhancements vs. 0.3.1, to bring speed
back to 0.2.8 levels

.. change::
:tags:
:tickets:

made conditional dozens of debug log calls that were
time-intensive to generate log messages

.. change::
:tags:
:tickets:

fixed bug in cascade rules whereby the entire object graph
could be unnecessarily cascaded on the save/update cascade

.. change::
:tags:
:tickets:

various speedups in attributes module

.. change::
:tags:
:tickets: 388

identity map in Session is by default *no longer weak referencing*.
to have it be weak referencing, use create_session(weak_identity_map=True)
fixes

.. change::
:tags:
:tickets:

MySQL detects errors 2006 (server has gone away) and 2014
(commands out of sync) and invalidates the connection on which it occurred.

.. change::
:tags:
:tickets: 307

MySQL bool type fix:

.. change::
:tags:
:tickets: 382, 349

postgres reflection fixes:

.. change::
:tags:
:tickets: 247

added keywords for EXCEPT, INTERSECT, EXCEPT ALL, INTERSECT ALL

.. change::
:tags:
:tickets: 2110

assign_mapper in assignmapper extension returns the created mapper

.. change::
:tags:
:tickets:

added label() function to Select class, when scalar=True is used
to create a scalar subquery
i.e. "select x, y, (select max(foo) from table) AS foomax from table"

.. change::
:tags:
:tickets:

added onupdate and ondelete keyword arguments to ForeignKey; propagate
to underlying ForeignKeyConstraint if present. (don't propagate in the
other direction, however)

.. change::
:tags:
:tickets:

fix to session.update() to preserve "dirty" status of incoming object

.. change::
:tags:
:tickets:

sending a selectable to an IN via the in_() function no longer creates
a "union" out of multiple selects; only one selectable to a the in_() function
is allowed now (make a union yourself if union is needed)

.. change::
:tags:
:tickets:

improved support for disabling save-update cascade via cascade="none" etc.

.. change::
:tags:
:tickets:

added "remote_side" argument to relation(), used only with self-referential
mappers to force the direction of the parent/child relationship. replaces
the usage of the "foreignkey" parameter for "switching" the direction.
"foreignkey" argument is deprecated for all uses and will eventually
be replaced by an argument dedicated to ForeignKey specification on mappers.

.. changelog::

0.3.1

Not secure
:released: Mon Nov 13 2006

.. change::
:tags: engine/pool
:tickets:

some new Pool utility classes, updated docs

.. change::
:tags: engine/pool
:tickets:

"use_threadlocal" on Pool defaults to False (same as create_engine)

.. change::
:tags: engine/pool
:tickets:

fixed direct execution of Compiled objects

.. change::
:tags: engine/pool
:tickets:

create_engine() reworked to be strict about incoming \**kwargs. all keyword
arguments must be consumed by one of the dialect, connection pool, and engine
constructors, else a TypeError is thrown which describes the full set of
invalid kwargs in relation to the selected dialect/pool/engine configuration.

.. change::
:tags: databases/types
:tickets:

MySQL catches exception on "describe" and reports as NoSuchTableError

.. change::
:tags: databases/types
:tickets:

further fixes to sqlite booleans, weren't working as defaults

.. change::
:tags: databases/types
:tickets:

fix to postgres sequence quoting when using schemas

.. change::
:tags: orm
:tickets:

the "delete" cascade will load in all child objects, if they were not
loaded already. this can be turned off (i.e. the old behavior) by setting
passive_deletes=True on a relation().

.. change::
:tags: orm
:tickets:

adjustments to reworked eager query generation to not fail on circular
eager-loaded relationships (like backrefs)

.. change::
:tags: orm
:tickets:

fixed bug where eagerload() (nor lazyload()) option didn't properly
instruct the Query whether or not to use "nesting" when producing a
LIMIT query.

.. change::
:tags: orm
:tickets: 360

fixed bug in circular dependency sorting at flush time; if object A
contained a cyclical many-to-one relationship to object B, and object B
was just attached to object A, *but* object B itself wasn't changed,
the many-to-one synchronize of B's primary key attribute to A's foreign key
attribute wouldn't occur.

.. change::
:tags: orm
:tickets: 325

implemented from_obj argument for query.count, improves count function
on selectresults

.. change::
:tags: orm
:tickets:

added an assertion within the "cascade" step of ORM relationships to check
that the class of object attached to a parent object is appropriate
(i.e. if A.items stores B objects, raise an error if a C is appended to A.items)

.. change::
:tags: orm
:tickets:

new extension sqlalchemy.ext.associationproxy, provides transparent
"association object" mappings. new example
examples/association/proxied_association.py illustrates.

.. change::
:tags: orm
:tickets:

improvement to single table inheritance to load full hierarchies beneath
the target class

.. change::
:tags: orm
:tickets: 362

fix to subtle condition in topological sort where a node could appear twice,
for

.. change::
:tags: orm
:tickets: 365

additional rework to topological sort, refactoring, for

.. change::
:tags: orm
:tickets:

"delete-orphan" for a certain type can be set on more than one parent class;
the instance is an "orphan" only if its not attached to *any* of those parents

.. changelog::

0.3.0

Not secure
:released: Sun Oct 22 2006

.. change::
:tags: general
:tickets:

logging is now implemented via standard python "logging" module.
"echo" keyword parameters are still functional but set/unset
log levels for their respective classes/instances. all logging
can be controlled directly through the Python API by setting
INFO and DEBUG levels for loggers in the "sqlalchemy" namespace.
class-level logging is under "sqlalchemy.<module>.<classname>",
instance-level logging under "sqlalchemy.<module>.<classname>.0x..<00-FF>".
Test suite includes "--log-info" and "--log-debug" arguments
which work independently of --verbose/--quiet. Logging added
to orm to allow tracking of mapper configurations, row iteration.

.. change::
:tags: general
:tickets:

the documentation-generation system has been overhauled to be
much simpler in design and more integrated with Markdown

.. change::
:tags: sqlite
:tickets:

sqlite boolean datatype converts False/True to 0/1 by default

.. change::
:tags: sqlite
:tickets: 335

fixes to Date/Time (SLDate/SLTime) types; works as good as postgres
now

.. change::
:tags: ms-sql
:tickets:

fixes bug 261 (table reflection broken for MS-SQL case-sensitive
databases)

.. change::
:tags: ms-sql
:tickets:

can now specify port for pymssql

.. change::
:tags: ms-sql
:tickets:

introduces new "auto_identity_insert" option for auto-switching
between "SET IDENTITY_INSERT" mode when values specified for IDENTITY columns

.. change::
:tags: ms-sql
:tickets:

now supports multi-column foreign keys

.. change::
:tags: ms-sql
:tickets:

fix to reflecting date/datetime columns

.. change::
:tags: ms-sql
:tickets:

NCHAR and NVARCHAR type support added

.. change::
:tags: oracle
:tickets:

Oracle has experimental support for cx_Oracle.TIMESTAMP, which requires
a setinputsizes() call on the cursor that is now enabled via the
'auto_setinputsizes' flag to the oracle dialect.

.. change::
:tags: firebird
:tickets:

aliases do not use "AS"

.. change::
:tags: firebird
:tickets:

correctly raises NoSuchTableError when reflecting non-existent table

.. change::
:tags: schema
:tickets:

a fair amount of cleanup to the schema package, removal of ambiguous
methods, methods that are no longer needed. slightly more constrained
usage, greater emphasis on explicitness

.. change::
:tags: schema
:tickets:

the "primary_key" attribute of Table and other selectables becomes
a setlike ColumnCollection object; is ordered but not numerically
indexed. a comparison clause between two pks that are derived from the
same underlying tables (i.e. such as two Alias objects) can be generated
via table1.primary_key==table2.primary_key

.. change::
:tags: schema
:tickets:

ForeignKey(Constraint) supports "use_alter=True", to create/drop a foreign key
via ALTER. this allows circular foreign key relationships to be set up.

.. change::
:tags: schema
:tickets:

append_item() methods removed from Table and Column; preferably
construct Table/Column/related objects inline, but if needed use
append_column(), append_foreign_key(), append_constraint(), etc.

.. change::
:tags: schema
:tickets:

table.create() no longer returns the Table object, instead has no
return value. the usual case is that tables are created via metadata,
which is preferable since it will handle table dependencies.

.. change::
:tags: schema
:tickets:

added UniqueConstraint (goes at Table level), CheckConstraint
(goes at Table or Column level).

.. change::
:tags: schema
:tickets:

index=False/unique=True on Column now creates a UniqueConstraint,
index=True/unique=False creates a plain Index,
index=True/unique=True on Column creates a unique Index. 'index'
and 'unique' keyword arguments to column are now boolean only; for
explicit names and groupings of indexes or unique constraints, use the
UniqueConstraint/Index constructs explicitly.

.. change::
:tags: schema
:tickets:

added autoincrement=True to Column; will disable schema generation
of SERIAL/AUTO_INCREMENT/identity seq for postgres/mysql/mssql if
explicitly set to False

.. change::
:tags: schema
:tickets:

TypeEngine objects now have methods to deal with copying and comparing
values of their specific type. Currently used by the ORM, see below.

.. change::
:tags: schema
:tickets:

fixed condition that occurred during reflection when a primary key
column was explicitly overridden, where the PrimaryKeyConstraint would
get both the reflected and the programmatic column doubled up

.. change::
:tags: schema
:tickets:

the "foreign_key" attribute on Column and ColumnElement in general
is deprecated, in favor of the "foreign_keys" list/set-based attribute,
which takes into account multiple foreign keys on one column.
"foreign_key" will return the first element in the "foreign_keys" list/set
or None if the list is empty.

.. change::
:tags: connections/pooling/execution
:tickets:

connection pool tracks open cursors and automatically closes them
if connection is returned to pool with cursors still opened. Can be
affected by options which cause it to raise an error instead, or to
do nothing. fixes issues with MySQL, others

.. change::
:tags: connections/pooling/execution
:tickets:

fixed bug where Connection wouldn't lose its Transaction
after commit/rollback

.. change::
:tags: connections/pooling/execution
:tickets:

added scalar() method to ComposedSQLEngine, ResultProxy

.. change::
:tags: connections/pooling/execution
:tickets:

ResultProxy will close() the underlying cursor when the ResultProxy
itself is closed. this will auto-close cursors for ResultProxy objects
that have had all their rows fetched (or had scalar() called).

.. change::
:tags: connections/pooling/execution
:tickets:

ResultProxy.fetchall() internally uses DBAPI fetchall() for better efficiency,
added to mapper iteration as well (courtesy Michael Twomey)

.. change::
:tags: construction, sql
:tickets: 292

changed "for_update" parameter to accept False/True/"nowait"
and "read", the latter two of which are interpreted only by
Oracle and MySQL

.. change::
:tags: construction, sql
:tickets:

added extract() function to sql dialect
(SELECT extract(field FROM expr))

.. change::
:tags: construction, sql
:tickets:

BooleanExpression includes new "negate" argument to specify
the appropriate negation operator if one is available.

.. change::
:tags: construction, sql
:tickets:

calling a negation on an "IN" or "IS" clause will result in
"NOT IN", "IS NOT" (as opposed to NOT (x IN y)).

.. change::
:tags: construction, sql
:tickets: 172

Function objects know what to do in a FROM clause now. their
behavior should be the same, except now you can also do things like
select(['*'], from_obj=[func.my_function()]) to get multiple
columns from the result, or even use sql.column() constructs to name the
return columns

.. change::
:tags: orm
:tickets:

attribute tracking modified to be more intelligent about detecting
changes, particularly with mutable types. TypeEngine objects now
take a greater role in defining how to compare two scalar instances,
including the addition of a MutableType mixin which is implemented by
PickleType. unit-of-work now tracks the "dirty" list as an expression
of all persistent objects where the attribute manager detects changes.
The basic issue that's fixed is detecting changes on PickleType
objects, but also generalizes type handling and "modified" object
checking to be more complete and extensible.

.. change::
:tags: orm
:tickets:

a wide refactoring to "attribute loader" and "options" architectures.
ColumnProperty and PropertyLoader define their loading behavior via switchable
"strategies", and MapperOptions no longer use mapper/property copying
in order to function; they are instead propagated via QueryContext
and SelectionContext objects at query/instances time.
All of the internal copying of mappers and properties that was used to handle
inheritance as well as options() has been removed; the structure
of mappers and properties is much simpler than before and is clearly laid out
in the new 'interfaces' module.

.. change::
:tags: orm
:tickets:

related to the mapper/property overhaul, internal refactoring to
mapper instances() method to use a SelectionContext object to track
state during the operation.
SLIGHT API BREAKAGE: the append_result() and populate_instances()
methods on MapperExtension have a slightly different method signature
now as a result of the change; hoping that these methods are not
in widespread use as of yet.

.. change::
:tags: orm
:tickets:

instances() method moved to Query now, backwards-compatible
version remains on Mapper.

.. change::
:tags: orm
:tickets:

added contains_eager() MapperOption, used in conjunction with
instances() to specify properties that should be eagerly loaded
from the result set, using their plain column names by default, or translated
given an custom row-translation function.

.. change::
:tags: orm
:tickets:

more rearrangements of unit-of-work commit scheme to better allow
dependencies within circular flushes to work properly...updated
task traversal/logging implementation

.. change::
:tags: orm
:tickets: 321

polymorphic mappers (i.e. using inheritance) now produces INSERT
statements in order of tables across all inherited classes

.. change::
:tags: orm
:tickets:

added an automatic "row switch" feature to mapping, which will
detect a pending instance/deleted instance pair with the same
identity key and convert the INSERT/DELETE to a single UPDATE

.. change::
:tags: orm
:tickets:

"association" mappings simplified to take advantage of
automatic "row switch" feature

.. change::
:tags: orm
:tickets: 212

"custom list classes" is now implemented via the "collection_class"
keyword argument to relation(). the old way still works but is
deprecated

.. change::
:tags: orm
:tickets:

added "viewonly" flag to relation(), allows construction of
relations that have no effect on the flush() process.

.. change::
:tags: orm
:tickets: 292

added "lockmode" argument to base Query select/get functions,
including "with_lockmode" function to get a Query copy that has
a default locking mode. Will translate "read"/"update"
arguments into a for_update argument on the select side.

.. change::
:tags: orm
:tickets:

implemented "version check" logic in Query/Mapper, used
when version_id_col is in effect and query.with_lockmode()
is used to get() an instance that's already loaded

.. change::
:tags: orm
:tickets: 208

post_update behavior improved; does a better job at not
updating too many rows, updates only required columns

.. change::
:tags: orm
:tickets: 308

adjustments to eager loading so that its "eager chain" is
kept separate from the normal mapper setup, thereby
preventing conflicts with lazy loader operation, fixes

.. change::
:tags: orm
:tickets:

fix to deferred group loading

.. change::
:tags: orm
:tickets: 346

session.flush() won't close a connection it opened

.. change::
:tags: orm
:tickets:

added "batch=True" flag to mapper; if False, save_obj
will fully save one object at a time including calls
to before_XXXX and after_XXXX

.. change::
:tags: orm
:tickets:

added "column_prefix=None" argument to mapper; prepends the
given string (typically '_') to column-based attributes automatically
set up from the mapper's Table

.. change::
:tags: orm
:tickets: 315

specifying joins in the from_obj argument of query.select() will
replace the main table of the query, if the table is somewhere within
the given from_obj. this makes it possible to produce custom joins and
outerjoins in queries without the main table getting added twice.

.. change::
:tags: orm
:tickets:

eagerloading is adjusted to more thoughtfully attach its LEFT OUTER JOINs
to the given query, looking for custom "FROM" clauses that may have
already been set up.

.. change::
:tags: orm
:tickets:

added join_to and outerjoin_to transformative methods to SelectResults,
to build up join/outerjoin conditions based on property names. also
added select_from to explicitly set from_obj parameter.

.. change::
:tags: orm
:tickets:

removed "is_primary" flag from mapper.



=============
0.4 Changelog
=============


.. changelog::

0.2.8

Not secure
:released: Tue Sep 05 2006

.. change::
:tags:
:tickets:

cleanup on connection methods + documentation. custom DBAPI
arguments specified in query string, 'connect_args' argument
to 'create_engine', or custom creation function via 'creator'
function to 'create_engine'.

.. change::
:tags:
:tickets: 274

added "recycle" argument to Pool, is "pool_recycle" on create_engine,
defaults to 3600 seconds; connections after this age will be closed and
replaced with a new one, to handle db's that automatically close
stale connections

.. change::
:tags:
:tickets: 121

changed "invalidate" semantics with pooled connection; will
instruct the underlying connection record to reconnect the next
time its called. "invalidate" will also automatically be called
if any error is thrown in the underlying call to connection.cursor().
this will hopefully allow the connection pool to reconnect to a
database that had been stopped and started without restarting
the connecting application

.. change::
:tags:
:tickets:

eesh ! the tutorial doctest was broken for quite some time.

.. change::
:tags:
:tickets:

add_property() method on mapper does a "compile all mappers"
step in case the given property references a non-compiled mapper
(as it did in the case of the tutorial !)

.. change::
:tags:
:tickets: 277

check for pg sequence already existing before create

.. change::
:tags:
:tickets:

if a contextual session is established via MapperExtension.get_session
(as it is using the sessioncontext plugin, etc), a lazy load operation
will use that session by default if the parent object is not
persistent with a session already.

.. change::
:tags:
:tickets:

lazy loads will not fire off for an object that does not have a
database identity (why?
see https://www.sqlalchemy.org/trac/wiki/WhyDontForeignKeysLoadData)

.. change::
:tags:
:tickets:

unit-of-work does a better check for "orphaned" objects that are
part of a "delete-orphan" cascade, for certain conditions where the
parent isn't available to cascade from.

.. change::
:tags:
:tickets:

mappers can tell if one of their objects is an "orphan" based
on interactions with the attribute package. this check is based
on a status flag maintained for each relationship
when objects are attached and detached from each other.

.. change::
:tags:
:tickets:

it is now invalid to declare a self-referential relationship with
"delete-orphan" (as the abovementioned check would make them impossible
to save)

.. change::
:tags:
:tickets:

improved the check for objects being part of a session when the
unit of work seeks to flush() them as part of a relationship..

.. change::
:tags:
:tickets: 280

statement execution supports using the same BindParam
object more than once in an expression; simplified handling of positional
parameters. nice job by Bill Noon figuring out the basic idea.

.. change::
:tags:
:tickets: 60, 71

postgres reflection moved to use pg_schema tables, can be overridden
with use_information_schema=True argument to create_engine.

.. change::
:tags:
:tickets: 155

added case_sensitive argument to MetaData, Table, Column, determines
itself automatically based on if a parent schemaitem has a non-None
setting for the flag, or if not, then whether the identifier name is all lower
case or not. when set to True, quoting is applied to identifiers with mixed or
uppercase identifiers. quoting is also applied automatically in all cases to
identifiers that are known to be reserved words or contain other non-standard
characters. various database dialects can override all of this behavior, but
currently they are all using the default behavior. tested with postgres, mysql,
sqlite, oracle. needs more testing with firebird, ms-sql. part of the ongoing
work with

.. change::
:tags:
:tickets:

unit tests updated to run without any pysqlite installed; pool
test uses a mock DBAPI

.. change::
:tags:
:tickets: 281

urls support escaped characters in passwords

.. change::
:tags:
:tickets:

added limit/offset to UNION queries (though not yet in oracle)

.. change::
:tags:
:tickets:

added "timezone=True" flag to DateTime and Time types. postgres
so far will convert this to "TIME[STAMP] (WITH|WITHOUT) TIME ZONE",
so that control over timezone presence is more controllable (psycopg2
returns datetimes with tzinfo's if available, which can create confusion
against datetimes that don't).

.. change::
:tags:
:tickets: 287

fix to using query.count() with distinct, \**kwargs with SelectResults
count()

.. change::
:tags:
:tickets: 289

deregister Table from MetaData when autoload fails;

.. change::
:tags:
:tickets: 293

import of py2.5s sqlite3

.. change::
:tags:
:tickets: 296

unicode fix for startswith()/endswith()

.. changelog::

Page 48 of 51

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.