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