Opened 18 years ago
Closed 11 years ago
#4070 closed New feature (wontfix)
unique_for_date and friends should create database indexes where possible
Description ¶
Currently the field options unique_for_date, etc. do not create database indexes. I think this should be changed where the database backend supports this.
For example, with PostgreSQL:
db=> CREATE TABLE FOO (date timestamp with time zone, slug text); db=> CREATE UNIQUE INDEX foo_unqiue_date ON foo (date_trunc ('day', date AT TIME ZONE 'UTC'), slug); db=> INSERT INTO FOO VALUES (now(), 'slug1'); INSERT 0 1 db=> INSERT INTO FOO VALUES (now(), 'slug2'); INSERT 0 1 db=> INSERT INTO FOO VALUES (now(), 'slug1'); ERROR: duplicate key violates unique constraint "foo_unique_date"
The date_trunc function can be used to truncate the timestamp data to any desired precision, so it can be used for the other unqiue_for attributes.
Change History (7)
comment:1 by , 18 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:2 by , 18 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 18 years ago
Owner: | changed from | to
---|---|
Status: | assigned → new |
comment:4 by , 14 years ago
Severity: | → Normal |
---|---|
Type: | → New feature |
comment:5 by , 13 years ago
UI/UX: | unset |
---|
comment:7 by , 11 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Since time zone support was added, the check is performed in the current time zone. In general, it's impossible to make a database index change dynamically when the time zone changes in the application. If you have a more restricted use case, you can add the index with a migration.
Change UI/UX from NULL to False.