I forgot to send the patch to the maintainer ([EMAIL PROTECTED]) and the author (Zeev), but I guess they noticed patch in php-dev. http://marc.theaimsgroup.com/?l=php-dev&m=100483599714646&w=2
Anyway, the patch only includes functions that is easy to implement. I'll make any change if it is desired, name, coding style, etc. I'll make following changes. Please let me know, if you think other changes are needed. - add '_' to function names to confirm naming standard. - add a protorype function defined in pgsql.c - use zend_parse_parameters instead of zeng_get_parameters I'm planning to implement following functions to pgsql module in addition to the patch already sent. Comments/Objections are welcome. (I'll write functions that will be accepted or nobody start writing. :) == async query == resource pg_aconnect(string conn_str) Connect to db. (nonblocking) int pg_poll(resouce conn) Poll async connection status. Return current status as constant. PG_POLLING_ACTIVE PG_POLLING_READING PG_POLLING_WRITING PG_POLLING_FAILED, PG_POLLING_OK, This function is not be avilable to Windows unless libpq is compiled with WIN32_NON_BLOCKING_CONNECTIONS. I'm not going to write interface for PQgetLineAsync. Anyone need PQgetLineAsync, also? == other libpq interface == int pg_status([resource conn]) Check connection status. Return value is connestion status constant. PG_CONNECTION_STARTED - connecting PG_CONNECTION_MADE - connected PG_CONNECTION_AWAITING_RESPONSE - connecting PG_CONNECTION_AUTH_OK - connecting PG_CONNECTION_SETENV - connecting int pg_reset([resource conn]) Reconnect to db with the same value when connection is broken for some reason. Anyone need for async version? array pg_info([resource conn]) Get connection info as array. Return contents of PQconninfoOption struct. == utility functions == array pg_metadata(resource conn, string table [, int type]) Get metadata from system catalog. Returns array('field_name' => array('id' => int, 'type' => int, (data type id) 'len' => int, (length, -1 for variable length) 'notnull' => bool, 'hasdefault' => bool)); Does anyone need other metadata? array pg_convert(resource conn, string table, array fields [, int option]) Convert values in assoc array fields = array(field_name => field_value) to appropriate format for SQL statement. Returns array converted. Add slashes to string. Add quotes around string. Set field_value to "NULL" for empty string, etc. If field_value is not set/empty and field default defined in system catalog, set default value. Raise warning if value is invalid for the field. For example, malformed date, string for integer is invalid. "option" is conversion option, PG_CONV_CHECK - check only PG_CONV_STRICT - raise warning for non faital error PG_CONV_QUOTE - add quote around values for vchar, text datetime. PG_CONV_SLASH - add slashes if it needed. PG_CONV_NULLCHK - check values are defined for NOT NULL fields. PG_CONV_NO_DEFAULT - ignore default value even if value is empty string. I also would like to implement pg_insert(), pg_update(), pg_delete(), pg_select() for simple query. These function will use pg_convert() and pg_metadata() internally. == other == Provide ini entry to trun on/off async functions. I don't want to implement this, but I'm sure there will users use aysnc functions on persistent connection improper manner... libpq is thread safe from pgsql 7.0 as long as different connection is used. -- Yasuo Ohgaki -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]