]> granicus.if.org Git - php/commitdiff
README update
authorYasuo Ohgaki <yohgaki@php.net>
Sun, 16 Dec 2001 15:36:33 +0000 (15:36 +0000)
committerYasuo Ohgaki <yohgaki@php.net>
Sun, 16 Dec 2001 15:36:33 +0000 (15:36 +0000)
Raise error for bogus installation path for --with-pgsql
Added check for pg_escape_*

ext/pgsql/README
ext/pgsql/config.m4

index aa16e99414eae46726dfaf7f989727863dddf352..b5d2d46aa6b57341667326bf7e56337a4c9cc466 100644 (file)
@@ -1,9 +1,25 @@
+==== About This Module ===
+PostgreSQL module provides access to PostgreSQL server from 
+PHP script. This module uses PostgreSQL C client lib called libpq.
+It is important that you use libpq that is later than backend 
+(PostgreSQL Server) version. Otherwise, you may experience 
+strange problems. 
+
 Please send e-mail to yohgaki@php.net if you have comments for 
 pgsql module. I appreciate your feedback.
 
-==== Note For PostgreSQL 7.2 beta ====
-Current CVS version (probably 4.0.6 or later) compiles without
-modefication.
+==== API Change ===
+Older PHP than 4.2.0, pg_loimport()/pg_loexport() connection 
+parameter as last parameter, not like other functions. From 4.2.0,
+connection parameter became 1st parameter. Old syntax is preserved, 
+but it will raise NOTICE error message.
+
+pg_connect()/pg_pconnect() has obsolete multi parameter syntax.
+This will be deleted in 4.3.0 or later.
+
+Omitting connectin parameter is NOT recommended. Connection 
+parameter may be required for future PHP version. Specify connection
+always if you don't want to rewrite code when it is changed.
 
 ==== Function Name Change ==== 
 Function names are going to be changed to confirm coding
@@ -11,8 +27,8 @@ standard. MySQL module has been done this already. Function names will
 be changed as follows.
 
 pg_errormessage -> pg_error_message
-pg_cmdtuples -> pg_affected_rows
-pg_fieldnum -> pg_field_num
+pg_cmdtuples    -> pg_affected_rows
+pg_fieldnum     -> pg_field_num
 and so on. Except pg_cmdtuples, under scores '_'  will be added to 
 names. 
 
@@ -21,14 +37,23 @@ compatibility.
 
 Manual will be updated when this change is commited to CVS source.
 
-==== TODO ===
-Add pg_result_error_message() to get error messages associated with 
-result resource.
-Add pg_lotell(), pg_lolseek().
-Add pg_escape(). This function requires PostgreSQL 7.2 or later.
-Add pg_copy_to() and pg_copy_from() for easier use of copy command.
+==== Configure Option Notes ====
+You cannot specify PostgreSQL source directly to build PostgreSQL
+module with specific version. You need to install PostgreSQL 
+somewhere in your system to build PHP with PostgreSQL support.
+
+==== Note For PostgreSQL 7.2 beta ====
+Current CVS version (probably 4.0.6 or later) compiles without
+modefication.
+
+==== TODO List ===
+pg_convert_array() - convert array elements for SQL statement.
+Support async connection create.
+
+==== Experimental Functions =====
+
+WARNING: API/behavior may be changed without notice.
 
-==== Experimental Async Functions =====
 Async query can improve application performance
 *significantly*. Please test and report any failure to
 yohgaki@php.net 
@@ -96,3 +121,52 @@ connection parameter. It's useful for error recovery.
 
 --------------------------------------------------------------------
 
+Copy functions
+
+--------------------------------------------------------------------
+mixed pg_copy_to(int connection_id, string table_name,
+                  [, string delim [, string null_as]])
+
+nt pg_copy_from(int connection_id, string table_name, array rows
+                    [, string delim [, string null_as]])
+
+--------------------------------------------------------------------
+
+Utility functions
+
+--------------------------------------------------------------------
+string pg_escape_string(string data)
+Escape string or binary for SQL statemen (7.2 or later)
+
+
+string pg_escape_bytea(string data)
+Escape string or binary for SQL statement (7.2 or later)
+
+--------------------------------------------------------------------
+
+Large Object Functions
+
+--------------------------------------------------------------------
+int pg_lo_tell(resource large_object)
+Returns current position of large object 
+
+--------------------------------------------------------------------
+bool pg_lo_lseek(resource large_object, int offset[, int whence])
+Seeks position of large object
+
+--------------------------------------------------------------------
+
+Notice messge function
+
+--------------------------------------------------------------------
+
+string pg_last_notice(resource connection)
+Returns the last notice set by the backend 
+Currently pg_last_notice() does not return notice message associated
+with the connection.
+
+--------------------------------------------------------------------
+
+Again, experimental functions are subject to be changed without 
+notice.
+
index 7ad7643cfc386b57d94dc1d2a9572b794cac2e7b..b053fd5da1f1fb1bdde8f2cc2c8abe9acd7f50ec 100644 (file)
@@ -2,45 +2,68 @@ dnl
 dnl $Id$
 dnl
 
