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 1tZsA8-00Dszv-Gm for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Jan 2025 13:49:57 +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 1tZsA4-0023ot-U8 for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Jan 2025 13:49:53 +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 1tZsA4-0023ok-FM for pgsql-hackers@lists.postgresql.org; Mon, 20 Jan 2025 13:49:53 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tZsA0-000YZH-3A for pgsql-hackers@lists.postgresql.org; Mon, 20 Jan 2025 13:49:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mx2023; t=1737380986; bh=Hts87Yn7ZyvngufkQZJT6jvkAcufjQc6kgulS3iU0To=; h=Date:From:To:Subject:Message-ID:From; b=Y3bTM6+vfloGB5kKUd3jCiX7OajvDOjh31PeNipPHoM0sS3ZvdYw3wGrVwPdMEu4C uTXup1c/68C34CWMm9QR6/zLeM9AJUNJDa4HKqrfDmRNsdYI3jjZCH1u8quV/3gWoO HJ/1xCeLipxwqP7axAV/ONXnawC83BpausmsalNmX/CUwBCSQlIPBTxyIaAj6UQewm DD0Zm8FuFfKbIhE0KgV6rMGfoUTotDvU7WEQ6QpdUNpzONHH7y7/WO6EQysSjQGRwC 5pdaMJe+GCRu2XBpKtRNUwXIaEvPRpob9HtKMV5HhRXAZdGyr4A4fxK4AhkTbpT17r kJQSmWDnHFmxQ== Received: from mail.postgrespro.ru (webmail-slave-mstn.l.postgrespro.ru [192.168.2.28]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: m.litsarev@postgrespro.ru) by mail.postgrespro.ru (Postfix/587) with ESMTPSA id 00FDA6019B for ; Mon, 20 Jan 2025 16:49:45 +0300 (MSK) MIME-Version: 1.0 Date: Mon, 20 Jan 2025 16:49:45 +0300 From: m.litsarev@postgrespro.ru To: pgsql-hackers@lists.postgresql.org Subject: pg_stat_statements: improve loading and saving routines for the dump file Message-ID: <192f7185defa370d083e3a237727b066@postgrespro.ru> X-Sender: m.litsarev@postgrespro.ru Content-Type: multipart/mixed; boundary="=_e2237d83b2f93cf11e10a1bb6e5c62ec" X-KSMG-AntiPhishing: NotDetected, bases: 2025/01/20 13:10:00 X-KSMG-AntiSpam-Interceptor-Info: not scanned X-KSMG-AntiSpam-Status: not scanned, disabled by settings X-KSMG-AntiVirus: Kaspersky Secure Mail Gateway, version 2.1.0.7854, bases: 2025/01/20 13:03:00 #27080973 X-KSMG-AntiVirus-Status: NotDetected, skipped X-KSMG-LinksScanning: not scanned, disabled by settings X-KSMG-Message-Action: skipped X-KSMG-Rule-ID: 1 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_e2237d83b2f93cf11e10a1bb6e5c62ec Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi! Currently in pg_stat_statements save/load routines the whole pgssEntry entity data are written/read with its last field slock_t mutex; which is actually not used then. This small patch fixes this issue. Hope, it will be useful. Respectfully, Mikhail Litsarev, Postgres Professional: https://postgrespro.com --=_e2237d83b2f93cf11e10a1bb6e5c62ec Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v1-0001-Exclude-pgssEntry-mutex-for-rw-dump-file.patch Content-Disposition: attachment; filename=v1-0001-Exclude-pgssEntry-mutex-for-rw-dump-file.patch; size=2361 RnJvbSA0MDM5MmE0OTVhOTFkZmMxZWUyYzYyODEyOTQ5ZWViZTU0Mjc2NjI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNaWtoYWlsIExpdHNhcmV2IDxtLmxpdHNhcmV2QHBvc3RncmVz cHJvLnJ1PgpEYXRlOiBNb24sIDIwIEphbiAyMDI1IDE1OjQwOjEyICswMzAwClN1YmplY3Q6IFtQ QVRDSF0gcGdfc3RhdF9zdGF0ZW1lbnRzOiBpbXByb3ZlIGxvYWRpbmcgYW5kIHNhdmluZyByb3V0 aW5lcyBmb3IKIHRoZSBkdW1wIGZpbGUuCgpFeGNsdWRlIHJlYWRpbmcvd3JpdGluZyBwZ3NzRW50 cnkgbXV0ZXggZnJvbS9pbnRvIHRoZSBkdW1wIGZpbGUuClVwZGF0ZSB0aGUgbWFnaWMgbnVtYmVy IGlkZW50aWZ5aW5nIHRoZSBzdGF0cyBmaWxlIGZvcm1hdC4KLS0tCiBjb250cmliL3BnX3N0YXRf c3RhdGVtZW50cy9wZ19zdGF0X3N0YXRlbWVudHMuYyB8IDExICsrKysrKystLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3BnX3N0YXRfc3RhdGVtZW50cy5jIGIvY29udHJpYi9w Z19zdGF0X3N0YXRlbWVudHMvcGdfc3RhdF9zdGF0ZW1lbnRzLmMKaW5kZXggYmViZjgxMzRlYjAu LjA1MTFhMmI3Y2ExIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19z dGF0X3N0YXRlbWVudHMuYworKysgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9wZ19zdGF0 X3N0YXRlbWVudHMuYwpAQCAtODIsNyArODIsNyBAQCBQR19NT0RVTEVfTUFHSUM7CiAjZGVmaW5l IFBHU1NfVEVYVF9GSUxFCVBHX1NUQVRfVE1QX0RJUiAiL3Bnc3NfcXVlcnlfdGV4dHMuc3RhdCIK IAogLyogTWFnaWMgbnVtYmVyIGlkZW50aWZ5aW5nIHRoZSBzdGF0cyBmaWxlIGZvcm1hdCAqLwot c3RhdGljIGNvbnN0IHVpbnQzMiBQR1NTX0ZJTEVfSEVBREVSID0gMHgyMDIyMDQwODsKK3N0YXRp YyBjb25zdCB1aW50MzIgUEdTU19GSUxFX0hFQURFUiA9IDB4MjAyNTAxMjA7CiAKIC8qIFBvc3Rn cmVTUUwgbWFqb3IgdmVyc2lvbiBudW1iZXIsIGNoYW5nZXMgaW4gd2hpY2ggaW52YWxpZGF0ZSBh bGwgZW50cmllcyAqLwogc3RhdGljIGNvbnN0IHVpbnQzMiBQR1NTX1BHX01BSk9SX1ZFUlNJT04g PSBQR19WRVJTSU9OX05VTSAvIDEwMDsKQEAgLTIzMyw3ICsyMzMsOCBAQCB0eXBlZGVmIHN0cnVj dCBwZ3NzRW50cnkKIAlpbnQJCQllbmNvZGluZzsJCS8qIHF1ZXJ5IHRleHQgZW5jb2RpbmcgKi8K IAlUaW1lc3RhbXBUeiBzdGF0c19zaW5jZTsJLyogdGltZXN0YW1wIG9mIGVudHJ5IGFsbG9jYXRp b24gKi8KIAlUaW1lc3RhbXBUeiBtaW5tYXhfc3RhdHNfc2luY2U7IC8qIHRpbWVzdGFtcCBvZiBs YXN0IG1pbi9tYXggdmFsdWVzIHJlc2V0ICovCi0Jc2xvY2tfdAkJbXV0ZXg7CQkJLyogcHJvdGVj dHMgdGhlIGNvdW50ZXJzIG9ubHkgKi8KKwkvKiBwcm90ZWN0cyB0aGUgY291bnRlcnMgb25seS4g U2hvdWxkIGJlIHRoZSB2ZXJ5IGxhc3QgZmllbGQgKi8KKwlzbG9ja190CQltdXRleDsKIH0gcGdz c0VudHJ5OwogCiAvKgpAQCAtNjI1LDcgKzYyNiw4IEBAIHBnc3Nfc2htZW1fc3RhcnR1cCh2b2lk KQogCQlwZ3NzRW50cnkgICplbnRyeTsKIAkJU2l6ZQkJcXVlcnlfb2Zmc2V0OwogCi0JCWlmIChm cmVhZCgmdGVtcCwgc2l6ZW9mKHBnc3NFbnRyeSksIDEsIGZpbGUpICE9IDEpCisJCS8qIFJlYWQg d2hvbGUgcGdzc0VudHJ5IGV4Y2x1ZGluZyB2ZXJ5IGxhc3QgbXV0ZXggZmllbGQgKi8KKwkJaWYg KGZyZWFkKCZ0ZW1wLCBvZmZzZXRvZihwZ3NzRW50cnksIG11dGV4KSwgMSwgZmlsZSkgIT0gMSkK IAkJCWdvdG8gcmVhZF9lcnJvcjsKIAogCQkvKiBFbmNvZGluZyBpcyB0aGUgb25seSBmaWVsZCB3 ZSBjYW4gZWFzaWx5IHNhbml0eS1jaGVjayAqLwpAQCAtNzgyLDcgKzc4NCw4IEBAIHBnc3Nfc2ht ZW1fc2h1dGRvd24oaW50IGNvZGUsIERhdHVtIGFyZykKIAkJaWYgKHFzdHIgPT0gTlVMTCkKIAkJ CWNvbnRpbnVlOwkJCS8qIElnbm9yZSBhbnkgZW50cmllcyB3aXRoIGJvZ3VzIHRleHRzICovCiAK LQkJaWYgKGZ3cml0ZShlbnRyeSwgc2l6ZW9mKHBnc3NFbnRyeSksIDEsIGZpbGUpICE9IDEgfHwK KwkJLyogV3JpdGUgd2hvbGUgcGdzc0VudHJ5IGV4Y2x1ZGluZyB2ZXJ5IGxhc3QgbXV0ZXggZmll bGQgKi8KKwkJaWYgKGZ3cml0ZShlbnRyeSwgb2Zmc2V0b2YocGdzc0VudHJ5LCBtdXRleCksIDEs IGZpbGUpICE9IDEgfHwKIAkJCWZ3cml0ZShxc3RyLCAxLCBsZW4gKyAxLCBmaWxlKSAhPSBsZW4g KyAxKQogCQl7CiAJCQkvKiBub3RlOiB3ZSBhc3N1bWUgaGFzaF9zZXFfdGVybSB3b24ndCBjaGFu Z2UgZXJybm8gKi8KLS0gCjIuMzQuMQoK --=_e2237d83b2f93cf11e10a1bb6e5c62ec--