From: Michael Wallner Date: Tue, 17 May 2016 09:55:34 +0000 (+0200) Subject: Merge branch 'v1.1.x' X-Git-Tag: v2.1.0~9 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=d607a4e70c0684d4b144203dfce40d7d69db6f3f;hp=c314bfb70b6d4f6574d8923bfd59e2bd42621a00;p=m6w6%2Fext-pq Merge branch 'v1.1.x' --- diff --git a/package.xml b/package.xml index 64e4771..05d3a07 100644 --- a/package.xml +++ b/package.xml @@ -35,10 +35,10 @@ daverandom@php.net yes - 2016-05-03 + 2016-05-17 - 2.0.2dev - 2.0.0 + 2.1.0dev + 2.1.0 stable @@ -46,7 +46,7 @@ BSD-2-Clause @@ -156,7 +156,9 @@ - 7.0.0 + 5.4.0 + 7.0.0 + 7.0.0 1.4.0 diff --git a/php_pq.h b/php_pq.h index be04b2b..0d56e4a 100644 --- a/php_pq.h +++ b/php_pq.h @@ -14,7 +14,7 @@ #ifndef PHP_PQ_H #define PHP_PQ_H -#define PHP_PQ_VERSION "2.0.2dev" +#define PHP_PQ_VERSION "2.1.0dev" #ifdef PHP_WIN32 # define PHP_PQ_API __declspec(dllexport) diff --git a/src/php_pqres.c b/src/php_pqres.c index 1bc0d1d..76518f2 100644 --- a/src/php_pqres.c +++ b/src/php_pqres.c @@ -477,6 +477,45 @@ static void php_pqres_object_read_error_message(zval *object, void *o, zval *ret } } +static void php_pqres_object_read_diag(zval *object, void *o, zval *return_value) +{ + php_pqres_object_t *obj = o; + int i; + struct { + char code; + const char *const name; + } diag[] = { + {PG_DIAG_SEVERITY, "severity"}, + {PG_DIAG_SQLSTATE, "sqlstate"}, + {PG_DIAG_MESSAGE_PRIMARY, "message_primary"}, + {PG_DIAG_MESSAGE_DETAIL, "message_detail"}, + {PG_DIAG_MESSAGE_HINT, "message_hint"}, + {PG_DIAG_STATEMENT_POSITION,"statement_position"}, + {PG_DIAG_INTERNAL_POSITION, "internal_position"}, + {PG_DIAG_INTERNAL_QUERY, "internal_query"}, + {PG_DIAG_CONTEXT, "context"}, + {PG_DIAG_SCHEMA_NAME, "schema_name"}, + {PG_DIAG_TABLE_NAME, "table_name"}, + {PG_DIAG_COLUMN_NAME, "column_name"}, + {PG_DIAG_DATATYPE_NAME, "datatype_name"}, + {PG_DIAG_CONSTRAINT_NAME, "constraint_name"}, + {PG_DIAG_SOURCE_FILE, "source_file"}, + {PG_DIAG_SOURCE_LINE, "source_line"}, + {PG_DIAG_SOURCE_FUNCTION, "source_function"} + }; + + array_init_size(return_value, 32); + for (i = 0; i < sizeof(diag)/sizeof(diag[0]); ++i) { + char *value = PQresultErrorField(obj->intern->res, diag[i].code); + + if (value) { + add_assoc_string(return_value, diag[i].name, value); + } else { + add_assoc_null(return_value, diag[i].name); + } + } +} + static void php_pqres_object_read_num_rows(zval *object, void *o, zval *return_value) { php_pqres_object_t *obj = o; @@ -1125,7 +1164,15 @@ PHP_MINIT_FUNCTION(pqres) ph.read = php_pqres_object_read_error_message; zend_hash_str_add_mem(&php_pqres_object_prophandlers, "errorMessage", sizeof("errorMessage")-1, (void *) &ph, sizeof(ph)); +<<<<<<< HEAD zend_declare_property_long(php_pqres_class_entry, ZEND_STRL("numRows"), 0, ZEND_ACC_PUBLIC); +======= + zend_declare_property_null(php_pqres_class_entry, ZEND_STRL("diag"), ZEND_ACC_PUBLIC TSRMLS_CC); + ph.read = php_pqres_object_read_diag; + zend_hash_add(&php_pqres_object_prophandlers, "diag", sizeof("diag"), (void *) &ph, sizeof(ph), NULL); + + zend_declare_property_long(php_pqres_class_entry, ZEND_STRL("numRows"), 0, ZEND_ACC_PUBLIC TSRMLS_CC); +>>>>>>> v1.1.x ph.read = php_pqres_object_read_num_rows; zend_hash_str_add_mem(&php_pqres_object_prophandlers, "numRows", sizeof("numRows")-1, (void *) &ph, sizeof(ph));