[Django] #30916: Add support for case insensitive unique constraint

394 views
Skip to first unread message

Django

unread,
Oct 27, 2019, 7:18:57 AM10/27/19
to django-...@googlegroups.com
#30916: Add support for case insensitive unique constraint
-------------------------------------+-------------------------------------
Reporter: Safwan | Owner: nobody
Rahman |
Type: New | Status: new
feature |
Component: Database | Version: 2.2
layer (models, ORM) |
Severity: Normal | Keywords: UniqueConstraint
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
case insensitive unique constraint is needed for various purposes like
storing emails. In postgresql, its possible to add
[https://www.postgresql.org/message-
id/c57a8ecec259afdc...@mitre.org, a functional unique index
with `Lower`] and it will work as a case insensitive unique constraint. I
have tried to implement that functional unique index/constraint in django,
but looking at the source it seems that it is not possible to add
functional unique index/constraint in django.
[https://github.com/django/django/pull/11929, PR 11929] is created for
adding functional index, but it seems like it is not possible to create
unique functional index with it.

I think there should be a option like `case_insensitive=True` that can be
passed to `UniqueConstraint` so the `UniqueConstraint` create a functional
unique index with `Lower`.

I know, its possible to store the value as lower case always and mitigate
this issue, but it does not provide DB level constrains safety from
anomaly.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Oct 27, 2019, 7:19:11 AM10/27/19
to django-...@googlegroups.com
#30916: Add support for case insensitive unique constraint
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: nobody
Type: New feature | Status: new
Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution:
Keywords: UniqueConstraint | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by Safwan Rahman:

Old description:

> case insensitive unique constraint is needed for various purposes like
> storing emails. In postgresql, its possible to add
> [https://www.postgresql.org/message-
> id/c57a8ecec259afdc...@mitre.org, a functional unique index
> with `Lower`] and it will work as a case insensitive unique constraint. I
> have tried to implement that functional unique index/constraint in
> django, but looking at the source it seems that it is not possible to add
> functional unique index/constraint in django.
> [https://github.com/django/django/pull/11929, PR 11929] is created for
> adding functional index, but it seems like it is not possible to create
> unique functional index with it.
>
> I think there should be a option like `case_insensitive=True` that can be
> passed to `UniqueConstraint` so the `UniqueConstraint` create a
> functional unique index with `Lower`.
>
> I know, its possible to store the value as lower case always and mitigate
> this issue, but it does not provide DB level constrains safety from
> anomaly.

New description:

Case insensitive unique constraint is needed for various purposes like


storing emails. In postgresql, its possible to add
[https://www.postgresql.org/message-
id/c57a8ecec259afdc...@mitre.org, a functional unique index
with `Lower`] and it will work as a case insensitive unique constraint. I
have tried to implement that functional unique index/constraint in django,
but looking at the source it seems that it is not possible to add
functional unique index/constraint in django.
[https://github.com/django/django/pull/11929, PR 11929] is created for
adding functional index, but it seems like it is not possible to create
unique functional index with it.

I think there should be a option like `case_insensitive=True` that can be
passed to `UniqueConstraint` so the `UniqueConstraint` create a functional
unique index with `Lower`.

I know, its possible to store the value as lower case always and mitigate
this issue, but it does not provide DB level constrains safety from
anomaly.

--

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:1>

Django

unread,
Oct 27, 2019, 7:20:26 AM10/27/19
to django-...@googlegroups.com
#30916: Add support for case insensitive unique constraint
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: nobody
Type: New feature | Status: new
Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution:
Keywords: UniqueConstraint | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Description changed by Safwan Rahman:

Old description:

> Case insensitive unique constraint is needed for various purposes like


> storing emails. In postgresql, its possible to add
> [https://www.postgresql.org/message-
> id/c57a8ecec259afdc...@mitre.org, a functional unique index
> with `Lower`] and it will work as a case insensitive unique constraint. I
> have tried to implement that functional unique index/constraint in
> django, but looking at the source it seems that it is not possible to add
> functional unique index/constraint in django.
> [https://github.com/django/django/pull/11929, PR 11929] is created for
> adding functional index, but it seems like it is not possible to create
> unique functional index with it.
>
> I think there should be a option like `case_insensitive=True` that can be
> passed to `UniqueConstraint` so the `UniqueConstraint` create a
> functional unique index with `Lower`.
>
> I know, its possible to store the value as lower case always and mitigate
> this issue, but it does not provide DB level constrains safety from
> anomaly.

New description:

Case insensitive unique constraint is needed for various purposes like


storing emails. In postgresql, its possible to add
[https://www.postgresql.org/message-

id/c57a8ecec259afdc...@mitre.org a functional unique index


with `Lower`] and it will work as a case insensitive unique constraint. I
have tried to implement that functional unique index/constraint in django,
but looking at the source it seems that it is not possible to add
functional unique index/constraint in django.

[https://github.com/django/django/pull/11929 PR 11929] is created for


adding functional index, but it seems like it is not possible to create
unique functional index with it.

I think there should be a option like `case_insensitive=True` that can be
passed to `UniqueConstraint` so the `UniqueConstraint` create a functional
unique index with `Lower`.

I know, its possible to store the value as lower case always and mitigate
this issue, but it does not provide DB level constrains safety from
anomaly.

--

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:2>

Django

unread,
Oct 27, 2019, 11:34:39 AM10/27/19
to django-...@googlegroups.com
#30916: Added support for functional constraints

-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: nobody
Type: New feature | Status: new
Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Simon Charette):

* keywords: UniqueConstraint => constraint functional
* stage: Unreviewed => Accepted


Comment:

Should we close this one as a duplicate of #26167.

I'll at least rename the issue to more generic name.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:3>

Django

unread,
Oct 27, 2019, 4:24:08 PM10/27/19
to django-...@googlegroups.com
#30916: Added support for functional constraints
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned

Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by saadalsaad):

* owner: nobody => saadalsaad
* status: new => assigned


--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:4>

Django

unread,
Oct 28, 2019, 3:40:38 AM10/28/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.

-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master

(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by felixxm):

* version: 2.2 => master


Comment:

Probably some or most of logic can be reused from functional indexes
(#26167) (e.g. with a mixin) but I think we should treat this as a
separate feature.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:5>

Django

unread,
Nov 5, 2019, 9:05:43 AM11/5/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by CarlosMirdeSouza):

* has_patch: 0 => 1


Comment:

Looking the history in github it seems that was closed because the code
was merged, but after that it had improvement/modifications, it would be
interesting if the author can clarify the status of the PR, if the
discussion is about the same thing or about other things.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:6>

Django

unread,
Nov 5, 2019, 9:06:57 AM11/5/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by felixxm):

* has_patch: 1 => 0


Comment:

CarlosMirdeSouza, this patch doesn't have a patch.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:7>

Django

unread,
Nov 5, 2019, 9:09:16 AM11/5/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by CarlosMirdeSouza):

He references the PR 11929, it doesn't count has a patch?
https://github.com/django/django/pull/11929

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:8>

Django

unread,
Nov 5, 2019, 9:11:19 AM11/5/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by CarlosMirdeSouza):

