Mariusz Felisiak
d506e4a528
Fixed #36671 -- Dropped support for SQLite < 3.37.
2025-10-18 21:04:11 +02:00
Simon Charette
07100db6f4
Fixed #36358 -- Corrected introspection of composite primary keys on SQLite.
...
Previously, any first field of a composite primary key with type
`INTEGER` was incorrectly introspected as an `AutoField` due to SQLite
treating `INTEGER PRIMARY KEY` as an alias for the `ROWID`.
This change ensures that integer fields in composite PKs are not
mistaken for auto-incrementing fields.
Thanks Jacob Walls and Sarah Boyce for the reviews.
2025-04-30 10:51:48 -03:00
Aarni Koskela
c972af69e2
Refs #28909 -- Simplified code using unpacking generalizations.
2025-03-31 22:43:13 -03:00
Claude Paroz
8b9a2bf34e
Fixed #35762 -- Avoided unneeded quote_name() calls in SQLite introspection.
...
Double-quoting string literals is deprecated in recent SQLite versions.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com >
2024-09-17 08:56:44 +02:00
Jeremy Nauta
f333e3513e
Fixed #31300 -- Added GeneratedField model field.
...
Thanks Adam Johnson and Paolo Melchiorre for reviews.
Co-Authored-By: Lily Foote <code@lilyf.org >
Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com >
2023-09-07 06:19:08 +02:00
Mariusz Felisiak
cbc0fb3705
Made inspectdb used Cursor.description.display_size for CharFields' max_length.
...
internal_size is size for fixed-size types not for char types.
2022-12-08 09:00:35 +01:00
Anv3sh
295249c901
Fixed #32234 -- Made inspectdb inform about composite primary keys.
2022-06-01 08:40:44 +02:00
Mariusz Felisiak
7119f40c98
Refs #33476 -- Refactored code to strictly match 88 characters line length.
2022-02-07 20:37:05 +01:00
django-bot
9c19aff7c7
Refs #33476 -- Reformatted code with Black.
2022-02-07 20:37:05 +01:00
Simon Charette
560ff988dd
Refs #33288 -- Removed SQLite's DatabaseIntrospection._get_foreign_key_constraints().
...
The get_relations() method returns the exact same data in a more generic
format.
2021-11-15 08:20:30 +01:00
Simon Charette
483e30c3d5
Fixed #33288 -- Made SQLite introspection use information schema for relations.
...
Previous solution was using brittle and complex parsing rules to
extract them from the SQL used to define the tables.
Removed a now unnecessary unit test that ensured the removed parsing
logic accounted for optional spacing.
2021-11-15 08:07:07 +01:00
Simon Charette
30ec7fe89a
Refs #33288 -- Made SQLite introspection raise DatabaseError on nonexistent tables.
...
All the other backends behave this way and we had to make adjustments
to our test suite to account for this discrepancy.
This also allows SQLite's get_relations() not to raise on a nonexistent
table while making sure the InspectDBTestCase.test_introspection_errors
test which ensures an error during introspection is surfaced in
generated models files still passes.
2021-11-15 07:57:00 +01:00
Mariusz Felisiak
0b95a96ee1
Removed DatabaseIntrospection.get_key_columns().
...
Thanks Simon Charette for the report.
2021-11-10 16:38:43 +01:00
Tim Graham
afea68ca51
Fixed DatabaseIntrospection.get_relations() docstring.
...
The foreign keys are "in" the given table, not "to" it.
2021-11-10 06:21:36 +01:00
Anv3sh
69af4d09ba
Fixed #32672 -- Fixed introspection of primary key constraints on SQLite.
...
Thanks Simon Charette for the implementation idea.
2021-10-26 09:50:23 +02:00
Hannes Ljungberg
4d99375b46
Fixed #32453 -- Added introspection of unique constraint field ordering on SQLite.
...
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com >
2021-02-17 10:59:17 +01:00
Hannes Ljungberg
83fcfc9ec8
Fixed #26167 -- Added support for functional indexes.
...
Thanks Simon Charette, Mads Jensen, and Mariusz Felisiak for reviews.
Co-authored-by: Markus Holtermann <info@markusholtermann.eu >
2021-01-13 11:47:50 +01:00
Tom Carrick
e387f191f7
Fixed #31777 -- Added support for database collations to Char/TextFields.
...
Thanks Simon Charette and Mariusz Felisiak for reviews.
2020-09-21 18:24:56 +02:00
Jon Dufresne
d6aff369ad
Refs #30116 -- Simplified regex match group access with Match.__getitem__().
...
The method has been available since Python 3.6. The shorter syntax is
also marginally faster.
2020-05-11 12:01:28 +02:00
sage
6789ded0a6
Fixed #12990 , Refs #27694 -- Added JSONField model field.
...
Thanks to Adam Johnson, Carlton Gibson, Mariusz Felisiak, and Raphael
Michel for mentoring this Google Summer of Code 2019 project and
everyone else who helped with the patch.
Special thanks to Mads Jensen, Nick Pope, and Simon Charette for
extensive reviews.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com >
2020-05-08 07:23:31 +02:00
Nick Pope
335c9c94ac
Simplified imports from django.db and django.contrib.gis.db.
2020-02-04 13:20:06 +01:00
Caio Ariede
555bebe774
Fixed #30987 -- Added models.PositiveBigIntegerField.
2019-11-19 09:34:11 +01:00
Hasan Ramezani
e3d0b4d550
Fixed #30899 -- Lazily compiled import time regular expressions.
2019-10-29 09:22:26 +01:00
Nick Pope
194d1dfc18
Fixed #30661 -- Added models.SmallAutoField.
2019-08-02 11:39:01 +02:00
Paveł Tyślacki
782d85b6df
Fixed #30183 -- Added introspection of inline SQLite constraints.
2019-03-13 10:24:28 -04:00
Paveł Tyślacki
4492be348a
Refs #30183 -- Moved SQLite table constraint parsing to a method.
2019-03-01 17:05:36 -05:00
Paveł Tyślacki
b777c0675e
Unified nonexistent foreign key introspection value for SQLite.
2019-03-01 15:51:37 -05:00
Nick Pope
bff748df3e
Fixed #30115 -- Fixed SQLite introspection crash with a varchar primary key.
...
Removed obsolete max_length handling for CharField that caused the issue.
Regression in a35d2a4510 .
2019-01-22 19:02:34 -05:00
Nick Pope
e19f58fc01
Inlined DatabaseIntrospection._table_info() for SQLite.
2019-01-22 18:23:37 -05:00
Nick Pope
a35d2a4510
Refs #23748 -- Added AutoField introspection for SQLite.
2019-01-09 09:59:15 -05:00
Nick Pope
e626a3f993
Renamed Sqlite and Sqlite3 references to SQLite.
2018-12-22 18:52:54 -05:00
Simon Charette
db13bca60a
Fixed #29641 -- Added support for unique constraints in Meta.constraints.
...
This constraint is similar to Meta.unique_together but also allows
specifying a name.
Co-authored-by: Ian Foote <python@ian.feete.org >
2018-11-13 17:57:27 -05:00
Simon Charette
dba4a634ba
Refs #29641 -- Refactored database schema constraint creation.
...
Added a test for constraint names in the database.
Updated SQLite introspection to use sqlparse to allow reading the
constraint name for table check and unique constraints.
Co-authored-by: Ian Foote <python@ian.feete.org >
2018-11-13 15:25:44 -05:00
Tim Graham
b9cf764be6
Fixed #29517 -- Added support for SQLite column check constraints on positive integer fields.
2018-06-25 14:01:04 -04:00
Tim Graham
7ac3008fe4
Refs #29350 -- Fixed 'invalid escape sequence' warning in SQLite introspection.
2018-05-08 10:42:24 -04:00
Zackary Troop
30f8642f2e
Fixed #29350 -- Fix get_primary_key_column() method in sqlite3 backend
...
Thanks Tim Graham and Mariusz Felisiak for the reviews.
2018-04-28 12:01:45 +02:00
bquinn
c2b969e124
Fixed #29004 -- Added inspectdb --include-views option.
2018-01-27 18:51:40 -05:00
Simon Charette
9f7772e098
Fixed #28884 -- Fixed crash on SQLite when renaming a field in a model referenced by a ManyToManyField.
...
Introspected database constraints instead of relying on _meta.related_objects
to determine whether or not a table or a column is referenced on rename
operations.
This has the side effect of ignoring both db_constraint=False and virtual
fields such as GenericRelation which aren't backend by database level
constraints and thus shouldn't prevent the rename operations from being
performed in a transaction.
Regression in 095c1aaa89 .
Thanks Tim for the additional tests and edits, and Mariusz for the review.
2017-12-22 15:19:05 -05:00
Tim Graham
27193aea00
Fixed #28584 -- Dropped support for SQLite < 3.7.15.
2017-10-03 10:42:18 -04:00
Tim Graham
578711c310
Refs #27098 -- Removed DatabaseIntrospection.get_indexes() per deprecation timeline.
2017-09-22 12:51:18 -04:00
Mariusz Felisiak
c6a1faecc3
Refs #27090 -- Added real database sequence introspection.
...
Thanks Mariusz Felisiak for the Oracle part and Tim Graham for the
review.
2017-09-13 20:12:32 +02:00
Claude Paroz
169c3b3e07
Fixed #14204 -- Enforced SQLite foreign key constraints.
...
Thanks Tim Graham for contributing to the patch and
Simon Charette for advice and review.
2017-07-11 09:07:31 -04:00
Anton Samarchyan
60e52a047e
Refs #27656 -- Updated django.db docstring verbs according to PEP 257.
2017-02-28 09:17:27 -05:00
Tim Graham
b008f7cc56
Fixed #27135 -- Made index introspection return Index.suffix.
2017-02-15 20:15:02 -05:00
Simon Charette
cecc079168
Refs #23919 -- Stopped inheriting from object to define new style classes.
2017-01-19 08:39:46 +01:00
Mariusz Felisiak
e17f40f4b5
Refs #24245 -- Added introspection for database defaults on Oracle.
2016-11-30 11:21:57 -05:00
Saulius Žemaitaitis
f28d29e8b7
Fixed #27372 -- Fixed introspection of SQLite foreign keys with spaces in DDL.
...
Thanks samuller for the report and initial patch.
2016-11-06 10:13:32 +01:00
Tim Graham
8119b679eb
Refs #27025 -- Fixed "invalid escape sequence" warnings in Python 3.6.
...
http://bugs.python.org/issue27364
2016-09-17 15:44:06 -04:00
Claude Paroz
d389125606
Fixed #27098 -- Deprecated DatabaseIntrospection.get_indexes
...
Thanks Akshesh <aksheshdoshi@gmail.com > for help with the PostgreSQL query.
Thanks Tim Graham for the review.
2016-09-12 09:26:33 +02:00
Akshesh
dbccf163b6
Fixed #27097 -- Added index type introspection to built-in db backends.
2016-09-02 21:14:12 -04:00