]> granicus.if.org Git - php/commitdiff
ported ext/sqlite3
authorAnatol Belski <ab@php.net>
Tue, 19 Aug 2014 10:04:15 +0000 (12:04 +0200)
committerAnatol Belski <ab@php.net>
Tue, 19 Aug 2014 10:04:15 +0000 (12:04 +0200)
ext/sqlite3/php_sqlite3_structs.h
ext/sqlite3/sqlite3.c

index e988ac20d0048982aaebba75211f663f84ba778e..a75b340e2ce143f8a51c632df2d3f91f7bac6522 100644 (file)
@@ -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;
index 0e052785adb9f46eb6fecf7b291551838789c87b..33ba6f59c3ceebee5e03c8839c658100e056fe39 100644 (file)
@@ -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;
        }