postgresql/doc
Bruce Momjian 9394d62c73 I have been working with user defined types and user defined c
functions.  One problem that I have encountered with the function
manager is that it does not allow the user to define type conversion
functions that convert between user types. For instance if mytype1,
mytype2, and mytype3 are three Postgresql user types, and if I wish to
define Postgresql conversion functions like

I run into problems, because the Postgresql dynamic loader would look
for a single link symbol, mytype3, for both pieces of object code.  If
I just change the name of one of the Postgresql functions (to make the
symbols distinct), the automatic type conversion that Postgresql uses,
for example, when matching operators to arguments no longer finds the
type conversion function.

The solution that I propose, and have implemented in the attatched
patch extends the CREATE FUNCTION syntax as follows. In the first case
above I use the link symbol mytype2_to_mytype3 for the link object
that implements the first conversion function, and define the
Postgresql operator with the following syntax

The patch includes changes to the parser to include the altered
syntax, changes to the ProcedureStmt node in nodes/parsenodes.h,
changes to commands/define.c to handle the extra information in the AS
clause, and changes to utils/fmgr/dfmgr.c that alter the way that the
dynamic loader figures out what link symbol to use.  I store the
string for the link symbol in the prosrc text attribute of the pg_proc
table which is currently unused in rows that reference dynamically
loaded
functions.


Bernie Frankpitt
1999-09-28 04:34:56 +00:00
..
src I have been working with user defined types and user defined c 1999-09-28 04:34:56 +00:00
TODO.detail Massimo's SET FSYNC and SHOW PG_OPTIONS changes, without SET QUERY_LIMIT. 1999-09-27 20:27:32 +00:00
admin.ps.gz Fix typos and wording in v6.5 release summary per Fred Horsh. 1999-06-14 06:55:45 +00:00
admin.tar.gz HTML versions of docs for v6.5 release. 1999-06-14 06:59:34 +00:00
bug.template Update for 6.6. 1999-07-18 18:06:42 +00:00
FAQ Update stuff for 6.5.1 release. 1999-07-10 16:28:02 +00:00
FAQ_AIX Update from Andreas Zeugswetter <andreas.zeugswetter@telecom.at> 1999-09-14 15:34:49 +00:00
FAQ_DEV Update stuff for 6.5.1 release. 1999-07-10 16:28:02 +00:00
FAQ_DigitalUnix Attached is a patch with some fixes that (I think that) should go into 1998-12-18 07:08:03 +00:00
FAQ_FreeBSD Short little FAQ for FreeBSD 1998-01-07 02:33:46 +00:00
FAQ_HPUX Update faq and hpux faq. 1999-06-05 18:24:55 +00:00
FAQ_Irix Install proper Irix FAQ. 1999-06-08 16:27:26 +00:00
FAQ_Linux Update FAQ's for release. 1999-06-05 03:43:07 +00:00
FAQ_SCO FAQs contributed for this release. 1999-05-27 16:05:38 +00:00
FAQ_Solaris Fix to give super user and createdb user proper update catalog rights. 1999-09-27 16:44:56 +00:00
internals.ps Add masters thesis to docs. 1999-01-18 01:09:14 +00:00
KNOWN_BUGS Add files to point to TODO list. 1999-07-01 05:31:22 +00:00
Makefile Switch from old man pages to new ones generated from sgml. 1999-08-08 15:09:04 +00:00
man.tar.gz Switch from old man pages to new ones generated from sgml. 1999-08-08 15:09:04 +00:00
MISSING_FEATURES Add files to point to TODO list. 1999-07-01 05:31:22 +00:00
postgres.tar.gz HTML versions of docs for v6.5 release. 1999-06-14 06:59:34 +00:00
programmer.ps.gz Fix URL for Norm Walsh's Style Sheets. 1999-06-14 06:56:31 +00:00
programmer.tar.gz HTML versions of docs for v6.5 release. 1999-06-14 06:59:34 +00:00
README.Charsets I've sent 3 mails to pgsql-patches. There are two files, one for doc 1999-08-16 20:27:19 +00:00
README.fsync Documentation on the fsync() patch from OpenLink 1996-09-19 20:22:23 +00:00
README.inet I agree. I think, though, that the best argument presented in the 1998-10-08 00:19:47 +00:00
README.locale Typo fix 1999-08-16 20:32:34 +00:00
README.mb document updated for 6.5.1 1999-07-11 22:59:26 +00:00
README.mb.jp document updated for 6.5.1 1999-07-11 22:59:26 +00:00
README.NT Update NT readme. 1999-09-28 01:43:00 +00:00
TODO Update TODO list. 1999-09-28 02:57:55 +00:00
tutorial.ps.gz New versions of hardcopy for 6.5 release. 1999-06-03 04:18:58 +00:00
tutorial.tar.gz HTML versions of docs for v6.5 release. 1999-06-14 06:59:34 +00:00
user.ps.gz User's Guide for v6.5. 1999-06-14 06:25:03 +00:00
user.tar.gz Fix cross-reference to large objects in the CREATE TYPE section. 1999-06-14 16:32:41 +00:00

