---
name: "PQparamCreate"
section: "3"
platform: "linux"
package: "libpqtypes-dev"
version: "1.5.1-9"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/PQparamCreate"
---

# PQparamCreate(3)

PGparam management functions.

## NAME

PQparamCreate, PQparamCount PQparamReset, PQparamClear - PGparam management functions.

## SYNOPSIS

**#include \<libpqtypes.h\>**\

**PGparam \*PQparamCreate(const PGconn \****conn***);**\
 **PGparam \*PQparamDup(PGparam \****param***);**\
 **int PQparamCount(PGparam \****param***);**\
 **void PQparamReset(PGparam \****param***);**\
 **void PQparamClear(PGparam \****param***);**

## DESCRIPTION

*These functions manage the opaque PGparam object.*

*PQparamCreate() will allocate and initialize a new PGparam object.* *After the create call, the PGparam object is ready for use.  WARNING: Only* *types that have been registered via PQregisterXXX, will be available* *to the param.  Meaning, the param is not updated with types registered* *after the param is created.*

*PQparamDup() will duplicate a given PGparam, including any internal* *values that have already been put. This is useful in cases where you want* *to queue qeuries to execute at a later time, like a connection pooler.  The* *problem is PGparamCreate requires a connection object, which may not be* *available when attempting to enqueue a query with its PGparam object.* *Instead, a PGparam object can used for the sole purpose of creating* *duplicates while there are no available PGconn objects.*

*PQparamCount() gets the number of parameters in a PGparam object.*

*PQparamReset() will clear out any previously put parameters, but will* *not free any memory.  This is useful for application looking to "reuse" a* *PGparam object.*

*PQparamClear() releases all resources being used by a PGparam object,* *the object should not be used after a clear.*

*It is very important to call PQparamReset() if you plan on reusing a* *PGparam object.*

## RETURN VALUE

*PQparamCreate() returns a pointer to a PGparam object on success and NULL* *if something failed (check [PQgeterror(3)](/PQgeterror/3.md) for more information).*

*PQparamCount() returns the number of parameters in a PGparam object.*

*PQparamReset() and PQparamClear() have no return values.  If* *either function is provided a NULL PGparam pointer, it will silently fail.*

## EXAMPLES

*None.*

## AUTHOR

*A contribution of eSilo, LLC. for the PostgreSQL Database Management System.* *Written by Andrew Chernow and Merlin Moncure.*

## REPORTING BUGS

*Report bugs to \<libpqtypes@esilo.com\>.*

## COPYRIGHT

*Copyright (c) 2011 eSilo, LLC. All rights reserved.*\
 *This is free software; see the source for copying conditions.* *There is NO warranty; not even for MERCHANTABILITY or  FITNESS* *FOR A PARTICULAR PURPOSE.*

## SEE ALSO

*[pqt-specs(3)](/pqt-specs/3.md), [PQputf(3)](/PQputf/3.md), [PQgeterror(3)](/PQgeterror/3.md), [PQparamExec(3)](/PQparamExec/3.md)*
