summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/mysql
Commit message (Collapse)AuthorAgeFilesLines
* - omit MySQL index flavor if its NoneMike Bayer2014-09-051-1/+2
|
* - MySQL boolean symbols "true", "false" work again. 0.9's changeMike Bayer2014-09-051-0/+12
| | | | | | | | | | | in :ticket:`2682` disallowed the MySQL dialect from making use of the "true" and "false" symbols in the context of "IS" / "IS NOT", but MySQL supports this syntax even though it has no boolean type. MySQL remains "non native boolean", but the :func:`.true` and :func:`.false` symbols again produce the keywords "true" and "false", so that an expression like ``column.is_(true())`` again works on MySQL. fixes #3186
* - ensure literal_binds works with LIMIT clause, FOR UPDATEMike Bayer2014-09-031-6/+6
|
* - mention that FOUND_ROWS is hardcoded; fixes #3146Mike Bayer2014-08-251-7/+5
|
* - rewrite all the sqlite/pysqlite transaction isolation docsMike Bayer2014-08-091-0/+2
|
* - add some docs to try to explain the behavior with MySQL / TIMESTAMP.Mike Bayer2014-08-041-0/+91
| | | | ref #3155
* - The MySQL dialect will now disable :meth:`.ConnectionEvents.handle_error`Mike Bayer2014-07-251-3/+6
| | | | | | | | | | events from firing for those statements which it uses internally to detect if a table exists or not. This is achieved using an execution option ``skip_user_error_events`` that disables the handle error event for the scope of that execution. In this way, user code that rewrites exceptions doesn't need to worry about the MySQL dialect or other dialects that occasionally need to catch SQLAlchemy specific exceptions.
* - apply pep8 formatting to sqlalchemy/sql, sqlalchemy/util, sqlalchemy/dialects,Brian Jarrett2014-07-2010-275/+327
| | | | sqlalchemy/orm, sqlalchemy/event, sqlalchemy/testing
* - break up the <authors> copyright comment as part of a passMike Bayer2014-07-0910-10/+20
| | | | to get all flake8 passing
* - Changed the default value of "raise_on_warnings" to False forMike Bayer2014-07-091-1/+3
| | | | | | | | MySQLconnector. This was set at True for some reason. The "buffered" flag unfortunately must stay at True as MySQLconnector does not allow a cursor to be closed unless all results are fully fetched. fixes #2515 - lots of MySQL tests seemed to not be hitting all backends, so we should be getting some mysqlconnector failures now
* - MySQL error 2014 "commands out of sync" appears to be raised as aMike Bayer2014-06-271-1/+1
| | | | | | | ProgrammingError, not OperationalError, in modern MySQL-Python versions; all MySQL error codes that are tested for "is disconnect" are now checked within OperationalError and ProgrammingError regardless. fixes #3101
* - Fixed bug where column names added to ``mysql_length`` parameterMike Bayer2014-06-181-3/+7
| | | | | | | | on an index needed to have the same quoting for quoted names in order to be recognized. The fix makes the quotes optional but also provides the old behavior for backwards compatibility with those using the workaround. fixes #3085
* - remove drizzle dialectMike Bayer2014-05-301-20/+123
| | | | | - restore mysqldb fully within dialects/mysql/, it's no longer a connector. fixes #2984
* - fix some identity map accessorsMike Bayer2014-05-241-1/+1
| | | | - fix a bad comparison in MySQL w/ limit/offset thing
* Merge branch 'issue_3034' of ↵Mike Bayer2014-05-161-8/+8
|\ | | | | | | https://bitbucket.org/dobesv/sqlalchemy/branch/issue_3034 into ticket_3034
| * Use _offset_clause and _limit_clause, which are always Visitable and usually ↵Dobes Vandermeer2014-04-251-8/+8
| | | | | | | | a BindParameter, instead of _offset and _limit in GenerativeSelect.
* | Merged in WSMcG/sqlalchemy (pull request #15) Mike Bayer2014-05-121-1/+1
|\ \ | | | | | | Added optional '=' to MySQL KEY_BLOCK_SIZE regex
| * | Added optional '=' to MySQL KEY_BLOCK_SIZE regexW. Sean McGivern2014-04-191-1/+1
| |/
* | Fix many typos throughout the codebasepr/85Alex Gaynor2014-04-261-1/+1
|/ | | | Found using: https://github.com/intgr/topy
* - Tweaked the settings for mysql-connector-python; in Py2K, theMike Bayer2014-03-271-1/+4
| | | | | | | | | | | "supports unicode statements" flag is now False, so that SQLAlchemy will encode the *SQL string* (note: *not* the parameters) to bytes before sending to the database. This seems to allow all unicode-related tests to pass for mysql-connector, including those that use non-ascii table/column names, as well as some tests for the TEXT type using unicode under cursor.executemany(). - other mysql-connector fixes; latest version seems to do better on function call counts
* cut out the BS as far as MySQLdb urls, put the one url everyone should be usingMike Bayer2014-03-041-22/+14
|
* - add a topological rule here to place PARTITIONS after PARTITION_BY,Mike Bayer2014-02-191-1/+2
| | | | for output consistency within the tests as well as in practice
* - Added new MySQL-specific :class:`.mysql.DATETIME` which includesMike Bayer2014-02-191-17/+73
| | | | | | | fractional seconds support; also added fractional seconds support to :class:`.mysql.TIMESTAMP`. DBAPI support is limited, though fractional seconds are known to be supported by MySQL Connector/Python. Patch courtesy Geert JM Vanderkelen. #2941
* Merge branch 'master' of https://bitbucket.org/50onred/sqlalchemy/overview ↵Mike Bayer2014-02-191-2/+2
|\ | | | | | | into t
| * Fixes MySQL dialect partitioningMarcus McCurdy2014-02-141-2/+2
| |
* | - update mysql connector python link, #2938Mike Bayer2014-02-181-1/+1
| |
* | - expand docs on MySQL table arguments beyond just storage enginesMike Bayer2014-02-151-30/+63
|/ | | | | - clarify section on "foreign key reflection" and group this in a section that refers to foreign keys.
* Parse server version info more robustlypr/69Matt (work)2014-02-111-1/+8
| | | | Closes #2934
* - Fixed bug which prevented MySQLdb-based dialects (e.g.Mike Bayer2014-02-031-0/+1
| | | | | | | | | | pymysql) from working in Py3K, where a check for "connection charset" would fail due to Py3K's more strict value comparison rules. The call in question wasn't taking the database version into account in any case as the server version was still None at that point, so the method overall has been simplified to rely upon connection.character_set_name(). [ticket:2933]
* - add a few missing methods to the cymysql dialectMike Bayer2014-02-021-0/+8
|
* - Added new test coverage for so-called "down adaptions" of SQL types,Mike Bayer2014-01-221-3/+4
| | | | | | | | | | | where a more specific type is adapted to a more generic one - this use case is needed by some third party tools such as ``sqlacodegen``. The specific cases that needed repair within this test suite were that of :class:`.mysql.ENUM` being downcast into a :class:`.types.Enum`, and that of SQLite date types being cast into generic date types. The ``adapt()`` method needed to become more specific here to counteract the removal of a "catch all" ``**kwargs`` collection on the base :class:`.TypeEngine` class that was removed in 0.9. [ticket:2917]
* - implement kwarg validation and type system for dialect-specificMike Bayer2014-01-181-9/+25
| | | | | arguments; [ticket:2866] - add dialect specific kwarg functionality to ForeignKeyConstraint, ForeignKey
* - The MySQL CAST compilation now takes into account aspects of a stringMike Bayer2014-01-132-10/+50
| | | | | | | | | | | | | | | | | | | | | type such as "charset" and "collation". While MySQL wants all character- based CAST calls to use the CHAR type, we now create a real CHAR object at CAST time and copy over all the parameters it has, so that an expression like ``cast(x, mysql.TEXT(charset='utf8'))`` will render ``CAST(t.col AS CHAR CHARACTER SET utf8)``. - Added new "unicode returns" detection to the MySQL dialect and to the default dialect system overall, such that any dialect can add extra "tests" to the on-first-connect "does this DBAPI return unicode directly?" detection. In this case, we are adding a check specifically against the "utf8" encoding with an explicit "utf8_bin" collation type (after checking that this collation is available) to test for some buggy unicode behavior observed with MySQLdb version 1.2.3. While MySQLdb has resolved this issue as of 1.2.4, the check here should guard against regressions. The change also allows the "unicode" checks to log in the engine logs, which was not previously the case. [ticket:2906]
* - happy new yearMike Bayer2014-01-0510-10/+10
|
* - Improvements to the system by which SQL types generate withinMike Bayer2013-12-181-8/+27
| | | | | | | | ``__repr__()``, particularly with regards to the MySQL integer/numeric/ character types which feature a wide variety of keyword arguments. The ``__repr__()`` is important for use with Alembic autogenerate for when Python code is rendered in a migration script. [ticket:2893]
* - work in progress, will squashMike Bayer2013-11-281-10/+3
|
* Merge branch 'for_update_of' of github.com:mlassnig/sqlalchemy into ↵Mike Bayer2013-11-281-1/+8
|\ | | | | | | for_update_of
| * added LockmodeArgspr/42Mario Lassnig2013-11-281-1/+8
| |
* | - evaulate decimal_return_scale statelessly. Don't re-assign to ↵Mike Bayer2013-11-231-2/+0
| | | | | | | | | | | | self.decimal_return_scale so that __repr__() is maintained (for alembic tests)
* | - The precision used when coercing a returned floating point value toMike Bayer2013-11-221-1/+18
|/ | | | | | | | | | Python ``Decimal`` via string is now configurable. The flag ``decimal_return_scale`` is now supported by all :class:`.Numeric` and :class:`.Float` types, which will ensure this many digits are taken from the native floating point value when it is converted to string. If not present, the type will make use of the value of ``.scale``, if the type supports this setting and it is non-None. Otherwise the original default length of 10 is used. [ticket:2867]
* - Fix and test parsing of MySQL foreign key options within reflection;Mike Bayer2013-10-251-1/+1
| | | | | | this complements the work in :ticket:`2183` where we begin to support reflection of foreign key options such as ON UPDATE/ON DELETE cascade. [ticket:2839]
* Merge branch 'master' of github.com:ijl/sqlalchemy into merge_2183Mike Bayer2013-10-251-1/+1
|\
| * #2183: Metadata.reflect() foreign keys include options when the dialect ↵ijl2013-10-131-1/+1
| | | | | | | | exposes it
* | - The change in :ticket:`2721`, which is that the ``deferrable`` keywordMike Bayer2013-10-181-1/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of :class:`.ForeignKeyConstraint` is silently ignored on the MySQL backend, will be reverted as of 0.9; this keyword will now render again, raising errors on MySQL as it is not understood - the same behavior will also apply to the ``initially`` keyword. In 0.8, the keywords will remain ignored but a warning is emitted. Additionally, the ``match`` keyword now raises a :class:`.CompileError` on 0.9 and emits a warning on 0.8; this keyword is not only silently ignored by MySQL but also breaks the ON UPDATE/ON DELETE options. To use a :class:`.ForeignKeyConstraint` that does not render or renders differently on MySQL, use a custom compilation option. An example of this usage has been added to the documentation, see :ref:`mysql_foreign_keys`. [ticket:2721] [ticket:2839]
* | The MySQL :class:`.mysql.SET` type now features the same auto-quotingMike Bayer2013-10-141-66/+87
| | | | | | | | | | | | | | behavior as that of :class:`.mysql.ENUM`. Quotes are not required when setting up the value, but quotes that are present will be auto-detected along with a warning. This also helps with Alembic where the SET type doesn't render with quotes. [ticket:2817]
* | MySQL-connector dialect now allows options in the create_engineMike Bayer2013-10-131-2/+3
| | | | | | | | | | | | query string to override those defaults set up in the connect, including "buffered" and "raise_on_warnings". [ticket:2515]
* | - Fixed bug in default compiler plus those of postgresql, mysql, andMike Bayer2013-10-121-1/+2
|/ | | | | | | | mssql to ensure that any literal SQL expression values are rendered directly as literals, instead of as bound parameters, within a CREATE INDEX statement. [ticket:2742] - don't need expression_as_ddl(); literal_binds and include_table take care of this functionality.
* - A rework to the way that "quoted" identifiers are handled, in thatMike Bayer2013-08-271-4/+3
| | | | | | | | | | | | | | | | instead of relying upon various ``quote=True`` flags being passed around, these flags are converted into rich string objects with quoting information included at the point at which they are passed to common schema constructs like :class:`.Table`, :class:`.Column`, etc. This solves the issue of various methods that don't correctly honor the "quote" flag such as :meth:`.Engine.has_table` and related methods. The :class:`.quoted_name` object is a string subclass that can also be used explicitly if needed; the object will hold onto the quoting preferences passed and will also bypass the "name normalization" performed by dialects that standardize on uppercase symbols, such as Oracle, Firebird and DB2. The upshot is that the "uppercase" backends can now work with force-quoted names, such as lowercase-quoted names and new reserved words. [ticket:2812]
* move FAQ to the docs, [ticket:2133]Mike Bayer2013-08-211-0/+2
|
* Improved support for the cymysql driver, supporting version 0.6.5,Mike Bayer2013-08-171-1/+3
| | | | courtesy Hajime Nakagami.