I was confused, my bad, sorryfor the mistake, it references the PR for
other ticket.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:9>

Django

unread,
Nov 5, 2019, 9:12:59 AM11/5/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by felixxm):

[https://github.com/django/django/pull/11929 PR11929] is about functional
indexes, not functional constraints.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:10>

Django

unread,
Nov 5, 2019, 9:16:15 AM11/5/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by CarlosMirdeSouza):

Thanks for the explanation, i will have more attention for next time.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:11>

Django

unread,
Nov 21, 2019, 3:56:01 AM11/21/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by saadalsaad):

from my understanding, we need to support for functional constraints by
adding case_insensitive option to UniqueConstraint ?
https://github.com/django/django/pull/12115

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:12>

Django

unread,
Nov 21, 2019, 4:10:21 AM11/21/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by felixxm):

saadalsaad, no. This ticket is about adding support for functional
constraints not only about case insensitive check constraints. It's more
generic.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:13>

Django

unread,
Nov 22, 2019, 7:06:50 AM11/22/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by saadalsaad):

felixxm, since this ticket is generic for functional constraints, can we
move case_insensitive option to a sperate ticket?

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:14>

Django

unread,
Nov 22, 2019, 7:17:13 AM11/22/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by felixxm):

saadalsaad, not really we don't want to add such specific parameters.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:15>

Django

unread,
Nov 22, 2019, 8:11:06 AM11/22/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by saadalsaad):

