cvs: php4 /ext/pgsql/ pgsql.c php_pgsql.h

[email protected] ("Jouni Ahto") Sun, 04 Jun 2000 20:24:07 -0000
Newsgroups php.version4
Message-ID <cvsjah960150247@cvsserver>
jah		Sun Jun  4 13:24:07 2000 EDT

  Modified files:
    /php4/ext/pgsql	pgsql.c php_pgsql.h 
  Log:
  
  - Added functions pg_loimport(), pg_loexport().
  @- Added functions pg_loimport(), pg_loexport(). (Jouni)
  
  
Index: php4/ext/pgsql/pgsql.c
diff -u php4/ext/pgsql/pgsql.c:1.52 php4/ext/pgsql/pgsql.c:1.53
--- php4/ext/pgsql/pgsql.c:1.52	Wed May 31 13:40:28 2000
+++ php4/ext/pgsql/pgsql.c	Sun Jun  4 13:24:07 2000
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: pgsql.c,v 1.52 2000/05/31 20:40:28 zeev Exp $ */
+/* $Id: pgsql.c,v 1.53 2000/06/04 20:24:07 jah Exp $ */
 
 #include <stdlib.h>
 
@@ -76,6 +76,8 @@
 	PHP_FE(pg_loread,		NULL)
 	PHP_FE(pg_lowrite,		NULL)
 	PHP_FE(pg_loreadall,	NULL)
+	PHP_FE(pg_loimport,		NULL)
+	PHP_FE(pg_loexport,		NULL)
 	{NULL, NULL, NULL}
 };
 
@@ -1510,6 +1512,95 @@
 	return_value->type = IS_LONG;
 }
 /* }}} */
+
+/* {{{ proto int pg_loimport(string filename[, resource connection])
+   Import large object direct from filesystem */
+PHP_FUNCTION(pg_loimport)
+{
+	zval **pgsql_link, **file_in;
+	int id = -1;
+	PGconn *pgsql;
+	Oid oid;
+	PLS_FETCH();
+	PGLS_FETCH();
+	
+	switch (ZEND_NUM_ARGS()) {
+		case 1:
+			if (zend_get_parameters_ex(1, &file_in) == FAILURE) {
+				RETURN_FALSE;
+			}
+			id = PGG(default_link);
+			break;
+		case 2:
+			if (zend_get_parameters_ex(2, &file_in, &pgsql_link) == FAILURE) {
+				RETURN_FALSE;
+			}
+			convert_to_string_ex(file_in);
+			break;
+		default:
+			WRONG_PARAM_COUNT;
+			break;
+	}
+	
+	if (PG(safe_mode) &&(!php_checkuid(Z_STRVAL_PP(file_in), 2))) {
+		RETURN_FALSE;
+	}
+
+	ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+
+	oid = lo_import(pgsql, Z_STRVAL_PP(file_in));
+
+	if (oid > 0) {
+		RETURN_LONG((int)oid);
+	} else {
+		RETURN_FALSE;
+	}
+}
+/* }}} */
+
+/* {{{ proto int pg_loexport(int objoid, string filename[, resource connection])
+   Emport large object direct to filesystem */
+PHP_FUNCTION(pg_loexport)
+{
+	zval **pgsql_link, **oid_id, **file_out;
+	int id = -1;
+	Oid oid;
+	PGconn *pgsql;
+	PGLS_FETCH();
+	
+	switch (ZEND_NUM_ARGS()) {
+		case 2:
+			if (zend_get_parameters_ex(2, &oid_id, &file_out) == FAILURE) {
+				RETURN_FALSE;
+			}
+			convert_to_long_ex(oid_id);
+			convert_to_string_ex(file_out);
+			id = PGG(default_link);
+			break;
+		case 3:
+			if (zend_get_parameters_ex(3, &oid_id, &file_out, &pgsql_link) == FAILURE) {
+				RETURN_FALSE;
+			}
+			convert_to_long_ex(oid_id);
+			convert_to_string_ex(file_out);
+			break;
+		default:
+			WRONG_PARAM_COUNT;
+			break;
+	}
+	
+	ZEND_FETCH_RESOURCE2(pgsql, PGconn *, pgsql_link, id, "PostgreSQL link", le_link, le_plink);
+
+	oid = (Oid) Z_LVAL_PP(oid_id);
+
+	if (lo_export(pgsql, oid, Z_STRVAL_PP(file_out))) {
+		RETURN_TRUE;
+	} else {
+		RETURN_FALSE;
+	}
+}
+/* }}} */
+
 	
 #endif
 
