cvs: php4 /ext/pgsql/ pgsql.c php_pgsql.h
[email protected] ("Zeev Suraski") Wed, 31 May 2000 20:40:29 -0000
| Newsgroups | php.version4 |
|---|---|
| Message-ID | <cvszeev959805629@cvsserver> |
zeev Wed May 31 13:40:29 2000 EDT
Modified files:
/php4/ext/pgsql pgsql.c php_pgsql.h
Log:
@- Added pg_trace() and pg_untrace (Dominic J. Eidson & Zeev)
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.51 php4/ext/pgsql/pgsql.c:1.52
--- php4/ext/pgsql/pgsql.c:1.51 Thu May 25 00:51:40 2000
+++ php4/ext/pgsql/pgsql.c Wed May 31 13:40:28 2000
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql.c,v 1.51 2000/05/25 07:51:40 jah Exp $ */
+/* $Id: pgsql.c,v 1.52 2000/05/31 20:40:28 zeev Exp $ */
#include <stdlib.h>
@@ -48,6 +48,8 @@
PHP_FE(pg_cmdtuples, NULL)
PHP_FE(pg_dbname, NULL)
PHP_FE(pg_errormessage, NULL)
+ PHP_FE(pg_trace, NULL)
+ PHP_FE(pg_untrace, NULL)
PHP_FE(pg_options, NULL)
PHP_FE(pg_port, NULL)
PHP_FE(pg_tty, NULL)
@@ -1102,6 +1104,91 @@
#endif
}
/* }}} */
+
+
+/* {{{ proto bool pg_trace(string filename [, string mode [, resource connection]])
+ Enable tracing a PostgresSQL connection */
+PHP_FUNCTION(pg_trace)
+{
+ zval **z_filename, **z_mode, **z_pgsql_link;
+ int id = -1;
+ PGconn *pgsql;
+ char *mode = "w";
+ int issock, socketd;
+ FILE *fp;
+ PGLS_FETCH();
+
+ id = PGG(default_link);
+
+ switch (ZEND_NUM_ARGS()) {
+ case 1:
+ if (zend_get_parameters_ex(1, &z_filename)==FAILURE) {
+ RETURN_FALSE;
+ }
+ break;
+ case 2:
+ if (zend_get_parameters_ex(2, &z_filename, &z_mode)==FAILURE) {
+ RETURN_FALSE;
+ }
+ convert_to_string_ex(z_mode);
+ mode = Z_STRVAL_PP(z_mode);
+ break;
+ case 3:
+ if (zend_get_parameters_ex(3, &z_filename, &z_mode, &z_pgsql_link)==FAILURE) {
+ RETURN_FALSE;
+ }
+ convert_to_string_ex(z_mode);
+ mode = Z_STRVAL_PP(z_mode);
+ break;
+ default:
+ ZEND_WRONG_PARAM_COUNT();
+ break;
+ }
+
+ ZEND_FETCH_RESOURCE2(pgsql, PGconn *, z_pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ convert_to_string_ex(z_filename);
+
+ fp = php_fopen_wrapper(Z_STRVAL_PP(z_filename), mode, ENFORCE_SAFE_MODE, &issock, &socketd, NULL);
+
+ if (!fp) {
+ php_error(E_WARNING, "Unable to open %s for logging", Z_STRVAL_PP(z_filename));
+ RETURN_FALSE;
+ }
+
+ PQtrace(pgsql, fp);
+ ZEND_REGISTER_RESOURCE(NULL, fp, php_file_le_fopen());
+ RETURN_TRUE;
+}
+
+
+/* {{{ proto bool pg_untrace([int connection])
+ Disable tracing of a PostgreSQL connection */
+PHP_FUNCTION(pg_untrace)
+{
+ zval **pgsql_link;
+ int id = -1;
+ PGconn *pgsql;
+ PGLS_FETCH();
+
+ switch (ZEND_NUM_ARGS()) {
+ case 0:
+ id = PGG(default_link);
+ break;
+ case 1:
+ if (zend_get_parameters_ex(1, &pgsql_link)==FAILURE) {
+ RETURN_FALSE;
+ }
+ break;
+ default:
+ ZEND_WRONG_PARAM_COUNT();
+ break;
+ }
+
+ ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+ PQuntrace(pgsql);
+ RETURN_TRUE;
+}
+
/* {{{ proto int pg_locreate(int connection)
Create a large object */
Index: php4/ext/pgsql/php_pgsql.h
diff -u php4/ext/pgsql/php_pgsql.h:1.10 php4/ext/pgsql/php_pgsql.h:1.11
--- php4/ext/pgsql/php_pgsql.h:1.10 Tue May 23 23:48:04 2000
+++ php4/ext/pgsql/php_pgsql.h Wed May 31 13:40:28 2000
@@ -27,7 +27,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pgsql.h,v 1.10 2000/05/24 06:48:04 jah Exp $ */
+/* $Id: php_pgsql.h,v 1.11 2000/05/31 20:40:28 zeev Exp $ */
#ifndef _PHP_PGSQL_H
#define _PHP_PGSQL_H
@@ -69,6 +69,8 @@
PHP_FUNCTION(pg_close);
PHP_FUNCTION(pg_dbname);
PHP_FUNCTION(pg_errormessage);
+PHP_FUNCTION(pg_trace);
+PHP_FUNCTION(pg_untrace);
PHP_FUNCTION(pg_options);
PHP_FUNCTION(pg_port);
PHP_FUNCTION(pg_tty);