summaryrefslogtreecommitdiff
path: root/ext/sqlite3
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-08-19 12:04:15 +0200
committerAnatol Belski <ab@php.net>2014-08-19 12:04:15 +0200
commitacdda1093bfc21af1a710977a6f8eabc8b0bdbf1 (patch)
treeb88424f43e3b60803b475d718d15ce38662d5532 /ext/sqlite3
parent094a78eb6930901bc64923b310ab9b5d2f78aa56 (diff)
downloadphp-git-acdda1093bfc21af1a710977a6f8eabc8b0bdbf1.tar.gz
ported ext/sqlite3
Diffstat (limited to 'ext/sqlite3')
-rw-r--r--ext/sqlite3/php_sqlite3_structs.h6
-rw-r--r--ext/sqlite3/sqlite3.c110
2 files changed, 59 insertions, 57 deletions
diff --git a/ext/sqlite3/php_sqlite3_structs.h b/ext/sqlite3/php_sqlite3_structs.h
index e988ac20d0..a75b340e2c 100644
--- a/ext/sqlite3/php_sqlite3_structs.h
+++ b/ext/sqlite3/php_sqlite3_structs.h
@@ -38,9 +38,9 @@
/* Structure for SQLite Statement Parameter. */
struct php_sqlite3_bound_param {
- long param_number;
+ php_int_t param_number;
zend_string *name;
- long type;
+ php_int_t type;
zval parameter;
};
@@ -91,7 +91,7 @@ static inline php_sqlite3_db_object *php_sqlite3_db_from_obj(zend_object *obj) {
/* Structure for SQLite Database object. */
typedef struct _php_sqlite3_agg_context {
zval zval_context;
- long row_count;
+ php_int_t row_count;
} php_sqlite3_agg_context;
typedef struct _php_sqlite3_stmt_object php_sqlite3_stmt;
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 0e052785ad..33ba6f59c3 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -103,13 +103,13 @@ PHP_METHOD(sqlite3, open)
zval *object = getThis();
char *filename, *encryption_key, *fullpath;
int filename_len, encryption_key_len = 0;
- long flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
+ php_int_t flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
zend_error_handling error_handling;
db_obj = Z_SQLITE3_DB_P(object);
zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|ls", &filename, &filename_len, &flags, &encryption_key, &encryption_key_len)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|is", &filename, &filename_len, &flags, &encryption_key, &encryption_key_len)) {
zend_restore_error_handling(&error_handling TSRMLS_CC);
return;
}
@@ -218,17 +218,17 @@ PHP_METHOD(sqlite3, exec)
{
php_sqlite3_db_object *db_obj;
zval *object = getThis();
- char *sql, *errtext = NULL;
- int sql_len;
+ zend_string *sql;
+ char *errtext = NULL;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &sql, &sql_len)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &sql)) {
return;
}
- if (sqlite3_exec(db_obj->db, sql, NULL, NULL, &errtext) != SQLITE_OK) {
+ if (sqlite3_exec(db_obj->db, sql->val, NULL, NULL, &errtext) != SQLITE_OK) {
php_sqlite3_error(db_obj, "%s", errtext);
sqlite3_free(errtext);
RETURN_FALSE;
@@ -315,13 +315,13 @@ PHP_METHOD(sqlite3, busyTimeout)
{
php_sqlite3_db_object *db_obj;
zval *object = getThis();
- long ms;
+ php_int_t ms;
int return_code;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &ms)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &ms)) {
return;
}
@@ -432,15 +432,15 @@ PHP_METHOD(sqlite3, changes)
Returns a string that has been properly escaped. */
PHP_METHOD(sqlite3, escapeString)
{
- char *sql, *ret;
- int sql_len;
+ zend_string *sql;
+ char *ret;
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &sql, &sql_len)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &sql)) {
return;
}
- if (sql_len) {
- ret = sqlite3_mprintf("%q", sql);
+ if (sql->len) {
+ ret = sqlite3_mprintf("%q", sql->val);
if (ret) {
RETVAL_STRING(ret);
sqlite3_free(ret);
@@ -458,19 +458,19 @@ PHP_METHOD(sqlite3, prepare)
php_sqlite3_db_object *db_obj;
php_sqlite3_stmt *stmt_obj;
zval *object = getThis();
- char *sql;
- int sql_len, errcode;
+ zend_string *sql;
+ int errcode;
php_sqlite3_free_list *free_item;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &sql, &sql_len)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &sql)) {
return;
}
- if (!sql_len) {
+ if (!sql->len) {
RETURN_FALSE;
}
@@ -479,7 +479,7 @@ PHP_METHOD(sqlite3, prepare)
stmt_obj->db_obj = db_obj;
ZVAL_COPY(&stmt_obj->db_obj_zval, object);
- errcode = sqlite3_prepare_v2(db_obj->db, sql, sql_len, &(stmt_obj->stmt), NULL);
+ errcode = sqlite3_prepare_v2(db_obj->db, sql->val, sql->len, &(stmt_obj->stmt), NULL);
if (errcode != SQLITE_OK) {
php_sqlite3_error(db_obj, "Unable to prepare statement: %d, %s", errcode, sqlite3_errmsg(db_obj->db));
zval_dtor(return_value);
@@ -505,23 +505,24 @@ PHP_METHOD(sqlite3, query)
php_sqlite3_stmt *stmt_obj;
zval *object = getThis();
zval stmt;
- char *sql, *errtext = NULL;
- int sql_len, return_code;
+ zend_string *sql;
+ char *errtext = NULL;
+ int return_code;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &sql, &sql_len)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S", &sql)) {
return;
}
- if (!sql_len) {
+ if (!sql->len) {
RETURN_FALSE;
}
/* If there was no return value then just execute the query */
if (!USED_RET()) {
- if (sqlite3_exec(db_obj->db, sql, NULL, NULL, &errtext) != SQLITE_OK) {
+ if (sqlite3_exec(db_obj->db, sql->val, NULL, NULL, &errtext) != SQLITE_OK) {
php_sqlite3_error(db_obj, "%s", errtext);
sqlite3_free(errtext);
}
@@ -533,7 +534,7 @@ PHP_METHOD(sqlite3, query)
stmt_obj->db_obj = db_obj;
ZVAL_COPY(&stmt_obj->db_obj_zval, object);
- return_code = sqlite3_prepare_v2(db_obj->db, sql, sql_len, &(stmt_obj->stmt), NULL);
+ return_code = sqlite3_prepare_v2(db_obj->db, sql->val, sql->len, &(stmt_obj->stmt), NULL);
if (return_code != SQLITE_OK) {
php_sqlite3_error(db_obj, "Unable to prepare statement: %d, %s", return_code, sqlite3_errmsg(db_obj->db));
zval_ptr_dtor(&stmt);
@@ -608,32 +609,33 @@ PHP_METHOD(sqlite3, querySingle)
{
php_sqlite3_db_object *db_obj;
zval *object = getThis();
- char *sql, *errtext = NULL;
- int sql_len, return_code;
+ zend_string *sql;
+ char *errtext = NULL;
+ int return_code;
zend_bool entire_row = 0;
sqlite3_stmt *stmt;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b", &sql, &sql_len, &entire_row)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "S|b", &sql, &entire_row)) {
return;
}
- if (!sql_len) {
+ if (!sql->len) {
RETURN_FALSE;
}
/* If there was no return value then just execute the query */
if (!USED_RET()) {
- if (sqlite3_exec(db_obj->db, sql, NULL, NULL, &errtext) != SQLITE_OK) {
+ if (sqlite3_exec(db_obj->db, sql->val, NULL, NULL, &errtext) != SQLITE_OK) {
php_sqlite3_error(db_obj, "%s", errtext);
sqlite3_free(errtext);
}
return;
}
- return_code = sqlite3_prepare_v2(db_obj->db, sql, sql_len, &stmt, NULL);
+ return_code = sqlite3_prepare_v2(db_obj->db, sql->val, sql->len, &stmt, NULL);
if (return_code != SQLITE_OK) {
php_sqlite3_error(db_obj, "Unable to prepare statement: %d, %s", return_code, sqlite3_errmsg(db_obj->db));
RETURN_FALSE;
@@ -717,7 +719,7 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s
for (i = 0; i < argc; i++) {
switch (sqlite3_value_type(argv[i])) {
case SQLITE_INTEGER:
-#if LONG_MAX > 2147483647
+#if PHP_INT_MAX > 2147483647
ZVAL_INT(&zargs[i + is_agg], sqlite3_value_int64(argv[i]));
#else
ZVAL_INT(&zargs[i + is_agg], sqlite3_value_int(argv[i]));
@@ -763,7 +765,7 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s
if (!Z_ISUNDEF(retval)) {
switch (Z_TYPE(retval)) {
case IS_INT:
-#if LONG_MAX > 2147483647
+#if PHP_INT_MAX > 2147483647
sqlite3_result_int64(context, Z_IVAL(retval));
#else
sqlite3_result_int(context, Z_IVAL(retval));
@@ -897,12 +899,12 @@ PHP_METHOD(sqlite3, createFunction)
int sql_func_len;
zval *callback_func;
zend_string *callback_name;
- long sql_func_num_args = -1;
+ php_int_t sql_func_num_args = -1;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|l", &sql_func, &sql_func_len, &callback_func, &sql_func_num_args) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|i", &sql_func, &sql_func_len, &callback_func, &sql_func_num_args) == FAILURE) {
return;
}
@@ -947,12 +949,12 @@ PHP_METHOD(sqlite3, createAggregate)
zend_string *callback_name;
int sql_func_len;
zval *step_callback, *fini_callback;
- long sql_func_num_args = -1;
+ php_int_t sql_func_num_args = -1;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szz|l", &sql_func, &sql_func_len, &step_callback, &fini_callback, &sql_func_num_args) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szz|i", &sql_func, &sql_func_len, &step_callback, &fini_callback, &sql_func_num_args) == FAILURE) {
return;
}
@@ -1091,7 +1093,7 @@ static int php_sqlite3_stream_flush(php_stream *stream TSRMLS_DC)
}
/* {{{ */
-static int php_sqlite3_stream_seek(php_stream *stream, off_t offset, int whence, off_t *newoffs TSRMLS_DC)
+static int php_sqlite3_stream_seek(php_stream *stream, zend_off_t offset, int whence, zend_off_t *newoffs TSRMLS_DC)
{
php_stream_sqlite3_data *sqlite3_stream = (php_stream_sqlite3_data *) stream->abstract;
@@ -1185,7 +1187,7 @@ PHP_METHOD(sqlite3, openBlob)
zval *object = getThis();
char *table, *column, *dbname = "main";
int table_len, column_len, dbname_len;
- long rowid, flags = 0;
+ php_int_t rowid, flags = 0;
sqlite3_blob *blob = NULL;
php_stream_sqlite3_data *sqlite3_stream;
php_stream *stream;
@@ -1194,7 +1196,7 @@ PHP_METHOD(sqlite3, openBlob)
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssl|s", &table, &table_len, &column, &column_len, &rowid, &dbname, &dbname_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssi|s", &table, &table_len, &column, &column_len, &rowid, &dbname, &dbname_len) == FAILURE) {
return;
}
@@ -1402,7 +1404,7 @@ PHP_METHOD(sqlite3stmt, bindParam)
param.param_number = -1;
param.type = SQLITE3_TEXT;
- if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "lz|l", &param.param_number, &parameter, &param.type) == FAILURE) {
+ if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "iz|i", &param.param_number, &parameter, &param.type) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz|l", &param.name, &parameter, &param.type) == FAILURE) {
return;
}
@@ -1436,7 +1438,7 @@ PHP_METHOD(sqlite3stmt, bindValue)
param.param_number = -1;
param.type = SQLITE3_TEXT;
- if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "lz/|l", &param.param_number, &parameter, &param.type) == FAILURE) {
+ if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "iz/|i", &param.param_number, &parameter, &param.type) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz/|l", &param.name, &parameter, &param.type) == FAILURE) {
return;
}
@@ -1494,7 +1496,7 @@ PHP_METHOD(sqlite3stmt, execute)
switch (param->type) {
case SQLITE_INTEGER:
convert_to_int(parameter);
-#if LONG_MAX > 2147483647
+#if PHP_INT_MAX > 2147483647
sqlite3_bind_int64(stmt_obj->stmt, param->param_number, Z_IVAL_P(parameter));
#else
sqlite3_bind_int(stmt_obj->stmt, param->param_number, Z_IVAL_P(parameter));
@@ -1540,7 +1542,7 @@ PHP_METHOD(sqlite3stmt, execute)
break;
default:
- php_sqlite3_error(stmt_obj->db_obj, "Unknown parameter type: %ld for parameter %ld", param->type, param->param_number);
+ php_sqlite3_error(stmt_obj->db_obj, "Unknown parameter type: %pd for parameter %pd", param->type, param->param_number);
RETURN_FALSE;
}
} ZEND_HASH_FOREACH_END();
@@ -1584,15 +1586,15 @@ PHP_METHOD(sqlite3stmt, __construct)
php_sqlite3_db_object *db_obj;
zval *object = getThis();
zval *db_zval;
- char *sql;
- int sql_len, errcode;
+ zend_string *sql;
+ int errcode;
zend_error_handling error_handling;
php_sqlite3_free_list *free_item;
stmt_obj = Z_SQLITE3_STMT_P(object);
zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &db_zval, php_sqlite3_sc_entry, &sql, &sql_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "OS", &db_zval, php_sqlite3_sc_entry, &sql) == FAILURE) {
zend_restore_error_handling(&error_handling TSRMLS_CC);
return;
}
@@ -1603,14 +1605,14 @@ PHP_METHOD(sqlite3stmt, __construct)
zend_restore_error_handling(&error_handling TSRMLS_CC);
- if (!sql_len) {
+ if (!sql->len) {
RETURN_FALSE;
}
stmt_obj->db_obj = db_obj;
ZVAL_COPY(&stmt_obj->db_obj_zval, db_zval);
- errcode = sqlite3_prepare_v2(db_obj->db, sql, sql_len, &(stmt_obj->stmt), NULL);
+ errcode = sqlite3_prepare_v2(db_obj->db, sql->val, sql->len, &(stmt_obj->stmt), NULL);
if (errcode != SQLITE_OK) {
php_sqlite3_error(db_obj, "Unable to prepare statement: %d, %s", errcode, sqlite3_errmsg(db_obj->db));
zval_dtor(return_value);
@@ -1651,13 +1653,13 @@ PHP_METHOD(sqlite3result, columnName)
{
php_sqlite3_result *result_obj;
zval *object = getThis();
- long column = 0;
+ php_int_t column = 0;
char *column_name;
result_obj = Z_SQLITE3_RESULT_P(object);
SQLITE3_CHECK_INITIALIZED(result_obj->db_obj, result_obj->stmt_obj->initialised, SQLite3Result)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &column) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &column) == FAILURE) {
return;
}
column_name = (char*) sqlite3_column_name(result_obj->stmt_obj->stmt, column);
@@ -1676,12 +1678,12 @@ PHP_METHOD(sqlite3result, columnType)
{
php_sqlite3_result *result_obj;
zval *object = getThis();
- long column = 0;
+ php_int_t column = 0;
result_obj = Z_SQLITE3_RESULT_P(object);
SQLITE3_CHECK_INITIALIZED(result_obj->db_obj, result_obj->stmt_obj->initialised, SQLite3Result)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &column) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &column) == FAILURE) {
return;
}
@@ -1700,12 +1702,12 @@ PHP_METHOD(sqlite3result, fetchArray)
php_sqlite3_result *result_obj;
zval *object = getThis();
int i, ret;
- long mode = PHP_SQLITE3_BOTH;
+ php_int_t mode = PHP_SQLITE3_BOTH;
result_obj = Z_SQLITE3_RESULT_P(object);
SQLITE3_CHECK_INITIALIZED(result_obj->db_obj, result_obj->stmt_obj->initialised, SQLite3Result)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &mode) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|i", &mode) == FAILURE) {
return;
}