}
}
+#if HAVE_PQCONNINFO
static void php_pqconn_object_read_params(zval *object, void *o, zval *return_value TSRMLS_DC)
{
php_pqconn_object_t *obj = o;
PQconninfoFree(params);
}
}
+#endif
static void php_pqconn_object_read_options(zval *object, void *o, zval *return_value TSRMLS_DC)
{
throw_exce(EX_UNINITIALIZED TSRMLS_CC, "pq\\Connection not initialized");
} else if (!PQsendQuery(obj->intern->conn, query_str)) {
throw_exce(EX_IO TSRMLS_CC, "Failed to execute query (%s)", PHP_PQerrorMessage(obj->intern->conn));
+#if HAVE_PQSETSINGLEROWMODE
} else if (obj->intern->unbuffered && !PQsetSingleRowMode(obj->intern->conn)) {
throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to enable unbuffered mode (%s)", PHP_PQerrorMessage(obj->intern->conn));
+#endif
} else {
php_pq_callback_recurse(&obj->intern->onevent, &resolver TSRMLS_CC);
obj->intern->poller = PQconsumeInput;
if (!rc) {
throw_exce(EX_IO TSRMLS_CC, "Failed to execute query (%s)", PHP_PQerrorMessage(obj->intern->conn));
+#if HAVE_PQSETSINGLEROWMODE
} else if (obj->intern->unbuffered && !PQsetSingleRowMode(obj->intern->conn)) {
throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to enable unbuffered mode (%s)", PHP_PQerrorMessage(obj->intern->conn));
+#endif
} else {
php_pq_callback_recurse(&obj->intern->onevent, &resolver TSRMLS_CC);
obj->intern->poller = PQconsumeInput;
if (SUCCESS != php_pqconn_prepare(getThis(), obj, name_str, query_str, params TSRMLS_CC)) {
php_pq_params_free(¶ms);
} else {
- php_pqstm_t *stm = ecalloc(1, sizeof(*stm));
-
- php_pq_object_addref(obj TSRMLS_CC);
- stm->conn = obj;
- stm->name = estrdup(name_str);
- stm->params = params;
- ZEND_INIT_SYMTABLE(&stm->bound);
+ php_pqstm_t *stm = php_pqstm_init(obj, name_str, query_str, params TSRMLS_CC);
return_value->type = IS_OBJECT;
return_value->value.obj = php_pqstm_create_object_ex(php_pqstm_class_entry, stm, NULL TSRMLS_CC);
if (!PQsendPrepare(obj->intern->conn, name, query, params->type.count, params->type.oids)) {
rv = FAILURE;
throw_exce(EX_IO TSRMLS_CC, "Failed to prepare statement (%s)", PHP_PQerrorMessage(obj->intern->conn));
- } else if (obj->intern->unbuffered && !PQsetSingleRowMode(obj->intern->conn)) {
- rv = FAILURE;
- throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to enable unbuffered mode (%s)", PHP_PQerrorMessage(obj->intern->conn));
} else {
rv = SUCCESS;
obj->intern->poller = PQconsumeInput;
if (SUCCESS != php_pqconn_prepare_async(getThis(), obj, name_str, query_str, params TSRMLS_CC)) {
php_pq_params_free(¶ms);
} else {
- php_pqstm_t *stm = ecalloc(1, sizeof(*stm));
-
- php_pq_object_addref(obj TSRMLS_CC);
- stm->conn = obj;
- stm->name = estrdup(name_str);
- stm->params = params;
- ZEND_INIT_SYMTABLE(&stm->bound);
+ php_pqstm_t *stm = php_pqstm_init(obj, name_str, query_str, params TSRMLS_CC);
return_value->type = IS_OBJECT;
return_value->value.obj = php_pqstm_create_object_ex(php_pqstm_class_entry, stm, NULL TSRMLS_CC);
cur->open = 1;
cur->name = estrdup(name_str);
cur->decl = decl;
+ cur->flags = flags;
return_value->type = IS_OBJECT;
return_value->value.obj = php_pqcur_create_object_ex(php_pqcur_class_entry, cur, NULL TSRMLS_CC);
if (!PQsendQuery(obj->intern->conn, decl)) {
rv = FAILURE;
throw_exce(EX_IO TSRMLS_CC, "Failed to declare cursor (%s)", PHP_PQerrorMessage(obj->intern->conn));
- } else if (obj->intern->unbuffered && !PQsetSingleRowMode(obj->intern->conn)) {
- rv = FAILURE;
- throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to enable unbuffered mode (%s)", PHP_PQerrorMessage(obj->intern->conn));
} else {
rv = SUCCESS;
obj->intern->poller = PQconsumeInput;
} else {
PGresult *res;
smart_str cmd = {0};
- const char *il = isolation_level(&isolation);
+ const char *il = php_pq_isolation_level(&isolation);
smart_str_appends(&cmd, "START TRANSACTION ISOLATION LEVEL ");
smart_str_appends(&cmd, il);
throw_exce(EX_UNINITIALIZED TSRMLS_CC, "pq\\Connection not initialized");
} else {
smart_str cmd = {0};
- const char *il = isolation_level(&isolation);
+ const char *il = php_pq_isolation_level(&isolation);
smart_str_appends(&cmd, "START TRANSACTION ISOLATION LEVEL ");
smart_str_appends(&cmd, il);
php_pq_object_addref(obj TSRMLS_CC);
txn->conn = obj;
+ txn->open = 1;
txn->isolation = isolation;
txn->readonly = readonly;
txn->deferrable = deferrable;
ph.read = php_pqconn_object_read_port;
zend_hash_add(&php_pqconn_object_prophandlers, "port", sizeof("port"), (void *) &ph, sizeof(ph), NULL);
+#if HAVE_PQCONNINFO
zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("params"), ZEND_ACC_PUBLIC TSRMLS_CC);
ph.read = php_pqconn_object_read_params;
zend_hash_add(&php_pqconn_object_prophandlers, "params", sizeof("params"), (void *) &ph, sizeof(ph), NULL);
+#endif
zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("options"), ZEND_ACC_PUBLIC TSRMLS_CC);
ph.read = php_pqconn_object_read_options;