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 1wDiGi-003Gn9-2C for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 12:25:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDiGh-009hil-2Q for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 12:25:55 +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 1wDiGh-009hid-0f for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 12:25:55 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDiGf-00000001TEg-0c4i for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 12:25:54 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-672bd7d00bdso954842a12.1 for ; Fri, 17 Apr 2026 05:25:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776428750; cv=none; d=google.com; s=arc-20240605; b=PimC2Q8R0h7WrtwpD1wmXdy2zaNVDk7XIe2ltliS4G28RiRujQQrcKo+O3OightPoZ AJV7gSU9FGIlu29KB087t/F3gH4hjYvZ9ycpUBTy82CAtz9hpK9Yb7TtVBhpMpDGcC1V VuGC8C2KBy8bo53MV4NdTQiAEC94mWEASwJlhLLufnyU7Y8dEE1DO9v//87NYOQrtNZm EYWQspjdUV4Q8W+2KDevmoNutTi355M/TcIbjCBx1iUk3L8TWy+DrKhq6aQA0B4n41s1 kEZ+0kjKC+dA6M4pzt1mX4hsunAeidRFIAMThRCZYEKOZSmEP56LmVskyTIeRKZ/bMg7 JFgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=Spnz9DvKmTXwxnACCgA5WadwvhPA1s8ufYljzyZ47Jc=; fh=NJZNqVcpXDu2PeKG99r8OeTjFi/SDxfo+dcn0ow0/nQ=; b=MoXf0uA8mqyHtqAaFAODOLCG5xzicHtGdWqJ8tjXry6iezkx0CsFGtwbP85IM+7KCX RDqCw+JSLJ216p4IAMk6tO/Bzbl2ibYvRgVUkWFGnLCMROWgSCbiPX1H0EpMHkeg8pVz oWWnUfj02UbjSeH0XfJDlRW5PttGkJq5xYDqhNoA/8O93+/YsyFBMt+pg4gS19fr2c3E 76OzbT5KkavcX/GU0cwaqKWyK1aenlpJ/LZu+4IHTAaiky0QvHdwK72Z6lYpO7vkYEZx kZ8ZK4E4Tp73JAjx85LCY4ngBddCe9KvRzZyHAvGKr1F66/Un1WzVcDp/yOOqcG94YSl rWaw==; 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=1776428750; x=1777033550; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Spnz9DvKmTXwxnACCgA5WadwvhPA1s8ufYljzyZ47Jc=; b=SSmAz6hMtFCh41MGxNkG5615Y5pC26/fy3avxn3ZgADdOsMfSqGx2kv/J0eAOJt3qy G2nrhs1/l/bgSo7Z/u7M6NCSatSiIBKrdJ+4HqMS6DIMAt2ZH8I8j2lJ3X+u/xIdQKA7 sU8gxZCYHzBvvnIkm4Vsl7wlgIGVQIA7PyMzCgK9wgeZCGi3FhDoaSp8HO9J9szc8a+K 7Nr6pcAfsN43/DNTn61zL/MKo0JpL5a+sdxpIAf7aNKJXQhPObuDFBVr0J4mawH4VGJc wSKeScJQIALzArZBiJtDzKj/6aQBVaNdwav7yMRxNPaUTunYxu6z6uWiOUfJO0UMdruj K7pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776428750; x=1777033550; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Spnz9DvKmTXwxnACCgA5WadwvhPA1s8ufYljzyZ47Jc=; b=Dje6G6KJEmRBzxlN9VkEwWkdvvti6E959gqfb/SmtzJ9iR5Yn7OaiNYx+MIIcTSDqL 53H3msGv1P0kELK2Js3Xn6U592iMLwmV8xampir9yP7Ey87MKhDV6iUrwg+gbVdr3cGA FN7U+xweLvk7b1OKUe5mei7c1uSoTvQd7v1K7EDouVAdhpk6GqpdweINZyLDm0h925VN oSDRPUq8gCLOJO4bYnNpn7JB/xGNlTc3WDbEqa7DDaS7c6s6z06WvEy0WiguKcQZftz5 gds20iJE+b8WQvU8/4HU4Q//liTdsDntdsuH5h0E1g9Fcl5c56BeA0CSqG7RMeyisS/T 9Y3g== X-Gm-Message-State: AOJu0YyGH2e3qoS+8ch//k99J0F+IkzoL/nYsRr3W99dmtQ5Je9qLPv+ P7x/ATznf5Y/eQzNV9lVEDkGjqT0iJQ1i57oWAOR5LlbGxTXuuqh7sUf32/p32udLxUuPQDfEx9 U9oiKcBSJvhyY9qGxm4NbcoUZEda4Su4D6eoeEx8= X-Gm-Gg: AeBDiesu+BGp5qS7hV9ndYI1uUr6YSb9gybpXgdt6qCTpZEvZkx0kdFc1l98C/PeCxH k+eAQhZL2dTzc6P2IL8HtLFxk1NmhGxVKINqd8CGm2lRoV3NiqDu72LFlFoRXP7AtrqRkM+Bgwj nnGgi24CZlSA2ovr1nxWTPSEZEYg77oQfi0tyOVN8xox3NySAFhyLP/lGO2EEC186W+yQTC9PIv 3JlgyHmFN6o9NSPDNsf4I+58+lKp3JoD+RVWejzVwDG4h5P+dROvFiLQMrxhRABBLhqLlGjIB0/ Obv3NCe8E6VPo7Wa7OGIJ6IZR73cb99RKx5wr9+oedONVreaDT8aetQaeVEhB/7h12dd5Y977DF KEo4NQsHsM7LmA1zLBw== X-Received: by 2002:a05:6402:ea0:b0:673:b696:8823 with SMTP id 4fb4d7f45d1cf-673b6968961mr494456a12.15.1776428749810; Fri, 17 Apr 2026 05:25:49 -0700 (PDT) MIME-Version: 1.0 From: Xuneng Zhou Date: Fri, 17 Apr 2026 20:25:35 +0800 X-Gm-Features: AQROBzDqDr0sOZ9EF6s55h5wm3Fl-BKUb2ts_--qzXT04aCJ6JCl4xkSdpiB4gM Message-ID: Subject: test: avoid redundant standby catchup in 049_wait_for_lsn To: pgsql-hackers , Alexander Korotkov Content-Type: multipart/mixed; boundary="0000000000009a26a2064fa70cb3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009a26a2064fa70cb3 Content-Type: text/plain; charset="UTF-8" Hi Alexander, Hackers, While working on adding more edge-case tests and fixing the timeline handling for WAIT FOR LSN, I noticed that the overall runtime of the test had increased by about 7 seconds since a8b61c23c5ff. I looked into the slowdown and found a potential source. Currently, the test creates the function, waits for the standby to catch up, tests it, then creates the procedure and waits for the standby to catch up again. Since both objects are only used by the same block of top-level statement checks, we can create them together in a single primary-side transaction and perform just one wait_for_catchup() before running both standby-side calls. This small TAP cleanup merges the creation of the PL/pgSQL wrapper function and procedure used for the top-level WAIT FOR checks in 049_wait_for_lsn.pl. The change preserves the same coverage while removing one redundant replay catch-up on the delayed standby. It appears to reduce the test runtime by about 7 seconds, though I have looked into why much of the improvement comes from this change alone. Patch attached. Thanks. -- Best, Xuneng --0000000000009a26a2064fa70cb3 Content-Type: application/x-patch; name="v1-0001-test-merge-wrapper-DDL-and-catchup-in-wait_for_ls.patch" Content-Disposition: attachment; filename="v1-0001-test-merge-wrapper-DDL-and-catchup-in-wait_for_ls.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo2vpl7w0 RnJvbSA1ZDY3YTViMmYzNzQyM2U2OWYzYTcxZDM1MWZlYWUzNDlhYWYyNWE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBhbHRlcmVnbzY1NSA8ODI0NjYyNTI2QHFxLmNvbT4KRGF0ZTog RnJpLCAxNyBBcHIgMjAyNiAyMDowODo1OSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIHRlc3Q6 IG1lcmdlIHdyYXBwZXIgRERMIGFuZCBjYXRjaHVwIGluIHdhaXRfZm9yX2xzbiBUQVAKCkNyZWF0 ZSB0aGUgUEwvcGdTUUwgZnVuY3Rpb24gYW5kIHByb2NlZHVyZSBmb3IgdGhlIHRvcC1sZXZlbCBX QUlUIEZPUgpjaGVja3MgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24sIHRoZW4gd2FpdCBvbmNlIGZv ciBzdGFuZGJ5IHJlcGxheSBiZWZvcmUKcnVubmluZyBib3RoIHRlc3RzLgoKVGhpcyBhdm9pZHMg YW4gZXh0cmEgJ3dhaXRfZm9yX2NhdGNodXAoKScgb24gdGhlIGRlbGF5ZWQgc3RhbmRieSB3aXRo b3V0CmNoYW5naW5nIHRoZSB0ZXN0IGNvdmVyYWdlLgotLS0KIHNyYy90ZXN0L3JlY292ZXJ5L3Qv MDQ5X3dhaXRfZm9yX2xzbi5wbCB8IDE4ICsrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVjb3ZlcnkvdC8wNDlfd2FpdF9mb3JfbHNuLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w NDlfd2FpdF9mb3JfbHNuLnBsCmluZGV4IDgzNThjNTdmN2I3Li4xMWFkY2RhMWU5YSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNDlfd2FpdF9mb3JfbHNuLnBsCisrKyBiL3NyYy90 ZXN0L3JlY292ZXJ5L3QvMDQ5X3dhaXRfZm9yX2xzbi5wbApAQCAtMjA4LDE4ICsyMDgsNyBAQCBD UkVBVEUgRlVOQ1RJT04gcGdfd2FsX3JlcGxheV93YWl0X3dyYXAodGFyZ2V0X2xzbiBwZ19sc24p IFJFVFVSTlMgdm9pZCBBUyBcJFwkCiAgIEVORAogXCRcJAogTEFOR1VBR0UgcGxwZ3NxbDsKLV0p OwotCi0kbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnkpOwotJG5v ZGVfc3RhbmRieS0+cHNxbCgKLQkncG9zdGdyZXMnLAotCSJTRUxFQ1QgcGdfd2FsX3JlcGxheV93 YWl0X3dyYXAoJyR7bHNuM30nKTsiLAotCXN0ZGVyciA9PiBcJHN0ZGVycik7Ci1vaygkc3RkZXJy ID1+IC9XQUlUIEZPUiBjYW4gb25seSBiZSBleGVjdXRlZCBhcyBhIHRvcC1sZXZlbCBzdGF0ZW1l bnQvLAotCSJnZXQgYW4gZXJyb3Igd2hlbiBydW5uaW5nIHdpdGhpbiBhIGZ1bmN0aW9uIik7CiAK LSRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgKLQkncG9zdGdyZXMnLCBxcVsKIENSRUFURSBQUk9D RURVUkUgcGdfd2FsX3JlcGxheV93YWl0X3Byb2ModGFyZ2V0X2xzbiBwZ19sc24pIEFTIFwkXCQK ICAgQkVHSU4KICAgICBFWEVDVVRFIGZvcm1hdCgnV0FJVCBGT1IgTFNOICVMOycsIHRhcmdldF9s c24pOwpAQCAtMjI5LDYgKzIxOCwxMyBAQCBMQU5HVUFHRSBwbHBnc3FsOwogXSk7CiAKICRub2Rl X3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSk7Ciskbm9kZV9zdGFuZGJ5 LT5wc3FsKAorCSdwb3N0Z3JlcycsCisJIlNFTEVDVCBwZ193YWxfcmVwbGF5X3dhaXRfd3JhcCgn JHtsc24zfScpOyIsCisJc3RkZXJyID0+IFwkc3RkZXJyKTsKK29rKCRzdGRlcnIgPX4gL1dBSVQg Rk9SIGNhbiBvbmx5IGJlIGV4ZWN1dGVkIGFzIGEgdG9wLWxldmVsIHN0YXRlbWVudC8sCisJImdl dCBhbiBlcnJvciB3aGVuIHJ1bm5pbmcgd2l0aGluIGEgZnVuY3Rpb24iKTsKKwogJG5vZGVfc3Rh bmRieS0+cHNxbCgKIAkncG9zdGdyZXMnLAogCSJDQUxMIHBnX3dhbF9yZXBsYXlfd2FpdF9wcm9j KCcke2xzbjN9Jyk7IiwKLS0gCjIuNTEuMAoK --0000000000009a26a2064fa70cb3--