summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sybase/base.py
Commit message (Collapse)AuthorAgeFilesLines
* - happy new yearMike Bayer2016-01-291-1/+1
|
* - The unsupported Sybase dialect now raises ``NotImplementedError``Mike Bayer2016-01-201-5/+1
| | | | | when attempting to compile a query that includes "offset"; Sybase has no straightforward "offset" feature. fixes #2278
* - Fixed two issues regarding Sybase reflection, allowing tablesMike Bayer2015-08-101-6/+9
| | | | | | | | | without primary keys to be reflected as well as ensured that a SQL statement involved in foreign key detection is pre-fetched up front to avoid driver issues upon nested queries. Fixes here courtesy Eugene Zapolsky; note that we cannot currently test Sybase to locally verify these changes. fixes #3508 fixes #3509
* - Fixed a regression that was incorrectly fixed in 1.0.0b4Mike Bayer2015-04-241-1/+0
| | | | | | | | | | | | | | | | | | (hence becoming two regressions); reports that SELECT statements would GROUP BY a label name and fail was misconstrued that certain backends such as SQL Server should not be emitting ORDER BY or GROUP BY on a simple label name at all; when in fact, we had forgotten that 0.9 was already emitting ORDER BY on a simple label name for all backends, as described in :ref:`migration_1068`, as 1.0 had rewritten this logic as part of :ticket:`2992`. In 1.0.2, the bug is fixed both that SQL Server, Firebird and others will again emit ORDER BY on a simple label name when passed a :class:`.Label` construct that is expressed in the columns clause, and no backend will emit GROUP BY on a simple label name in this case, as even Postgresql can't reliably do GROUP BY on a simple name in every case. fixes #3338, fixes #3385
* - Fixed support for "literal_binds" mode when using limit/offsetMike Bayer2015-04-231-1/+1
| | | | | | with Firebird, so that the values are again rendered inline when this is selected. Related to :ticket:`3034`. fixes #3381
* - also add this to Oracle, and defensively to firebird and sybaseMike Bayer2015-03-241-0/+1
|
* - copyright 2015Mike Bayer2015-03-101-1/+1
|
* - Custom dialects that implement :class:`.GenericTypeCompiler` canMike Bayer2015-01-161-13/+14
| | | | | | | | | | | | | | now be constructed such that the visit methods receive an indication of the owning expression object, if any. Any visit method that accepts keyword arguments (e.g. ``**kw``) will in most cases receive a keyword argument ``type_expression``, referring to the expression object that the type is contained within. For columns in DDL, the dialect's compiler class may need to alter its ``get_column_specification()`` method to support this as well. The ``UserDefinedType.get_col_spec()`` method will also receive ``type_expression`` if it provides ``**kw`` in its argument signature. fixes #3074
* - ensure literal_binds works with LIMIT clause, FOR UPDATEMike Bayer2014-09-031-1/+1
|
* - apply pep8 formatting to sqlalchemy/sql, sqlalchemy/util, sqlalchemy/dialects,Brian Jarrett2014-07-201-48/+50
| | | | sqlalchemy/orm, sqlalchemy/event, sqlalchemy/testing
* - break up the <authors> copyright comment as part of a passMike Bayer2014-07-091-1/+2
| | | | to get all flake8 passing
* Extract limit/offset to variablesDobes Vandermeer2014-04-251-5/+7
|
* - implement kwarg validation and type system for dialect-specificMike Bayer2014-01-181-0/+2
| | | | | arguments; [ticket:2866] - add dialect specific kwarg functionality to ForeignKeyConstraint, ForeignKey
* - happy new yearMike Bayer2014-01-051-1/+1
|
* remove all remaining start/end py2k/py3k blocksMike Bayer2013-06-071-18/+16
|
* - the raw 2to3 runMike Bayer2013-04-271-18/+18
| | | | - went through examples/ and cleaned out excess list() calls
* :class:`.Index` now supports arbitrary SQL expressions and/orMike Bayer2013-01-161-2/+2
| | | | | | | | functions, in addition to straight columns. Common modifiers include using ``somecolumn.desc()`` for a descending index and ``func.lower(somecolumn)`` for a case-insensitive index, depending on the capabilities of the target backend. [ticket:695]
* happy new year (see #2645)Diana Clarke2013-01-011-1/+1
|
* just a pep8 pass of lib/sqlalchemy/dialects/sybaseDiana Clarke2012-11-191-48/+59
|
* Removed caching from SybaseDialect.get_table_idBenjamin Trofatter2012-11-031-1/+0
|
* Updated sybase testing requirementsBenjamin Trofatter2012-10-311-2/+4
|
* Added sybase requirements to testing and improved view reflection.Benjamin Trofatter2012-10-301-33/+17
|
* Added reflection to sqlalchemy.dialects.sybaseBenjamin Trofatter2012-10-301-45/+424
| | | | | | | | | | | | | | | | | | | | | | | | Added missing types supported by Sybase to ischema_names mapping Created a SybaseInspector similar to the PGInspector, with a cached table_id lookup, and added it to the SybaseDialect as the default inspector. Added the following methods to SybaseDialect: get_table_id get_columns _get_column_info : support method for get_columns get_foreign_keys get_indexes get_pk_constraint get_schema_names get_view_definition get_view_names Rewrote the following methods to conform to the style of the rest: get_table_names has_table Reordered colspec builder to put default clause after "NULL/NOT NULL", instead of before. This fixed a syntax error.
* - rework the sphinx customizations into distinct modulesMike Bayer2012-10-191-1/+4
| | | | | | | - build a new Sphinx extension that allows dialect info to be entered as directives which is then rendered consistently throughout all dialect/dbapi sections - break out the "empty_strings" requirement for oracle test
* devMike Bayer2012-09-291-2/+2
|
* trailing whitespace bonanzaMike Bayer2012-07-281-8/+8
|
* - upgrade DBAPI index to have links to all dialect toplevel pagesMike Bayer2012-05-261-2/+6
| | | | - add line for google DBAPI
* - [feature] Dialect-specific compilers now raiseMike Bayer2012-01-281-1/+1
| | | | | | | | CompileException for all type/statement compilation issues, instead of InvalidRequestError or ArgumentError. The DDL for CREATE TABLE will re-raise CompileExceptions to include table/column information for the problematic column. [ticket:2361]
* - whitespace removal bonanzaMike Bayer2011-01-021-20/+20
|
* - clean up copyright, update for 2011, stamp every file withMike Bayer2011-01-021-1/+1
| | | | | a consistent tag - AUTHORS file
* - move LIMIT/OFFSET rendering to be as bind parameters, for all backendsMike Bayer2010-08-291-0/+2
| | | | | | | | | | which support it. This includes SQLite, MySQL, Postgresql, Firebird, Oracle (already used binds with ROW NUMBER OVER), MSSQL (when ROW NUMBER is used, not TOP). Not included are Informix, Sybase, MaxDB, Access [ticket:805] - LIMIT/OFFSET parameters need to stay as literals within SQL constructs. This because they may not be renderable as binds on some backends.
* - Changed the scheme used to generate truncatedMike Bayer2010-07-211-1/+1
| | | | | | | | | | | | "auto" index names when using the "index=True" flag on Column. The truncation only takes place with the auto-generated name, not one that is user-defined (an error would be raised instead), and the truncation scheme itself is now based on a fragment of an md5 hash of the identifier name, so that multiple indexes on columns with similar names still have unique names. [ticket:1855]
* 78 chars for sybaseMike Bayer2010-07-061-16/+28
|
* this is a rewrite from the old sybase module with almost nothingMike Bayer2010-03-271-5/+6
| | | | remaining from the original, setting primary copyright
* - Added with_hint() method to Query() construct. This callsMike Bayer2010-03-271-0/+3
| | | | | | | | | | 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]
* removed all dialect table_names() methods and standardizedMike Bayer2010-03-191-3/+0
| | | | on get_table_names(). [ticket:1739]
* - normalize sybase version numbersMike Bayer2010-03-181-0/+8
| | | | - sybase has 255 identifier length on 15, 30 earlier
* turning the decimals to floats allows the E notation to work with ↵Mike Bayer2010-03-181-4/+2
| | | | sybase+pyodbc for small E notations
* working through syb capabilitiesMike Bayer2010-03-171-3/+0
|
* - pyodbc can do *some* unicode with sybase, python-sybase not at all.Mike Bayer2010-03-171-5/+22
| | | | | Since python-sybase source code seems to be all from 2001 with no updates, making pyodbc the default driver.
* - added pyodbc for sybase driver.Mike Bayer2010-03-171-23/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - generalized the "freetds" / "unicode statements" behavior of MS-SQL/pyodbc into the base Pyodbc connector, as this seems to apply to Sybase as well. - generalized the python-sybase "use autocommit for DDL" into the pyodbc connector. With pyodbc, the "autocommit" flag on connection is used, as Pyodbc seems to have more database conversation than python-sybase that can't otherwise be suppressed. - Some platforms will now interpret certain literal values as non-bind parameters, rendered literally into the SQL statement. This to support strict SQL-92 rules that are enforced by some platforms including MS-SQL and Sybase. In this model, bind parameters aren't allowed in the columns clause of a SELECT, nor are certain ambiguous expressions like "?=?". When this mode is enabled, the base compiler will render the binds as inline literals, but only across strings and numeric values. Other types such as dates will raise an error, unless the dialect subclass defines a literal rendering function for those. The bind parameter must have an embedded literal value already or an error is raised (i.e. won't work with straight bindparam('x')). Dialects can also expand upon the areas where binds are not accepted, such as within argument lists of functions (which don't work on MS-SQL when native SQL binding is used).
| * - mxodbc can use default execute() callMike Bayer2010-03-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | - modified SQLCompiler to support rendering of bind parameters as literal inline strings for specific sections, if specified by the compiler subclass, using either literal_binds=True passed to process() or any visit method, or by setting to False the "binds_in_columns_clause" flag for SQL-92 compatible columns clauses.. The compiler subclass is responsible for implementing the literal quoting function which should make use of the DBAPI's native capabilities. - SQLCompiler now passes **kw to most process() methods (should be all, ideally) so that literal_binds is propagated. - added some rudimentary tests for mxodbc.
* | - basic sybase+pyodbc support. in particular this will impact freetds ↵Mike Bayer2010-03-171-1/+28
|/ | | | detection for MS-SQL as well.
* - many incantations to get the tests to run reasonablyMike Bayer2010-03-141-7/+38
| | | | | - executemany() for some reason uses some tiny buffer, overriding it - we need to use the IDENTITY_INSERT thing
* - initial working version of sybase, with modifications to the transactionalMike Bayer2010-03-141-221/+133
| | | | | | | | | | model to accomodate Sybase's default mode of "no ddl in transactions". - identity insert not working yet. it seems the default here might be the opposite of that of MSSQL. - reflection will be a full rewrite - default DBAPI is python-sybase, well documented and nicely DBAPI compliant except for the bind parameter situation, where we have a straightforward workaround - full Sybase docs at: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0/title.htm
* - Added an optional C extension to speed up the sql layer byGaëtan de Menten2010-02-131-18/+1
| | | | | | | | | | | | | | | reimplementing the highest impact functions. The actual speedups will depend heavily on your DBAPI and the mix of datatypes used in your tables, and can vary from a 50% improvement to more than 200%. It also provides a modest (~20%) indirect improvement to ORM speed for large queries. Note that it is *not* built/installed by default. See README for installation instructions. - The most common result processors conversion function were moved to the new "processors" module. Dialect authors are encouraged to use those functions whenever they correspond to their needs instead of implementing custom ones.
* - types.Binary is renamed to types.LargeBinary, it onlyMike Bayer2010-01-231-6/+6
| | | | | | | produces BLOB, BYTEA, or a similar "long binary" type. New base BINARY and VARBINARY types have been added to access these MySQL/MS-SQL specific types in an agnostic way [ticket:1664].
* seriously, this is not 0.6 code !Mike Bayer2009-12-061-1/+3
|
* add a warning for unported dialects. considered a full blown ↵Mike Bayer2009-12-061-0/+2
| | | | NotImplementedError but will see if this gets the message across
* - pg8000 + postgresql dialects now check for float/numeric returnMike Bayer2009-11-151-1/+1
| | | | | | | | | | 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..