Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.Dd December 19, 2018
.Dt SQLITE3_FINALIZE 3
.Os
.Sh NAME
.Nm sqlite3_finalize
.Nd Destroy A Prepared Statement Object
.Sh SYNOPSIS
.Ft int 
.Fo sqlite3_finalize
.Fa "sqlite3_stmt *pStmt"
.Fc
.Sh DESCRIPTION
The sqlite3_finalize() function is called to delete a prepared statement.
If the most recent evaluation of the statement encountered no errors
or if the statement is never been evaluated, then sqlite3_finalize()
returns SQLITE_OK.
If the most recent evaluation of statement S failed, then sqlite3_finalize(S)
returns the appropriate error code or extended error code.
.Pp
The sqlite3_finalize(S) routine can be called at any point during the
life cycle of prepared statement S: before statement
S is ever evaluated, after one or more calls to sqlite3_reset(),
or after any call to sqlite3_step() regardless of whether
or not the statement has completed execution.
.Pp
Invoking sqlite3_finalize() on a NULL pointer is a harmless no-op.
.Pp
The application must finalize every prepared statement
in order to avoid resource leaks.
It is a grievous error for the application to try to use a prepared
statement after it has been finalized.
Any use of a prepared statement after it has been finalized can result
in undefined and undesirable behavior such as segfaults and heap corruption.
.Sh SEE ALSO
.Xr sqlite3_stmt 3 ,
.Xr sqlite3_reset 3 ,
.Xr sqlite3_step 3