Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n7OQ6-0007V4-Ug for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Jan 2022 21:11:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1n7OQ4-0008Px-4M for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Jan 2022 21:11:04 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n7OQ3-0008Po-Nz for pgsql-hackers@lists.postgresql.org; Tue, 11 Jan 2022 21:11:03 +0000 Received: from mail-io1-xd2c.google.com ([2607:f8b0:4864:20::d2c]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1n7OPw-0007PN-TD for pgsql-hackers@postgresql.org; Tue, 11 Jan 2022 21:11:03 +0000 Received: by mail-io1-xd2c.google.com with SMTP id w22so688501iov.3 for ; Tue, 11 Jan 2022 13:10:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telsasoft-com.20210112.gappssmtp.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=5LVoPEsbbaZ+1ooI5KmLpHrc1QSTNvKW3PJzjhcPUOo=; b=vABbffiCZaANdbiNg+2BD2Hbh+kyBNdnPt8vkh0hR60mH0CTWXz8/U2sPoHELoPIXS ElrOBFHB8djyMu9G5qVK8IPMIF+1fRdq5f5cMdyehPw+DK4Bq2qc3QZS6rePTnG049Em rZjOw86ZBhQlkwMHonYKEFlCrKDNPAPQH03IcqyFzX0egYMZxx9rTJejfD0hFo+643aN nAu96HhCyZB6u6eQC5nYQZd/++eWkd8wudTI5WzChk9UCbiJDDAePfYu9zBW6nP3n4Kx /2EYhciWdyIeq6EtavVDWBa8HkRJoHpLiRjLDewgHCO3olNn10njCSf8gUVqkKn5qKr/ 4LTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=5LVoPEsbbaZ+1ooI5KmLpHrc1QSTNvKW3PJzjhcPUOo=; b=LvdRUI/7TdC0+P622yqs3MtiFUm+O4r1qKuOpVMibg44YxomoDc1fl7FG1E8yH5Ys2 okop/eHWZTy6z+TF+rcZCRDOTLvebOXcTICcHFnWVuZX98c/9yFeDufZ0zljeb/cW84Z Gw+WJBPArknb3C1uYTl9GeFp+MZeSNsnCk7kzPk+Hj3KA6qVg3++74cxGSaixslSoq4+ fbGCjXW0Dr2hY5hn3fKwdRDQTW3voSSkevl7IWf+UbJywQLBoNpYh8zYuUEZu47xJoXx lza6WL5/7f0UiJFlLYqBHNaV9a3rpamHRHz8TTEdPH3htfsryN0mbr8G3ii+qd36dgxU ayiQ== X-Gm-Message-State: AOAM533OptDI1hXqyyWKGuTgpJKvL0HqJ3GuQ5HCBhOjAytr0pdQ15zt n9UYNN8YcRvTHcZPkvTPmpCf6A== X-Google-Smtp-Source: ABdhPJyJOdlSbCZHA9Ji66ha7FU54GqnDqiBq42nAYrhX5yWKC1wTmPJPQgzHAviq9qjsQElkA1UTg== X-Received: by 2002:a02:cc13:: with SMTP id n19mr3259175jap.127.1641935454966; Tue, 11 Jan 2022 13:10:54 -0800 (PST) Received: from pryzbyj.telsasoft (charmander.telsasoft.com. [50.244.222.1]) by smtp.gmail.com with ESMTPSA id e14sm6352214iov.2.2022.01.11.13.10.54 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Jan 2022 13:10:54 -0800 (PST) Received: by pryzbyj.telsasoft (Postfix, from userid 1000) id 0696580091D; Tue, 11 Jan 2022 15:10:53 -0600 (CST) Date: Tue, 11 Jan 2022 15:10:53 -0600 From: Justin Pryzby To: Alvaro Herrera Cc: Peter Eisentraut , Tomas Vondra , Amit Kapila , houzj.fnst@fujitsu.com, Rahila Syed , Peter Smith , pgsql-hackers@postgresql.org Subject: Re: Column Filtering in Logical Replication Message-ID: <20220111211053.GB14051@telsasoft.com> References: <2d6c8b74-bdef-767b-bdb6-29705985ed9c@enterprisedb.com> <202201110028.wicsx7ex2o6a@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202201110028.wicsx7ex2o6a@alvherre.pgsql> User-Agent: Mutt/1.9.4 (2018-02-28) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Is there any coordination between the "column filter" patch and the "row filter" patch ? Are they both on track for PG15 ? Has anybody run them together ? Whichever patch is merged 2nd should include tests involving a subset of columns along with a WHERE clause. I have a suggestion: for the functions for which both patches are adding additional argument types, define a filtering structure for both patches to use. Similar to what we did for some utility statements in a3dc92600. I'm referring to: logicalrep_write_update() logicalrep_write_tuple() That would avoid avoid some rebase conflicts on april 9, and avoid functions with 7,8,9 arguments, and maybe simplify adding arguments in the future. -- Justin