@@ -1519,3 +1610,4 @@
  * c-basic-offset: 4
  * End:
  */
+
Index: php4/ext/pgsql/php_pgsql.h
diff -u php4/ext/pgsql/php_pgsql.h:1.11 php4/ext/pgsql/php_pgsql.h:1.12
--- php4/ext/pgsql/php_pgsql.h:1.11	Wed May 31 13:40:28 2000
+++ php4/ext/pgsql/php_pgsql.h	Sun Jun  4 13:24:07 2000
@@ -1,33 +1,23 @@
 /*
    +----------------------------------------------------------------------+
-   | PHP HTML Embedded Scripting Language Version 3.0                     |
+   | PHP version 4.0                                                      |
    +----------------------------------------------------------------------+
-   | Copyright (c) 1997,1998 PHP Development Team (See Credits file)      |
+   | Copyright (c) 1997, 1998, 1999, 2000 The PHP Group                   |
    +----------------------------------------------------------------------+
-   | This program is free software; you can redistribute it and/or modify |
-   | it under the terms of one of the following licenses:                 |
-   |                                                                      |
-   |  A) the GNU General Public License as published by the Free Software |
-   |     Foundation; either version 2 of the License, or (at your option) |
-   |     any later version.                                               |
-   |                                                                      |
-   |  B) the PHP License as published by the PHP Development Team and     |
-   |     included in the distribution in the file: LICENSE                |
-   |                                                                      |
-   | This program is distributed in the hope that it will be useful,      |
-   | but WITHOUT ANY WARRANTY; without even the implied warranty of       |
-   | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        |
-   | GNU General Public License for more details.                         |
-   |                                                                      |
-   | You should have received a copy of both licenses referred to here.   |
-   | If you did not, or have any questions about PHP licensing, please    |
-   | contact [email protected].                                                |
+   | This source file is subject to version 2.02 of the PHP license,      |
+   | that is bundled with this package in the file LICENSE, and is        |
+   | available at through the world-wide-web at                           |
+   | http://www.php.net/license/2_02.txt.                                 |
+   | If you did not receive a copy of the PHP license and are unable to   |
+   | obtain it through the world-wide-web, please send a note to          |
+   | [email protected] so we can mail you a copy immediately.               |
    +----------------------------------------------------------------------+
-   | Authors: Jouni Ahto                                                  |
+   | Authors: Zeev Suraski <[email protected]>                                |
+   |          Jouni Ahto <[email protected]>                                   |
    +----------------------------------------------------------------------+
  */
  
-/* $Id: php_pgsql.h,v 1.11 2000/05/31 20:40:28 zeev Exp $ */
+/* $Id: php_pgsql.h,v 1.12 2000/06/04 20:24:07 jah Exp $ */
 
 #ifndef _PHP_PGSQL_H
 #define _PHP_PGSQL_H
@@ -98,6 +88,8 @@
 PHP_FUNCTION(pg_loread);
 PHP_FUNCTION(pg_lowrite);
 PHP_FUNCTION(pg_loreadall);
+PHP_FUNCTION(pg_loimport);
+PHP_FUNCTION(pg_loexport);
 
 void php_pgsql_do_connect(INTERNAL_FUNCTION_PARAMETERS,int persistent);
 int php_pgsql_get_default_link(INTERNAL_FUNCTION_PARAMETERS);