Merge pull request #33 from m6w6/fix-19
[m6w6/ext-pq] / src / php_pq_misc.h
index 937d7ad574d58b70f44aade326f602eeb2d33163..bffa9d42d181dce3b8bb089be6134000f779bbfe 100644 (file)
 
 #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) (ss)->s->val
-#define smart_str_l(ss) (ss)->s->len
+#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_pqres_clear(PGresult *r);
+/* clear any asynchronous results */
+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);
+
 
 /* trim LF from EOL */
 extern char *php_pq_rtrim(char *e);
@@ -41,6 +43,9 @@ extern const char *php_pq_strmode(long mode);
 /* compare array index */
 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)))