summaryrefslogtreecommitdiff
path: root/ext/sqlite3/sqlite3.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2017-03-12 17:04:02 +0100
committerNikita Popov <nikita.ppv@gmail.com>2017-03-12 17:04:02 +0100
commite31342ef843f98523722b2d37ea23190bf2781af (patch)
tree90012a557646b3a69617c1579b4ef0c4463269b4 /ext/sqlite3/sqlite3.c
parent22e6b5ef220345bb187c93a293ee436a80f897d1 (diff)
parentfbf0e0587f8455525466e6d4ab2c1f0fc24bfe26 (diff)
downloadphp-git-e31342ef843f98523722b2d37ea23190bf2781af.tar.gz
Merge branch 'PHP-7.1'
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r--ext/sqlite3/sqlite3.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 4e75efab53..4d90aedeca 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -897,7 +897,7 @@ static int php_sqlite3_callback_compare(void *coll, int a_len, const void *a, in
}
/* }}} */
-/* {{{ proto bool SQLite3::createFunction(string name, mixed callback [, int argcount])
+/* {{{ proto bool SQLite3::createFunction(string name, mixed callback [, int argcount, int flags])
Allows registration of a PHP function as a SQLite UDF that can be called within SQL statements. */
PHP_METHOD(sqlite3, createFunction)
{
@@ -909,11 +909,12 @@ PHP_METHOD(sqlite3, createFunction)
zval *callback_func;
zend_string *callback_name;
zend_long sql_func_num_args = -1;
+ zend_long flags = 0;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (zend_parse_parameters(ZEND_NUM_ARGS(), "sz|l", &sql_func, &sql_func_len, &callback_func, &sql_func_num_args) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "sz|ll", &sql_func, &sql_func_len, &callback_func, &sql_func_num_args, &flags) == FAILURE) {
return;
}
@@ -930,7 +931,7 @@ PHP_METHOD(sqlite3, createFunction)
func = (php_sqlite3_func *)ecalloc(1, sizeof(*func));
- if (sqlite3_create_function(db_obj->db, sql_func, sql_func_num_args, SQLITE_UTF8, func, php_sqlite3_callback_func, NULL, NULL) == SQLITE_OK) {
+ if (sqlite3_create_function(db_obj->db, sql_func, sql_func_num_args, flags | SQLITE_UTF8, func, php_sqlite3_callback_func, NULL, NULL) == SQLITE_OK) {
func->func_name = estrdup(sql_func);
ZVAL_COPY(&func->func, callback_func);
@@ -1900,6 +1901,7 @@ 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)
@@ -2287,6 +2289,8 @@ PHP_MINIT_FUNCTION(sqlite3)
REGISTER_LONG_CONSTANT("SQLITE3_OPEN_READWRITE", SQLITE_OPEN_READWRITE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SQLITE3_OPEN_CREATE", SQLITE_OPEN_CREATE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_DETERMINISTIC", SQLITE_DETERMINISTIC, CONST_CS | CONST_PERSISTENT);
+
return SUCCESS;
}
/* }}} */