Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


SQLITE3_TABLE_COLUMN_METADATA(3)                      Library Functions Manual

NAME
     sqlite3_table_column_metadata - extract metadata about a column of a
     table

SYNOPSIS
     #include <sqlite3.h>

     int
     sqlite3_table_column_metadata(sqlite3 *db, const char *zDbName,
         const char *zTableName, const char *zColumnName,
         char const **pzDataType, char const **pzCollSeq, int *pNotNull,
         int *pPrimaryKey, int *pAutoinc);

DESCRIPTION
     The sqlite3_table_column_metadata(X,D,T,C,....) routine returns
     information about column C of table T in database D on database
     connection X.  The sqlite3_table_column_metadata() interface returns
     SQLITE_OK and fills in the non-NULL pointers in the final five arguments
     with appropriate values if the specified column exists.  The
     sqlite3_table_column_metadata() interface returns SQLITE_ERROR if the
     specified column does not exist.  If the column-name parameter to
     sqlite3_table_column_metadata() is a NULL pointer, then this routine
     simply checks for the existence of the table and returns SQLITE_OK if the
     table exists and SQLITE_ERROR if it does not.  If the table name
     parameter T in a call to sqlite3_table_column_metadata(X,D,T,C,...) is
     NULL then the result is undefined behavior.

     The column is identified by the second, third and fourth parameters to
     this function.  The second parameter is either the name of the database
     (i.e. "main", "temp", or an attached database) containing the specified
     table or NULL.  If it is NULL, then all attached databases are searched
     for the table using the same algorithm used by the database engine to
     resolve unqualified table references.

     The third and fourth parameters to this function are the table and column
     name of the desired column, respectively.

     Metadata is returned by writing to the memory locations passed as the 5th
     and subsequent parameters to this function.  Any of these arguments may
     be NULL, in which case the corresponding element of metadata is omitted.


        Parameter   Output Type    Description
        5th   const char*   Data type
        6th   const char*   Name of default collation sequence
        7th   int           True if column has a NOT NULL constraint
        8th   int           True if column is part of the PRIMARY KEY
        9th   int           True if column is AUTOINCREMENT


     The memory pointed to by the character pointers returned for the
     declaration type and collation sequence is valid until the next call to
     any SQLite API function.

     If the specified table is actually a view, an error code is returned.

     If the specified column is "rowid", "oid" or "_rowid_" and the table is
     not a WITHOUT ROWID table and an INTEGER PRIMARY KEY column has been
     explicitly declared, then the output parameters are set for the
     explicitly declared column.  If there is no INTEGER PRIMARY KEY column,
     then the outputs for the rowid are set as follows:

     data type: "INTEGER" collation sequence: "BINARY" not null: 0 primary
     key: 1 auto increment: 0

     This function causes all database schemas to be read from disk and
     parsed, if that has not already been done, and returns an error if any
     errors are encountered while loading the schema.

IMPLEMENTATION NOTES
     These declarations were extracted from the interface documentation at
     line 6944.

     SQLITE_API int sqlite3_table_column_metadata(
       sqlite3 *db,                /* Connection handle */
       const char *zDbName,        /* Database name or NULL */
       const char *zTableName,     /* Table name */
       const char *zColumnName,    /* Column name */
       char const **pzDataType,    /* OUTPUT: Declared data type */
       char const **pzCollSeq,     /* OUTPUT: Collation sequence name */
       int *pNotNull,              /* OUTPUT: True if NOT NULL constraint exists */
       int *pPrimaryKey,           /* OUTPUT: True if column part of PK */
       int *pAutoinc               /* OUTPUT: True if column is auto-increment */
     );

SEE ALSO
     sqlite3(3)

NetBSD 10.99                    August 24, 2023                   NetBSD 10.99