X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=src%2Fphp_pq_misc.c;h=619559d0fe724d393d299b72b467c0b84cd5a673;hp=9eccae98df41b70315dba75362932001b5851fcd;hb=63fb773601422aa39375d8effb9f37abab981804;hpb=8d0dbf7286d9132be18de64625837afa55409f84 diff --git a/src/php_pq_misc.c b/src/php_pq_misc.c index 9eccae9..619559d 100644 --- a/src/php_pq_misc.c +++ b/src/php_pq_misc.c @@ -24,14 +24,14 @@ #include "php_pq.h" #include "php_pqexc.h" -#include "php_pqconn_event.h" #include "php_pq_misc.h" +#include "php_pqconn_event.h" #undef PHP_PQ_TYPE #include "php_pq_type.h" /* clear result object associated with a result handle */ -void php_pq_clear_res(PGresult *r) { +void php_pqres_clear(PGresult *r) { php_pq_object_t *o = PQresultInstanceData(r, php_pqconn_event); if (o) { @@ -42,12 +42,12 @@ void php_pq_clear_res(PGresult *r) { } /* clear any asynchronous results */ -void php_pq_clear_conn(PGconn *conn) { +void php_pqconn_clear(PGconn *conn) { PGresult *r; php_pqconn_event_data_t *evdata = PQinstanceData(conn, php_pqconn_event); while ((r = PQgetResult(conn))) { - php_pq_clear_res(r); + php_pqres_clear(r); } if (evdata && evdata->obj) { @@ -63,19 +63,19 @@ void php_pq_clear_conn(PGconn *conn) { /* safe wrappers to clear any asynchronous wrappers before querying synchronously */ PGresult *php_pq_exec(PGconn *conn, const char *query) { - php_pq_clear_conn(conn); + php_pqconn_clear(conn); return PQexec(conn, query); } PGresult *php_pq_exec_params(PGconn *conn, const char *command, int nParams, const Oid *paramTypes, const char *const * paramValues, const int *paramLengths, const int *paramFormats, int resultFormat) { - php_pq_clear_conn(conn); + php_pqconn_clear(conn); return PQexecParams(conn, command, nParams, paramTypes, paramValues, paramLengths, paramFormats, resultFormat); } PGresult *php_pq_prepare(PGconn *conn, const char *stmtName, const char *query, int nParams, const Oid *paramTypes) { - php_pq_clear_conn(conn); + php_pqconn_clear(conn); return PQprepare(conn, stmtName, query, nParams, paramTypes); } PGresult *php_pq_exec_prepared(PGconn *conn, const char *stmtName, int nParams, const char *const * paramValues, const int *paramLengths, const int *paramFormats, int resultFormat) { - php_pq_clear_conn(conn); + php_pqconn_clear(conn); return PQexecPrepared(conn, stmtName, nParams, paramValues, paramLengths, paramFormats, resultFormat); } @@ -139,7 +139,11 @@ static PHP_METHOD(pqdt, __toString) ZEND_BEGIN_ARG_INFO_EX(ai_pqdt_create_from_format, 0, 0, 2) ZEND_ARG_INFO(0, format) ZEND_ARG_INFO(0, datetime) +#if PHP_VERSION_ID >= 70200 + ZEND_ARG_OBJ_INFO(0, object, DateTimeZone, 1) +#else ZEND_ARG_INFO(0, timezone) +#endif ZEND_END_ARG_INFO(); static PHP_METHOD(pqdt, createFromFormat) { @@ -314,6 +318,9 @@ static ZEND_RESULT_CODE parse_element(ArrayParserState *a, char delim) case '{': return parse_array(a); + case '}': + return SUCCESS; + case '"': a->quotes = 1; ++a->ptr; @@ -363,7 +370,7 @@ static ZEND_RESULT_CODE parse_element(ArrayParserState *a, char delim) static ZEND_RESULT_CODE parse_elements(ArrayParserState *a) { - char delims[] = {'}', PHP_PQ_DELIM_OF_ARRAY(a->typ), 0}; + char delims[] = {'}', (char) PHP_PQ_DELIM_OF_ARRAY(a->typ), 0}; while (SUCCESS == parse_element(a, delims[1])) { switch (caa(a, delims, 0)) {