'\" t .\" Title: SPI_prepare_extended .\" Author: The PostgreSQL Global Development Group .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2024 .\" Manual: PostgreSQL 16.2 Documentation .\" Source: PostgreSQL 16.2 .\" Language: English .\" .TH "SPI_PREPARE_EXTENDED" "3" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" SPI_prepare_extended \- prepare a statement, without executing it yet .SH "SYNOPSIS" .sp .nf SPIPlanPtr SPI_prepare_extended(const char * \fIcommand\fR, const SPIPrepareOptions * \fIoptions\fR) .fi .SH "DESCRIPTION" .PP \fBSPI_prepare_extended\fR creates and returns a prepared statement for the specified command, but doesn\*(Aqt execute the command\&. This function is equivalent to \fBSPI_prepare\fR, with the addition that the caller can specify options to control the parsing of external parameter references, as well as other facets of query parsing and planning\&. .SH "ARGUMENTS" .PP const char * \fIcommand\fR .RS 4 command string .RE .PP const SPIPrepareOptions * \fIoptions\fR .RS 4 struct containing optional arguments .RE .PP Callers should always zero out the entire \fIoptions\fR struct, then fill whichever fields they want to set\&. This ensures forward compatibility of code, since any fields that are added to the struct in future will be defined to behave backwards\-compatibly if they are zero\&. The currently available \fIoptions\fR fields are: .PP ParserSetupHook \fIparserSetup\fR .RS 4 Parser hook setup function .RE .PP void * \fIparserSetupArg\fR .RS 4 pass\-through argument for \fIparserSetup\fR .RE .PP RawParseMode \fIparseMode\fR .RS 4 mode for raw parsing; RAW_PARSE_DEFAULT (zero) produces default behavior .RE .PP int \fIcursorOptions\fR .RS 4 integer bit mask of cursor options; zero produces default behavior .RE .SH "RETURN VALUE" .PP \fBSPI_prepare_extended\fR has the same return conventions as \fBSPI_prepare\fR\&.