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 1weAZj-004bxc-0G for pgsql-hackers@arkaria.postgresql.org; Mon, 29 Jun 2026 11:54:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1weAZi-002zNx-0F for pgsql-hackers@arkaria.postgresql.org; Mon, 29 Jun 2026 11:54:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1weAZh-002zNp-2T for pgsql-hackers@lists.postgresql.org; Mon, 29 Jun 2026 11:54:53 +0000 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1weAZf-00000000mUW-3Qxk for pgsql-hackers@lists.postgresql.org; Mon, 29 Jun 2026 11:54:53 +0000 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-39af87c4589so20837561fa.2 for ; Mon, 29 Jun 2026 04:54:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782734089; cv=none; d=google.com; s=arc-20260327; b=K6CIKjHGsvPZ0UH/t+PQTnkqn8hnO5Yc5X/QYywGDogBLxddOKctbeggpILT+LQZrb LBpS/PV/py/2NNL/d/Ihl3yjeQR1dzSlUolG68g279OU87fdVXp6Cv/60rc0Jf1+goU/ rlb8tzmwzAxM14+10uCPMd/1Q4+OmL4PbBd2/y1gYJKHhEqmXd8WZemjvuP94pSVAbms RUeAqOfOm1gVITx8I+WYT7zkCLFt/u4iLBf7lOqpn4fPdaBYFuXoiwYnrdYJqCGfvt9H zvCBUCBxi30b3gj3vVjOC7t9J5iSTqEp2zxGIt4hzUPZcuPYEkFhtUFi8A531BVDQ9Wl YtDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=RBTAodO/QzOebfJaNeEBxoT/lSoeL6m6AlDscl3BUBQ=; fh=+OWlWzKvvEMK5CH+OxM4Sg5DPi96SppWwY04rFBMNww=; b=IxT/zI/cDmOXjjrQVA1cOZ2G/lH0yQGlxPn504yeoPuci64WTxHo86s3fDcmtaHEFs 72/Kjz1GVqYrUCSfKtJiEDprZUMPfpmNeoRdcauYZ5qH6471AVFy1GhBmiJWdzwj/OOm xSYdcoUdsy3K0k9OMYQm1B1tKtIqrZCff7czJWO561PEzVvZCcLfmPZLy1IV+kFyaRJb YzOEuqinkMrkCLPHqtRlKyV6r17uFaz48xxlGm0pEjaaLDx9hfGjdsvNb1dktqtKxQgu Xqo1E2niGN7mGDiQyaeXT6rD9lySpwE6pUnwlkjCKkjLI+SKbDm9TKi8bVFXW8DsL1WK hs/g==; 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=20251104; t=1782734089; x=1783338889; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=RBTAodO/QzOebfJaNeEBxoT/lSoeL6m6AlDscl3BUBQ=; b=IHdKZG9y4GAkOoVcnfC6tSAwFW1mUvrns/8FeDtxrueY6A0MTscrmftSZkveWFG6pd nDYL/E1zVJ9KmM2SZF11gS0vh7zUHnUxwc+nJps8W1VrIcIFveNDOxJgMvKeEE4DBkdn +pi2A39/LP/on3H4ym7HVPL71Z9S8ZevTY82meb8u5rS9GUL6EWWuO3jrL/nnSS82TKn uel1F7KF+HeMDD9kbgPB7esuaoXh9nVefj4O36HXMy4s9bO1RAgR4VQ4syIrDZJYzz3W ilhj9e5lcnCl2gaCUcuDW0qEgCEwkFotuH05FqkBbN0w+OiSuKNGRLX+dtzlyTRbVsAp MkPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782734089; x=1783338889; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=RBTAodO/QzOebfJaNeEBxoT/lSoeL6m6AlDscl3BUBQ=; b=qCXdZA3pZs7NpB5bOLu5TMDRD77+VmEeAusuCb0Vmw8GZM/BQTw5770zT6WCxWqGG8 qs1pe8AJY+d/JRM+VOSwahsRZk15OHLTiCeDLX0lDXpdqqYBQUWz7IssDKmgQxLTrMVv k8Fqw+lZ1dMMMDmEfx4BqEgZLkbvFJzzhQxUSrtG7TzTTvwx0GOqlNfEgrZnAmTeLO0i 1nBUCnnWfUX15VrzdhBQpa+IU0aUOS5f1KSZVYrIwKXoR+20MAjQO8VenohCqz3qjFCR /e4rT1Lq6p4X/4WCY6RJf/vG+PmNr9MJR/fWHSEEEq/acMnqrot8Vhkiqh/O1oN7epYf oB+w== X-Forwarded-Encrypted: i=1; AHgh+Rq5FeBWZKywcEUBrSLB7p7OR9e4qdd+30I0LaiMVlKpU56fydPImgpc+svfaCehud0RNIrpMNubFQXix5vy@lists.postgresql.org X-Gm-Message-State: AOJu0Ywv16vLtwoR9u95sCGqfCH6eXxOo4/sKDUzlru9g1RitBhjmg92 zKBHXMeDSckn+Mq/MDKWauLXerR/7bRylGqaEm/ePS0YMhF3aY+fFjUbBIH+TwueiHoCiYRh9qb 8SRelfVGVpak75h2rPePFLSQ7tr6sMw== X-Gm-Gg: AfdE7ckvJepOq/4OoORcD5sRgX0I2kSa48pzLcCDcnVH9Yx7a3+AapdgX367wQ6nldB RuipeOogbLbdeb16eaeTY32geyRyEyDW+/L3RuCdGuqVL7oRNrrP2pWacIjP+0Z4eAqaPJX2nvu E2441gfZDH68SIjEzOMLpg3NYEwT8g844zg6zD5t2kQReC9A2fzisp7D18z1PLI0BvxeENz+MQ8 Eow4zzqALvXpC3UaJ8G2qCflXlK1ECPJrQtQwuzPc+SwFkgoGcAMYWHbxQ2HHI5cTpth4pCaAE4 mtk= X-Received: by 2002:a05:651c:1504:b0:39b:d76:5cb2 with SMTP id 38308e7fff4ca-39b1aa21124mr279881fa.10.1782734088737; Mon, 29 Jun 2026 04:54:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nisha Moond Date: Mon, 29 Jun 2026 17:24:36 +0530 X-Gm-Features: AVVi8Cdnr2iErNFeZ10dxt1gSVijS3JH6htO-QXA3YF0J1_-b36UH-uZ7PVJ03Y Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Dilip Kumar Cc: vignesh C , Amit Kapila , shveta malik , Peter Smith , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Thanks for patches, Please find couple of comments for v59-0001 and v59-0002 : 1) Noticed an unexpected behavior in pg_conflict privilege checks. A combined privilege check (CREATE, USAGE) on the pg_conflict schema returns 'true', even though both privileges are revoked from the role/user. Please see the example below - -- by default, for 'nisha' - CREATE is false and USAGE is true, hence combined check is true (OK) CREATE ROLE nisha; SELECT has_schema_privilege('nisha', 'pg_conflict', 'CREATE, USAGE'); -- true -- Now revoke USAGE REVOKE USAGE ON SCHEMA pg_conflict FROM PUBLIC; -- Single privilege checks SELECT has_schema_privilege('nisha', 'pg_conflict', 'USAGE'); -- false (OK) -- Combined mask check SELECT has_schema_privilege('nisha', 'pg_conflict', 'CREATE, USAGE'); -- true (not OK) -- Other way to look at the problem - postgres=# set role nisha; postgres=> SELECT schema_name FROM information_schema.schemata; schema_name -------------------- pg_conflict --> should not be here information_schema public (3 rows) ~~~ 2) Couple of minor typos in patch-001 2a) conflict.c + * scalar columns(relid, conflict_type, commit timestamp) while these JSON /scalar columns(relid, / scalar columns (relid, 2b) subscription.sql +-- this should generate an conflict log table named pg_conflict_log_$subid$ +CREATE SUBSCRIPTION regress_conflict_test1 CONNECTION 'db... /generate an conflict/generate a conflict -- Thanks, Nisha