Commit Graph

171 Commits

Author SHA1 Message Date
Mike Bayer 109d535961 - method call removal 2007-08-20 21:50:59 +00:00
Ants Aasma be16b15f2c an early out processing insert/update column parameters was a bit too early. 2007-08-19 23:01:44 +00:00
Paul Johnston 1b1da969eb mssql unit test fixes 2007-08-19 15:30:02 +00:00
Mike Bayer 7c6c1b99c2 1. Module layout. sql.py and related move into a package called "sql".
2. compiler names changed to be less verbose, unused classes removed.
3. Methods on Dialect which return compilers, schema generators, identifier preparers
have changed to direct class references, typically on the Dialect class itself
or optionally as attributes on an individual Dialect instance if conditional behavior is needed.
This takes away the need for Dialect subclasses to know how to instantiate these
objects, and also reduces method overhead by one call for each one.
4. as a result of 3., some internal signatures have changed for things like compiler() (now statement_compiler()), preparer(), etc., mostly in that the dialect needs to be passed explicitly as the first argument (since they are just class references now).  The compiler() method on Engine and Connection is now also named statement_compiler(), but as before does not take the dialect as an argument.

5. changed _process_row function on RowProxy to be a class reference, cuts out 50K method calls from insertspeed.py
2007-08-18 21:37:48 +00:00
Mike Bayer 820346549b - modified SQL operator functions to be module-level operators, allowing
SQL expressions to be pickleable [ticket:735]

- small adjustment to mapper class.__init__ to allow for Py2.6 object.__init__()
  behavior
2007-08-18 01:00:44 +00:00
Mike Bayer 74595d900c - Added a "legacy" adapter to types, such that user-defined TypeEngine
and TypeDecorator classes which define convert_bind_param()/convert_result_value()
  will continue to function.  Also supports calling the super() version of
  those methods.
