diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-11 17:13:38 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-12-14 10:43:28 +0100 |
commit | 2d51c203f09551323ed595514e03ab206fd93129 (patch) | |
tree | 5069c1608f092ee57d312d28b1b9d4064abd0c62 /ext/pdo_pgsql/pgsql_driver.c | |
parent | c288b5294bb0e13ad2904a3ec79265f727baaea3 (diff) | |
download | php-git-2d51c203f09551323ed595514e03ab206fd93129.tar.gz |
PDO: Store/pass query_string as zend_string
Rather than storing char* + size_t, use a zend_string*. Also
avoid various copies of the query string.
Diffstat (limited to 'ext/pdo_pgsql/pgsql_driver.c')
-rw-r--r-- | ext/pdo_pgsql/pgsql_driver.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c index 6c3375557b..3ae15e7511 100644 --- a/ext/pdo_pgsql/pgsql_driver.c +++ b/ext/pdo_pgsql/pgsql_driver.c @@ -222,14 +222,13 @@ static int pgsql_handle_closer(pdo_dbh_t *dbh) /* {{{ */ } /* }}} */ -static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, size_t sql_len, pdo_stmt_t *stmt, zval *driver_options) +static int pgsql_handle_preparer(pdo_dbh_t *dbh, zend_string *sql, pdo_stmt_t *stmt, zval *driver_options) { pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data; pdo_pgsql_stmt *S = ecalloc(1, sizeof(pdo_pgsql_stmt)); int scrollable; int ret; - char *nsql = NULL; - size_t nsql_len = 0; + zend_string *nsql = NULL; int emulate = 0; int execute_only = 0; @@ -269,7 +268,7 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, size_t sql_len stmt->named_rewrite_template = "$%d"; } - ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len); + ret = pdo_parse_params(stmt, sql, &nsql); if (ret == -1) { /* couldn't grok it */ @@ -279,7 +278,7 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, size_t sql_len /* query was re-written */ S->query = nsql; } else { - S->query = estrdup(sql); + S->query = zend_string_copy(sql); } if (!emulate && !execute_only) { |