Blame SQLite.xs

Packit 723767
#define PERL_NO_GET_CONTEXT
Packit 723767
Packit 723767
#include "SQLiteXS.h"
Packit 723767
Packit 723767
DBISTATE_DECLARE;
Packit 723767
Packit 723767
MODULE = DBD::SQLite          PACKAGE = DBD::SQLite::db
Packit 723767
Packit 723767
PROTOTYPES: DISABLE
Packit 723767
Packit 723767
BOOT:
Packit 723767
    init_cxt();
Packit 723767
    sv_setpv(get_sv("DBD::SQLite::sqlite_version",        TRUE|GV_ADDMULTI), SQLITE_VERSION);
Packit 723767
    sv_setiv(get_sv("DBD::SQLite::sqlite_version_number", TRUE|GV_ADDMULTI), SQLITE_VERSION_NUMBER);
Packit 723767
Packit 723767
void
Packit 723767
_do(dbh, statement)
Packit 723767
    SV *dbh
Packit 723767
    SV *statement
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        D_imp_dbh(dbh);
Packit 723767
        IV retval;
Packit 723767
        retval = sqlite_db_do_sv(dbh, imp_dbh, statement);
Packit 723767
        /* remember that dbd_db_do_sv must return <= -2 for error     */
Packit 723767
        if (retval == 0)            /* ok with no rows affected     */
Packit 723767
            XST_mPV(0, "0E0");      /* (true but zero)              */
Packit 723767
        else if (retval < -1)       /* -1 == unknown number of rows */
Packit 723767
            XST_mUNDEF(0);          /* <= -2 means error            */
Packit 723767
        else
Packit 723767
            XST_mIV(0, retval);     /* typically 1, rowcount or -1  */
Packit 723767
    }
Packit 723767
Packit 723767
IV
Packit 723767
last_insert_rowid(dbh)
Packit 723767
    SV *dbh
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_last_insert_rowid = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        D_imp_dbh(dbh);
Packit 723767
        RETVAL = (IV)sqlite3_last_insert_rowid(imp_dbh->db);
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
create_function(dbh, name, argc, func, flags = 0)
Packit 723767
    SV *dbh
Packit 723767
    char *name
Packit 723767
    int argc
Packit 723767
    SV *func
Packit 723767
    int flags
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_create_function = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_create_function(aTHX_ dbh, name, argc, func, flags );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
#ifndef SQLITE_OMIT_LOAD_EXTENSION
Packit 723767
Packit 723767
static int
Packit 723767
enable_load_extension(dbh, onoff)
Packit 723767
    SV *dbh
Packit 723767
    int onoff
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_enable_load_extension = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_enable_load_extension(aTHX_ dbh, onoff );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
load_extension(dbh, file, proc = 0)
Packit 723767
    SV *dbh
Packit 723767
    const char *file
Packit 723767
    const char *proc
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_load_extension = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_load_extension(aTHX_ dbh, file, proc);
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
#endif
Packit 723767
Packit 723767
static int
Packit 723767
create_aggregate(dbh, name, argc, aggr, flags = 0)
Packit 723767
    SV *dbh
Packit 723767
    char *name
Packit 723767
    int argc
Packit 723767
    SV *aggr
Packit 723767
    int flags
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_create_aggregate = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_create_aggregate(aTHX_ dbh, name, argc, aggr, flags );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
create_collation(dbh, name, func)
Packit 723767
    SV *dbh
Packit 723767
    char *name
Packit 723767
    SV *func
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_create_collation = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_create_collation(aTHX_ dbh, name, func );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
Packit 723767
static void
Packit 723767
collation_needed(dbh, callback)
Packit 723767
    SV *dbh
Packit 723767
    SV *callback
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_collation_needed = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        sqlite_db_collation_needed(aTHX_ dbh, callback );
Packit 723767
    }
Packit 723767
Packit 723767
Packit 723767
static int
Packit 723767
progress_handler(dbh, n_opcodes, handler)
Packit 723767
    SV *dbh
Packit 723767
    int n_opcodes
Packit 723767
    SV *handler
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_progress_handler = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_progress_handler(aTHX_ dbh, n_opcodes, handler );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
sqlite_trace(dbh, callback)
Packit 723767
    SV *dbh
Packit 723767
    SV *callback
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_trace(aTHX_ dbh, callback );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
profile(dbh, callback)
Packit 723767
    SV *dbh
Packit 723767
    SV *callback
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_profile = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_profile(aTHX_ dbh, callback );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
SV*
Packit 723767
commit_hook(dbh, hook)
Packit 723767
    SV *dbh
Packit 723767
    SV *hook
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_commit_hook = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = (SV*) sqlite_db_commit_hook( aTHX_ dbh, hook );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
SV*
Packit 723767
rollback_hook(dbh, hook)
Packit 723767
    SV *dbh
Packit 723767
    SV *hook
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_rollback_hook = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = (SV*) sqlite_db_rollback_hook( aTHX_ dbh, hook );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
SV*
Packit 723767
update_hook(dbh, hook)
Packit 723767
    SV *dbh
