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 1utmpw-00E2Ml-5u for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Sep 2025 12:43:41 +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 1utmpu-009TL8-W6 for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Sep 2025 12:43:39 +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 1utmpu-009TL0-LV for pgsql-hackers@lists.postgresql.org; Wed, 03 Sep 2025 12:43:39 +0000 Received: from mail-oo1-xc31.google.com ([2607:f8b0:4864:20::c31]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1utmpt-000KdH-1b for pgsql-hackers@lists.postgresql.org; Wed, 03 Sep 2025 12:43:38 +0000 Received: by mail-oo1-xc31.google.com with SMTP id 006d021491bc7-61bd4ba9fafso2947608eaf.0 for ; Wed, 03 Sep 2025 05:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mixrank.com; s=googledamrudlacagu; t=1756903417; x=1757508217; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=eotv0jtRi/39AvUugLvWErzaCFW/TiBmfl/0Kh8GJKw=; b=Y0R7LCcvppZBX77MiwCHRadZGb8P+XObbc73nHm3PknU9VqIoDhZYxC+XZTCfjlCEw zUhIWoiGMauCD9UaPqYylmJAQUrshBv56pzpWnkKrRKMcf+i3/kdWLLRNRMDv0JYy7XW 3vJadi1K6gQQNYYjGOKl8+0cQEayXTuftkGLhUF5HD7/cYy/toZpTuKU9bNVSgElr1j9 /Bbahlru8g8UukBaq4/a8wlGQnfNoUGJ5Sq53NvrqKsLWRbfpV+9bQQ8ffAOgt9p1Q3I FDkX/lCQccFf2cg1mbnrZ8jSSt6YxkRd842dLcowEwpDmUpyu5Ey7tkMBJKe2hxUevWt 22Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756903417; x=1757508217; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eotv0jtRi/39AvUugLvWErzaCFW/TiBmfl/0Kh8GJKw=; b=RFTH+5Y6c8Rx7QeeMyJGsQyWOJYVXC5tya7RTrsqtsZndZ8qJ6Did2IADATho8JUKr SmgTb6hTV6/ZgBjFswJPKuyrNEYIHM3gsNT1R4qrNa5f2WX4QG2EJu1E7Cq1c53nSYru OX4qtFCuBbnWOE/PfYSi9TloEpjQ7rnmepo6tm42LDAdkdUh6tVuM+BJ1Eiw0AIEYIaU XI8V+vBPZiwwVpvMUIRiiaurAa8+dsqW7YyHgpfNwqYzoOlHMiyYh1N/aeL81adrA/0V lRE7W0F2PjMpWZBgWKbEknRGXJFLMqUy41EqigJWa+lkSXxhoNhISJ7QJHuCQXttMKc7 C29w== X-Gm-Message-State: AOJu0YzseShsXf9/iOJpQ4dU7lzNMd0F8eoPjEaNqnpfmRb6pmc7F8Sm iPH760xc02wFofFpU7lNdbpJbGNAuLOYZsrEB1ulbVNxLM9yAISB6tdBBXZN8YsUfTO3ksXrBqX ZxQMWQJXzWuR2tSPU4Z59QFewQIXbeOGKFM/kJ/3x9w== X-Gm-Gg: ASbGncs+Dz06g+i8kPFGWpZ7RLBWhx89hsyHRkS1uG6xQZhMTJEMYnubtq7TiuXcXii 2VC0uHKcyxUFZB6X5bB70PkuDptZJ5MqsREp/WCwj0Qw+IoqAenwxdpVjbBO+5C0VTxWYtpvxBM GLVDr9uHIX5S8bTHEchC+vx75kNtkHJsnnKdTkm4rTYRupAZ+jDe+V+haRjmTXn5a+IkbW/beeu xPOA/iJezDevW3jKavmAXOLH2AU0LLgLFi69RULzQ== X-Google-Smtp-Source: AGHT+IGfx1RKjE1A3gfk2XeBeEX5uP1s+lp1LiJIFBONukiH2dWsZ6+Zib34WZ15OrbljMJ3funBIMowVoVnfSvGEeE= X-Received: by 2002:a05:6820:1694:b0:61e:2be3:97b3 with SMTP id 006d021491bc7-61e3377d8f9mr7975856eaf.3.1756903416849; Wed, 03 Sep 2025 05:43:36 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Doruk Yilmaz Date: Wed, 3 Sep 2025 15:43:25 +0300 X-Gm-Features: Ac12FXxMseO3PZTT9M-D4vj65LWdkua7Ho7fe8cWa0L8aTqqlmGzJnbEE3Hl82w Message-ID: Subject: Re: [Patch] add new parameter to pg_replication_origin_session_setup To: "Hayato Kuroda (Fujitsu)" Cc: pgsql-hackers@lists.postgresql.org, Amit Kapila Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Dear Hayato, > So, your python process establishes two connections, for publisher (repli= cation connection) > and subscriber (normal connection). It receives changes from the publishe= r, > constructs SQL statements from the received results, and sends to subscri= ber's > backend, is it right? Actually, it's a bit simpler than that - there are no two connections. Our program reads changes from JSONL files rather than directly from a publisher connection. We have multiple Python processes, each with a single database connection to the subscriber, reading from these files and applying changes in parallel. > Is there a rule which attribute is clarified and others are not? > For example, VOLATILE is specified on both side, STRICT is written only i= n the > system_functions.sql, and PARALLEL UNSAFE is set on pg_proc.dat. In pg_proc.dat, I believe the STRICT, IMMUTABLE, and PARALLEL SAFE are the defaults (check out pg_proc.h). So in pg_proc.dat, the ones that are specified are the ones that aren't defaults, there is provolatile =3D> 'v' (for VOLATILE) and proparallel =3D> 'u' (for UNSAFE), but no prostrict since it's already true by default. In system_functions.sql, I went with being explicit about all the attributes for clarity as it is the code declaration. If you want, I can also make the pg_proc.dat explicit. Thanks, Doruk Y=C4=B1lmaz