#include <libpq-fe.h>
-#if PHP_VERSION_ID < 50500
-#undef SUCCESS
-#undef FAILURE
-typedef enum {
- SUCCESS = 0,
- FAILURE = -1
-} ZEND_RESULT_CODE;
-#endif
-
#include "php_pqres.h"
+#define z_is_true zend_is_true
+#define smart_str_s(ss) (ss)->s
+#define smart_str_v(ss) (smart_str_s(ss)?(ss)->s->val:NULL)
+#define smart_str_l(ss) (smart_str_s(ss)?(ss)->s->len:0)
+
/* clear result object associated with a result handle */
-extern void php_pq_clear_res(PGresult *r);
+extern void php_pqres_clear(PGresult *r);
/* clear any asynchronous results */
-extern void php_pq_clear_conn(PGconn *conn);
+extern void php_pqconn_clear(PGconn *conn);
/* safe wrappers to clear any asynchronous wrappers before querying synchronously */
extern PGresult *php_pq_exec(PGconn *conn, const char *query);
extern 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);
extern PGresult *php_pq_prepare(PGconn *conn, const char *stmtName, const char *query, int nParams, const Oid *paramTypes);
extern PGresult *php_pq_exec_prepared(PGconn *conn, const char *stmtName, int nParams, const char *const * paramValues, const int *paramLengths, const int *paramFormats, int resultFormat);
-/* TSRM morony */
-#if PHP_VERSION_ID >= 50700
-# define z_is_true(z) zend_is_true(z TSRMLS_CC)
-#else
-# define z_is_true zend_is_true
-#endif
/* trim LF from EOL */
extern char *php_pq_rtrim(char *e);
extern const char *php_pq_strmode(long mode);
/* compare array index */
-extern int php_pq_compare_index(const void *lptr, const void *rptr TSRMLS_DC);
+extern int php_pq_compare_index(const void *lptr, const void *rptr);
+
+/* free zval ptr values (as hash dtor) */
+extern void php_pq_hash_ptr_dtor(zval *p);
#define PHP_PQerrorMessage(c) php_pq_rtrim(PQerrorMessage((c)))
#define PHP_PQresultErrorMessage(r) php_pq_rtrim(PQresultErrorMessage((r)))
extern zend_class_entry *php_pqdt_class_entry;
-extern zval *php_pqdt_from_string(zval *zv, char *input_fmt, char *dt_str, size_t dt_len, char *output_fmt, zval *ztimezone TSRMLS_DC);
-extern void php_pqdt_to_string(zval *zdt, const char *format, char **str_buf, size_t *str_len TSRMLS_DC);
+extern zval *php_pqdt_from_string(zval *zv, char *input_fmt, char *dt_str, size_t dt_len, char *output_fmt, zval *ztimezone);
+extern zend_string *php_pqdt_to_string(zval *zdt, const char *format);
extern zend_class_entry *php_pqconv_class_entry;
-extern HashTable *php_pq_parse_array(php_pqres_t *res, const char *val_str, size_t val_len, Oid typ TSRMLS_DC);
+extern HashTable *php_pq_parse_array(php_pqres_t *res, const char *val_str, size_t val_len, Oid typ);
extern PHP_MINIT_FUNCTION(pq_misc);