]> granicus.if.org Git - php/commitdiff
Convert sqlite3 functions arginfo to php stubs
authorCraig Duncan <php@duncanc.co.uk>
Sat, 10 Aug 2019 15:53:17 +0000 (17:53 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Thu, 15 Aug 2019 10:56:46 +0000 (12:56 +0200)
ext/sqlite3/sqlite3.c
ext/sqlite3/sqlite3.stub.php [new file with mode: 0644]
ext/sqlite3/sqlite3_arginfo.h [new file with mode: 0644]

index 1c337ee6cb9b85966cc542cae6956997832de551..9f68a349ede0e2fc33a83d2839b24fe697206153 100644 (file)
@@ -25,6 +25,7 @@
 #include "ext/standard/info.h"
 #include "php_sqlite3.h"
 #include "php_sqlite3_structs.h"
+#include "sqlite3_arginfo.h"
 #include "main/SAPI.h"
 
 #include <sqlite3.h>
@@ -322,7 +323,7 @@ PHP_METHOD(sqlite3, enableExtendedResultCodes)
        int ret;
 
        SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->db, SQLite3)
-       
+
        if (zend_parse_parameters(ZEND_NUM_ARGS(), "|b", &enable) == FAILURE) {
                return;
        }
@@ -2106,174 +2107,65 @@ PHP_METHOD(sqlite3result, __construct)
 }
 /* }}} */
 
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_open, 0, 0, 1)
-       ZEND_ARG_INFO(0, filename)
-       ZEND_ARG_INFO(0, flags)
-       ZEND_ARG_INFO(0, encryption_key)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_busytimeout, 0)
-       ZEND_ARG_INFO(0, ms)
-ZEND_END_ARG_INFO()
-
-#ifndef SQLITE_OMIT_LOAD_EXTENSION
-ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_loadextension, 0)
-       ZEND_ARG_INFO(0, shared_library)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_escapestring, 0, 0, 1)
-       ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_query, 0, 0, 1)
-       ZEND_ARG_INFO(0, query)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_querysingle, 0, 0, 1)
-       ZEND_ARG_INFO(0, query)
-       ZEND_ARG_INFO(0, entire_row)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_createfunction, 0, 0, 2)
-       ZEND_ARG_INFO(0, name)
-       ZEND_ARG_INFO(0, callback)
-       ZEND_ARG_INFO(0, argument_count)
-       ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_createaggregate, 0, 0, 3)
-       ZEND_ARG_INFO(0, name)
-       ZEND_ARG_INFO(0, step_callback)
-       ZEND_ARG_INFO(0, final_callback)
-       ZEND_ARG_INFO(0, argument_count)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_createcollation, 0, 0, 2)
-       ZEND_ARG_INFO(0, name)
-       ZEND_ARG_INFO(0, callback)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_openblob, 0, 0, 3)
-       ZEND_ARG_INFO(0, table)
-       ZEND_ARG_INFO(0, column)
-       ZEND_ARG_INFO(0, rowid)
-       ZEND_ARG_INFO(0, dbname)
-       ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_enableexceptions, 0, 0, 0)
-       ZEND_ARG_INFO(0, enableExceptions)
-ZEND_END_ARG_INFO()
-
-#if SQLITE_VERSION_NUMBER >= 3006011
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_backup, 0, 0, 1)
-       ZEND_ARG_INFO(0, destination_db)
-       ZEND_ARG_INFO(0, source_dbname)
-       ZEND_ARG_INFO(0, destination_dbname)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_bindparam, 0, 0, 2)
-       ZEND_ARG_INFO(0, param_number)
-       ZEND_ARG_INFO(1, param)
-       ZEND_ARG_INFO(0, type)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_bindvalue, 0, 0, 2)
-       ZEND_ARG_INFO(0, param_number)
-       ZEND_ARG_INFO(0, param)
-       ZEND_ARG_INFO(0, type)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_construct, 0, 0, 1)
-       ZEND_ARG_INFO(0, sqlite3)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_getsql, 0, 0, 0)
-       ZEND_ARG_INFO(0, expanded)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_columnname, 0, 0, 1)
-       ZEND_ARG_INFO(0, column_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_columntype, 0, 0, 1)
-       ZEND_ARG_INFO(0, column_number)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_fetcharray, 0, 0, 0)
-       ZEND_ARG_INFO(0, mode)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_enableextended, 0, 0, 1)
-       ZEND_ARG_INFO(0, enable)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_void, 0)
-ZEND_END_ARG_INFO()
-/* }}} */
-
 /* {{{ php_sqlite3_class_methods */
 static const zend_function_entry php_sqlite3_class_methods[] = {
-       PHP_ME(sqlite3,         open,                                           arginfo_sqlite3_open, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         close,                                          arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         exec,                                           arginfo_sqlite3_query, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         version,                                        arginfo_sqlite3_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
-       PHP_ME(sqlite3,         lastInsertRowID,                        arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         lastErrorCode,                          arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         lastExtendedErrorCode,          arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         enableExtendedResultCodes,      arginfo_sqlite3_enableextended, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         lastErrorMsg,                           arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         busyTimeout,                            arginfo_sqlite3_busytimeout, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         open,                                           arginfo_class_SQLite3_open, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         close,                                          arginfo_class_SQLite3_close, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         exec,                                           arginfo_class_SQLite3_query, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         version,                                        arginfo_class_SQLite3_version, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
+       PHP_ME(sqlite3,         lastInsertRowID,                        arginfo_class_SQLite3_lastInsertRowID, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         lastErrorCode,                          arginfo_class_SQLite3_lastErrorCode, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         lastExtendedErrorCode,          arginfo_class_SQLite3_lastExtendedErrorCode, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         enableExtendedResultCodes,      arginfo_class_SQLite3_enableExtendedResultCodes, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         lastErrorMsg,                           arginfo_class_SQLite3_lastErrorMsg, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         busyTimeout,                            arginfo_class_SQLite3_busyTimeout, ZEND_ACC_PUBLIC)
 #ifndef SQLITE_OMIT_LOAD_EXTENSION
-       PHP_ME(sqlite3,         loadExtension,                          arginfo_sqlite3_loadextension, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         loadExtension,                          arginfo_class_SQLite3_loadExtension, ZEND_ACC_PUBLIC)
 #endif
-       PHP_ME(sqlite3,         changes,                                        arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         escapeString,                           arginfo_sqlite3_escapestring, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
-       PHP_ME(sqlite3,         prepare,                                        arginfo_sqlite3_query, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         query,                                          arginfo_sqlite3_query, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         querySingle,                            arginfo_sqlite3_querysingle, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         createFunction,                         arginfo_sqlite3_createfunction, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         createAggregate,                        arginfo_sqlite3_createaggregate, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         createCollation,                        arginfo_sqlite3_createcollation, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         openBlob,                                       arginfo_sqlite3_openblob, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3,         enableExceptions,                       arginfo_sqlite3_enableexceptions, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         changes,                                        arginfo_class_SQLite3_changes, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         escapeString,                           arginfo_class_SQLite3_escapeString, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
+       PHP_ME(sqlite3,         prepare,                                        arginfo_class_SQLite3_prepare, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         query,                                          arginfo_class_SQLite3_query, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         querySingle,                            arginfo_class_SQLite3_querySingle, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         createFunction,                         arginfo_class_SQLite3_createFunction, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         createAggregate,                        arginfo_class_SQLite3_createAggregate, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         createCollation,                        arginfo_class_SQLite3_createCollation, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         openBlob,                                       arginfo_class_SQLite3_openBlob, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         enableExceptions,                       arginfo_class_SQLite3_enableExceptions, ZEND_ACC_PUBLIC)
 #if SQLITE_VERSION_NUMBER >= 3006011
-       PHP_ME(sqlite3,         backup,                                         arginfo_sqlite3_backup, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3,         backup,                                         arginfo_class_SQLite3_backup, ZEND_ACC_PUBLIC)
 #endif
        /* Aliases */
-       PHP_MALIAS(sqlite3,     __construct, open, arginfo_sqlite3_open, ZEND_ACC_PUBLIC)
+       PHP_MALIAS(sqlite3,     __construct, open, arginfo_class_SQLite3___construct, ZEND_ACC_PUBLIC)
        PHP_FE_END
 };
 /* }}} */
 
 /* {{{ php_sqlite3_stmt_class_methods */
 static const zend_function_entry php_sqlite3_stmt_class_methods[] = {
-       PHP_ME(sqlite3stmt, paramCount, arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, close,              arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, reset,              arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, clear,              arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, execute,    arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, bindParam,  arginfo_sqlite3stmt_bindparam, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, bindValue,  arginfo_sqlite3stmt_bindvalue, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, readOnly,   arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, getSQL,             arginfo_sqlite3stmt_getsql, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3stmt, __construct, arginfo_sqlite3stmt_construct, ZEND_ACC_PRIVATE)
+       PHP_ME(sqlite3stmt, paramCount, arginfo_class_SQLite3Stmt_paramCount, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, close,              arginfo_class_SQLite3Stmt_close, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, reset,              arginfo_class_SQLite3Stmt_reset, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, clear,              arginfo_class_SQLite3Stmt_clear, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, execute,    arginfo_class_SQLite3Stmt_execute, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, bindParam,  arginfo_class_SQLite3Stmt_bindParam, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, bindValue,  arginfo_class_SQLite3Stmt_bindValue, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, readOnly,   arginfo_class_SQLite3Stmt_readOnly, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, getSQL,             arginfo_class_SQLite3Stmt_getSQL, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3stmt, __construct, arginfo_class_SQLite3Stmt___construct, ZEND_ACC_PRIVATE)
        PHP_FE_END
 };
 /* }}} */
 
 /* {{{ php_sqlite3_result_class_methods */
 static const zend_function_entry php_sqlite3_result_class_methods[] = {
-       PHP_ME(sqlite3result, numColumns,               arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3result, columnName,               arginfo_sqlite3result_columnname, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3result, columnType,               arginfo_sqlite3result_columntype, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3result, fetchArray,               arginfo_sqlite3result_fetcharray, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3result, reset,                    arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3result, finalize,                 arginfo_sqlite3_void, ZEND_ACC_PUBLIC)
-       PHP_ME(sqlite3result, __construct,              arginfo_sqlite3_void, ZEND_ACC_PRIVATE)
+       PHP_ME(sqlite3result, numColumns,               arginfo_class_SQLite3Result_numColumns, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3result, columnName,               arginfo_class_SQLite3Result_columnName, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3result, columnType,               arginfo_class_SQLite3Result_columnType, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3result, fetchArray,               arginfo_class_SQLite3Result_fetchArray, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3result, reset,                    arginfo_class_SQLite3Result_reset, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3result, finalize,                 arginfo_class_SQLite3Result_finalize, ZEND_ACC_PUBLIC)
+       PHP_ME(sqlite3result, __construct,              arginfo_class_SQLite3Result___construct, ZEND_ACC_PRIVATE)
        PHP_FE_END
 };
 /* }}} */
diff --git a/ext/sqlite3/sqlite3.stub.php b/ext/sqlite3/sqlite3.stub.php
new file mode 100644 (file)
index 0000000..ede86d0
--- /dev/null
@@ -0,0 +1,128 @@
+<?php
+
+class SQLite3
+{
+    function __construct(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryption_key = '') {}
+
+    /** @return void */
+    function open(string $filename, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, string $encryption_key = '') {}
+
+    /** @return bool */
+    function close() {}
+
+    /** @return array */
+    function version() {}
+
+    /** @return int */
+    function lastInsertRowID() {}
+
+    /** @return int */
+    function lastErrorCode() {}
+
+    /** @return int */
+    function lastExtendedErrorCode() {}
+
+    /** @return string */
+    function lastErrorMsg() {}
+
+    /** @return int */
+    function changes() {}
+
+    /** @return bool */
+    function busyTimeout(int $ms) {}
+
+#ifndef SQLITE_OMIT_LOAD_EXTENSION
+    /** @return bool */
+    function loadExtension(string $shared_library) {}
+#endif
+
+#if SQLITE_VERSION_NUMBER >= 3006011
+    /** @return bool */
+    function backup(SQLite3 $destination_db, string $source_dbname = "main", string $destination_dbname = "main") {}
+#endif
+
+    /** @return string */
+    function escapeString(string $value) {}
+
+    /** @return SQLite3Stmt|false */
+    function prepare(string $query) {}
+
+    /** @return SQLite3Result|false|null */
+    function query(string $query) {}
+
+    /** @return mixed */
+    function querySingle(string $query, bool $entire_row = false) {}
+
+    /** @return bool */
+    function createFunction(string $name, $callback, int $argument_count = -1, int $flags = 0) {}
+
+    /** @return bool */
+    function createAggregate(string $name, $step_callback, $final_callback, int $argument_count = -1) {}
+
+    /** @return bool */
+    function createCollation(string $name, $callback) {}
+
+    /** @return resource|false */
+    function openBlob(string $table, string $column, int $rowid, string $dbname = "main", int $flags = SQLITE3_OPEN_READONLY) {}
+
+    /** @return bool */
+    function enableExceptions(bool $enableExceptions = false) {}
+
+    /** @return bool */
+    function enableExtendedResultCodes(bool $enable = true) {}
+}
+
+class SQLite3Stmt
+{
+    function __construct(SQLite3 $sqlite3, string $sql) {}
+
+    /** @return bool */
+    function bindParam($param_number, &$param, int $type = UNKNOWN) {}
+
+    /** @return bool */
+    function bindValue($param_number, $param, int $type = UNKNOWN) {}
+
+    /** @return bool */
+    function clear() {}
+
+    /** @return bool */
+    function close() {}
+
+    /** @return SQLite3Result|false */
+    function execute() {}
+
+    /** @return string|false */
+    function getSQL(bool $expanded = false) {}
+
+    /** @return int */
+    function paramCount() {}
+
+    /** @return bool */
+    function readOnly() {}
+
+    /** @return bool */
+    function reset() {}
+}
+
+class SQLite3Result
+{
+    function __construct() {}
+
+    /** @return int */
+    function numColumns() {}
+
+    /** @return string|false */
+    function columnName(int $column_number) {}
+
+    /** @return int|false */
+    function columnType(int $column_number) {}
+
+    /** @return array|false */
+    function fetchArray(int $mode = SQLITE3_BOTH) {}
+
+    /** @return bool */
+    function reset() {}
+
+    /** @return bool */
+    function finalize() {}
+}
diff --git a/ext/sqlite3/sqlite3_arginfo.h b/ext/sqlite3/sqlite3_arginfo.h
new file mode 100644 (file)
index 0000000..554ecdf
--- /dev/null
@@ -0,0 +1,143 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3___construct, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, encryption_key, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SQLite3_open arginfo_class_SQLite3___construct
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_close, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SQLite3_version arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3_lastInsertRowID arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3_lastErrorCode arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3_lastExtendedErrorCode arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3_lastErrorMsg arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3_changes arginfo_class_SQLite3_close
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_busyTimeout, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, ms, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if !defined(SQLITE_OMIT_LOAD_EXTENSION)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_loadExtension, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, shared_library, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#if SQLITE_VERSION_NUMBER >= 3006011
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_backup, 0, 0, 1)
+       ZEND_ARG_OBJ_INFO(0, destination_db, SQLite3, 0)
+       ZEND_ARG_TYPE_INFO(0, source_dbname, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, destination_dbname, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_escapeString, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_prepare, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SQLite3_query arginfo_class_SQLite3_prepare
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_querySingle, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, query, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, entire_row, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_createFunction, 0, 0, 2)
+       ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+       ZEND_ARG_INFO(0, callback)
+       ZEND_ARG_TYPE_INFO(0, argument_count, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_createAggregate, 0, 0, 3)
+       ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+       ZEND_ARG_INFO(0, step_callback)
+       ZEND_ARG_INFO(0, final_callback)
+       ZEND_ARG_TYPE_INFO(0, argument_count, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_createCollation, 0, 0, 2)
+       ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
+       ZEND_ARG_INFO(0, callback)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_openBlob, 0, 0, 3)
+       ZEND_ARG_TYPE_INFO(0, table, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, column, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, rowid, IS_LONG, 0)
+       ZEND_ARG_TYPE_INFO(0, dbname, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_enableExceptions, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, enableExceptions, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3_enableExtendedResultCodes, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, enable, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3Stmt___construct, 0, 0, 2)
+       ZEND_ARG_OBJ_INFO(0, sqlite3, SQLite3, 0)
+       ZEND_ARG_TYPE_INFO(0, sql, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3Stmt_bindParam, 0, 0, 2)
+       ZEND_ARG_INFO(0, param_number)
+       ZEND_ARG_INFO(1, param)
+       ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3Stmt_bindValue, 0, 0, 2)
+       ZEND_ARG_INFO(0, param_number)
+       ZEND_ARG_INFO(0, param)
+       ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SQLite3Stmt_clear arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3Stmt_close arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3Stmt_execute arginfo_class_SQLite3_close
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3Stmt_getSQL, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, expanded, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SQLite3Stmt_paramCount arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3Stmt_readOnly arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3Stmt_reset arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3Result___construct arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3Result_numColumns arginfo_class_SQLite3_close
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3Result_columnName, 0, 0, 1)
+       ZEND_ARG_TYPE_INFO(0, column_number, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SQLite3Result_columnType arginfo_class_SQLite3Result_columnName
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3Result_fetchArray, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_SQLite3Result_reset arginfo_class_SQLite3_close
+
+#define arginfo_class_SQLite3Result_finalize arginfo_class_SQLite3_close