summaryrefslogtreecommitdiff
path: root/test/dialect/test_sqlite.py
Commit message (Collapse)AuthorAgeFilesLines
* Make all tests to be PEP8 compliantKhairi Hafsham2017-02-071-9/+10
| | | | | | | | tested using pycodestyle version 2.2.0 Fixes: #3885 Change-Id: I5df43adc3aefe318f9eeab72a078247a548ec566 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/343
* Support python3.6Mike Bayer2017-01-131-3/+3
| | | | | | | | | | | Corrects some warnings and adds tox config. Adds DeprecationWarning to the error category. Large sweep for string literals w/ backslashes as this is common in docstrings Co-authored-by: Andrii Soldatenko Fixes: #3886 Change-Id: Ia7c838dfbbe70b262622ed0803d581edc736e085 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/337
* Change autoincrement compileerror to a warningMike Bayer2016-10-071-15/+28
| | | | | | | | Users are complaining that IntegrityError is no longer raised. Change-Id: I0855d5b7a98d4338f0910501b6e6d404ba33634d Fixes: #3216
* Add IS (NOT) DISTINCT FROM operatorsSebastian Bank2016-06-061-0/+11
| | | | | | | | | | | None / True / False render as literals. For SQLite, "IS" is used as SQLite lacks "IS DISTINCT FROM" but its "IS" operator acts this way for NULL. Doctext-author: Mike Bayer <mike_mp@zzzcomputing.com> Change-Id: I9227b81f7207b42627a0349d14d40b46aa756cce Pull-request: https://github.com/zzzeek/sqlalchemy/pull/248
* - further adjustment to accomodate for the "ON" in "NO ACTION"Mike Bayer2016-06-031-2/+10
| | | | Change-Id: I734e4aec3701d7cf17813b561a1418cfeff1d473
* Ensure "options" present for unnamed / unlocatable FKMike Bayer2016-06-031-11/+43
| | | | | | | Also ensure the regular expression and subsequent matching is case insensitive, add more tests Change-Id: Ie4aa971dcbffca94e78965e22982478eccbf8597
* Reflect ON DELETE and ON UPDATE for SQLite foreign keysMichal Petrucha2016-06-021-0/+37
| | | | | | Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Change-Id: Icd77ddbf851b1950f767022d67c8142b1b3c50f3 Pull-request: https://github.com/zzzeek/sqlalchemy/pull/244
* Implemented CHECK constraint reflection for SQLite and PostgreSQLAlex Grönholm2016-06-011-0/+15
| | | | | | Co-Authored-By: Mike Bayer <mike_mp@zzzcomputing.com> Change-Id: Ie6cf2d2958d1c567324db9e08fef2d3186e97350 Pull-request: https://bitbucket.org/zzzeek/sqlalchemy/pull-requests/80
* sqlite: reflect primary key constraint names, fixes #3629Diana Clarke2016-01-271-3/+34
|
* - The system by which a :class:`.Column` considers itself to be anMike Bayer2015-10-071-3/+37
| | | | | | | | | | | | | | | | | "auto increment" column has been changed, such that autoincrement is no longer implicitly enabled for a :class:`.Table` that has a composite primary key. In order to accommodate being able to enable autoincrement for a composite PK member column while at the same time maintaining SQLAlchemy's long standing behavior of enabling implicit autoincrement for a single integer primary key, a third state has been added to the :paramref:`.Column.autoincrement` parameter ``"auto"``, which is now the default. fixes #3216 - The MySQL dialect no longer generates an extra "KEY" directive when generating CREATE TABLE DDL for a table using InnoDB with a composite primary key with AUTO_INCREMENT on a column that isn't the first column; to overcome InnoDB's limitation here, the PRIMARY KEY constraint is now generated with the AUTO_INCREMENT column placed first in the list of columns.
* - limit the search for schemas to not include "temp", which is sort of an ↵Mike Bayer2015-09-281-23/+17
| | | | | | | | | | implicit schema - repair the CREATE INDEX ddl for schemas - update provisioning to include support for setting up ATTACH DATABASE up front for the test_schema; enable "schemas" testing for SQLite - changelog / migration notes for new SQLite schema support - include the "schema" as the "remote_schema" when we reflect SQLite FKs
* Support get_schema_names for SQLitepr/198Brian Van Klaveren2015-09-091-0/+5
| | | Should return "main" and the names of attached databases.
* Test for partial index support in sqlite dialects.Kai Groner2015-01-261-1/+22
|
* - rework sqlite FK and unique constraint system to combine both PRAGMAMike Bayer2014-12-131-123/+291
| | | | | | and regexp parsing of SQL in order to form a complete picture of constraints + their names. fixes #3244 fixes #3261 - factor various PRAGMA work to be centralized into one call
* - add test_get_unnamed_unique_constraints to SQLite reflection testsJon Nelson2014-12-131-0/+18
|
* - The SQLite dialect, when using the :class:`.sqlite.DATE`,Mike Bayer2014-12-051-0/+57
| | | | | | | | | | | | :class:`.sqlite.TIME`, or :class:`.sqlite.DATETIME` types, and given a ``storage_format`` that only renders numbers, will render the types in DDL as ``DATE_CHAR``, ``TIME_CHAR``, and ``DATETIME_CHAR``, so that despite the lack of alpha characters in the values, the column will still deliver the "text affinity". Normally this is not needed, as the textual values within the default storage formats already imply text. fixes #3257
* - pep8Mike Bayer2014-12-051-191/+232
|
* - rework tests for attached databases into individual tests,Mike Bayer2014-09-291-36/+102
| | | | | | | | | | | | | test both memory and file-based - When selecting from a UNION using an attached database file, the pysqlite driver reports column names in cursor.description as 'dbname.tablename.colname', instead of 'tablename.colname' as it normally does for a UNION (note that it's supposed to just be 'colname' for both, but we work around it). The column translation logic here has been adjusted to retrieve the rightmost token, rather than the second token, so it works in both cases. Workaround courtesy Tony Roberts. fixes #3211
* Merge branch 'sqlite-temp-table-reflection' of ↵Mike Bayer2014-09-171-0/+18
|\ | | | | | | https://bitbucket.org/jerdfelt/sqlalchemy/branch/sqlite-temp-table-reflection into pr31
| * Handle sqlite get_unique_constraints() call for temporary tablesJohannes Erdfelt2014-09-171-0/+18
| | | | | | | | | | | | | | The sqlite get_unique_constraints() implementation did not do a union against the sqlite_temp_master table like other code does. This could result in an exception being raised if get_unique_constraints() was called against a temporary table.
* | - Added :meth:`.Inspector.get_temp_table_names` andMike Bayer2014-09-171-17/+0
|/ | | | | | | | | | | | :meth:`.Inspector.get_temp_view_names`; currently, only the SQLite dialect supports these methods. The return of temporary table and view names has been **removed** from SQLite's version of :meth:`.Inspector.get_table_names` and :meth:`.Inspector.get_view_names`; other database backends cannot support this information (such as MySQL), and the scope of operation is different in that the tables can be local to a session and typically aren't supported in remote schemas. fixes #3204
* - add tests for the savepoint recipeMike Bayer2014-08-091-0/+78
|
* - Fixed a few errant ``u''`` strings that would prevent tests from passingMike Bayer2014-03-221-2/+2
| | | | in Py3.2. Patch courtesy Arfrever Frehtes Taifersar Arahesis. fixes #2980
* - dont need this import and it's not in 2.6 anywayMike Bayer2014-02-171-1/+0
|
* - rewrite SQLite reflection tests into one consistent fixture, which testsMike Bayer2014-02-161-159/+144
| | | | both _resolve_type_affinity() directly as well as round trip tests fully.
* - The SQLite dialect will now skip unsupported arguments when reflectingMike Bayer2014-02-161-4/+16
| | | | | | types; such as if it encounters a string like ``INTEGER(5)``, the :class:`.INTEGER` type will be instantiated without the "5" being included, based on detecting a ``TypeError`` on the first attempt.
* SQLite dialect - support relection from affinitypr/65Erich Blume2014-02-031-5/+63
| | | | | | | | | | | | | | | | | | | | | | SQLite allows column types that aren't technically understood in sqlite by using 'data affinity', which is an algorithm for converting column types in to some sort of useful type that can be stored and retrieved from the db. Unfortunatly, this breaks reflection since we (previously) expected a sqlite db to reflect column types that we permit in the `ischema_names` for that dialect. This patch changes the logic for 'unknown' column types during reflection to instead run through SQLite's data affinity algorithm, and assigns appropriate types from that. It also expands the matching for column type to include column types with spaces (strongly discouraged but allowed by sqlite) and also completely empty column types (in which case the NullType is assigned, which sqlite will treat as a Blob - or rather, Blob is treated as NullType). These changes mean that SQLite will never raise an error for an unknown type during reflection - there will always be some 'useful' type returned, which follows the spirit of SQLite (accomodation before sanity!).
* The newly added SQLite DATETIME arguments storage_format andMike Bayer2013-07-121-1/+46
| | | | | | | regexp apparently were not fully implemented correctly; while the arguments were accepted, in practice they would have no effect; this has been fixed. Also in 0.8.3. [ticket:2781]
* Added :class:`.BIGINT` to the list of type names that can beMike Bayer2013-07-021-1/+3
| | | | | reflected by the SQLite dialect; courtesy Russell Stuart. [ticket:2764]
* - add a test specific to sqlite testing cursor.description encoding (shouldMike Bayer2013-05-261-1/+22
| | | | | probably be one in test_query or test_unicode...) - fix up test_unitofwork
* sqlite testsMike Bayer2013-05-261-5/+5
|
* - the raw 2to3 runMike Bayer2013-04-271-5/+5
| | | | - went through examples/ and cleaned out excess list() calls
* More adjustment to this SQLite related issue which was released inMike Bayer2012-12-141-2/+26
| | | | | | | 0.7.9, to intercept legacy SQLite quoting characters when reflecting foreign keys. In addition to intercepting double quotes, other quoting characters such as brackets, backticks, and single quotes are now also intercepted. [ticket:2568]
* getting everything to pass againMike Bayer2012-09-271-1/+3
|
* trying different approaches to test layout. in this one, the testing modulesMike Bayer2012-09-271-2/+2
| | | | | | | become an externally usable package but still remains within the main sqlalchemy parent package. in this system, we use kind of an ugly hack to get the noseplugin imported outside of the "sqlalchemy" package, while still making it available within sqlalchemy for usage by third party libraries.
* - [feature] Added support for the localtimestamp()Mike Bayer2012-09-261-0/+6
| | | | | SQL function implemented in SQLite, courtesy Richard Mitchell. Added test
* - [bug] Adjusted column default reflection code toMike Bayer2012-09-231-1/+14
| | | | | | | | convert non-string values to string, to accommodate old SQLite versions that don't deliver default info as a string. [ticket:2265] - factor sqlite column reflection to be like we did for postgresql, in a separate method.
* - [bug] Adjusted a very old bugfix which attemptedMike Bayer2012-09-191-13/+44
| | | | | | | | | | | | | | to work around a SQLite issue that itself was "fixed" as of sqlite 3.6.14, regarding quotes surrounding a table name when using the "foreign_key_list" pragma. The fix has been adjusted to not interfere with quotes that are *actually in the name* of a column or table, to as much a degree as possible; sqlite still doesn't return the correct result for foreign_key_list() if the target table actually has quotes surrounding its name, as *part* of its name (i.e. """mytable"""). [ticket:2568]
* -whitespace bonanza, contdMike Bayer2012-07-281-15/+15
|
* Improve SQLite DATETIME storage format handling [ticket:2363]Nathan Wright2012-03-121-0/+82
| | | | | | | | | | | | | | This breaks backwards compatibility with old SQLite DATETIME, DATE, and TIME storage_format strings. Formatting now occurs with named instead of positional parameters. The regexp argument can still use positional arguments, but named groupings are also supported. This means that you can omit fields and change the order of date fields as desired. SQLite's DATETIME and TIME also gained a truncate_microseconds argument. This is shorthand for modifying the format string. Fortunately the str_to_datetime and str_to_time processors written in C already support omitting microseconds, so we don't have to resort to python processing for this case.
* Move a SQLLite datetime test to a new DateTimeTest caseNathan Wright2012-03-121-9/+12
|
* - [feature] Added "false()" and "true()" expressionMike Bayer2012-01-181-0/+21
| | | | | | | constructs to sqlalchemy.sql namespace, though not part of __all__ as of yet. - [bug] sql.false() and sql.true() compile to 0 and 1, respectively in sqlite [ticket:2368]
* that's not a "name=0", that's a counter. so name is None unconditonally.Mike Bayer2012-01-071-5/+11
| | | | [ticket:2348]
* - [bug] the "name" of an FK constraint in SQLiteMike Bayer2012-01-071-0/+37
| | | | | | is reflected as "None", not "0" [ticket:2364]. SQLite does not appear to support constraint naming in any case (the names are ignored).
* - Ensured that the same ValueError is raised forMike Bayer2011-08-041-1/+15
| | | | | | illegal date/time/datetime string parsed from the database regardless of whether C extensions are in use or not.
* - SQLite dialect no longer strips quotesMike Bayer2011-07-281-2/+27
| | | | | | | | off of reflected default value, allowing a round trip CREATE TABLE to work. This is consistent with other dialects that also maintain the exact form of the default. [ticket:2189]
* test only runs on sqliteMike Bayer2011-04-101-0/+4
|
* - Fixed bug where reflection of foreign keyMike Bayer2011-04-101-0/+19
| | | | | | created as "REFERENCES <tablename>" without col name would fail. [ticket:2115] (also in 0.6.7)
* - move all the comments that got shoved below the fixture grabs back upMike Bayer2011-03-271-1/+2
|
* - remove test.sql._base, test.engine._base, test.orm._base, move those ↵Mike Bayer2011-03-271-7/+7
| | | | | | | classes to a new test.lib.fixtures module - move testing.TestBase to test.lib.fixtures - massive search and replace