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.96) (envelope-from ) id 1w2te6-000hxv-30 for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 16:21:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2te5-00CM8s-0P for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 16:21:21 +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.96) (envelope-from ) id 1w2te4-00CM8j-2g for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 16:21:20 +0000 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2te1-00000000O2m-2D8a for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 16:21:19 +0000 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-35b90d6fe14so80925a91.2 for ; Wed, 18 Mar 2026 09:21:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773850878; cv=none; d=google.com; s=arc-20240605; b=QYmpl5vquqgDkgo/zjtPwlmmb3IX/oeikIfE+Rz6tErJZxQ2h6urc7hJbdI67cAaI+ FqVworPcRxmpNcNP+hlP0DdaMni+VJojC9Xz5LyPoLcgB0090ya5nh1QACmeI9XrB3/U VlmYVfdVL2Wkibs9airuSPNYIIn3XkR0BXudQ905r5gbG2/Esl75GbDWweSohPRx1J3b lkkYuJMMgQx0kFE5HWYDlDXQSvugqJOaDisuwEm4aXEa2fBY+ATqfLWBc0wr8aGPZ6cm 7J9ecGZpZzoqVKSmQT7BnH+GQ2MUTlmq+oN6Zsjz5xlXmM+IVqtarcOyinrXjdfrYhBS HOxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:reply-to:mime-version :dkim-signature; bh=AedlignRHAgT495t1BDKXXglrQhzvjT/48NKqPNxe94=; fh=oWKbGXenJ0W3UaTE5+JHx7ufYGIICxbxa2jY+IM9Itg=; b=Yr6kGBzoKtfofZLAcPI+O7fYKIHb5LFolYF21QZ8/xFrf8hcXqM/HITtgRP2InZvhE zpjeqk+3tZVrMC0vKIe5yUNc3dij3NbGlCEE64bq5/BNJHRDrrKFIB6HY8WDH14Rd94G BWUxXplbueSiGCYLgdzHtDdVev0aVm1W+ceoGqmauIbi84R1fOIs6CBw2mG5wW+jb3pd es+W9b9Q7M1l1uoAbSY3Y6incTR2l262kiICBEb9KjuUN+xYSQVSJH2sFmdbSLsZYEMZ JlgQF0sQYSTI+6jAD/+JkowC7E8GvwFrEmhvgg6BRMHm6z+oUBGzv/UBOmK//IpBqQUu uNgA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773850878; x=1774455678; darn=lists.postgresql.org; h=to:subject:message-id:date:from:reply-to:mime-version:from:to:cc :subject:date:message-id:reply-to; bh=AedlignRHAgT495t1BDKXXglrQhzvjT/48NKqPNxe94=; b=CtJJ3Ioz4Tj3dVkQKiWKWMk0fmVAPcv21hcPXrVr4HB504ZUlFP+wDzEJ5t5OSZ29b GdhZq4w03+m00v1Ei7rqUu/IneO6BM0za68wqciA+nOFBUMSZq/0GWuepJY6kOInfi8p jmXp3nm8ZjLV4aAeqxQlIAVZk2RhqJ5FeHHSorZcAbVnDWEr7JlAB4U2yR+sJYrc7z/I a1LjvsPxACKs0hKUhozCcOWke+WMnEXQ52MuSKCtevY/cgbjPKN7xkiYzRMzIMu/SRg4 28g9ZqtRzqrzX1WKndSvLkTGiP/qfnWPOkemncO6an7UCEXrtNyPIcroexyXNcod4PJP RF2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773850878; x=1774455678; h=to:subject:message-id:date:from:reply-to:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=AedlignRHAgT495t1BDKXXglrQhzvjT/48NKqPNxe94=; b=bsMbcNwRyXIvBx6ifT7AO174CO8xvWOm+VP80FuF+eyKImPFr4fkYBwZElFxc1lIiU 7FL319cNY0hJTw1o6KicKnsap/evDp8oLzmf7b98LV8M6m5c1JooqKoDXi0L6J0NKyP4 eQs1ypHyuujUueTEWjPdQntHP9PJ/Ow947P7YZIF+R7b9lttx49L2nzjeBz5kKcxSyZL NjDb/QOFYzPQev3DMCFmfsjuBECZIi8XIIW2kQYr4xXpapIUBX+a0CCg1R3eN6UhirAv fo9zAMlil2FuDvA6PLNuT99PhsrD/rU8v4sk069Qn6fpPe63OE9QNatDIZMvM5gZ8VUz y24Q== X-Gm-Message-State: AOJu0YwtphRfx3Y6O/7EaitCRywrvhlQKqxS+kRSPWI0F8+t0QkXkEaD m68r7nrxXAXFbuUuC6xacaAqQqjG4nVyOQZVXjeYN+EiosAqJ1Q2o8mXaxz+iHv9MmkDnynWx2K fauprqJZLm7Lt5EkyaPMN4cNWLzqkQoX3ZATP7qE= X-Gm-Gg: ATEYQzy0xv6nGMdMN8lGZ+EJuk7fZVRO2IoTCqvTRaUiGMdNTFg9PSBuM652Za5Yp/b xkXoXbyzIZPveUR37W43FR8uURuIX542yXz2MLzJqaF2HiKr/Wa9iOKJe9WR8n07Rui/jg+LgTz DsoAoXZuQQbVwoH/I9tgJqHhL3R9nmG0ysxp7RdKam0B/v4BIyg/RUXYk5K45wMOH6wFB1g+le+ kw5XmlvdN1z/s/yFYaik5QhdTMxXlLnht70hGBQoR9NH8d3pQR+v9PSjGUdI1z+YlxaphBAIK8h DqsNqg== X-Received: by 2002:a17:903:b85:b0:2ae:7fbd:3dcd with SMTP id d9443c01a7336-2b06e44062dmr35502435ad.52.1773850877923; Wed, 18 Mar 2026 09:21:17 -0700 (PDT) MIME-Version: 1.0 Reply-To: zaartur@gmail.com From: Artur Zakirov Date: Wed, 18 Mar 2026 17:21:06 +0100 X-Gm-Features: AaiRm508R0Cr5pFqj9VXX1ZvXNMBFr0OLp9wOE90GDcjPV3yu250sW6ASe0cdvk Message-ID: Subject: Order of InvokeObjectPostAlterHook within ATExecSetNotNull To: Postgres hackers Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hello hackers! The commit 14e87ff added pg_constraint rows for not-null [1]. The consequence of the patch is that it changed the order of InvokeObjectPostAlterHook() call and update of "attnotnull" field in the catalog. Before the update was before the call of the hook [2]. And now "attnotnull" is updated after the call of InvokeObjectPostAlterHook() [3]. This is a noticeable change to extensions which use "object_access_hook" since they see a bit of stale information about the attribute. Is this an intended behavior or rather a bug? 1 - https://postgr.es/m/202408310358.sdhumtyuy2ht@alvherre.pgsql 2 - https://github.com/postgres/postgres/blob/REL_17_9/src/backend/commands/tablecmds.c#L7818 3 - https://github.com/postgres/postgres/blob/REL_18_1/src/backend/commands/tablecmds.c#L8043-L8047 -- Kind regards, Artur