]> granicus.if.org Git - php/commitdiff
Added support for "extra" parameter for PGNotify().
authorIlia Alshanetsky <iliaa@php.net>
Thu, 27 Jan 2011 16:02:30 +0000 (16:02 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Thu, 27 Jan 2011 16:02:30 +0000 (16:02 +0000)
NEWS
ext/pgsql/pgsql.c

diff --git a/NEWS b/NEWS
index 21e21001944c496302ee0d18376291aec4b6391b..6fe50843adcb1ee534b95e8f4bd8f44b69fda405 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -174,6 +174,10 @@ PHP                                                                        NEWS
   . Added nextRowset support.
   . Fixed bug #50755 (PDO DBLIB Fails with OOM).
 
+- Improved PostgreSQL extension:
+  . Added support for "extra" parameter for PGNotify().
+    (r dot i dot k at free dot fr, Ilia)
+
 - Improved Reflection extension: (Johannes)
   . Added ReflectionExtension::isTemporary() and
     ReflectionExtension::isPersistent() methods.
index 0ae111646c1bba4493f136c1fa99027aa0fb0e0f..d321ec4883486e5b6ee99cee58aba3160182ef51 100644 (file)
@@ -4782,10 +4782,24 @@ PHP_FUNCTION(pg_get_notify)
        if (result_type & PGSQL_NUM) {
                add_index_string(return_value, 0, pgsql_notify->relname, 1);
                add_index_long(return_value, 1, pgsql_notify->be_pid);
+#if HAVE_PQPROTOCOLVERSION && HAVE_PQPARAMETERSTATUS 
+               if (PQprotocolVersion(pgsql) >= 3 && atof(PQparameterStatus(pgsql, "server_version")) >= 9.0) {
+#else 
+               if (atof(PG_VERSION) >= 9.0) {
+#endif 
+                       add_index_string(return_value, 2, pgsql_notify->extra, 1);
+               }
        }
        if (result_type & PGSQL_ASSOC) {
                add_assoc_string(return_value, "message", pgsql_notify->relname, 1);
                add_assoc_long(return_value, "pid", pgsql_notify->be_pid);
+#if HAVE_PQPROTOCOLVERSION && HAVE_PQPARAMETERSTATUS 
+               if (PQprotocolVersion(pgsql) >= 3 && atof(PQparameterStatus(pgsql, "server_version")) >= 9.0) {
+#else 
+               if (atof(PG_VERSION) >= 9.0) {
+#endif 
+                       add_assoc_string(return_value, "payload", pgsql_notify->extra, 1);
+               }
        }
        PQfreemem(pgsql_notify);
 }