Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uMnqj-004BdP-KT for pgsql-general@arkaria.postgresql.org; Wed, 04 Jun 2025 13:08:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uMnqh-00CEeK-DC for pgsql-general@arkaria.postgresql.org; Wed, 04 Jun 2025 13:08:08 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uMnqh-00CEeC-1U for pgsql-general@lists.postgresql.org; Wed, 04 Jun 2025 13:08:07 +0000 Received: from mail-qt1-x82a.google.com ([2607:f8b0:4864:20::82a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uMnqf-000AgB-2T for pgsql-general@postgresql.org; Wed, 04 Jun 2025 13:08:06 +0000 Received: by mail-qt1-x82a.google.com with SMTP id d75a77b69052e-4a44f51bbf3so51139811cf.1 for ; Wed, 04 Jun 2025 06:08:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1749042485; x=1749647285; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=5QZfvz0nH60iEfXK+Lo90bLMJVH/3HgAy/23wZ7jCo0=; b=YYTE9V/Og1Ww6mP87ebttSkCcU+L2lux6e5IRJJ16BuHB9Hcr//sqdnoswvtxU8Udd 6B19BBkR5vnHILwHbJ0zSpp4yWoVx/51X8Leiiwpvl2t6AcBiJpAc9ElQZqzTEzFZdgZ YmV7bdZCq26h8T8cHumwGBTEWpGwjuBlZl1osjX75gv3xwLVZSq3xyYkLvvTMfoTA5Qf F9pDaFayats/8C817Tzp0Usfe59ru9QDWOyJJ73MoZ/a9ORVUySYw2SShisKw+EFVQjM z1bluG7vWNNYsi5gb3hzOImlFMYzdwzOeHpmvIuhZrPR82kJa1YKcu1+E+RLBxfR/OVD 8AWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749042485; x=1749647285; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=5QZfvz0nH60iEfXK+Lo90bLMJVH/3HgAy/23wZ7jCo0=; b=ZgNJhZk/X3psw/MKcOdYxZ5JPkswa3leB8x52yMMezWeqq6guMY5hbIZsdsEiDwh+J dkO2SeRNcqwnNArKzWkJOiLB8Ut6GXITruO1Z6b/yz++pE/KIvZS1UG5MVaGoW4F4/UW UMv634/vu9/BfcxhTS9WMYzasSt9jfjpjMoWDZePkffKmMsySSDvwqk6m0YUA0mzmHYa 9H7er4AJ+1GVwDxEMQ6Oy7TqX+MM4+dDEYCsiR+ymbFoj+wW0+IcF4KIOj7fTR0Ml+fb b31kfJKwqfFHm19S5/7/PE/qpUn2OKIyEMLqxJ9ynPMECuoaIT013sq0UWsLNoxBB+OR 4KTQ== X-Gm-Message-State: AOJu0YzrY4S1dc65Fgrb89oXh7utIbB0piHs/6tmTQCg7UV0sGIBSDFW ULmusDrQTO/kNfo+vNmeuOtbAreLbOXHvRZ/WKYrg9JbrFSHEM4lRZlYEgQm9MzYap/cRXXYSDx gezWEFMq7WOn+2F5dy5DQSzxQkiBlbJEVxKEU X-Gm-Gg: ASbGncuI1fXCNDYCXwI4L2jxJiRAHbr7L7UkIAlr2BI7ZGmvAia2zn6uChDaU/obHsV WVYYHUkghgVcuJdsbyQ/jYYmERG3b7A/pW3+RTizigNQWCPuddaqkHoq1EOdbBpR6QIpKCb1yb7 blIdkWMYE96QF+n7hZI4Ip544+kjPIXDGX7OE= X-Google-Smtp-Source: AGHT+IGTBMugjpVCxenvtnQBKt9eEHDiLUgnA96y9IzyLYHV+klVdUbGrw9MytFtLV32hg4+LGqKGOPYMxza4TdDpT0= X-Received: by 2002:a05:6870:7d89:b0:2d4:7cfa:6f3 with SMTP id 586e51a60fabf-2e9bfa87bc5mr1532492fac.20.1749042474390; Wed, 04 Jun 2025 06:07:54 -0700 (PDT) MIME-Version: 1.0 From: Dominique Devienne Date: Wed, 4 Jun 2025 15:07:43 +0200 X-Gm-Features: AX0GCFuRJfP4f3CfMyNVF1Dc6dh9un8uNwCcLF6IYyrN5Wqxcw4pcBmEYkcxej8 Message-ID: Subject: pg_constraint catalog changes in v18 beta1??? To: pgsql-general@postgresql.org Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi. I decided to test our stuff against the v18 beta1. And right off the bat, I'm getting differences when introspecting a schema via the catalogs, which now return NOT NULL constraints for regular columns, which was not the case before, and when the doc seems to say pg_constraint.contype = n is for domains only, while on our test, the schema contains only the table as below, and no DOMAIN types. CREATE TABLE test_table (id numeric NOT NULL, name varchar(256)) Is this change of behavior normal? This breaks our code, which is of course fixable, but this is old code that hasn't changed since at least v14, thus I'm surprised. Was this intentional? Thanks, --DD PS: Interestingly, our code also has this comment, which seems related: // We used information_schema.table_constraints in the past , // but that view also presents system-generated not null constraints. // Using pg_catalog.pg_constraint gets rid of the problem