Packit 723767
    SV *hook
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_update_hook = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = (SV*) sqlite_db_update_hook( aTHX_ dbh, hook );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
Packit 723767
static int
Packit 723767
set_authorizer(dbh, authorizer)
Packit 723767
    SV *dbh
Packit 723767
    SV *authorizer
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_set_authorizer = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_set_authorizer( aTHX_ dbh, authorizer );
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
Packit 723767
int
Packit 723767
busy_timeout(dbh, timeout=NULL)
Packit 723767
    SV *dbh
Packit 723767
    SV *timeout
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_busy_timeout = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = sqlite_db_busy_timeout(aTHX_ dbh, timeout );
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
backup_from_file(dbh, filename)
Packit 723767
    SV *dbh
Packit 723767
    char *filename
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_backup_from_file = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = sqlite_db_backup_from_file(aTHX_ dbh, filename);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
backup_to_file(dbh, filename)
Packit 723767
    SV *dbh
Packit 723767
    char *filename
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_backup_to_file = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = sqlite_db_backup_to_file(aTHX_ dbh, filename);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
HV*
Packit 723767
table_column_metadata(dbh, dbname, tablename, columnname)
Packit 723767
    SV* dbh
Packit 723767
    SV* dbname
Packit 723767
    SV* tablename
Packit 723767
    SV* columnname
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_table_column_metadata = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = sqlite_db_table_column_metadata(aTHX_ dbh, dbname, tablename, columnname);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
SV*
Packit 723767
db_filename(dbh)
Packit 723767
    SV* dbh
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_db_filename = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = sqlite_db_filename(aTHX_ dbh);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
static int
Packit 723767
register_fts3_perl_tokenizer(dbh)
Packit 723767
    SV *dbh
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_register_fts3_perl_tokenizer = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = sqlite_db_register_fts3_perl_tokenizer(aTHX_ dbh);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
HV*
Packit 723767
db_status(dbh, reset = 0)
Packit 723767
    SV* dbh
Packit 723767
    int reset
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_db_status = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = (HV*)_sqlite_db_status(aTHX_ dbh, reset);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
Packit 723767
static int
Packit 723767
create_module(dbh, name, perl_class)
Packit 723767
    SV *dbh
Packit 723767
    char *name
Packit 723767
    char *perl_class
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::db::sqlite_create_module = 1
Packit 723767
    CODE:
Packit 723767
    {
Packit 723767
        RETVAL = sqlite_db_create_module(aTHX_ dbh, name, perl_class);
Packit 723767
    }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
Packit 723767
MODULE = DBD::SQLite          PACKAGE = DBD::SQLite::st
Packit 723767
Packit 723767
PROTOTYPES: DISABLE
Packit 723767
Packit 723767
HV*
Packit 723767
st_status(sth, reset = 0)
Packit 723767
    SV* sth
Packit 723767
    int reset
Packit 723767
    ALIAS:
Packit 723767
        DBD::SQLite::st::sqlite_st_status = 1
Packit 723767
    CODE:
Packit 723767
        RETVAL = (HV*)_sqlite_st_status(aTHX_ sth, reset);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
MODULE = DBD::SQLite          PACKAGE = DBD::SQLite
Packit 723767
Packit 723767
# a couple of constants exported from sqlite3.h
Packit 723767
Packit 723767
PROTOTYPES: DISABLE
Packit 723767
Packit 723767
static int
Packit 723767
compile_options()
Packit 723767
    CODE:
Packit 723767
        int n = 0;
Packit 723767
        AV* av = (AV*)sqlite_compile_options();
Packit 723767
        if (av) {
Packit 723767
            int i;
Packit 723767
            n = av_len(av) + 1;
Packit 723767
            EXTEND(sp, n);
Packit 723767
            for (i = 0; i < n; i++) {
Packit 723767
                PUSHs(AvARRAY(av)[i]);
Packit 723767
            }
Packit 723767
        }
Packit 723767
        XSRETURN(n);
Packit 723767
Packit 723767
HV*
Packit 723767
sqlite_status(reset = 0)
Packit 723767
    int reset
Packit 723767
    CODE:
Packit 723767
        RETVAL = (HV*)_sqlite_status(reset);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
#if SQLITE_VERSION_NUMBER >= 3010000
Packit 723767
Packit 723767
int
Packit 723767
strglob(const char *zglob, const char *zstr)
Packit 723767
    CODE:
Packit 723767
        RETVAL = sqlite3_strglob(zglob, zstr);
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
int
Packit 723767
strlike(const char *zglob, const char *zstr, const char *esc = NULL)
Packit 723767
    CODE:
Packit 723767
        if (esc) {
Packit 723767
            RETVAL = sqlite3_strlike(zglob, zstr, (unsigned int)(*esc));
Packit 723767
        } else {
Packit 723767
            RETVAL = sqlite3_strlike(zglob, zstr, 0);
Packit 723767
        }
Packit 723767
    OUTPUT:
Packit 723767
        RETVAL
Packit 723767
Packit 723767
#endif
Packit 723767
Packit 723767
INCLUDE: constants.inc
Packit 723767
INCLUDE: SQLite.xsi