summaryrefslogtreecommitdiff
path: root/SQLite.xs
diff options
context:
space:
mode:
Diffstat (limited to 'SQLite.xs')
-rw-r--r--SQLite.xs581
1 files changed, 581 insertions, 0 deletions
diff --git a/SQLite.xs b/SQLite.xs
new file mode 100644
index 0000000..bac5bc7
--- /dev/null
+++ b/SQLite.xs
@@ -0,0 +1,581 @@
+#define PERL_NO_GET_CONTEXT
+
+#include "SQLiteXS.h"
+
+DBISTATE_DECLARE;
+
+MODULE = DBD::SQLite PACKAGE = DBD::SQLite::db
+
+PROTOTYPES: DISABLE
+
+BOOT:
+ sv_setpv(get_sv("DBD::SQLite::sqlite_version", TRUE|GV_ADDMULTI), SQLITE_VERSION);
+ sv_setiv(get_sv("DBD::SQLite::sqlite_version_number", TRUE|GV_ADDMULTI), SQLITE_VERSION_NUMBER);
+
+IV
+last_insert_rowid(dbh)
+ SV *dbh
+ ALIAS:
+ DBD::SQLite::db::sqlite_last_insert_rowid = 1
+ CODE:
+ {
+ D_imp_dbh(dbh);
+ RETVAL = (IV)sqlite3_last_insert_rowid(imp_dbh->db);
+ }
+ OUTPUT:
+ RETVAL
+
+static int
+create_function(dbh, name, argc, func)
+ SV *dbh
+ char *name
+ int argc
+ SV *func
+ ALIAS:
+ DBD::SQLite::db::sqlite_create_function = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_create_function(aTHX_ dbh, name, argc, func );
+ }
+ OUTPUT:
+ RETVAL
+
+#ifndef SQLITE_OMIT_LOAD_EXTENSION
+
+static int
+enable_load_extension(dbh, onoff)
+ SV *dbh
+ int onoff
+ ALIAS:
+ DBD::SQLite::db::sqlite_enable_load_extension = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_enable_load_extension(aTHX_ dbh, onoff );
+ }
+ OUTPUT:
+ RETVAL
+
+static int
+load_extension(dbh, file, proc = 0)
+ SV *dbh
+ const char *file
+ const char *proc
+ ALIAS:
+ DBD::SQLite::db::sqlite_load_extension = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_load_extension(aTHX_ dbh, file, proc);
+ }
+ OUTPUT:
+ RETVAL
+
+#endif
+
+static int
+create_aggregate(dbh, name, argc, aggr)
+ SV *dbh
+ char *name
+ int argc
+ SV *aggr
+ ALIAS:
+ DBD::SQLite::db::sqlite_create_aggregate = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_create_aggregate(aTHX_ dbh, name, argc, aggr );
+ }
+ OUTPUT:
+ RETVAL
+
+static int
+create_collation(dbh, name, func)
+ SV *dbh
+ char *name
+ SV *func
+ ALIAS:
+ DBD::SQLite::db::sqlite_create_collation = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_create_collation(aTHX_ dbh, name, func );
+ }
+ OUTPUT:
+ RETVAL
+
+
+static void
+collation_needed(dbh, callback)
+ SV *dbh
+ SV *callback
+ ALIAS:
+ DBD::SQLite::db::sqlite_collation_needed = 1
+ CODE:
+ {
+ sqlite_db_collation_needed(aTHX_ dbh, callback );
+ }
+
+
+static int
+progress_handler(dbh, n_opcodes, handler)
+ SV *dbh
+ int n_opcodes
+ SV *handler
+ ALIAS:
+ DBD::SQLite::db::sqlite_progress_handler = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_progress_handler(aTHX_ dbh, n_opcodes, handler );
+ }
+ OUTPUT:
+ RETVAL
+
+static int
+sqlite_trace(dbh, callback)
+ SV *dbh
+ SV *callback
+ CODE:
+ {
+ RETVAL = sqlite_db_trace(aTHX_ dbh, callback );
+ }
+ OUTPUT:
+ RETVAL
+
+static int
+profile(dbh, callback)
+ SV *dbh
+ SV *callback
+ ALIAS:
+ DBD::SQLite::db::sqlite_profile = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_profile(aTHX_ dbh, callback );
+ }
+ OUTPUT:
+ RETVAL
+
+SV*
+commit_hook(dbh, hook)
+ SV *dbh
+ SV *hook
+ ALIAS:
+ DBD::SQLite::db::sqlite_commit_hook = 1
+ CODE:
+ {
+ RETVAL = (SV*) sqlite_db_commit_hook( aTHX_ dbh, hook );
+ }
+ OUTPUT:
+ RETVAL
+
+SV*
+rollback_hook(dbh, hook)
+ SV *dbh
+ SV *hook
+ ALIAS:
+ DBD::SQLite::db::sqlite_rollback_hook = 1
+ CODE:
+ {
+ RETVAL = (SV*) sqlite_db_rollback_hook( aTHX_ dbh, hook );
+ }
+ OUTPUT:
+ RETVAL
+
+SV*
+update_hook(dbh, hook)
+ SV *dbh
+ SV *hook
+ ALIAS:
+ DBD::SQLite::db::sqlite_update_hook = 1
+ CODE:
+ {
+ RETVAL = (SV*) sqlite_db_update_hook( aTHX_ dbh, hook );
+ }
+ OUTPUT:
+ RETVAL
+
+
+static int
+set_authorizer(dbh, authorizer)
+ SV *dbh
+ SV *authorizer
+ ALIAS:
+ DBD::SQLite::db::sqlite_set_authorizer = 1
+ CODE:
+ {
+ RETVAL = sqlite_db_set_authorizer( aTHX_ dbh, authorizer );
+ }
+ OUTPUT:
+ RETVAL
+
+
+int
+busy_timeout(dbh, timeout=0)
+ SV *dbh
+ int timeout
+ ALIAS:
+ DBD::SQLite::db::sqlite_busy_timeout = 1
+ CODE:
+ RETVAL = sqlite_db_busy_timeout(aTHX_ dbh, timeout );
+ OUTPUT:
+ RETVAL
+
+static int
+backup_from_file(dbh, filename)
+ SV *dbh
+ char *filename
+ ALIAS:
+ DBD::SQLite::db::sqlite_backup_from_file = 1
+ CODE:
+ RETVAL = sqlite_db_backup_from_file(aTHX_ dbh, filename);
+ OUTPUT:
+ RETVAL
+
+static int
+backup_to_file(dbh, filename)
+ SV *dbh
+ char *filename
+ ALIAS:
+ DBD::SQLite::db::sqlite_backup_to_file = 1
+ CODE:
+ RETVAL = sqlite_db_backup_to_file(aTHX_ dbh, filename);
+ OUTPUT:
+ RETVAL
+
+HV*
+table_column_metadata(dbh, dbname, tablename, columnname)
+ SV* dbh
+ SV* dbname
+ SV* tablename
+ SV* columnname
+ ALIAS:
+ DBD::SQLite::db::sqlite_table_column_metadata = 1
+ CODE:
+ RETVAL = sqlite_db_table_column_metadata(aTHX_ dbh, dbname, tablename, columnname);
+ OUTPUT:
+ RETVAL
+
+SV*
+db_filename(dbh)
+ SV* dbh
+ ALIAS:
+ DBD::SQLite::db::sqlite_db_filename = 1
+ CODE:
+ RETVAL = sqlite_db_filename(aTHX_ dbh);
+ OUTPUT:
+ RETVAL
+
+static int
+register_fts3_perl_tokenizer(dbh)
+ SV *dbh
+ ALIAS:
+ DBD::SQLite::db::sqlite_register_fts3_perl_tokenizer = 1
+ CODE:
+ RETVAL = sqlite_db_register_fts3_perl_tokenizer(aTHX_ dbh);
+ OUTPUT:
+ RETVAL
+
+HV*
+db_status(dbh, reset = 0)
+ SV* dbh
+ int reset
+ ALIAS:
+ DBD::SQLite::db::sqlite_db_status = 1
+ CODE:
+ RETVAL = (HV*)_sqlite_db_status(aTHX_ dbh, reset);
+ OUTPUT:
+ RETVAL
+
+
+MODULE = DBD::SQLite PACKAGE = DBD::SQLite::st
+
+PROTOTYPES: DISABLE
+
+HV*
+st_status(sth, reset = 0)
+ SV* sth
+ int reset
+ ALIAS:
+ DBD::SQLite::st::sqlite_st_status = 1
+ CODE:
+ RETVAL = (HV*)_sqlite_st_status(aTHX_ sth, reset);
+ OUTPUT:
+ RETVAL
+
+MODULE = DBD::SQLite PACKAGE = DBD::SQLite
+
+# a couple of constants exported from sqlite3.h
+
+PROTOTYPES: ENABLE
+
+static int
+compile_options()
+ CODE:
+ int n = 0;
+ AV* av = (AV*)sqlite_compile_options();
+ if (av) {
+ int i;
+ n = av_len(av) + 1;
+ EXTEND(sp, n);
+ for (i = 0; i < n; i++) {
+ PUSHs(AvARRAY(av)[i]);
+ }
+ }
+ XSRETURN(n);
+
+HV*
+sqlite_status(reset = 0)
+ int reset
+ CODE:
+ RETVAL = (HV*)_sqlite_status(reset);
+ OUTPUT:
+ RETVAL
+
+static int
+OK()
+ CODE:
+ RETVAL = SQLITE_OK;
+ OUTPUT:
+ RETVAL
+
+static int
+DENY()
+ CODE:
+ RETVAL = SQLITE_DENY;
+ OUTPUT:
+ RETVAL
+
+static int
+IGNORE()
+ CODE:
+ RETVAL = SQLITE_IGNORE;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_INDEX()
+ CODE:
+ RETVAL = SQLITE_CREATE_INDEX;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_TABLE()
+ CODE:
+ RETVAL = SQLITE_CREATE_TABLE;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_TEMP_INDEX()
+ CODE:
+ RETVAL = SQLITE_CREATE_TEMP_INDEX;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_TEMP_TABLE()
+ CODE:
+ RETVAL = SQLITE_CREATE_TEMP_TABLE;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_TEMP_TRIGGER()
+ CODE:
+ RETVAL = SQLITE_CREATE_TEMP_TRIGGER;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_TEMP_VIEW()
+ CODE:
+ RETVAL = SQLITE_CREATE_TEMP_VIEW;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_TRIGGER()
+ CODE:
+ RETVAL = SQLITE_CREATE_TRIGGER;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_VIEW()
+ CODE:
+ RETVAL = SQLITE_CREATE_VIEW;
+ OUTPUT:
+ RETVAL
+
+static int
+DELETE()
+ CODE:
+ RETVAL = SQLITE_DELETE;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_INDEX()
+ CODE:
+ RETVAL = SQLITE_DROP_INDEX;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_TABLE()
+ CODE:
+ RETVAL = SQLITE_DROP_TABLE;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_TEMP_INDEX()
+ CODE:
+ RETVAL = SQLITE_DROP_TEMP_INDEX;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_TEMP_TABLE()
+ CODE:
+ RETVAL = SQLITE_DROP_TEMP_TABLE;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_TEMP_TRIGGER()
+ CODE:
+ RETVAL = SQLITE_DROP_TEMP_TRIGGER;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_TEMP_VIEW()
+ CODE:
+ RETVAL = SQLITE_DROP_TEMP_VIEW;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_TRIGGER()
+ CODE:
+ RETVAL = SQLITE_DROP_TRIGGER;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_VIEW()
+ CODE:
+ RETVAL = SQLITE_DROP_VIEW;
+ OUTPUT:
+ RETVAL
+
+static int
+INSERT()
+ CODE:
+ RETVAL = SQLITE_INSERT;
+ OUTPUT:
+ RETVAL
+
+static int
+PRAGMA()
+ CODE:
+ RETVAL = SQLITE_PRAGMA;
+ OUTPUT:
+ RETVAL
+
+static int
+READ()
+ CODE:
+ RETVAL = SQLITE_READ;
+ OUTPUT:
+ RETVAL
+
+static int
+SELECT()
+ CODE:
+ RETVAL = SQLITE_SELECT;
+ OUTPUT:
+ RETVAL
+
+static int
+TRANSACTION()
+ CODE:
+ RETVAL = SQLITE_TRANSACTION;
+ OUTPUT:
+ RETVAL
+
+static int
+UPDATE()
+ CODE:
+ RETVAL = SQLITE_UPDATE;
+ OUTPUT:
+ RETVAL
+
+static int
+ATTACH()
+ CODE:
+ RETVAL = SQLITE_ATTACH;
+ OUTPUT:
+ RETVAL
+
+static int
+DETACH()
+ CODE:
+ RETVAL = SQLITE_DETACH;
+ OUTPUT:
+ RETVAL
+
+static int
+ALTER_TABLE()
+ CODE:
+ RETVAL = SQLITE_ALTER_TABLE;
+ OUTPUT:
+ RETVAL
+
+static int
+REINDEX()
+ CODE:
+ RETVAL = SQLITE_REINDEX;
+ OUTPUT:
+ RETVAL
+
+static int
+ANALYZE()
+ CODE:
+ RETVAL = SQLITE_ANALYZE;
+ OUTPUT:
+ RETVAL
+
+static int
+CREATE_VTABLE()
+ CODE:
+ RETVAL = SQLITE_CREATE_VTABLE;
+ OUTPUT:
+ RETVAL
+
+static int
+DROP_VTABLE()
+ CODE:
+ RETVAL = SQLITE_DROP_VTABLE;
+ OUTPUT:
+ RETVAL
+
+static int
+FUNCTION()
+ CODE:
+ RETVAL = SQLITE_FUNCTION;
+ OUTPUT:
+ RETVAL
+
+static int
+SAVEPOINT()
+ CODE:
+#if SQLITE_VERSION_NUMBER >= 3006011
+ RETVAL = SQLITE_SAVEPOINT;
+#else
+ RETVAL = -1;
+#endif
+ OUTPUT:
+ RETVAL
+
+
+
+INCLUDE: SQLite.xsi