Replying to [ticket:30916 Safwan Rahman]:
> Case insensitive unique constraint is needed for various purposes like


storing emails. In postgresql, its possible to add
[https://www.postgresql.org/message-

id/c57a8ecec259afdc...@mitre.org a functional unique index


with `Lower`] and it will work as a case insensitive unique constraint. I
have tried to implement that functional unique index/constraint in django,
but looking at the source it seems that it is not possible to add
functional unique index/constraint in django.

[https://github.com/django/django/pull/11929 PR 11929] is created for


adding functional index, but it seems like it is not possible to create
unique functional index with it.
>
> I think there should be a option like `case_insensitive=True` that can
be passed to `UniqueConstraint` so the `UniqueConstraint` create a
functional unique index with `Lower`.
>
> I know, its possible to store the value as lower case always and
mitigate this issue, but it does not provide DB level constrains safety
from anomaly.

Ticket description suggested adding case_insensitive option to be added in
UniqueConstraint to create a functional unique index with `Lower`
since we are not going to add such option, seems we need to modify ticket
description
felixxm, do you mean supporting functional constraints (supporting
expressions in class based constraints ?) similar to indexes in #26167 ?

Thanks

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:16>

Django

unread,
Nov 22, 2019, 8:17:43 AM11/22/19
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by felixxm):

Replying to [comment:16 saadalsaad]:

> felixxm, do you mean supporting functional constraints (supporting
expressions in class based constraints ?) similar to indexes in #26167 ?
>
> Thanks

Yes exactly, see [https://code.djangoproject.com/ticket/30916?#comment:5
comment].

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:17>

Django

unread,
Mar 13, 2020, 4:08:05 PM3/13/20
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Sanskar Jaiswal):

Was a common consensus reached regarding this? I would love to give this a
shot if I could understand what all we expect from this feature.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:18>

Django

unread,
Apr 9, 2020, 4:05:46 PM4/9/20
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Ian Foote):

* cc: Ian Foote (added)


--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:19>

Django

unread,
Dec 30, 2020, 3:11:38 AM12/30/20
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner:
| saadalsaad
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Hannes Ljungberg):

* cc: Hannes Ljungberg (added)


--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:20>

Django

unread,
Jan 2, 2021, 2:57:16 PM1/2/21
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: Hannes
| Ljungberg

Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Hannes Ljungberg):

* owner: saadalsaad => Hannes Ljungberg


Comment:

I intend to create a patch for this after
[https://code.djangoproject.com/ticket/26167 #26167] is merged.

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:21>

Django

unread,
Feb 6, 2021, 3:32:57 PM2/6/21
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: Hannes
| Ljungberg
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Hannes Ljungberg):

* has_patch: 0 => 1


Comment:

PR: https://github.com/django/django/pull/13983

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:22>

Django

unread,
Feb 18, 2021, 4:01:50 AM2/18/21
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: Hannes
| Ljungberg
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* needs_better_patch: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:23>

Django

unread,
Feb 20, 2021, 2:59:29 PM2/20/21
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: Hannes
| Ljungberg
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Accepted
functional |
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Hannes Ljungberg):

* needs_better_patch: 1 => 0


--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:24>

Django

unread,
Feb 23, 2021, 6:15:37 AM2/23/21
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: Hannes
| Ljungberg
Type: New feature | Status: assigned
Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution:
Keywords: constraint | Triage Stage: Ready for
functional | checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak):

* stage: Accepted => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:25>

Django

unread,
Feb 23, 2021, 3:37:06 PM2/23/21
to django-...@googlegroups.com
#30916: Added support for functional constraints.
-------------------------------------+-------------------------------------
Reporter: Safwan Rahman | Owner: Hannes
| Ljungberg
Type: New feature | Status: closed

Component: Database layer | Version: master
(models, ORM) |
Severity: Normal | Resolution: fixed

Keywords: constraint | Triage Stage: Ready for
functional | checkin
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak <felisiak.mariusz@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"3aa545281e0c0f9fac93753e3769df9e0334dbaa" 3aa5452]:
{{{
#!CommitTicketReference repository=""
revision="3aa545281e0c0f9fac93753e3769df9e0334dbaa"
Fixed #30916 -- Added support for functional unique constraints.

Thanks Ian Foote and Mariusz Felisiak for reviews.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30916#comment:26>

Reply all
Reply to author
Forward
0 new messages