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 1wO8hg-001LBz-2G for pgsql-general@arkaria.postgresql.org; Sat, 16 May 2026 06:40:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wO8hd-002PBi-23 for pgsql-general@arkaria.postgresql.org; Sat, 16 May 2026 06:40:49 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wO8hd-002PBZ-0q for pgsql-general@lists.postgresql.org; Sat, 16 May 2026 06:40:49 +0000 Received: from mail-yw1-x1136.google.com ([2607:f8b0:4864:20::1136]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wO8hb-00000000slU-0iEd for pgsql-general@lists.postgresql.org; Sat, 16 May 2026 06:40:49 +0000 Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-7bd5c773ef3so1538697b3.1 for ; Fri, 15 May 2026 23:40:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1778913644; cv=none; d=google.com; s=arc-20240605; b=W/iIr2ZylBqJ1ekiG99nrxs+UExje/vGtC/xEd3xVJVzXD4q779htX3/Ix2EEPXRU8 uK3dM0XUEnhx/PDdr9JhkuEvJwy+lYJahAG/0NyNRm9StVC4Ke/o10H21PGnBr+BPJpk LP0Z+kCpmAe5Kad5kZs4DL020FpUqJr0UJgz8+W0/5mdinQw2g8WiCajYaYEwRpLjugt UZaJEaa6EFok2LBEFbVbRArKHNqDfEbz3FFCM4pEar9ez322e46B2/yLiQq2qjcRvcdd C2ayTJDBPi5rPUPQ5LYuMS81l6ysmlixWZdkC+JrEofKK+Tu5P3wWInWVWj5/Kdwghq4 HNWw== 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=RgHivnUa9QhJPLp9JFXyFpoon+u+iT3dVGaYbKV+j/o=; fh=2DoGC78b0mi8uZ4UY+9ocPF86GSVzeaJWqou/x907js=; b=LOv0QS757QjepLMsm3Sgt9rl3tIbt37TnjoMy46k/LhFwgx6325uT28aVgbPUdCyOj qGKJlmICZNYS/ZmvAI/MZ3f3uNaxqsietDc38kILSSwhRuKWW5PGjoQSM7FER/2vugil Aqr71zwrQORunG72IBSWosdjZdD2f/bc0m9GziZpjL3gvUSdtll2Yb0FhizqHlphKwk4 41Ctqn93kA3p7DXjnAhf6JbhGIxkOO3SLyux+ut0Z+Sle9q+zNLtFodLStxrKknKLKBo gjXlWWm5s0x/mCK0Lpm7i2QrDFEyd43TPvRZYqzZ5scdn4RXkluNThhdKl8KvCx6sMQg SZRw==; 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=1778913644; x=1779518444; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=RgHivnUa9QhJPLp9JFXyFpoon+u+iT3dVGaYbKV+j/o=; b=ns3X/afBKzil+AMGAO0YEh35c7MSpT9OuZfnZPq/QQGuzXpbXjft3nZU3ry33IgmvM nRhNI+Jt0So3xqOdC6bfDbCNlERn+omCdVEY5yxHQ1PnZSqtCFblrVmY9JcBFarLz+1b 7rsdHpZv3SH+GR2LoNBqnc9Oen92qzNZ3hP6DaNOmfE0GJ2m3at/1uAqPGeXhi+euycg Pb5sTvjdCv73ZNl8aQj99jR7CXxHUYqEfMsZsymxImJjb7NRbDRWhIZ0Ntyhy/9KGTai /vsjI6IlZeE7wtZ/WO679UptKMDBIVeFfn94DbMuGPnomLov9MrHEaiPk8eN2WVCpG69 mSJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778913644; x=1779518444; 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=RgHivnUa9QhJPLp9JFXyFpoon+u+iT3dVGaYbKV+j/o=; b=aLMqawT35T+VkGKWv8h5ADVQgkND5qeFOnH0n+BzMTw4NzaFRJD6P334iqhhCshl9H k8enVcm7No1YfMTPaar+iu+2zNHIM3b4bMPskiGAT5mNK6EmS5a28u70Ztm/eI1JdWcY rn2uZBNjO25F6QrMQvDBUOdupwy9xLqDTpPWRyVbWKNiuAtMHzx5JeZE5HyMxaSuUb0T aCbvwoqAM4OHZj+GJll4dWlUhxkm91+2P+A5v8LYmd9HEVhP2WVMk7CfUBY3+ducLEIb QXLRSy0XtxuwLxg0ApeVtDnhp3v6+8feTMHNskhyRYhVeH3CqAk/6teOlPCPjmc9T25z kmsw== X-Gm-Message-State: AOJu0YxLLb+XcxVlktBygCn0Jt6A+hUPXWy0xEHfo1eUwRyZHKYHLLk0 4QTwz3+1WcktEnPDXSdDWST1tHhPRHB7kcvcpi7QERf6Rr7nIl3/ZNlvS60VV/8Swn/dOWXe68b IAeuZuLJWS20O5LHptqk369dgw3YJZsiBjGMY X-Gm-Gg: Acq92OFAw2PjIFVg6IHL++sWFJXmCFXTHyFBM6s3xCaZ0mlS1vfILyMMiHdYiA4IlGI lbQM5ruFemT6rfw5x0wzXcNwhGFr7RJf65/Tmi3gsKQX3C+RxWkgE5GYBJq/NqntAITnHWK6hNq 635QTSW6uuelRj7rPkMIUo0wuggkDJl5k47JacxlUAJxbi/StzGfnobtc7niszF1nnAqmFRh2UF aKgYlQmJduf1xd0TjE03AWgFIodbOydzLhJ9HKQ9XkEqd03ZIUJh8gpGMgZptF/jdiP+JdAdlfF +iLRiEyhIW5tBtJlxO3qkHHygghDW1yOPuakmQMeA24xCC6/PFPhIuwBwDopGztS X-Received: by 2002:a05:690c:7283:b0:7b2:136d:2436 with SMTP id 00721157ae682-7c9594b4e5bmr79299207b3.8.1778913643968; Fri, 15 May 2026 23:40:43 -0700 (PDT) MIME-Version: 1.0 From: Igor Korot Date: Sat, 16 May 2026 01:40:32 -0500 X-Gm-Features: AVHnY4J3BtqG06_A43rMJeFwF5sQbzmHgD8vwRiySTf5L8F5dNO_rLPlvZ5XjK8 Message-ID: Subject: Double prepare To: "pgsql-generallists.postgresql.org" Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, ALL, Is there a way to see if the query has been prepared already (in libpq)? Trying to avoid a following scenario (pseudo-code): [code] int main() { test(); test(); } void test() { PGresult *res = PQprepare( conn, "my query", "SELECT * FROM my_table", /* rest of params */ ); PQclear( res ); } [/code] I presume there is a penalty for that even if the code succeeds. Or is it better to run PQprepare for all known parameterized queries in the very beginning of the program and just execute them when needed? Thank you.