-AC_DEFUN(PGSQL_INC_CHK,[if test -r $i$1/libpq-fe.h; then PGSQL_DIR=$i; PGSQL_INCDIR=$i$1])
+AC_DEFUN(PHP_PGSQL_CHECK_FUNCTIONS,[
+])
 
 PHP_ARG_WITH(pgsql,for PostgreSQL support,
 [  --with-pgsql[=DIR]      Include PostgreSQL support.  DIR is the PostgreSQL
                           base install directory, defaults to /usr/local/pgsql.])
 
 if test "$PHP_PGSQL" != "no"; then
-  PHP_EXPAND_PATH($PHP_PGSQL, PHP_PGSQL)
-  for i in /usr /usr/local /usr/local/pgsql $PHP_PGSQL; do
-    PGSQL_INC_CHK(/include)
-    el[]PGSQL_INC_CHK(/include/pgsql)
-    el[]PGSQL_INC_CHK(/include/postgresql)
-    fi
-  done
+  PHP_EXPAND_PATH($PGSQL_INCLUDE, PGSQL_INCLUDE)
+
+  if test "$PHP_PGSQL" = "yes"; then
+    PGSQL_SEARCH_PATHS="/usr /usr/local /usr/local/pgsql"
+  else
+    PGSQL_SEARCH_PATHS=$PHP_PGSQL
+  fi
   
-  if test -z "$PGSQL_DIR"; then
-    AC_MSG_ERROR(Cannot find libpq-fe.h. Please specify the installation path of PostgreSQL)
+  for i in $PGSQL_SEARCH_PATHS; do
+    for j in include include/pgsql include/postgres include/postgresql src/include/libpq ""; do
+      if test -r "$i/$j/libpq-fe.h"; then
+        PGSQL_INC_BASE=$i
+        PGSQL_INCLUDE=$i/$j
+      fi
+    done
+
+    for j in lib lib/pgsql lib/postgres lib/postgresql src/interfaces/libpq ""; do
+      if test -f "$i/$j/libpq.so"; then 
+        PGSQL_LIBDIR=$i/$j
+      fi
+    done
+  done
+
+  if test -z "$PGSQL_INCLUDE"; then
+    AC_MSG_ERROR(Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path)
+  fi
+
+  if test -z "$PGSQL_LIBDIR"; then
+    AC_MSG_ERROR(Cannot find libpq.so. Please specify correct PostgreSQL installation path)
   fi
 
-  PGSQL_INCLUDE=-I$PGSQL_INCDIR
-  PGSQL_LIBDIR=$PGSQL_DIR/lib
-  test -d $PGSQL_DIR/lib/pgsql && PGSQL_LIBDIR=$PGSQL_DIR/lib/pgsql
+  if test -z "$PGSQL_INCLUDE" -a -z "$PGSQL_LIBDIR" ; then
+    AC_MSG_ERROR([Unable to find libpq anywhere under $withval])
+  fi
 
+  AC_DEFINE(HAVE_PGSQL,1,[ ])
   old_LIBS=$LIBS
   old_LDFLAGS=$LDFLAGS
   LDFLAGS="$LDFLAGS -L$PGSQL_LIBDIR"
+  AC_CHECK_LIB(pq, PQescapeString,AC_DEFINE(HAVE_PQESCAPE,1,[ ]))
   AC_CHECK_LIB(pq, PQcmdTuples,AC_DEFINE(HAVE_PQCMDTUPLES,1,[ ]))
   AC_CHECK_LIB(pq, PQoidValue,AC_DEFINE(HAVE_PQOIDVALUE,1,[ ]))
   AC_CHECK_LIB(pq, PQclientEncoding,AC_DEFINE(HAVE_PQCLIENTENCODING,1,[ ]))
   AC_CHECK_LIB(pq, pg_encoding_to_char,AC_DEFINE(HAVE_PGSQL_WITH_MULTIBYTE_SUPPORT,1,[ ]))
   LIBS=$old_LIBS
   LDFLAGS=$old_LDFLAGS
-  
-  AC_DEFINE(HAVE_PGSQL,1,[ ])
 
   PHP_ADD_LIBRARY_WITH_PATH(pq, $PGSQL_LIBDIR, PGSQL_SHARED_LIBADD)
-  
-  PHP_EXTENSION(pgsql,$ext_shared)
   PHP_SUBST(PGSQL_SHARED_LIBADD)
+
+  PGSQL_INCLUDE=-I$PGSQL_INCLUDE
   PHP_SUBST(PGSQL_INCLUDE)
+
+  PHP_EXTENSION(pgsql,$ext_shared)
 fi
 
+