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 1vzaTK-0018jm-2F for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 13:16:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vzaTJ-00GLzy-0d for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Mar 2026 13:16:33 +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 1vzaTI-00GLzn-2s for pgsql-hackers@lists.postgresql.org; Mon, 09 Mar 2026 13:16:33 +0000 Received: from mail-dy1-x1334.google.com ([2607:f8b0:4864:20::1334]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vzaTG-00000001HtM-3wO7 for pgsql-hackers@postgresql.org; Mon, 09 Mar 2026 13:16:32 +0000 Received: by mail-dy1-x1334.google.com with SMTP id 5a478bee46e88-2be1ab1fa7dso4176508eec.0 for ; Mon, 09 Mar 2026 06:16:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773062190; cv=none; d=google.com; s=arc-20240605; b=HVjP9CfqS+hCZuIOjWdTcWy5m1l/sQyEYbixG9xJsTbwEErNcCpyL3VUCi8ki6tFrl qubSgTdkKoUDxe1ao1AX9i41PR7Rw3tLi/4uCojtlqA/i60azGF7iInFJego1awBtHyD K9fryJNO3dnzhP9r8IJtTGoObJH2mn1BATxT1QnBshgCaLg3twD+39w+l0pesELfNc8K 3dTgwNHwhQ1rYFXNeUm41RSl+zgcsYjdNH2UfDnAajln0Dr0yh+CQodoKNEabnpmHlY9 uyCFL7Z2LLSyG8DVxWXHVDI0ZR4GTGZpZIvmvIHxuS0z/M44tkFnZ3iyH3eNPHSkoILx y28A== 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=UpIsqo16gFQNCwAdHGoDr7A5Cry/yP3pRezkU31fJ7M=; fh=fehX+dSXHrIgCc3h4InFuGDgPvwzJKFBTFHKY5o6R7c=; b=AEG/PGJPcCs4fj7Ums489hrAsUGBu1Jl8lfxy6/rypCVsDMgrsZoukWFt6gxrDIm6H tM3Z3I8sZk9guV8ZCuHIaCp4n6tOr0NgyKm4E+NVHE9ERZSf6lfGyV6C0kqnhZQLc7dY KopdE5w+dErOGBB91aSBVga6UPK5MSkBaSPwdFhgPFxt5GAQWwdbIFpI1+sPHcknZ+Ew ADBrlYRSpZYCtJcHQfTQWNmd5nGve0zyf3akVR0zDwQkjYfjeadUjLZpzce/0cYbtEPf yFkoyDqb6XS1SPulicZ7p0GFHZ040A6CC6XSI+vkhqvqYz98wl851PaWAzNKsYC7yCN6 F4wA==; darn=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=20230601; t=1773062190; x=1773666990; darn=postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=UpIsqo16gFQNCwAdHGoDr7A5Cry/yP3pRezkU31fJ7M=; b=ASYVfoqlkkBb2zwgGwsO87J04zIrNw2A6Gf0SZnJILqU9x7ixtvH2Xg8FEK84h1WBc mIqs43mXZEySkmJY8No3PQOkaWB0ou2+hCtL0ZWlluUFdSL/jJcRwbT/zUV/93MvscZ0 VOXh4nC/Ddnu9pm7wohI2QJn55qOYvqT+Tgs6zRvepPWcZ8BtAyi1U00YlT9kGT58ISP hW9pvSJiZLZXP+fUHkLP/wiSR4P1fTY1B3IrZw9TdikRhYxgeIWtYTRtDemocbIfk/D8 AY/nOW7VMGubcZmjeMSr6DD0zamJQnpaqM/x1WsT4tdqOX2QjRISNcNB5ZW9kEdobA3m kEXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773062190; x=1773666990; 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=UpIsqo16gFQNCwAdHGoDr7A5Cry/yP3pRezkU31fJ7M=; b=nHEbN1Zpyf8iS8plotVELrJfq+M+bEWynmRn4KZTwgsAlGnF8Y6jS57cgWZURE1nhm yke3MiOKGGR4Lktw3sFEq9dflTIUD+V5iIUpj6aXpIB25o7qvwVqgQ6w7njOJrUKmslL 0USfnsmH5AbIWerCAD6ocK9X9blZ2mKNs86CufeDAnKXmU76Z6vAuGER2CTk0c2Kor/E 8W/j9n2qTNAsYWWQT8jV15iDouY+EJHugjEjhLGMysXNm1gGPw0lCgkc4l3HSaekARn/ Hh3mBUvtY634pfXOhs8DohueN96s/mMVhdpKLTY3kpoGSadPMgV6rc3Y9ZVZc/STblRJ 04XQ== X-Gm-Message-State: AOJu0YxIfwfFAwGrtudiRroC/jlcMdPYN5D8cYcgoYZ5Oeu7g8VHZ08F UzR9Z7hynnh7gIkBdQ3Gv9kuDHWsxkejlox4f0iHuSAhkbE4A2tXavBXG4NloXFpTTryXIAD22G VMrj+6nrvBLCutYBSyJDg+fxB4DMsjF6Tyk4x X-Gm-Gg: ATEYQzwTB5yOzXnClm9Y+hY6hwCd3rpAAWjFG0QBwuXp552IYveaAvx6CPECFMk9oy6 dDjTaGivMN+yIQV1tU3PZJ5oHfp8BBLyHpVKEjVeDKnuH+/k6G4VMaS/ediy8ZGinAREjwR1bTJ EzecBA6WSrzNkgji+PUPZgHQEMbvYETiGAEjSbSZ+MbmZtVw+XWy/fAG8ITFCIhinI3jaJtxctV IKqxC+nqkgleGLXg6IRdeSiNtHINr0oUv7/pOhJUXlvM0wXWdh29YHOIpx8+6XX1oMrtMz9lrFL OGU702s= X-Received: by 2002:a05:693c:2b01:b0:2b7:2bbd:95ae with SMTP id 5a478bee46e88-2be4e067877mr4654772eec.37.1773062189875; Mon, 09 Mar 2026 06:16:29 -0700 (PDT) MIME-Version: 1.0 From: Ranier Vilela Date: Mon, 9 Mar 2026 10:16:20 -0300 X-Gm-Features: AaiRm53DXztsCXtPAnF_P71u7EyLaWy86q9-EXqDXk6VJIu0BjXtX5QR6A_rajE Message-ID: Subject: Avoid multiple calls to memcpy (src/backend/access/index/genam.c) To: Pg Hackers Content-Type: multipart/mixed; boundary="000000000000fe7377064c9735f1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000fe7377064c9735f1 Content-Type: multipart/alternative; boundary="000000000000fe7376064c9735ef" --000000000000fe7376064c9735ef Content-Type: text/plain; charset="UTF-8" Hi. In the functions *systable_beginscan* and *systable_beginscan_ordered*, is possible a small optimization. The array *idxkey* can be constructed in one go with a single call to mempcy. The excess might not make much of a difference, but I think it's worth the effort. patch attached. best regards, Ranier Vilela --000000000000fe7376064c9735ef Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi.

In the functions *systab= le_beginscan* and *systable_beginscan_ordered*,
is possible a sma= ll optimization.
The array *idxkey* can be constructed in one go = with a single call to mempcy.
The excess might not make much of a= difference, but I think it's worth the effort.

patch attached.

best regards,
Ranier V= ilela
--000000000000fe7376064c9735ef-- --000000000000fe7377064c9735f1 Content-Type: application/octet-stream; name="avoid-multiple-calls-to-memcpy-genam.patch" Content-Disposition: attachment; filename="avoid-multiple-calls-to-memcpy-genam.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmj7cjcz0 ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9nZW5hbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKaW5kZXggNWU4OWI4NmE2Mi4uYWZmYWVkMmM0OCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKQEAgLTQzNSwxMyArNDM1LDEzIEBAIHN5c3RhYmxlX2Jl Z2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAKIAkJaWR4a2V5ID0gcGFsbG9jX2FycmF5 KFNjYW5LZXlEYXRhLCBua2V5cyk7CiAKKwkJbWVtY3B5KGlkeGtleSwga2V5LCBua2V5cyAqIHNp emVvZihTY2FuS2V5RGF0YSkpOworCiAJCS8qIENvbnZlcnQgYXR0cmlidXRlIG51bWJlcnMgdG8g YmUgaW5kZXggY29sdW1uIG51bWJlcnMuICovCiAJCWZvciAoaSA9IDA7IGkgPCBua2V5czsgaSsr KQogCQl7CiAJCQlpbnQJCQlqOwogCi0JCQltZW1jcHkoJmlkeGtleVtpXSwgJmtleVtpXSwgc2l6 ZW9mKFNjYW5LZXlEYXRhKSk7Ci0KIAkJCWZvciAoaiA9IDA7IGogPCBJbmRleFJlbGF0aW9uR2V0 TnVtYmVyT2ZBdHRyaWJ1dGVzKGlyZWwpOyBqKyspCiAJCQl7CiAJCQkJaWYgKGtleVtpXS5za19h dHRubyA9PSBpcmVsLT5yZF9pbmRleC0+aW5ka2V5LnZhbHVlc1tqXSkKQEAgLTY4OCwxMyArNjg4 LDEzIEBAIHN5c3RhYmxlX2JlZ2luc2Nhbl9vcmRlcmVkKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwK IAogCWlkeGtleSA9IHBhbGxvY19hcnJheShTY2FuS2V5RGF0YSwgbmtleXMpOwogCisJbWVtY3B5 KGlkeGtleSwga2V5LCBua2V5cyAqIHNpemVvZihTY2FuS2V5RGF0YSkpOworCiAJLyogQ29udmVy dCBhdHRyaWJ1dGUgbnVtYmVycyB0byBiZSBpbmRleCBjb2x1bW4gbnVtYmVycy4gKi8KIAlmb3Ig KGkgPSAwOyBpIDwgbmtleXM7IGkrKykKIAl7CiAJCWludAkJCWo7CiAKLQkJbWVtY3B5KCZpZHhr ZXlbaV0sICZrZXlbaV0sIHNpemVvZihTY2FuS2V5RGF0YSkpOwotCiAJCWZvciAoaiA9IDA7IGog PCBJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZBdHRyaWJ1dGVzKGluZGV4UmVsYXRpb24pOyBqKysp CiAJCXsKIAkJCWlmIChrZXlbaV0uc2tfYXR0bm8gPT0gaW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgt PmluZGtleS52YWx1ZXNbal0pCg== --000000000000fe7377064c9735f1--