edink Mon Feb 14 18:36:16 2005 EDT
Modified files:
/php-src NEWS
/php-src/ext/pgsql pgsql.c php_pgsql.h
Log:
Added pg_field_type_oid() function
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1841&r2=1.1842&ty=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.1841 php-src/NEWS:1.1842
--- php-src/NEWS:1.1841 Thu Feb 10 06:45:22 2005
+++ php-src/NEWS Mon Feb 14 18:36:15 2005
@@ -1,6 +1,7 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2004, PHP 5.1.0
+- Added pg_field_type_oid() PostgreSQL function. (mauroi at digbang dot com)
- Added zend_declare_property_...() and zend_update_property_...()
API functions for bool, double and binary safe strings. (Hartmut)
- Moved extensions to PECL:
http://cvs.php.net/diff.php/php-src/ext/pgsql/pgsql.c?r1=1.312&r2=1.313&ty=u
Index: php-src/ext/pgsql/pgsql.c
diff -u php-src/ext/pgsql/pgsql.c:1.312 php-src/ext/pgsql/pgsql.c:1.313
--- php-src/ext/pgsql/pgsql.c:1.312 Mon Jul 19 03:19:42 2004
+++ php-src/ext/pgsql/pgsql.c Mon Feb 14 18:36:16 2005
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql.c,v 1.312 2004/07/19 07:19:42 andi Exp $ */
+/* $Id: pgsql.c,v 1.313 2005/02/14 23:36:16 edink Exp $ */
#include <stdlib.h>
@@ -117,6 +117,7 @@
PHP_FE(pg_field_num, NULL)
PHP_FE(pg_field_size, NULL)
PHP_FE(pg_field_type, NULL)
+ PHP_FE(pg_field_type_oid, NULL)
PHP_FE(pg_field_prtlen, NULL)
PHP_FE(pg_field_is_null,NULL)
/* async message function */
@@ -1251,6 +1252,7 @@
#define PHP_PG_FIELD_NAME 1
#define PHP_PG_FIELD_SIZE 2
#define PHP_PG_FIELD_TYPE 3
+#define PHP_PG_FIELD_TYPE_OID 4
/* {{{ php_pgsql_get_field_info
*/
@@ -1259,6 +1261,7 @@
zval **result, **field;
PGresult *pgsql_result;
pgsql_result_handle *pg_result;
+ Oid oid;
if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &result,
&field)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -1290,6 +1293,24 @@
Z_STRLEN_P(return_value) =
strlen(Z_STRVAL_P(return_value));
Z_TYPE_P(return_value) = IS_STRING;
break;
+ case PHP_PG_FIELD_TYPE_OID:
+
+ oid = PQftype(pgsql_result, Z_LVAL_PP(field));
+
+ if (oid > LONG_MAX) {
+ smart_str s = {0};
+ smart_str_append_unsigned(&s, oid);
+ smart_str_0(&s);
+ Z_STRVAL_P(return_value) = s.c;
+ Z_STRLEN_P(return_value) = s.len;
+ Z_TYPE_P(return_value) = IS_STRING;
+ }
+ else
+ {
+ Z_LVAL_P(return_value) = (long)oid;
+ Z_TYPE_P(return_value) = IS_LONG;
+ }
+ break;
default:
RETURN_FALSE;
}
@@ -1320,6 +1341,15 @@
}
/* }}} */
+
+/* {{{ proto string pg_field_type_oid(resource result, int field_number)
+ Returns the type oid for the given field */
+PHP_FUNCTION(pg_field_type_oid)
+{
+
php_pgsql_get_field_info(INTERNAL_FUNCTION_PARAM_PASSTHRU,PHP_PG_FIELD_TYPE_OID);
+}
+/* }}} */
+
/* {{{ proto int pg_field_num(resource result, string field_name)
Returns the field number of the named field */
PHP_FUNCTION(pg_field_num)
http://cvs.php.net/diff.php/php-src/ext/pgsql/php_pgsql.h?r1=1.67&r2=1.68&ty=u
Index: php-src/ext/pgsql/php_pgsql.h
diff -u php-src/ext/pgsql/php_pgsql.h:1.67 php-src/ext/pgsql/php_pgsql.h:1.68
--- php-src/ext/pgsql/php_pgsql.h:1.67 Thu Jan 8 12:32:40 2004
+++ php-src/ext/pgsql/php_pgsql.h Mon Feb 14 18:36:16 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pgsql.h,v 1.67 2004/01/08 17:32:40 sniper Exp $ */
+/* $Id: php_pgsql.h,v 1.68 2005/02/14 23:36:16 edink Exp $ */
#ifndef PHP_PGSQL_H
#define PHP_PGSQL_H
@@ -98,6 +98,7 @@
PHP_FUNCTION(pg_field_num);
PHP_FUNCTION(pg_field_size);
PHP_FUNCTION(pg_field_type);
+PHP_FUNCTION(pg_field_type_oid);
PHP_FUNCTION(pg_field_prtlen);
PHP_FUNCTION(pg_field_is_null);
/* async message functions */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php