prepare v2.2.3
[m6w6/ext-pq] / src / php_pqconn.c
index 70e2c82944d9638f1e1edfcd6e5eb5768a92d306..19ea6f05ebcaebd0abb059d475c7bad802f29128 100644 (file)
@@ -495,35 +495,29 @@ static void php_pqconn_object_write_def_auto_conv(void *o, zval *value)
 static void php_pqconn_object_read_lib_version(void *o, zval *return_value)
 {
        char ver[16];
-       int v = PQlibVersion();
 
-       if (v < 100000) {
-               slprintf(ver, sizeof(ver), "%d.%d.%d", v/10000, v/100%100, v%100);
-       } else {
-               slprintf(ver, sizeof(ver), "%d.%d", v/10000, v%100);
-       }
+       php_pq_version_to_string(PQlibVersion(), ver, sizeof(ver));
        RETVAL_STRING(ver);
 }
 #endif
+#ifdef HAVE_PQPROTOCOLVERSION
 static void php_pqconn_object_read_protocol_version(void *o, zval *return_value)
 {
        php_pqconn_object_t *obj = o;
 
        RETVAL_LONG(PQprotocolVersion(obj->intern->conn));
 }
+#endif
+#ifdef HAVE_PQSERVERVERSION
 static void php_pqconn_object_read_server_version(void *o, zval *return_value)
 {
        php_pqconn_object_t *obj = o;
        char ver[16];
-       int v = PQserverVersion(obj->intern->conn);
 
-       if (v < 100000) {
-               slprintf(ver, sizeof(ver), "%d.%d.%d", v/10000, v/100%100, v%100);
-       } else {
-               slprintf(ver, sizeof(ver), "%d.%d", v/10000, v%100);
-       }
+       php_pq_version_to_string(PQserverVersion(obj->intern->conn), ver, sizeof(ver));
        RETVAL_STRING(ver);
 }
+#endif
 
 static ZEND_RESULT_CODE php_pqconn_update_socket(zval *zobj, php_pqconn_object_t *obj)
 {
@@ -2166,18 +2160,22 @@ PHP_MINIT_FUNCTION(pqconn)
        ph.write = NULL;
 
 #ifdef HAVE_PQLIBVERSION
-       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("libraryVersion"), ZEND_ACC_PUBLIC);
+       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("libraryVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY);
        ph.read = php_pqconn_object_read_lib_version;
        zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("libraryVersion"), (void *) &ph, sizeof(ph));
 #endif
 
-       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("protocolVersion"), ZEND_ACC_PUBLIC);
+#ifdef HAVE_PQPROTOCOLVERSION
+       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("protocolVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY);
        ph.read = php_pqconn_object_read_protocol_version;
        zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("protocolVersion"), (void *) &ph, sizeof(ph));
+#endif
 
-       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("serverVersion"), ZEND_ACC_PUBLIC);
+#ifdef HAVE_PQSERVERVERSION
+       zend_declare_property_null(php_pqconn_class_entry, ZEND_STRL("serverVersion"), ZEND_ACC_PUBLIC|ZEND_ACC_READONLY);
        ph.read = php_pqconn_object_read_server_version;
        zend_hash_str_add_mem(&php_pqconn_object_prophandlers, ZEND_STRL("serverVersion"), (void *) &ph, sizeof(ph));
+#endif
 
        zend_declare_class_constant_long(php_pqconn_class_entry, ZEND_STRL("OK"), CONNECTION_OK);
        zend_declare_class_constant_long(php_pqconn_class_entry, ZEND_STRL("BAD"), CONNECTION_BAD);