From 7eee1dca420ee7c4451d24cd32fa08aed0dcbb36 Mon Sep 17 00:00:00 2001 From: Adrian Torres Date: Thu, 10 Nov 2022 19:31:31 +0100 Subject: Fixed #14094 -- Added support for unlimited CharField on PostgreSQL. Co-authored-by: Mariusz Felisiak --- django/db/backends/postgresql/base.py | 8 +++++++- django/db/backends/postgresql/features.py | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'django/db/backends/postgresql') diff --git a/django/db/backends/postgresql/base.py b/django/db/backends/postgresql/base.py index ceea1bebad..99403f5322 100644 --- a/django/db/backends/postgresql/base.py +++ b/django/db/backends/postgresql/base.py @@ -80,6 +80,12 @@ from .operations import DatabaseOperations # NOQA isort:skip from .schema import DatabaseSchemaEditor # NOQA isort:skip +def _get_varchar_column(data): + if data["max_length"] is None: + return "varchar" + return "varchar(%(max_length)s)" % data + + class DatabaseWrapper(BaseDatabaseWrapper): vendor = "postgresql" display_name = "PostgreSQL" @@ -92,7 +98,7 @@ class DatabaseWrapper(BaseDatabaseWrapper): "BigAutoField": "bigint", "BinaryField": "bytea", "BooleanField": "boolean", - "CharField": "varchar(%(max_length)s)", + "CharField": _get_varchar_column, "DateField": "date", "DateTimeField": "timestamp with time zone", "DecimalField": "numeric(%(max_digits)s, %(decimal_places)s)", diff --git a/django/db/backends/postgresql/features.py b/django/db/backends/postgresql/features.py index 49658cd267..6c20dd87f0 100644 --- a/django/db/backends/postgresql/features.py +++ b/django/db/backends/postgresql/features.py @@ -110,3 +110,4 @@ class DatabaseFeatures(BaseDatabaseFeatures): has_bit_xor = property(operator.attrgetter("is_postgresql_14")) supports_covering_spgist_indexes = property(operator.attrgetter("is_postgresql_14")) + supports_unlimited_charfield = True -- cgit v1.3