From: "Joost Kraaijeveld" <JKraaijeveld@askesis.nl>
To: "Pgsql-Ports@Postgresql. Org" <pgsql-ports@postgreSQL.org>
Subject: RE: [PORTS] Re: psql under win32
Date: Wed, 21 Apr 1999 07:07:47 +0200
Message-ID: <000001be8bb4$e59b0ab0$0300a8c0@abraracourcix.askesis.nl>
MIME-Version: 1.0

Installing PostgreSQL on NT:

---------------------------------------------------------------------------

It can be done by done by typing configure, make and make install.

1. Install the Cygwin package
2. Update to EGCS 1.1.2
   (This may be optional.)

---------------------------------------------------------------------------

				OPTIONAL

1. Install the Andy Piper Tools (http://www.xemacs.freeserve.co.uk/)
   (This may be optional.)

---------------------------------------------------------------------------

			  CYGWIN32 INSTALLATION

1. Download the Cygwin32 IPC Package by Ludovic LANGE 
   http://www.multione.capgemini.fr:80/tools/pack_ipc/current.tar.gz
2. Untar the package and follow the readme instructions.
3. Apply the patch pgsql/src/win32/ipc.patch to the CygWin32 sources
   before compiling CygWin32.
4. I tested 1.03.
5. I used the \cygwin-b20\h-i568-cygwin32\i586-cygwin32\lib and
\cygwin-b20\h-i568-cygwin32\i586-cygwin32\include\sys instead of the
/usr/local/lib and usr/local/include/sys.

NOTE:
Also, the cygnus-bindir has to be placed in the path before the
NT-directories, because the sort.exe has to be taken for cygnus, not
NT.

---------------------------------------------------------------------------

		   POSTGRESQL INSTALL WITH NT SPECIFICS

1. Download the current version of PostgreSQL.
2. Untar the package.
3. Copy the files from \pgsql\src\win32 according to the readme file.
4. Edit \pgsql\src\template\cygwin32 if needed (I had to adjust the YFLAGS
path).
5. ./configure
6. make
7. create the directory /usr/local/pgsql manually: the mkdir cannot create a
directory 2 levels deep in one step.
8. make install
9. cd /usr/lical/pgsql/doc
10. make install
11. Set the environmental data
12. Initdb --username=jkr (do not run this command as administrator)

13. Open a new Cygwin command prompt
14. Start "ipc-deamon&" (background proces)
15. Start "postmaster -i 2>&1 > /tmp/postgres.log &" (background proces)
16. Start "tail -f /tmp/postgres.log" to see the messages

17. cd /usr/src/pgsql/src/test/regress
18. make all runtest

All test should be run, allthought the latest snapshot I tested (18-4)
appears to have some problems with locking.

NOTE:
By default, PostgreSQL clients like psql communicate using unix domain
sockets, which don't work on NT.  Start the postmaster with -i, and 
when connecting to the database from a client, set the PGHOST
environment variable to 'localhost' or supply the hostname on the
command line.

Joost