2007-08-17 23:45:29 +00:00
Mike Bayer 13af7230dc - fix to bind param processing such that "False" values (like blank strings)
still get processed/encoded
2007-08-16 18:25:11 +00:00
Mike Bayer dd99a207d6 added support for string date passthru in sqlite 2007-08-16 14:48:48 +00:00
Mike Bayer e02a48ed24 mass has_key->__contains__ migration, [ticket:738] 2007-08-15 17:28:52 +00:00
Mike Bayer 2708a3489e - moved unicode schema ORM tests to unitofwork.py tests. mostly
is to test mappers so limited DB support (really hard to get these unicode schemas
to work...)
- fixed [ticket:739]
2007-08-15 16:48:57 +00:00
Mike Bayer 087f235c33 - merged "fasttypes" branch. this branch changes the signature
of convert_bind_param() and convert_result_value() to callable-returning
bind_processor() and result_processor() methods.  if no callable is
returned, no pre/post processing function is called.
- hooks added throughout base/sql/defaults to optimize the calling
of bind param/result processors so that method call overhead is minimized.
special cases added for executemany() scenarios such that unneeded "last row id"
logic doesn't kick in, parameters aren't excessively traversed.
- new performance tests show a combined mass-insert/mass-select test as having 68%
fewer function calls than the same test run against 0.3.
- general performance improvement of result set iteration is around 10-20%.
2007-08-14 21:53:32 +00:00
Mike Bayer a7a837489d commented out unicode foriegn keys for now, not working on mysql or postgres 2007-08-14 04:17:44 +00:00
Mike Bayer 6614209895 - generalized a SQLCompileTest out of select.py, installed
into dialect/mssql.py, dialect/oracle.py, sql/generative.py
- fixed oracle issues [ticket:732], [ticket:733], [ticket:734]
2007-08-13 20:00:38 +00:00
Jason Kirtland 58f8db9955 Added more unicode foreign key tests for [ticket:729] 2007-08-12 23:43:49 +00:00
Mike Bayer e8793a5b59 - case_sensitive=(True|False) setting removed from schema items, since
checking this state added a lot of method call overhead and there was
    no decent reason to ever set it to False.  Table and column names which are
    all lower case will be treated as case-insenstive (yes we adjust for
    Oracle's UPPERCASE style too).
2007-08-11 14:03:23 +00:00
Mike Bayer b852fcbce0 - oracle reflection of case-sensitive names all fixed up
- other unit tests corrected for oracle
2007-08-10 23:24:06 +00:00
Jason Kirtland ce0d72e68a Allow '$' in bind param detection [ticket:719], added test suite & fixed an edge case 2007-08-09 22:10:16 +00:00
Mike Bayer 578efcfeb3 - decoupled all ColumnElements from also being Selectables. this means
that anything which is a column expression does not have a "c" or a
"columns" attribute.  Also works for select().as_scalar(); _ScalarSelect
is a columnelement, so you can't say select().as_scalar().c.foo, which is
a pretty confusing mistake to make.  in the case of _ScalarSelect made
an explicit raise if you try to access 'c'.
2007-08-09 21:50:23 +00:00
Jason Kirtland 72b02cc093 Added 'unformat_identifiers', produces a list of unquoted identifiers from an identifier or a fully qualified identifier string. 2007-08-09 21:01:50 +00:00
Mike Bayer c7ee47e545 - migrated 'desc', 'asc', and 'distinct' to be in the Operators framework
- fixes to operator() method signature/calling
2007-08-07 17:12:35 +00:00
Mike Bayer 8446b80533 - added desc() and asc() directly to CompareMixin 2007-08-06 21:52:24 +00:00
Mike Bayer 2dde45881b - docs
- added some convenience functions to selects, clauseelements
- fixed distinct()
2007-08-06 21:32:37 +00:00
Mike Bayer 68fd1be8d2 - edits
- added "params" to ansisql compiler
2007-08-06 01:51:54 +00:00
Mike Bayer b73b14f070 - draft sqlexpression tutorial
- added some generative methods to exists()
- got clause adapter to work with join()
2007-08-06 00:59:09 +00:00
Jason Kirtland 4cee19e8f0 Revert r3169 and r3148 changes to unicode schema reflection test, will add an explicit engine/reflection test to cover. 2007-08-04 19:34:30 +00:00
Jason Kirtland 65f9550a0a Update for osx 2007-08-04 16:55:08 +00:00
Jason Kirtland 4b0c6aff01 Rearranged engine initialization, its now easy to make ad-hoc testing engines that preserve all of the --options requested
Promoted the 'utf8 bind' logic for tests needing utf8 connections into testlib
Added a pause before issuing DROPs to rid the testing db of clutter
2007-08-03 20:08:26 +00:00
Mike Bayer 0b14d14db1 - fixed table_names for postgres to return as dialect.encoding-decoded unicode strings 2007-08-03 20:04:41 +00:00
Jason Kirtland c2a1e9065c Oops. 2007-08-03 14:43:28 +00:00
Jason Kirtland b8588ef4f7 - Dialects can be queried for the server version (sqlite and mysql only with this commit)
- Mark everything in a test suite as failed when setUpAll fails.
- Added test coverage for Unicode table names in metadata.reflect()
- @testing.exclude() filters out tests by server version
- Applied exclude to the test suite, MySQL 4.1 passes again (no XA or SAVEPOINT)
- Removed MySQL charset-setting pool hook- charset=utf8&use_unicode=0 works just as well.  (Am I nuts?  I'd swear this didn't work before.)
- Finally migrated some old MySQL-tests into the dialect test module
- Corrected 'commit' and 'rollback' logic (and comment) for ancient MySQL versions lacking transactions entirely
- Deprecated the MySQL get_version_info in favor of server_version_info
- Added a big hunk-o-doc for MySQL.
2007-08-03 02:38:00 +00:00
Mike Bayer 14a0c29362 added values() generative method to Insert/Update 2007-08-02 03:13:02 +00:00
Mike Bayer 8f17efd7a3 - assurances that context.connection is safe to use by column default functions, helps proposal for [ticket:703] 2007-07-31 17:15:36 +00:00
Mike Bayer 45650694ee fixed pydoc bug in [ticket:564] 2007-07-29 02:13:29 +00:00
Mike Bayer 34360bff78 added distinct positional dictionary arg to query.params(), fixes [ticket:690] 2007-07-27 21:10:12 +00:00
Mike Bayer 8db97dad98 fixed glitch in Select visit traversal, fixes #693 2007-07-27 16:46:11 +00:00
Mike Bayer ed4fc64bb0 merging 0.4 branch to trunk. see CHANGES for details. 0.3 moves to maintenance branch in branches/rel_0_3. 2007-07-27 04:08:53 +00:00
Rick Morrison 1c66e35132 mssql: added support for TIME type (simulated via DATETIME col) [ticket:679] 2007-07-26 16:51:09 +00:00
Paul Johnston a966505992 Properly escape table names when reflecting for mssql and sqlite [ticket:653] 2007-07-17 20:13:36 +00:00
Mike Bayer 8cb8daaafe - fixed "ambiguous column" result detection, when dupe col names exist
in a result [ticket:657]
2007-07-15 15:40:09 +00:00
Mike Bayer 471c3f8102 updated interval type for [ticket:595] 2007-07-15 15:29:41 +00:00
Mike Bayer e40a6183a0 - fixed unicode conversion in Oracle TEXT type 2007-07-15 04:24:41 +00:00
Mike Bayer 8889d2c1bc - improved ability to get the "correct" and most minimal set of primary key
columns from a join, equating foreign keys and otherwise equated columns.
  this is also mostly to help inheritance scenarios formulate the best
  choice of primary key columns.  [ticket:185]
- added 'bind' argument to Sequence.create()/drop(), ColumnDefault.execute()
2007-07-14 21:57:51 +00:00
Jason Kirtland fb6906bb79 Fix setup for standalone sequence test 2007-07-13 23:20:08 +00:00
Mike Bayer d947d6b79d changed "_source_column" to simpler "_distance" 2007-07-10 07:11:56 +00:00
Mike Bayer be29010e29 more "column targeting" enhancements..columns have a "depth" from their ultimate source column so that corresponding_column() can find the column that is "closest" (i.e. fewest levels of proxying) to the requested column 2007-07-10 06:51:58 +00:00
Jason Kirtland 177d30cc01 - Deprecated DynamicMetaData- use ThreadLocalMetaData or MetaData instead
- Deprecated BoundMetaData- use MetaData instead
- Removed DMD and BMD from documentation
2007-07-06 00:58:09 +00:00
Mike Bayer 3f3d84e754 postgres:
- added support for reflection of domains [ticket:570]
    - types which are missing during reflection resolve to Null type
      instead of raising an error
    - moved reflection/types/query unit tests specific to postgres to new
      postgres unittest module
2007-06-29 23:50:25 +00:00
Ants Aasma 51c0d90c8d add missing grouping for compound selects. fixes ticket #623 2007-06-26 18:00:57 +00:00
Ants Aasma b191254d8a fix #624, modulo operator escaping on mysql and postgres
someone should test this with oracle, firebird and sql server also
2007-06-26 16:37:30 +00:00
Ants Aasma 987581e6d2 fix precedence of between (ticket #621) 2007-06-25 18:14:40 +00:00