mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 00:03:57 -04:00 
			
		
		
		
	Update INSTALL, etc. for release 6.4. Update pgaccess to 0.88.
This commit is contained in:
		
							parent
							
								
									c9ac0ceb61
								
							
						
					
					
						commit
						690235fcdd
					
				
							
								
								
									
										165
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										165
									
								
								HISTORY
									
									
									
									
									
								
							| @ -1,3 +1,168 @@ | |||||||
|  | PostgreSQL 6.4               Tue Sep  1 21:18:17 EDT 1998 | ||||||
|  | ========================================================= | ||||||
|  | 
 | ||||||
|  | A dump/restore is required for those wishing to migrate data from | ||||||
|  | previous releases of PostgreSQL. | ||||||
|  | 
 | ||||||
|  | Bug Fixes | ||||||
|  | --------- | ||||||
|  | Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan) | ||||||
|  | Remove char2-16 data types, use char/varchar(Darren) | ||||||
|  | Pqfn not handles a NOTICE message(Anders) | ||||||
|  | Short-term locks now retry locking at random times(David) | ||||||
|  | Fix up "ISO-style" timespan decoding and encoding(Thomas) | ||||||
|  | Fix problem with table drop after rollback of transaction(Vadim) | ||||||
|  | Change error message and remove non-functional update message(Vadim) | ||||||
|  | Fix for COPY array checking | ||||||
|  | Fix for SELECT 1 UNION SELECT NULL | ||||||
|  | Fix for buffer leaks in large object calls(Pascal) | ||||||
|  | Change owner from oid to int4 type(Bruce) | ||||||
|  | Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim() | ||||||
|  | Fix for usernames longer than eight characters(Tom) | ||||||
|  | Fix for shared invalidation cache overflow(Massimo) | ||||||
|  | Prevent file descriptor leaks in failed COPY's(Bruce) | ||||||
|  | 
 | ||||||
|  | Enhancements | ||||||
|  | ------------ | ||||||
|  | Upgrade ECPG to 2.0, see src/interfaces/ecpc/ChangeLog(Michael) | ||||||
|  | Show the index used in an explain(Zeugswetter) | ||||||
|  | Multi-byte awareness of many data data types and functions(Tatsuo) | ||||||
|  | New configure --with-mb option(Tatsuo) | ||||||
|  | New initdb --pgencoding option(Tatsuo) | ||||||
|  | New createdb -E multibyte option(Tatsuo) | ||||||
|  | Select version(); now returns PostgreSQL version(Jeroen) | ||||||
|  | Libpq now allows asynchronous clients(Tom) | ||||||
|  | Allow cancel from client of backend query(Tom) | ||||||
|  | Psql now cancels query with Control-C(Tom) | ||||||
|  | Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas) | ||||||
|  | Add routines to convert between varchar and bpchar(Thomas) | ||||||
|  | Add routines to allow sizing of varchar and bpchar into target columns(Thomas) | ||||||
|  | Add bit flags to support timezonehour and minute in data retrieval(Thomas) | ||||||
|  | Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas) | ||||||
|  | Fixes for unary minus parsing with leading spaces(Thomas) | ||||||
|  | Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas) | ||||||
|  | Check for and properly ignore FOREIGN KEY column constraints(Thomas) | ||||||
|  | Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas) | ||||||
|  | Enable HAVING clause but no fixes elsewhere yet. | ||||||
|  | Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas) | ||||||
|  | Save string type if specified for DEFAULT clause handling(Thomas) | ||||||
|  | Coerce operations involving different data types(Thomas) | ||||||
|  | Allow some index use for columns of different types(Thomas) | ||||||
|  | Add capabilities for automatic type conversion(Thomas) | ||||||
|  | Cleanups for large objects, so file is truncated on open(Peter) | ||||||
|  | Readline cleanups(Tom) | ||||||
|  | Allow psql  \f \ to make spaces as delimiter(Bruce) | ||||||
|  | Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce) | ||||||
|  | Msql compatibility library in /contrib(Aldrin) | ||||||
|  | Remove the requirement that ORDER/GROUP BY clause identifiers be  | ||||||
|  | included in the target list(David) | ||||||
|  | Convert columns to match columns in UNION clauses(Thomas) | ||||||
|  | Remove fork()/exec() and only do fork()(Bruce) | ||||||
|  | Jdbc cleanups(Peter) | ||||||
|  | Show backend status on ps command line(only works on some platforms)(Bruce) | ||||||
|  | Pg_hba.conf now has a sameuser option in the database field | ||||||
|  | Make lo_unlink take oid param, not int4 | ||||||
|  | New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce) | ||||||
|  | Libpgtcl now gets async notifies from libpq(Tom) | ||||||
|  | New locale patch, see docs/README/locale(Oleg) | ||||||
|  | Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb) | ||||||
|  | New contrib/lo code for large object orphan removal(Peter) | ||||||
|  | New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes | ||||||
|  | feature, see /doc/README.mb(Tatsuo) | ||||||
|  | /contrib/noupdate code to revoke update permission on a column | ||||||
|  | Libpq can now be compiled on win32(Magnus) | ||||||
|  | Add PQsetdbLogin() in libpq | ||||||
|  | Two styles we agreed upon for database descriptors(Thomas) | ||||||
|  | New 8-byte integer type, checked by configure for OS support(Thomas) | ||||||
|  | Surround table and column names with double-quotes(Thomas) in generated  | ||||||
|  | sql code to preserve case (SQL92 syntax)(Thomas) | ||||||
|  | New libpqrequestCancel(Tom) | ||||||
|  | PQreset() now works with passwords(Tom) | ||||||
|  | Handle case of GROUP BY target list column number out of range(David) | ||||||
|  | Allow UNION in subselects | ||||||
|  | Add auto-size to screen to \d? commands(Bruce) | ||||||
|  | Use UNION to show all \d? results in one query(Bruce) | ||||||
|  | Add \d? field search feature(Bruce) | ||||||
|  | Pg_dump issues fewer \connect requests(Tom) | ||||||
|  | Document pg_dump -z flag in manual page(Tom) | ||||||
|  | Add HAVING clause with full support for subselects and unions(Stephan) | ||||||
|  | Full text indexing routines in contrib/fulltextindex(Marteen) | ||||||
|  | Transaction ids now stored in shared memory(Vadim) | ||||||
|  | New PGCLIENTENCODING when issuing COPY command(Tatsuo) | ||||||
|  | Support for SQL92 syntax "SET NAMES"(Tatsuo) | ||||||
|  | Support for LATIN2-5(Tatsuo) | ||||||
|  | Add UNICODE regression test case(Tatsuo) | ||||||
|  | Lock manager cleanup, new locking modes for LLL(Vadim) | ||||||
|  | Allow index use with OR clauses(Bruce) | ||||||
|  | Allows "SELECT NULL ORDER BY 1;" | ||||||
|  | Explain VERBOSE prints the plan, and now pretty-prints the plan to | ||||||
|  | the postmaster log file(Bruce) | ||||||
|  | Add Indices display to \d command(Bruce) | ||||||
|  | Allow GROUP BY on functions(David) | ||||||
|  | New pg_class.relkind for large objects(Bruce) | ||||||
|  | New way to send libpq NOTICE messages to a different location(Tom) | ||||||
|  | New \w write command to psql(Bruce) | ||||||
|  | New /contrib/findoidjoins scans oid columns to find join relationships(Bruce) | ||||||
|  | Allow binary-compatible indices to be considered when checking for valid | ||||||
|  | indices for restriction clauses containing a constant(Thomas) | ||||||
|  | New ISBN/ISSN code in /contrib/isbn_issn | ||||||
|  | Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas) | ||||||
|  | New rewrite system fixes many problems with rules and views(Jan) | ||||||
|  | 	* Rules on relations work | ||||||
|  | 	* Event qualifications on insert/update/delete work | ||||||
|  | 	* New OLD variable to reference CURRENT, CURRENT will be remove in future | ||||||
|  | 	* Update rules can reference NEW and OLD in rule qualifications/actions | ||||||
|  | 	* Insert/update/delete rules on views work | ||||||
|  | 	* Multiple rule actions are now supported, surrounded by parentheses | ||||||
|  | 	* Regular users can create views/rules on tables they have RULE permits | ||||||
|  | 	* Rules and views inherit the permissions on the creator | ||||||
|  | 	* No rules at the column level | ||||||
|  | 	* No UPDATE NEW/OLD rules | ||||||
|  | 	* New pg_rule and pg_view system views | ||||||
|  | 	* Only a single action on SELECT rules | ||||||
|  | 	* Total rewrite overhaul, perhaps for 6.5 | ||||||
|  | 
 | ||||||
|  | System indexes are now multi-key(Bruce) | ||||||
|  | Oidint2, oidint4, and oidname types are removed(Bruce) | ||||||
|  | Use system cache for more system table lookups(Bruce) | ||||||
|  | New backend programming language PL/pgSQL in backend/pl(Jan) | ||||||
|  | New SERIAL data type, auto-creates sequence/index(Thomas) | ||||||
|  | Enable assert checking without a recompile(Massimo) | ||||||
|  | User lock enhancements(Massimo) | ||||||
|  | New setval() command to set sequence value(Massimo) | ||||||
|  | Auto-remove unix socket file on startup if no postmaster running(Massimo) | ||||||
|  | Conditional trace package(Massimo) | ||||||
|  | New UNLISTEN command(Massimo) | ||||||
|  | Psql now compiles under win32 using win32.mak(Magnus) | ||||||
|  | Lo_read no longer stores trailing NULL(Bruce) | ||||||
|  | Identifiers are now truncated to 31 characters internally(Bruce) | ||||||
|  | 
 | ||||||
|  | Source Tree Changes | ||||||
|  | ------------------- | ||||||
|  | /contrib cleanup(Jun) | ||||||
|  | Inline some small functions called for every row(Bruce) | ||||||
|  | Alpha/linux fixes | ||||||
|  | Hp/UX cleanups(Tom) | ||||||
|  | Multi-byte regression tests(Soonmyung.) | ||||||
|  | Remove --disabled options from configure | ||||||
|  | Define PGDOC to use POSTGRESDIR by default | ||||||
|  | Make regression optional | ||||||
|  | Remove extra braces code to pgindent(Bruce) | ||||||
|  | Add bsdi shared library support(Bruce) | ||||||
|  | New --without-CXX support configure option(Brook) | ||||||
|  | New FAQ_CVS | ||||||
|  | Update backend flowchart in tools/backend(Bruce) | ||||||
|  | Change atttypmod from int16 to int32(Bruce, Tom) | ||||||
|  | Getrusage() fix for platforms that do not have it(Tom) | ||||||
|  | Add PGUSER to libpq man page | ||||||
|  | Ns32k platform fixes(Phil Nelson) | ||||||
|  | Sco 7/UnixWare 2.x fixes(Billy,others) | ||||||
|  | Sparc/Solaris 2.5 fixes(Ryan) | ||||||
|  | Pgbuiltin.3 is obsolete, move to doc files(Thomas) | ||||||
|  | Even more documention(Thomas) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| PostgreSQL 6.3.2             Tue Apr  7 16:53:16 EDT 1998 | PostgreSQL 6.3.2             Tue Apr  7 16:53:16 EDT 1998 | ||||||
| ========================================================= | ========================================================= | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										25
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								INSTALL
									
									
									
									
									
								
							| @ -2,7 +2,7 @@ POSTGRESQL INSTALLATION INSTRUCTIONS | |||||||
| Copyright (c) 1997 Regents of  the University of California | Copyright (c) 1997 Regents of  the University of California | ||||||
| 
 | 
 | ||||||
| This is file /usr/src/pgsql/INSTALL.  It contains notes on how to install | This is file /usr/src/pgsql/INSTALL.  It contains notes on how to install | ||||||
| PostgreSQL v6.3.2.  Up to date information on PostgreSQL may be found at | PostgreSQL v6.4.  Up to date information on PostgreSQL may be found at | ||||||
| http://www.postgresql.org. | http://www.postgresql.org. | ||||||
| 
 | 
 | ||||||
| PostgreSQL is an RDBMS database server.  It is not completely ANSI SQL | PostgreSQL is an RDBMS database server.  It is not completely ANSI SQL | ||||||
| @ -68,14 +68,11 @@ You should have at least 8 MB of memory and at least 45 MB of disk space | |||||||
| to hold the source, binaries, and user databases.  After installation | to hold the source, binaries, and user databases.  After installation | ||||||
| you may reduce this to about 3 Mbytes plus space for user databases. | you may reduce this to about 3 Mbytes plus space for user databases. | ||||||
| 
 | 
 | ||||||
| To those upgrading from PostgreSQL 6.3: | To those upgrading from PostgreSQL 6.3.*: | ||||||
| --------------------------------------- | ---------------------------------------- | ||||||
| 
 |  | ||||||
| A dump/restore is NOT required for those running 6.3.  A |  | ||||||
| 'make distclean', 'make', and 'make install' is all that is required. |  | ||||||
| This last step should be performed while the postmaster is not running. |  | ||||||
| You should re-link any custom applications that use PostgreSQL libraries. |  | ||||||
| 
 | 
 | ||||||
|  | A dump/restore is required for those running 6.3.*.  pg_dumpall can help | ||||||
|  | with this task. | ||||||
| 
 | 
 | ||||||
| To those doing a fresh install or upgrading from previous releases of | To those doing a fresh install or upgrading from previous releases of | ||||||
| PostgreSQL: | PostgreSQL: | ||||||
| @ -118,7 +115,7 @@ PostgreSQL: | |||||||
| 
 | 
 | ||||||
|       To check for disk space, use command "df -k". |       To check for disk space, use command "df -k". | ||||||
| 
 | 
 | ||||||
|   4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-6.3.2.tar.gz from the |   4) Ftp file ftp://ftp.postgresql.org/pub/postgresql-6.4.tar.gz from the | ||||||
|      Internet.  Store it in your home directory. |      Internet.  Store it in your home directory. | ||||||
| 
 | 
 | ||||||
|   5) Some platforms use flex.  If your system uses flex then make sure |   5) Some platforms use flex.  If your system uses flex then make sure | ||||||
| @ -160,7 +157,7 @@ PostgreSQL: | |||||||
|      step.  Type (with the gunzip line and the following line typed as one |      step.  Type (with the gunzip line and the following line typed as one | ||||||
|      line): |      line): | ||||||
|         cd |         cd | ||||||
|         gunzip -c postgresql-6.3.2.tar.gz | |         gunzip -c postgresql-6.4.tar.gz | | ||||||
|             tar xvf - src/bin/pg_dump/pg_dumpall |             tar xvf - src/bin/pg_dump/pg_dumpall | ||||||
|         chmod a+x src/bin/pg_dump/pg_dumpall |         chmod a+x src/bin/pg_dump/pg_dumpall | ||||||
|         src/bin/pg_dump/pg_dumpall > db.out |         src/bin/pg_dump/pg_dumpall > db.out | ||||||
| @ -226,7 +223,7 @@ PostgreSQL: | |||||||
| 
 | 
 | ||||||
|  10) Unzip and untar the new source file.  Type |  10) Unzip and untar the new source file.  Type | ||||||
|         cd /usr/src/pgsql |         cd /usr/src/pgsql | ||||||
|         gunzip -c ~/postgresql-6.3.2.tar.gz | tar xvf - |         gunzip -c ~/postgresql-6.4.tar.gz | tar xvf - | ||||||
| 
 | 
 | ||||||
|  11) Configure the source code for your system.  It is this step at which |  11) Configure the source code for your system.  It is this step at which | ||||||
|      you can specify your actual source path and installation paths for |      you can specify your actual source path and installation paths for | ||||||
| @ -433,7 +430,7 @@ PostgreSQL: | |||||||
|      PostgreSQL. |      PostgreSQL. | ||||||
| 
 | 
 | ||||||
|      For a i686/Linux-ELF platform, no tests failed since this is the |      For a i686/Linux-ELF platform, no tests failed since this is the | ||||||
|      v6.3.2 regression testing reference platform. |      v6.4 regression testing reference platform. | ||||||
| 
 | 
 | ||||||
|      For the SPARC/Linux-ELF platform, using the 970525 beta version of |      For the SPARC/Linux-ELF platform, using the 970525 beta version of | ||||||
|      PostgreSQL v6.2 the following tests "failed": |      PostgreSQL v6.2 the following tests "failed": | ||||||
| @ -553,7 +550,7 @@ PostgreSQL: | |||||||
|         rm -rf /usr/local/pgsql_6_0 |         rm -rf /usr/local/pgsql_6_0 | ||||||
|         # Also delete old database directory tree if it is not in |         # Also delete old database directory tree if it is not in | ||||||
|         #  /usr/local/pgsql_6_0/data |         #  /usr/local/pgsql_6_0/data | ||||||
|         rm ~/postgresql-6.3.2.tar.gz |         rm ~/postgresql-6.4.tar.gz | ||||||
| 
 | 
 | ||||||
|  26) You will probably want to print out the documentation.  Here is how |  26) You will probably want to print out the documentation.  Here is how | ||||||
|      you might do it if you have Ghostscript on your system and are |      you might do it if you have Ghostscript on your system and are | ||||||
| @ -580,7 +577,7 @@ PostgreSQL: | |||||||
|      supported platforms.  We therefore ask you to let us know if you did |      supported platforms.  We therefore ask you to let us know if you did | ||||||
|      or did not get PostgreSQL to work on you system.  Please send a |      or did not get PostgreSQL to work on you system.  Please send a | ||||||
|      mail message to pgsql-ports@postgresql.org telling us the following: |      mail message to pgsql-ports@postgresql.org telling us the following: | ||||||
|        - The version of PostgreSQL (6.3.2, 6.2.1, beta 970703, etc.). |        - The version of PostgreSQL (6.4, 6.3.2, beta 970703, etc.). | ||||||
|        - Your operating system (i.e. RedHat v4.0 Linux v2.0.26). |        - Your operating system (i.e. RedHat v4.0 Linux v2.0.26). | ||||||
|        - Your hardware (SPARC, i486, etc.). |        - Your hardware (SPARC, i486, etc.). | ||||||
|        - Did you compile, install and run the regression tests cleanly? |        - Did you compile, install and run the regression tests cleanly? | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								README
									
									
									
									
									
								
							| @ -2,7 +2,7 @@ | |||||||
| PostgreSQL Data Base Management System (formerly known as Postgres, then | PostgreSQL Data Base Management System (formerly known as Postgres, then | ||||||
| as Postgres95). | as Postgres95). | ||||||
|    |    | ||||||
| This directory contains the version 6.3.2 release of the PostgreSQL | This directory contains the version 6.4 release of the PostgreSQL | ||||||
| database server.  The server is not ANSI SQL compliant, but it gets | database server.  The server is not ANSI SQL compliant, but it gets | ||||||
| closer with every release.  After you unzip and untar the distribution | closer with every release.  After you unzip and untar the distribution | ||||||
| file, look at file INSTALL for the installation notes and file HISTORY | file, look at file INSTALL for the installation notes and file HISTORY | ||||||
|  | |||||||
							
								
								
									
										490
									
								
								doc/FAQ_Irix
									
									
									
									
									
								
							
							
						
						
									
										490
									
								
								doc/FAQ_Irix
									
									
									
									
									
								
							| @ -1,490 +0,0 @@ | |||||||
| ====================================================== |  | ||||||
| Frequently Asked Questions (FAQ) for PostgreSQL >=V6.1 |  | ||||||
| IRIX Specific |  | ||||||
| TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ |  | ||||||
| ====================================================== |  | ||||||
| last updated:           Mon Mar 05 17:00:00 GMT 1998 |  | ||||||
| 
 |  | ||||||
| current maintainer:     Andrew C.R. Martin (martin@biochem.ucl.ac.uk) |  | ||||||
| original author:        Andrew C.R. Martin (martin@biochem.ucl.ac.uk) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Changes in this version (* = modified, + = new, - = removed): |  | ||||||
| *1.5)   Can I install PostgreSQL (<V6.3) under Irix 6.x? |  | ||||||
| +1.10)  How do I install PostgreSQL V6.3 under Irix 6.x? |  | ||||||
| 
 |  | ||||||
| This file is divided approximately as follows: |  | ||||||
| 1.*)    Installing PostgreSQL |  | ||||||
| 2.*)    Uninstalling PostgreSQL |  | ||||||
| 3.*)    Extending PostgreSQL |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Questions answered: |  | ||||||
| 1.1)    What extra items do I need to install PostgreSQL under Irix? |  | ||||||
| 1.2)    What changes do I need to make to src/Makefile.global? |  | ||||||
| 1.3)    What are the references in X11_LIB to libsocket and libnsl in |  | ||||||
|         src/Makefile.global? |  | ||||||
| 1.4)    Are there any other changes I should make? |  | ||||||
| 1.5)    Can I install PostgreSQL (<V6.3) under Irix 6.x? |  | ||||||
| 1.6)    The make fails with the following message: |  | ||||||
|         ld32: ERROR 4: Conflicting flag setting: -call_shared |  | ||||||
| 1.7)    Why won't it link? (Problems with lorder) |  | ||||||
| 1.8)    I have major problems with IRIX 6! |  | ||||||
| 1.9)    Why does lex fail with PostgreSQL 6.2.1? |  | ||||||
| 1.10)   How do I install PostgreSQL V6.3 under Irix 6.x? |  | ||||||
| 2.1)    Why can't I move the executable files? |  | ||||||
| 3.1)    How do I compile a C program to create a function for extending |  | ||||||
|         PostgreSQL |  | ||||||
| 
 |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| Section 1:      Installing PostgreSQL |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| 1.1)    What extra items do I need to install PostgreSQL under Irix? |  | ||||||
| 
 |  | ||||||
|         You *must* have the following installed: |  | ||||||
|         a) Gnu make (installed as gmake) |  | ||||||
| 
 |  | ||||||
|         You are recommended to install the following: |  | ||||||
|         a) GNU install (installed as ginstall) |  | ||||||
|            (This is part of the GNU fileutils package) |  | ||||||
| 
 |  | ||||||
|         You may choose to install the following: |  | ||||||
|         a) GNU readline library (if you wish psql to have readline |  | ||||||
|            support). |  | ||||||
|         b) tcl/tk (if you wish to compile pgtclsh) |  | ||||||
| 
 |  | ||||||
| 1.2)    What changes do I need to make to src/Makefile.global or |  | ||||||
|         src/Makefile.custom? |  | ||||||
| 
 |  | ||||||
|         The easiest way to do this is to use the customize script in |  | ||||||
|         the src directory. |  | ||||||
| 
 |  | ||||||
|         You *must* set the following variables: |  | ||||||
|                 PORTNAME=       irix5 |  | ||||||
| 
 |  | ||||||
|         You will also need to change the following to match your own |  | ||||||
|         installation: |  | ||||||
|                 POSTGRESDIR |  | ||||||
| 
 |  | ||||||
|         If you switch on the USE_TCL option, you will need to set these: |  | ||||||
|                 TCL_INCDIR=  |  | ||||||
|                 TCL_LIBDIR=  |  | ||||||
|                 TCL_LIB =  |  | ||||||
|                 TK_INCDIR= |  | ||||||
|                 TK_LIBDIR= |  | ||||||
|                 TK_LIB = |  | ||||||
| 
 |  | ||||||
|         You may also make any other changes you need as documented in |  | ||||||
|         the INSTALL file and in Makefile.global |  | ||||||
| 
 |  | ||||||
| 1.3)    What are the references in X11_LIB to libsocket and libnsl in |  | ||||||
|         src/Makefile.global? |  | ||||||
| 
 |  | ||||||
|         This was a problem in 1.08 (they are Sun Solaris specific).  |  | ||||||
|         It is fixed in 1.09 and above. |  | ||||||
| 
 |  | ||||||
| 1.4)    Are there any other changes I should make? |  | ||||||
| 
 |  | ||||||
|         If you have installed the GNU install program (ginstall), you |  | ||||||
|         should add the following line to src/Makefile.custom: |  | ||||||
|                 CUSTOM_INSTALL=ginstall |  | ||||||
| 
 |  | ||||||
|         For an explanation as to why this is a good idea, see Question 2.1 |  | ||||||
|         Ginstall is part of the GNU fileutils package. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.5)    Can I install PostgreSQL (<V6.3) under Irix 6.x? |  | ||||||
| 
 |  | ||||||
|         Instructions for PostgreSQL V6.3 are answered in Question 1.10! |  | ||||||
| 
 |  | ||||||
|         Irix 6.2-6.4 has a bug in ld which mishandles the addresses of |  | ||||||
|         static procedures when object files are assembled into |  | ||||||
|         larger object files using 'ld -r'. This bug has been reported |  | ||||||
|         to Silicon Graphics.  |  | ||||||
| 
 |  | ||||||
|         One option is to use the Gnu version of ld. Alternatively, |  | ||||||
|         the following patch should be applied as a workaround.  |  | ||||||
|         (Supplied by Bob Bruccoleri <bruc@bms.com>) |  | ||||||
| 
 |  | ||||||
| *** ./backend/Makefile.orig     Thu May 22 00:00:15 1997 |  | ||||||
| --- ./backend/Makefile  Thu Jun  5 16:47:27 1997 |  | ||||||
| *************** |  | ||||||
| *** 54,60 **** |  | ||||||
|   all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source |  | ||||||
|    |  | ||||||
|   postgres: $(OBJS) ../utils/version.o |  | ||||||
| !       $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) |  | ||||||
|    |  | ||||||
|   $(OBJS): $(DIRS:%=%.dir) |  | ||||||
|    |  | ||||||
| --- 54,64 ---- |  | ||||||
|   all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source |  | ||||||
|    |  | ||||||
|   postgres: $(OBJS) ../utils/version.o |  | ||||||
| ! #     $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) |  | ||||||
| !       -rm -f *.o |  | ||||||
| !       find . -name "*.o" -exec cp \{\} . \; |  | ||||||
| !       rm -f SUBSYS.o |  | ||||||
| !       $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS) |  | ||||||
|    |  | ||||||
|   $(OBJS): $(DIRS:%=%.dir) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.6)    The make fails with the following message: |  | ||||||
|         ld32: ERROR 4: Conflicting flag setting: -call_shared |  | ||||||
| 
 |  | ||||||
|         If gmake fails in .../src/backend while building obj/ACCESS.o |  | ||||||
|         with a message from ld32, you can work around this by using |  | ||||||
|         ld for the LD environment variable rather than cc. |  | ||||||
| 
 |  | ||||||
|         The problem has been observed under Irix 5.3 when compiling both |  | ||||||
|         Postgres95-1.09 and PostgreSQL-6.2Beta6, but on some systems |  | ||||||
|         these appear to compile with no such problems. |  | ||||||
| 
 |  | ||||||
|         Fix supplied by Brian Sanders (bsanders@netcom.com, |  | ||||||
|         brian@fresnelsoft.com) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.7)    Why won't it link? (Problems with lorder) |  | ||||||
| 
 |  | ||||||
|         According to the IRIX man pages, lorder is useless, but harmless |  | ||||||
|         under IRIX. However, it has caused problems for some people |  | ||||||
|         using both IRIX 6.2. |  | ||||||
| 
 |  | ||||||
|         The solution is to add the following line to  |  | ||||||
|         .../src/makefiles/Makefile.irix5 |  | ||||||
| 
 |  | ||||||
|         MK_NO_LORDER=true |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.8)    I have major problems with IRIX 6! |  | ||||||
| 
 |  | ||||||
|         The following is quoted directly from Bob Bruccoleri <bruc@bms.com> |  | ||||||
| 
 |  | ||||||
| There is a really nasty loader bug in the compiler system (7.1) |  | ||||||
| on Irix 6.x, and the error that Lasse Petersen is the result of it. |  | ||||||
| Here is the original message. I don't know if all the changes have been |  | ||||||
| folded into the current release. |  | ||||||
| 
 |  | ||||||
| Date: Fri, 06 Jun 1997 17:12:20 -0400 (EDT) |  | ||||||
| From: bruc@bms.com (Robert Bruccoleri) |  | ||||||
| Subject: [PORTS] Patches for Irix 6.4 |  | ||||||
| 
 |  | ||||||
| I have worked out how to compile PostgreSQL on Irix 6.4 using the -n32 compiler |  | ||||||
| mode and version 7.1 of the C compiler. (The n32 compiler use 32 bits addressing, |  | ||||||
| but allows access to all the instructions in the MIPS4 instruction set.) |  | ||||||
| There were several problems: |  | ||||||
| 
 |  | ||||||
| 1) The ld command is not referenced as a macro in all the Makefiles. On |  | ||||||
| this platform, you have to include -n32 on all the ld commands. Makefiles |  | ||||||
| were changed as needed. |  | ||||||
| 
 |  | ||||||
| 2) There is a bug in "ld" which mishandles the addresses of static procedures |  | ||||||
| when object files are assembled into larger object files using "ld -r". |  | ||||||
| Because of this, I put a hack into src/backend/Makefile to avoid all the |  | ||||||
| SUBSYS.o files and just link all the objects. I have contacted SGI about the |  | ||||||
| problem, and hopefully, it will be fixed in the near future. |  | ||||||
| 
 |  | ||||||
| 3) Lots of warnings are generated from the compiler. Since the regression |  | ||||||
| tests worked OK, I didn't attempt to fix them. If anyone wants the compilation |  | ||||||
| log, please let me know, and I'll email it to you. |  | ||||||
| 
 |  | ||||||
| The version of postgresql was 970602. Here is Makefile.custom: |  | ||||||
| 
 |  | ||||||
| CUSTOM_COPT = -O2 -n32 |  | ||||||
| MK_NO_LORDER = 1 |  | ||||||
| LD = ld -n32 |  | ||||||
| CC += -n32 |  | ||||||
| 
 |  | ||||||
| Here are the patches: |  | ||||||
| 
 |  | ||||||
| *** ./backend/access/Makefile.orig      Sun Nov 10 00:00:15 1996 |  | ||||||
| - --- ./backend/access/Makefile Tue Jun  3 10:22:32 1997 |  | ||||||
| *************** |  | ||||||
| *** 8,13 **** |  | ||||||
| - --- 8,16 ---- |  | ||||||
|   # |  | ||||||
|   #------------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| + SRCDIR = ../.. |  | ||||||
| + include ../../Makefile.global |  | ||||||
| + |  | ||||||
|   OBJS = common/SUBSYS.o gist/SUBSYS.o hash/SUBSYS.o heap/SUBSYS.o \ |  | ||||||
|          index/SUBSYS.o rtree/SUBSYS.o nbtree/SUBSYS.o transam/SUBSYS.o |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| *** ./backend/bootstrap/Makefile.orig   Fri Apr 18 06:00:23 1997 |  | ||||||
| - --- ./backend/bootstrap/Makefile      Tue Jun  3 10:23:59 1997 |  | ||||||
| *************** |  | ||||||
| *** 38,44 **** |  | ||||||
|   all: SUBSYS.o |  | ||||||
| 
 |  | ||||||
|   SUBSYS.o: $(OBJS) |  | ||||||
| !       ld -r -o SUBSYS.o $(OBJS) |  | ||||||
| 
 |  | ||||||
|   # bootstrap.o's dependency on bootstrap_tokens.h is computed by the |  | ||||||
|   # make depend, but we state it here explicitly anyway because |  | ||||||
| - --- 38,44 ---- |  | ||||||
|   all: SUBSYS.o |  | ||||||
| 
 |  | ||||||
|   SUBSYS.o: $(OBJS) |  | ||||||
| !       $(LD) -r -o SUBSYS.o $(OBJS) |  | ||||||
| 
 |  | ||||||
|   # bootstrap.o's dependency on bootstrap_tokens.h is computed by the |  | ||||||
|   # make depend, but we state it here explicitly anyway because |  | ||||||
| 
 |  | ||||||
| *** ./backend/Makefile.orig     Thu May 22 00:00:15 1997 |  | ||||||
| - --- ./backend/Makefile        Thu Jun  5 16:47:27 1997 |  | ||||||
| *************** |  | ||||||
| *** 54,60 **** |  | ||||||
|   all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source |  | ||||||
| 
 |  | ||||||
|   postgres: $(OBJS) ../utils/version.o |  | ||||||
| !       $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) |  | ||||||
| 
 |  | ||||||
|   $(OBJS): $(DIRS:%=%.dir) |  | ||||||
| 
 |  | ||||||
| - --- 54,64 ---- |  | ||||||
|   all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source |  | ||||||
| 
 |  | ||||||
|   postgres: $(OBJS) ../utils/version.o |  | ||||||
| ! #     $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) |  | ||||||
| !       -rm -f *.o |  | ||||||
| !       find . -name "*.o" -exec cp \{\} . \; |  | ||||||
| !       rm -f SUBSYS.o |  | ||||||
| !       $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS) |  | ||||||
| 
 |  | ||||||
|   $(OBJS): $(DIRS:%=%.dir) |  | ||||||
| 
 |  | ||||||
| *************** |  | ||||||
| *** 116,122 **** |  | ||||||
|   install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\ |  | ||||||
|            global1.bki.source local1_template1.bki.source \ |  | ||||||
|            libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample |  | ||||||
| ! |  | ||||||
|         $(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres |  | ||||||
|   ifeq ($(MAKE_EXPORTS), true) |  | ||||||
|         $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP) |  | ||||||
| - --- 120,126 ---- |  | ||||||
|   install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\ |  | ||||||
|            global1.bki.source local1_template1.bki.source \ |  | ||||||
|            libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample |  | ||||||
| ! |  | ||||||
|         $(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres |  | ||||||
|   ifeq ($(MAKE_EXPORTS), true) |  | ||||||
|         $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP) |  | ||||||
| 
 |  | ||||||
| *** ./backend/optimizer/Makefile.orig   Wed Feb 19 12:00:34 1997 |  | ||||||
| - --- ./backend/optimizer/Makefile      Tue Jun  3 10:39:47 1997 |  | ||||||
| *************** |  | ||||||
| *** 8,13 **** |  | ||||||
| - --- 8,16 ---- |  | ||||||
|   # |  | ||||||
|   #------------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| + SRCDIR= ../.. |  | ||||||
| + include ../../Makefile.global |  | ||||||
| + |  | ||||||
|   all: submake SUBSYS.o |  | ||||||
| 
 |  | ||||||
|   OBJS = path/SUBSYS.o plan/SUBSYS.o prep/SUBSYS.o util/SUBSYS.o geqo/SUBSYS.o |  | ||||||
| 
 |  | ||||||
| *** ./backend/libpq/pqcomprim.c.orig    Mon May 26 00:00:23 1997 |  | ||||||
| - --- ./backend/libpq/pqcomprim.c       Fri Jun  6 16:02:24 1997 |  | ||||||
| *************** |  | ||||||
| *** 32,40 **** |  | ||||||
|   #    define hton_l(n) (ntoh_l(n)) |  | ||||||
|   #  else       /* BYTE_ORDER != BIG_ENDIAN */ |  | ||||||
|   #    if BYTE_ORDER == PDP_ENDIAN |  | ||||||
| ! #      #error PDP_ENDIAN macros not written yet |  | ||||||
|   #    else     /* BYTE_ORDER !=  anything known */ |  | ||||||
| ! #      #error BYTE_ORDER not defined as anything understood |  | ||||||
|   #    endif    /* BYTE_ORDER == PDP_ENDIAN */ |  | ||||||
|   #  endif      /* BYTE_ORDER == BIG_ENDIAN */ |  | ||||||
|   #endif                /* BYTE_ORDER == LITTLE_ENDIAN */ |  | ||||||
| - --- 32,40 ---- |  | ||||||
|   #    define hton_l(n) (ntoh_l(n)) |  | ||||||
|   #  else       /* BYTE_ORDER != BIG_ENDIAN */ |  | ||||||
|   #    if BYTE_ORDER == PDP_ENDIAN |  | ||||||
| ! #      error PDP_ENDIAN macros not written yet |  | ||||||
|   #    else     /* BYTE_ORDER !=  anything known */ |  | ||||||
| ! #      error BYTE_ORDER not defined as anything understood |  | ||||||
|   #    endif    /* BYTE_ORDER == PDP_ENDIAN */ |  | ||||||
|   #  endif      /* BYTE_ORDER == BIG_ENDIAN */ |  | ||||||
|   #endif                /* BYTE_ORDER == LITTLE_ENDIAN */ |  | ||||||
| 
 |  | ||||||
| *** ./backend/storage/Makefile.orig     Sun Nov 10 00:01:06 1996 |  | ||||||
| - --- ./backend/storage/Makefile        Tue Jun  3 10:41:29 1997 |  | ||||||
| *************** |  | ||||||
| *** 8,13 **** |  | ||||||
| - --- 8,16 ---- |  | ||||||
|   # |  | ||||||
|   #------------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| + SRCDIR= ../.. |  | ||||||
| + include ../../Makefile.global |  | ||||||
| + |  | ||||||
|   all: submake SUBSYS.o |  | ||||||
| 
 |  | ||||||
|   OBJS = buffer/SUBSYS.o file/SUBSYS.o ipc/SUBSYS.o large_object/SUBSYS.o \ |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.9)    Why does lex fail with PostgreSQL 6.2.1? |  | ||||||
| 
 |  | ||||||
|         IRIX 5.3 lex has been reported to fail in  |  | ||||||
|         postgresql-6.2.1/src/backend/parser with the error: |  | ||||||
| 
 |  | ||||||
|         lex scan.l |  | ||||||
|         "scan.l":line 86: Error: Invalid request %x xc |  | ||||||
|         gmake[2]: *** [scan.c] Error 1 |  | ||||||
| 
 |  | ||||||
|         The answer is to use GNU flex 2.5.4 or later. Use the command |  | ||||||
|            flex --version |  | ||||||
|         to check you have a new enough version of flex |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.10)   How do I install PostgreSQL V6.3 under Irix 6.x? |  | ||||||
| 
 |  | ||||||
|         Irix 6.2-6.4 has a bug in ld which mishandles the addresses of |  | ||||||
|         static procedures when object files are assembled into |  | ||||||
|         larger object files using 'ld -r'. This bug has been reported |  | ||||||
|         to Silicon Graphics.  |  | ||||||
| 
 |  | ||||||
|         Depending on your Irix installation you may also encounter |  | ||||||
|         2 other problems detailed below: Conflict in C standards, |  | ||||||
|         Conflict in library functions. |  | ||||||
| 
 |  | ||||||
|         a) Solving the ld bug |  | ||||||
|         --------------------- |  | ||||||
| 
 |  | ||||||
|         One option is to use the Gnu version of ld. Alternatively, |  | ||||||
|         the following patch should be applied as a workaround.  |  | ||||||
|         (Supplied by Bob Bruccoleri <bruc@bms.com> and modified for |  | ||||||
|         PostgreSQL V6.3 by Lasse Hiller Petersen <lassehp@imv.aau.dk>) |  | ||||||
| 
 |  | ||||||
|         Apply the following patch: |  | ||||||
| 
 |  | ||||||
| *** ./backend/Makefile.orig     Tue Mar  3 15:33:58 1998 |  | ||||||
| --- ./backend/Makefile  Tue Mar  3 15:39:27 1998 |  | ||||||
| *************** |  | ||||||
| *** 63,69 **** |  | ||||||
|                                 global1.description |  | ||||||
| local1_template1.description |  | ||||||
| 
 |  | ||||||
|   postgres: $(OBJS) ../utils/version.o |  | ||||||
| !       $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) |  | ||||||
| 
 |  | ||||||
|   $(OBJS): $(DIRS:%=%.dir) |  | ||||||
| 
 |  | ||||||
| --- 63,73 ---- |  | ||||||
|                                 global1.description |  | ||||||
| local1_template1.description |  | ||||||
| 
 |  | ||||||
|   postgres: $(OBJS) ../utils/version.o |  | ||||||
| ! #     $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) |  | ||||||
| !       -rm -f *.o |  | ||||||
| !       find . -name "*.o" -exec cp \{\} . \; |  | ||||||
| !       rm -f SUBSYS.o |  | ||||||
| !       $(CC) -o postgres *.o ../utils/version.o $(LDFLAGS) |  | ||||||
| 
 |  | ||||||
|   $(OBJS): $(DIRS:%=%.dir) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         Lasse configured with ./configure --enable-locale |  | ||||||
|         and modified Makefile.custom to contain: |  | ||||||
| CC = cc -n32 |  | ||||||
| LD = ld -n32 |  | ||||||
|          |  | ||||||
|         He reports that the installation without -n32 works fine too, |  | ||||||
|         but the -n32 was required for compatibility with his Perl |  | ||||||
|         installation. His system was an Origin200 running IRIX64 v6.4. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         b) Conflict in C standards |  | ||||||
|         -------------------------- |  | ||||||
| 
 |  | ||||||
|         I have found that the following patch is also necessary in order |  | ||||||
|         to prevent a duplicate definition of a Union used for semaphores. |  | ||||||
|         Apply the following patch to: |  | ||||||
|         .../src/makefile/Makefile.irix5: |  | ||||||
| 
 |  | ||||||
| *** src/makefiles/Makefile.irix5.orig   Thu Mar  5 16:59:58 1998 |  | ||||||
| --- src/makefiles/Makefile.irix5        Thu Mar  5 17:01:13 1998 |  | ||||||
| *************** |  | ||||||
| *** 6,9 **** |  | ||||||
|   %.so: %.o |  | ||||||
|         $(LD) -G -Bdynamic -shared -o $@ $< |  | ||||||
| 
 |  | ||||||
| ! |  | ||||||
| --- 6,9 ---- |  | ||||||
|   %.so: %.o |  | ||||||
|         $(LD) -G -Bdynamic -shared -o $@ $< |  | ||||||
| 
 |  | ||||||
| ! CFLAGS+= -U_NO_XOPEN4 |  | ||||||
| 
 |  | ||||||
|         i.e. the addition of the line: |  | ||||||
|         CFLAGS+= -U_NO_XOPEN4 |  | ||||||
| 
 |  | ||||||
|         This is needed to stop the semun union being redefined in |  | ||||||
|         /usr/include/sys/sem.h |  | ||||||
| 
 |  | ||||||
|         c) Conflict in library functions |  | ||||||
|         -------------------------------- |  | ||||||
| 
 |  | ||||||
|         In addition, if you have the nsl and crypt libraries these will |  | ||||||
|         conflict with the required definitions. I think that libnsl.a |  | ||||||
|         may be the Netware socket library (or something similar). In |  | ||||||
|         any case, if you have these libraries, they will be added to |  | ||||||
|         Makefile.global and you will need to remove them. |  | ||||||
| 
 |  | ||||||
|         Thus, you should edit .../src/Makefile.global. Goto (approximately) |  | ||||||
|         line 217 where LDFLAGS= is set and remove -lnsl and -lcrypt |  | ||||||
|         from this line. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| Section 2:      Deinstalling PostgreSQL |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| 2.1)    Why can't I move the executable files? |  | ||||||
| 
 |  | ||||||
|         By default, the IRIX port uses the BSD compatible version of |  | ||||||
|         install from /usr/bin/X11. If you read the man page for this |  | ||||||
|         version of install, you will see that it is not meant for |  | ||||||
|         end-user use; it has the interesting side-effect of chowning |  | ||||||
|         files it installs to root. |  | ||||||
| 
 |  | ||||||
|         You should still be able to delete the files as you (the |  | ||||||
|         postgres user) will own the directory in which they are |  | ||||||
|         stored. |  | ||||||
| 
 |  | ||||||
|         The normal IRIX install program cannot be used easily as it |  | ||||||
|         takes its arguments in the reverse order. It is therefore |  | ||||||
|         recommended to use the GNU version of install (ginstall). |  | ||||||
|         See Question 1.4 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| Section 3:      Extending PostgreSQL |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| 3.1)    How do I compile a C program to create a function for extending |  | ||||||
|         PostgreSQL |  | ||||||
| 
 |  | ||||||
|         Here is a sample command line: |  | ||||||
| 
 |  | ||||||
|         cc -I/usr/local/PostgreSQL/include/ -I/usr/local/PostgreSQL/src/backend  |  | ||||||
|                 -shared -o funcs.so funcs.c |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ---------------------------------------------------------------------------- |  | ||||||
| Dr. Andrew C.R. Martin                             University College London |  | ||||||
| EMAIL: (Work) martin@biochem.ucl.ac.uk    (Home) andrew@stagleys.demon.co.uk |  | ||||||
| URL:   http://www.biochem.ucl.ac.uk/~martin |  | ||||||
| Tel:   (Work) +44(0)171 419 3890                    (Home) +44(0)1372 275775 |  | ||||||
							
								
								
									
										650
									
								
								doc/FAQ_Linux
									
									
									
									
									
								
							
							
						
						
									
										650
									
								
								doc/FAQ_Linux
									
									
									
									
									
								
							| @ -1,650 +0,0 @@ | |||||||
| <PRE> |  | ||||||
| ======================================================= |  | ||||||
| Frequently Asked Questions (FAQ) for PostgreSQL >= V6.1 |  | ||||||
| Linux Specific |  | ||||||
| TO BE READ IN CONJUNCTION WITH THE NORMAL FAQ |  | ||||||
| ======================================================= |  | ||||||
| last updated:           Wed Feb 18 13:00:00 GMT 1997 |  | ||||||
| 
 |  | ||||||
| current maintainer:     Andrew C.R. Martin (martin@biochem.ucl.ac.uk) |  | ||||||
| original author:        Andrew C.R. Martin (martin@biochem.ucl.ac.uk) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Changes in this version (* = modified, + = new, - = removed): |  | ||||||
| 
 |  | ||||||
| +1.20)  How can I optimise for 486 or pentium processors |  | ||||||
| +3.10)  Why do I get funny rounding results in some date/time arithmetic... |  | ||||||
| 
 |  | ||||||
| This file is divided approximately as follows: |  | ||||||
| 1.*)    Installing PostgreSQL |  | ||||||
| 2.*)    Compiling accessory programs |  | ||||||
| 3.*)    Runtime Problems |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| Questions answered: |  | ||||||
| 1.1)    What changes do I need to make to src/Makefile.global or |  | ||||||
|         src/Makefile.custom and are there any other changes needed? |  | ||||||
| 1.2)    Why do I get problems with missing libreadline? |  | ||||||
| 1.3)    [REDHAT] Why do I get problems with missing libdl and dlfcn.h? |  | ||||||
| 1.4)    [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? |  | ||||||
| 1.5)    My compile of the backend dies complaining about the include file |  | ||||||
|         dlfcn.h missing |  | ||||||
| 1.6)    GCC complains about an ignored option -fpic |  | ||||||
| 1.7)    I get warnings of the form |  | ||||||
|         warning: cast from pointer to integer of different size |  | ||||||
| 1.8)    [SuSE-Linux 4.2-4.4] Where is curses and termcap? |  | ||||||
| 1.9)    Why do I get problems with ld.so? |  | ||||||
| 1.10)   Why do I get `yy_flush_buffer undefined' errors? |  | ||||||
| 1.11)   How do I compile PostgreSQL on an a.out system? |  | ||||||
| 1.12)   Why does make fail with: |  | ||||||
|         yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y |  | ||||||
|         make: /usr/bin/make: cannot execute binary file |  | ||||||
| 1.13)   What are the references in X11_LIB to libsocket and libnsl in |  | ||||||
|         src/Makefile.global? |  | ||||||
| 1.14)   [DEBIAN] Where is libtermcap? |  | ||||||
| 1.15)   [REDHAT] Can I get PostgreSQL as an RPM? |  | ||||||
| 1.16)   While trying to compile a development version under Linux, compilation |  | ||||||
|         fails with a message like: |  | ||||||
|         In file included from /usr/include/sys/sem.h:8, |  | ||||||
|                  from ipc.c:37: |  | ||||||
|         /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit' |  | ||||||
|         .... |  | ||||||
|         make: *** [ipc.o] Error 1 |  | ||||||
| 1.17)   When compiling postgres, gcc reports signal 11 and aborts. |  | ||||||
| 1.18)   Can I install 6.1.1 under MkLinux? |  | ||||||
| 1.19)   Why does make exit or crash? |  | ||||||
| 1.20)   How can I optimise for 486 or pentium processors |  | ||||||
| 2.1)    The linker fails to find libX11 when compiling pgtclsh |  | ||||||
| 3.1)    I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when  |  | ||||||
|         running scripts like createuser |  | ||||||
| 3.2)    I run postmaster and after that system says 'Bad system call(Core  |  | ||||||
|         dumped)' |  | ||||||
| 3.3)    When I try to start the Postmaster, why do I get an error of the form |  | ||||||
|         Failed Assertion("!(file != 0):(null)", File: |  | ||||||
|         "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257) |  | ||||||
|         !(file != 0) (0) |  | ||||||
|         initdb: could not create template database |  | ||||||
|         initdb: cleaning up. |  | ||||||
| 3.4)    Why doesn't createuser work? |  | ||||||
| 3.5)    Why do I get an error like: |  | ||||||
|         IpcMemoryCreate: memKey=155356396 , size=760632 , |  | ||||||
|         permission=384IpcMemoryCreate: shmget(..., create, ...) |  | ||||||
|         failed: Invalid argument |  | ||||||
| 3.6)    Why does psql fail with: |  | ||||||
|         psql: can't load library 'libpq.so.1' |  | ||||||
| 3.7)    Other strange behaviour |  | ||||||
| 3.8)    When PostgreSQL is running when the system is shutdown, Linux |  | ||||||
|         always fsck's the disk when rebooted. |  | ||||||
| 3.9)    Why does Query 32 in the regression tests take so long? |  | ||||||
| 3.10)   Why do I get funny rounding results in some date/time arithmetic, |  | ||||||
|         such as |  | ||||||
|            select '4 hours'::timespan; |  | ||||||
|         returning '3 hours 59 minutes 60 seconds'? |  | ||||||
| 
 |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| Section 1:      Compiling PostgreSQL |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| 1.1)    What changes do I need to make to src/Makefile.global or |  | ||||||
|         src/Makefile.custom and are there any other changes needed? |  | ||||||
| 
 |  | ||||||
| 	Changes to the makefiles are most easily made by running the  |  | ||||||
|         customize shell script in the src directory which will write a |  | ||||||
| 	Makefile.custom for you. |  | ||||||
| 
 |  | ||||||
|         The only other change you may have to make is to replace  |  | ||||||
|         Flex if you have version 2.5.3 which has a bug which generally |  | ||||||
|         manifests itself as createuser failing (See Question 3.4) |  | ||||||
| 
 |  | ||||||
|         If you modify the makefiles by hand, you *must* set the  |  | ||||||
|         following variable: |  | ||||||
|                 PORTNAME=       linux |  | ||||||
| 
 |  | ||||||
|         You will also need to change the following to match your own |  | ||||||
|         installation: |  | ||||||
|                 POSTGRESDIR |  | ||||||
| 
 |  | ||||||
|         If you switch on the USE_TCL option, you will need to set these: |  | ||||||
|                 TCL_INCDIR= |  | ||||||
|                 TCL_LIBDIR= |  | ||||||
|                 TCL_LIB= |  | ||||||
|                 TK_INCDIR= |  | ||||||
|                 TK_LIBDIR= |  | ||||||
|                 TK_LIB= |  | ||||||
|                 X11_INCDIR= |  | ||||||
|                 X11_LIBDIR= |  | ||||||
|                 X11_LIB= |  | ||||||
| 
 |  | ||||||
|         On my Slackware3.0 system, these are: |  | ||||||
|                 TCL_INCDIR=     /usr/include/tcl |  | ||||||
|                 TCL_LIBDIR=     /usr/lib |  | ||||||
|                 TCL_LIB=        -ltcl |  | ||||||
|                 TK_INCDIR=      /usr/include/tcl |  | ||||||
|                 TK_LIBDIR=      /usr/lib |  | ||||||
|                 TK_LIB=         -ltk |  | ||||||
|                 X11_INCDIR=     /usr/include/X11 |  | ||||||
|                 X11_LIBDIR=     /usr/X386/lib |  | ||||||
|                 X11_LIB=        -lX11 |  | ||||||
|   |  | ||||||
|         You may also make any other changes you need as documented in |  | ||||||
|         the INSTALL file and in Makefile.global |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.2)    Why do I get problems with missing libreadline? |  | ||||||
| 
 |  | ||||||
|         Linux systems generally don't come with the GNU readline library |  | ||||||
|         installed. Either ensure you do not activate the readline options |  | ||||||
|         in src/Makefile.global or src/Makefile.custom or install the GNU  |  | ||||||
|         readline library. |  | ||||||
| 
 |  | ||||||
|         Note that Debian Linux (like FreeBSD) does come with readline |  | ||||||
|         installed. |  | ||||||
| 
 |  | ||||||
| 1.3)    [REDHAT] Why do I get problems with missing libdl and dlfcn.h? |  | ||||||
| 
 |  | ||||||
|         This manifests itself as being unable to link with functions |  | ||||||
|         such as dlopen(), dlclose(), etc. during the last phase of the |  | ||||||
|         compilation. |  | ||||||
| 
 |  | ||||||
|         The libdl library is used for dynamic linking of user-supplied |  | ||||||
|         functions at run-time. For some reason this library was missed out |  | ||||||
|         from the Redhat distribution. It seems that the latest Redhat 4.0 |  | ||||||
|         (Colgate) fixes this. |  | ||||||
| 
 |  | ||||||
|         RedHat now have a new ld.so RPM package on their FTP site. |  | ||||||
|         Simply grab: |  | ||||||
| 
 |  | ||||||
|                 ftp://ftp.redhat.com/pub/redhat/devel/i386/RedHat/RPMS/ld.so-1.7.14-4.i386.rpm |  | ||||||
| 
 |  | ||||||
|         Install the RPM file in the usual way and off you go! |  | ||||||
| 
 |  | ||||||
|         NOTE! You will have to re-run configure and do a make clean |  | ||||||
|         after installing the library and before recompiling. |  | ||||||
| 
 |  | ||||||
|         There has been one report of a corrupted system resulting from |  | ||||||
|         programs accessing these libraries while updating them (not |  | ||||||
|         altogether surprising). Consequently it is a good idea to reboot  |  | ||||||
|         the system before installing the new libraries and to |  | ||||||
|         have as little running as possible during this upgrade. Going |  | ||||||
|         into single-user mode is probably a good idea! |  | ||||||
| 
 |  | ||||||
|         If you want to do it the hard way, you can obtain the library and the  |  | ||||||
|         header file from: |  | ||||||
|          |  | ||||||
|                 ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ld.so-1.7.14.tar.gz |  | ||||||
| 
 |  | ||||||
|         Alternatively, you may find precompiled binaries in  |  | ||||||
|         distributions/debian/buzz/binary-i386/base/ld.so-1.7.14-4.deb |  | ||||||
|         on the same site, or follow the instructions given for question 1.2 for |  | ||||||
|         correcting the same error with early releases of Slackware 3.1. |  | ||||||
|         Don't use this method unless you know what you are doing! |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.4)    [SLACKWARE 3.1] Why do I get problems with missing libdl and dlfcn.h? |  | ||||||
| 
 |  | ||||||
|         This manifests itself as being unable to link with functions |  | ||||||
|         such as dlopen(), dlclose(), etc. during the last phase of the |  | ||||||
|         compilation. |  | ||||||
| 
 |  | ||||||
|         See the answer to question 1.3. Slackware up to version 3.0 was  |  | ||||||
|         supplied with this library and include file and they seem to be |  | ||||||
|         back in again in the latest versions of 3.1, but the early 3.1 |  | ||||||
|         releases (before 9th September 1996) had them missing and many  |  | ||||||
|         CD-ROM versions will have been pressed from the first 3.1 releases. |  | ||||||
| 
 |  | ||||||
|         There has been one report of a corrupted system resulting from |  | ||||||
|         programs accessing these libraries while updating them (not |  | ||||||
|         altogether surprising). Consequently it is a good idea to reboot  |  | ||||||
|         the system before installing the new libraries and to |  | ||||||
|         have as little running as possible during this upgrade. Going |  | ||||||
|         into single-user mode is probably a good idea! |  | ||||||
| 
 |  | ||||||
|         The easiest fix is to obtain the file ldso.tgz from the a4 disk of |  | ||||||
|         a more recent Slackware distribution and unpack this file |  | ||||||
|         from the root (/) directory, then do |  | ||||||
| 
 |  | ||||||
|                 sh install/doinst.sh |  | ||||||
| 
 |  | ||||||
|         to complete the installation. Follow this with |  | ||||||
| 
 |  | ||||||
|                 ldconfig |  | ||||||
| 
 |  | ||||||
|         NOTE! You will have to re-run configure and do a make clean |  | ||||||
|         after installing the library and before recompiling. |  | ||||||
| 
 |  | ||||||
|         If you want to install manually, you must first install the file |  | ||||||
|         dlfcn.h in /usr/include. |  | ||||||
| 
 |  | ||||||
|         Second, install the file libdl.so.1.7.14 (or whatever the latest |  | ||||||
|         release is) in /lib, then do: |  | ||||||
| 
 |  | ||||||
|                 cd /lib |  | ||||||
|                 ln -sf libdl.so.1.7.14 libdl.so.1 |  | ||||||
|                 ln -sf libdl.so.1 libdl.so |  | ||||||
| 
 |  | ||||||
|         On some systems (depending on your GCC configuration) it may be |  | ||||||
|         necessary to do: |  | ||||||
| 
 |  | ||||||
|                 cd /usr/lib |  | ||||||
|                 ln -sf /lib/libdl.so . |  | ||||||
| 
 |  | ||||||
|         Finally |  | ||||||
| 
 |  | ||||||
|                 ldconfig |  | ||||||
| 
 |  | ||||||
|         NOTE! You will have to re-run configure and do a make clean |  | ||||||
|         after installing the library and before recompiling. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.5)    My compile of the backend dies complaining about the include file  |  | ||||||
|         dlfcn.h missing |  | ||||||
| 
 |  | ||||||
|         See the answer to question 1.3/1.4. Don't forget that if you are using |  | ||||||
|         an a.out system you must first have installed the dld package |  | ||||||
|         (which is not supplied with most a.out systems) to have dlfcn.h |  | ||||||
|         at all. See Question 1.11. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.6)    GCC complains about an ignored option -fpic |  | ||||||
| 
 |  | ||||||
|         Earlier versions of GCC accepted either -fpic or -fPIC. |  | ||||||
|         It appears that more recent versions (V2.7.2?) require -fPIC.  |  | ||||||
|         If you are using an ELF version of Linux, this can safely be  |  | ||||||
|         ignored as -fPIC is the default. |  | ||||||
| 
 |  | ||||||
|         You can correct this by editing src/Makefile.global and  |  | ||||||
|         changing CFLAGS_SL |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.7)    I get warnings of the form  |  | ||||||
|         warning: cast from pointer to integer of different size |  | ||||||
| 
 |  | ||||||
|         These were seen in earlier versions of Postgres95 and could |  | ||||||
|         safely be ignored. PostgreSQL V6.0 should compile with no warnings |  | ||||||
|         except those related to system header files (which can also |  | ||||||
|         be safely ignored). |  | ||||||
| 
 |  | ||||||
| 1.8)    [SuSE-Linux 4.2-4.4] Where is curses and termcap? |  | ||||||
| 
 |  | ||||||
|         SuSE-Linux 4.2 has ncurses but not curses. 4.4 appears to have both. |  | ||||||
|         SuSE-Linux also has the termcap library is in /usr/lib/termcap  |  | ||||||
|         instead of in /usr/lib. |  | ||||||
| 
 |  | ||||||
|         PostgreSQL (up to V6.0) |  | ||||||
|         ----------------------- |  | ||||||
|         Set the value of CURSES_LIB in src/Makefile.custom to -lncurses  |  | ||||||
|         (or do this through the customize script). |  | ||||||
|         Add the following line to src/Makefile.custom: |  | ||||||
| 
 |  | ||||||
|                 LDADD_BE+= -L/usr/lib/termcap |  | ||||||
| 
 |  | ||||||
|         You may need to edit src/bin/psql/Makefile and change: |  | ||||||
|                 ifeq ($(PORTNAME), linux) |  | ||||||
|                    LD_ADD+= |  | ||||||
|         to: |  | ||||||
|                 ifeq ($(PORTNAME), linux) |  | ||||||
|                    LD_ADD+= -ltermcap |  | ||||||
| 
 |  | ||||||
|         PostgreSQL (V6.1) |  | ||||||
|         ----------------- |  | ||||||
|         The configure script doesn't know to look in /usr/lib/termcap for |  | ||||||
|         the termcap library, so you should specify this as one of the |  | ||||||
|         library directories when asked for additional directories to |  | ||||||
|         search. |  | ||||||
| 
 |  | ||||||
|         If this doesn't work (I don't have SuSE to verify that it does) |  | ||||||
|         then after running configure, you need to edit |  | ||||||
|         src/Makefile.global and add -ltermcap to the LDFLAGS line |  | ||||||
|         (after -lreadline). (Alternatively, you can modify  |  | ||||||
|         src/Makefile.custom before running configure.) |  | ||||||
| 
 |  | ||||||
|         Some versions of SuSE provide only ncurses, so you may need |  | ||||||
|         to force use of ncurses rather than curses by changing  |  | ||||||
|         -lcurses to -lncurses. (Reported true for SuSE 5.1) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.9)    Why do I get problems with ld.so? |  | ||||||
| 
 |  | ||||||
|         If you get problems with ld.so, another library required under |  | ||||||
|         ELF for dynamic loading, then you have messed up your installation |  | ||||||
|         or (more likely) upgrade of Linux. |  | ||||||
| 
 |  | ||||||
|         See the answers to Question 1.3/1.4. You may need to install |  | ||||||
|         ld.so.x.y.z in /lib and run ldconfig. |  | ||||||
| 
 |  | ||||||
|         The most recent stable release of the ld package is 1.7.14 |  | ||||||
|         At the time of writing, 1.8.x versions of ld are experimental. |  | ||||||
| 
 |  | ||||||
| 1.10)   Why do I get `yy_flush_buffer undefined' errors? |  | ||||||
| 
 |  | ||||||
|         This isn't really Linux specific, but is common on older Linux |  | ||||||
|         installations. You must have a recent version of flex (2.5.2 or later) |  | ||||||
|         to compile PostgreSQL. Note that flex 2.5.3 has a bug: see |  | ||||||
|         Question 3.4. |  | ||||||
| 
 |  | ||||||
| 1.11)   How do I compile PostgreSQL on an a.out system? |  | ||||||
| 
 |  | ||||||
|         First, you must install the dld library. This may be obtained |  | ||||||
|         from Sunsite as: |  | ||||||
|         Linux/libs/dld.3.2.7.tar.gz |  | ||||||
|         (ftp://sunsite.unc.edu/pub/Linux/libs/dld.3.2.7.tar.gz) |  | ||||||
| 
 |  | ||||||
|         Second, add the following line to src/Makefile.custom: |  | ||||||
|                 LINUX_ELF= |  | ||||||
|         (or use the customize script) |  | ||||||
| 
 |  | ||||||
| 1.12)   Why does make fail with: |  | ||||||
|         yacc -d /disk2/PostgreSQL/src/backend/parser/gram.y |  | ||||||
|         make: /usr/bin/make: cannot execute binary file |  | ||||||
| 
 |  | ||||||
|         This was a problem in earlier versions of Postgres95. The default |  | ||||||
|         for PostgreSQL is to use bison -y rather than yacc. |  | ||||||
| 
 |  | ||||||
|         yacc is generally implemented as a script which invokes bison -y |  | ||||||
|         For some reason (certain versions of make? certain versions of  |  | ||||||
|         bash?) make is unable to execute this script file. |  | ||||||
| 
 |  | ||||||
|         To correct this, simply edit src/mk/port/postgres.mk.linux |  | ||||||
|         and, at the end of the file, change: |  | ||||||
|                 # YACC = bison -y |  | ||||||
|         to |  | ||||||
|                 YACC = bison -y |  | ||||||
| 
 |  | ||||||
| 1.13)   What are the references in X11_LIB to libsocket and libnsl in |  | ||||||
|         src/Makefile.global? |  | ||||||
| 
 |  | ||||||
|         This was a problem in 1.08 (they are Sun Solaris specific).  |  | ||||||
|         It is fixed in 1.09 and 6.0 |  | ||||||
| 
 |  | ||||||
| 1.14)   [DEBIAN] Where is libtermcap? |  | ||||||
| 
 |  | ||||||
|         Debian Linux comes without the termcap library and uses ncurses |  | ||||||
|         (which uses terminfo instead). There is no need to change the  |  | ||||||
|         CURSES_LIB variable in src/bin/psql/Makefile since Debian provides  |  | ||||||
|         a link from libncurses to libcurses (unlike SuSE-Linux --- see |  | ||||||
|         Question 1.8). |  | ||||||
| 
 |  | ||||||
|         You may need to edit src/bin/psql/Makefile and comment out the |  | ||||||
|         change: |  | ||||||
|                 ifeq ($(PORTNAME), linux) |  | ||||||
|                    LD_ADD+= -ltermcap |  | ||||||
|         to: |  | ||||||
|                 ifeq ($(PORTNAME), linux) |  | ||||||
|                    LD_ADD+= |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 1.15)   [REDHAT] Can I get PostgreSQL as an RPM? |  | ||||||
| 
 |  | ||||||
|         Yes! Michal Mosiewicz <mimo@lodz.pdi.net> |  | ||||||
|         (http://www.pdi.lodz.pl/~mimo) has kindly put together an RPM |  | ||||||
|         for PostgreSQL V6.0 on Intel architectures which he has uploaded to  |  | ||||||
|         ftp://ftp.redhat.org/pub/Incoming/Postgres-6.0-1.i386.rpm |  | ||||||
| 
 |  | ||||||
|         This is a pre-compiled version, the source RPM is on its |  | ||||||
|         was as I write (3rd Feb 1997). |  | ||||||
| 
 |  | ||||||
| 1.16)   While trying to compile a development version under Linux, compilation |  | ||||||
|         fails with a message like: |  | ||||||
|         In file included from /usr/include/sys/sem.h:8, |  | ||||||
|                  from ipc.c:37: |  | ||||||
|         /usr/include/asm/bitops.h:32: warning: no previous prototype for Set_bit' |  | ||||||
|         .... |  | ||||||
|         make: *** [ipc.o] Error 1 |  | ||||||
| 
 |  | ||||||
|         The problem is that Linux provides no prototypes for these |  | ||||||
|         inline functions. The solution is to go into the  |  | ||||||
|         .../src/backend/storage/ipc directory and edit the Makefile. |  | ||||||
|         Change the line |  | ||||||
|            CFLAGS+=$(INCLUDE_OPT) |  | ||||||
|         to |  | ||||||
|            CFLAGS+=$(INCLUDE_OPT) -Wno-error |  | ||||||
| 
 |  | ||||||
|         Do the same in the ../src/backend/storage/lmgr directory. |  | ||||||
| 
 |  | ||||||
| 1.17)   When compiling postgres, gcc reports signal 11 and aborts. |  | ||||||
|         More specifically: |  | ||||||
|            gcc: Internal compiler error: program cc1 got fatal  |  | ||||||
|                 signal 11 |  | ||||||
| 
 |  | ||||||
|         This may be a hardware/memory problem. PortgreSQL is a big |  | ||||||
|         program, and large gcc compilations (such as building |  | ||||||
|         PostgreSQL or bebuilding the kernel) stress memory like  |  | ||||||
|         few other programs, resulting in errors that do not occur |  | ||||||
|         in normal operation. Lesser operating systems are also |  | ||||||
|         unlikely to stress the hardware to this degree so you |  | ||||||
|         may never see any problems under DOS/Windows. |  | ||||||
| 
 |  | ||||||
|         More information on this problem at: |  | ||||||
|            http://www.bitwizard.nl/sig11 |  | ||||||
| 
 |  | ||||||
| 1.18)   Can I install 6.1.1 under MkLinux? |  | ||||||
| 
 |  | ||||||
|         Tatsuo Ishii <t-ishii@sra.co.jp> has done this under  |  | ||||||
|         MkLinux DR2.1 update2 after a small patch available from: |  | ||||||
|         ftp://ftp.sra.co.jp/pub/cmd/postgres/6.1.1/mklinux.patch.gz |  | ||||||
| 
 |  | ||||||
| 1.19)   Why does make exit or crash? |  | ||||||
| 
 |  | ||||||
|         There have been a couple of reports of gmake either just |  | ||||||
|         exiting early or seg faulting. The latter problem was reported |  | ||||||
|         with gmake 3.74 - upgrading to 3.76.1 solved the problem.  |  | ||||||
|         However, 3.74 is known to work fine in other people's setups. |  | ||||||
|         In short, try upgrading gmake to the latest version you can  |  | ||||||
|         find before reporting this as a problem |  | ||||||
| 
 |  | ||||||
| 1.20)   How can I optimise for 486 or pentium processors |  | ||||||
| 
 |  | ||||||
|         The default compiler flags perform no optimisation for 486 |  | ||||||
|         or Pentium processors. To add such optimisation, edit |  | ||||||
|         Makefile.custom and add: |  | ||||||
| 
 |  | ||||||
|            CFLAGS+= -m486 |  | ||||||
| 
 |  | ||||||
|         or (for the new compilers that most people are not yet running) |  | ||||||
| 
 |  | ||||||
|            CFLAGS+= -mpentium |  | ||||||
|         or |  | ||||||
|            CFLAGS+= -mpentiumpro |  | ||||||
| 
 |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| Section 2:      Compiling accessory programs |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| 2.1)    The linker fails to find libX11 when compiling pgtclsh |  | ||||||
| 
 |  | ||||||
|         Add the following to src/Makefile.custom |  | ||||||
|                 X11_LIBDIR = /usr/X11R6/lib |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| Section 3:      Runtime Problems |  | ||||||
| ---------------------------------------------------------------------- |  | ||||||
| 
 |  | ||||||
| 3.1)    I get an error reporting _fUnKy_POSTPORT_sTuFf_ undefined when  |  | ||||||
|         running scripts like createuser |  | ||||||
| 
 |  | ||||||
|         This is a bug in V1.06-V1.07 of Postgres and is fixed in V1.08 |  | ||||||
|         and above. |  | ||||||
| 
 |  | ||||||
| 3.2)    I run postmaster and after that system says 'Bad system call(Core  |  | ||||||
|         dumped)' |  | ||||||
| 
 |  | ||||||
|         This indicates that you have not compiled shared memory support  |  | ||||||
|         into your kernel. You need to recompile the Linux kernel to add this  |  | ||||||
|         feature. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 3.3)    When I try to start the Postmaster, why do I get an error of the form |  | ||||||
|         Failed Assertion("!(file != 0):(null)", File:  |  | ||||||
|         "/usr/local/PostgreSQL/src/backend/storage/file/fd.c", Line: 257) |  | ||||||
|         !(file != 0) (0) |  | ||||||
|         initdb: could not create template database |  | ||||||
|         initdb: cleaning up. |  | ||||||
| 
 |  | ||||||
|         Your permissions on the file /dev/null are wrong.  |  | ||||||
| 
 |  | ||||||
|         ls -l /dev/null should give you something like: |  | ||||||
| 
 |  | ||||||
|                 crw-rw-rw-  1 root  wheel    2,   2 Oct  8 18:41 /dev/null |  | ||||||
| 
 |  | ||||||
|         Correct the permissions using: |  | ||||||
| 
 |  | ||||||
|                 chmod a+rw /dev/null |  | ||||||
| 
 |  | ||||||
| 3.4)    Why doesn't createuser work? |  | ||||||
| 
 |  | ||||||
|         There is a problem with Version 2.5.3 of GNU flex and createuser.  |  | ||||||
|         Your options are to downgrade flex to V2.5.2, upgrade to V2.5.4 |  | ||||||
|         or apply a patch to V2.5.3 which is supplied in doc/README.flex |  | ||||||
|         You may obtain V2.5.4 from |  | ||||||
|         ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz |  | ||||||
| 
 |  | ||||||
| 3.5)    Why do I get an error like: |  | ||||||
|         IpcMemoryCreate: memKey=155356396 , size=760632 , |  | ||||||
|         permission=384IpcMemoryCreate: shmget(..., create, ...) |  | ||||||
|         failed: Invalid argument |  | ||||||
| 
 |  | ||||||
|         You haven't build IPC support into your Linux kernel. You |  | ||||||
|         will have to rebuild the kernel and switch on this option. |  | ||||||
| 
 |  | ||||||
| 3.6)    Why does psql fail with: |  | ||||||
|         psql: can't load library 'libpq.so.1' |  | ||||||
| 
 |  | ||||||
| 	Psql has been compiled to link dynamically with the libpq |  | ||||||
| 	library. |  | ||||||
| 
 |  | ||||||
| 	To solve this, you should log in as root and edit the file |  | ||||||
| 		/etc/ld.so.conf |  | ||||||
| 	Add a single line at the end which gives the name of the |  | ||||||
| 	PostgreSQL library directory (the lib subdirectory of your |  | ||||||
| 	PostgreSQL installation) and run |  | ||||||
| 		/sbin/ldconfig -v |  | ||||||
| 
 |  | ||||||
|         Alternatively, (and if you don't have root access), you may |  | ||||||
|         use the LD_LIBRARY_PATH environment variable. |  | ||||||
| 
 |  | ||||||
|         The LD_LIBRARY_PATH variable contains a colon separated list of |  | ||||||
|         paths to be searched for shared libraries.  This list is  |  | ||||||
|         searched before the libraries specified by ldconfig. |  | ||||||
| 
 |  | ||||||
|         Therefore under Bash, you would do something like: |  | ||||||
|                 export LD_LIBRARY_PATH='PathToPGSQL'/lib |  | ||||||
|         or, using tcsh |  | ||||||
|                 setenv LD_LIBRARY_PATH 'PathToPGSQL'/lib |  | ||||||
|         replacing 'PathToPGSQL' with the appropriate path to your top level |  | ||||||
|         PostgreSQL directory |  | ||||||
| 
 |  | ||||||
|         Note that the ldd command can be used on a dynamically linked |  | ||||||
|         executable to list the paths to all the shared libraries upon |  | ||||||
|         which the executable depends. |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 3.7)    Other strange behaviour |  | ||||||
| 
 |  | ||||||
|         I'm not sure what the symptoms might be except for nothing  |  | ||||||
|         working properly, but it has been pointed out that one needs |  | ||||||
|         to be careful that the dynamic loader loads the correct version |  | ||||||
|         of the libpq library. If you have old versions lying around |  | ||||||
|         in your library path (for example in /usr/lib) these may get |  | ||||||
|         loaded instead of the new version you intended to load. Make |  | ||||||
|         sure you get them out of the way and look at Q3.6 for  |  | ||||||
|         details of loading libraries. |  | ||||||
| 
 |  | ||||||
| 3.8)    When PostgreSQL is running when the system is shutdown, Linux |  | ||||||
|         always fsck's the disk when rebooted. |  | ||||||
| 
 |  | ||||||
|         There have been some reports of this happening and it seems |  | ||||||
|         to be a result of running PostgreSQL from /etc/inittab as |  | ||||||
|         suggested in the INSTALL document. |  | ||||||
| 
 |  | ||||||
|         You are therefore recommended to start the postmaster from an |  | ||||||
|         rc script. Under a Slackware-like release, you would modify |  | ||||||
|         /etc/rc.d/rc.local to start the postmaster. Under a RedHat-like |  | ||||||
|         release you should create a SysV style script in  |  | ||||||
|         /etc/rc.d/rc3.d based on the /etc/rc.d/init.d skeleton file. |  | ||||||
| 
 |  | ||||||
|         There's a sample file in contrib/linux/postgres.init |  | ||||||
| 
 |  | ||||||
|         Here's another sample file supplied by John Robinson  |  | ||||||
|         <john@intelligent.co.uk> which you should modify as needed: |  | ||||||
| 
 |  | ||||||
| #!/bin/sh |  | ||||||
| # |  | ||||||
| # postgreSQL.init This shell script takes care of starting and stopping |  | ||||||
| #               the PostgreSQL postmaster. |  | ||||||
| # |  | ||||||
| 
 |  | ||||||
| # Source function library. |  | ||||||
| . /etc/rc.d/init.d/functions |  | ||||||
| 
 |  | ||||||
| # Source networking configuration. |  | ||||||
| . /etc/sysconfig/network |  | ||||||
| 
 |  | ||||||
| # Check that networking is up. |  | ||||||
| [ ${NETWORKING} = "no" ] && exit 0 |  | ||||||
| 
 |  | ||||||
| # See how we were called. |  | ||||||
| case "$1" in |  | ||||||
|   start) |  | ||||||
|         # Start daemons. |  | ||||||
|         echo -n "Starting postgres Postmaster daemon:" |  | ||||||
|         if [ -z "`pidofproc postmaster`" ] |  | ||||||
|         then |  | ||||||
|                 su postgres -c "/usr/local/pgsql/bin/postmaster -D /home/postgreSQL/data -p 5432 &" |  | ||||||
|                 echo -n " postmaster" |  | ||||||
|         else |  | ||||||
|                 echo -n " (already running)" |  | ||||||
|         fi |  | ||||||
|         echo |  | ||||||
|         touch /var/lock/subsys/postgres |  | ||||||
|         ;; |  | ||||||
|   stop) |  | ||||||
|         # Stop daemons. |  | ||||||
|         echo -n "Shutting down postgres Postmaster daemon: " |  | ||||||
|         killall -TERM postmaster 2>/dev/null |  | ||||||
|         killall -TERM postgres 2>/dev/null |  | ||||||
|         echo |  | ||||||
|         rm -f /var/lock/subsys/postgres |  | ||||||
|         ;; |  | ||||||
|   *) |  | ||||||
|         echo "Usage: postgres {start|stop}" |  | ||||||
|         exit 1 |  | ||||||
| esac |  | ||||||
| 
 |  | ||||||
| exit 0 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 3.9)    Why does Query 32 in the regression tests take so long? |  | ||||||
| 
 |  | ||||||
|         This is due to a bug in regression scripts which only happens |  | ||||||
|         on linux boxes. There are two workarounds as far as I know |  | ||||||
|         (information from Tatsuo Ishii <t-ishii@sra.co.jp>): |  | ||||||
| 
 |  | ||||||
|         1. change following in regress.sh: |  | ||||||
|                 time postgres -texecutor -tplanner -Q bench < bench.sql |  | ||||||
|         to: |  | ||||||
|                 postgres -texecutor -tplanner -Q bench < bench.sql |  | ||||||
| 
 |  | ||||||
|         2. after running the test, remove a line at the very end of |  | ||||||
|         bench.out something like: |  | ||||||
|                 85.86user 114.47system 4:49.20elapsed 69%CPU (0avgtext+0avgdata 0maxresident)k |  | ||||||
|         then type: |  | ||||||
|                 sh ./perquery < bench.out > & bench.out.perquery |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 3.10)   Why do I get funny rounding results in some date/time arithmetic, |  | ||||||
|         such as |  | ||||||
|            select '4 hours'::timespan; |  | ||||||
|         returning '3 hours 59 minutes 60 seconds'? |  | ||||||
| 
 |  | ||||||
|         You are running the new glibc2 libraries and have a version earlier than |  | ||||||
|         2.0.7. It is a math rounding problem in the library. Upgrade your library. |  | ||||||
| ---------------------------------------------------------------------------- |  | ||||||
| Dr. Andrew C.R. Martin                             University College London |  | ||||||
| EMAIL: (Work) martin@biochem.ucl.ac.uk    (Home) andrew@stagleys.demon.co.uk |  | ||||||
| URL:   http://www.biochem.ucl.ac.uk/~martin |  | ||||||
| Tel:   (Work) +44(0)171 419 3890                    (Home) +44(0)1372 275775 |  | ||||||
| </PRE> |  | ||||||
							
								
								
									
										504
									
								
								doc/TODO
									
									
									
									
									
								
							
							
						
						
									
										504
									
								
								doc/TODO
									
									
									
									
									
								
							| @ -1,24 +1,27 @@ | |||||||
| TODO list for PostgreSQL | TODO list for PostgreSQL | ||||||
| ======================== | ======================== | ||||||
| Last updated:		Tue Apr  7 16:56:24 EDT 1998 | Last updated:		Sat Aug 29 17:43:10 EDT 1998 | ||||||
| 
 | 
 | ||||||
| Current maintainer:	Bruce Momjian (maillist@candle.pha.pa.us) | Current maintainer:	Bruce Momjian (maillist@candle.pha.pa.us) | ||||||
| 
 | 
 | ||||||
| The most recent version of this document can be viewed at | The most recent version of this document can be viewed at | ||||||
| the PostgreSQL WWW site, http://www.postgreSQL.org. | the PostgreSQL WWW site, http://www.postgreSQL.org. | ||||||
| 
 | 
 | ||||||
| THE CHANGES FOR 6.3 APPEAR AT THE END OF THIS DOCUMENT | THE CHANGES FOR 6.4 APPEAR AT THE END OF THIS DOCUMENT | ||||||
| 
 | 
 | ||||||
| A dash(-) marks changes to be in the next release. | A dash(-) marks changes to be in the next release. | ||||||
| 
 | 
 | ||||||
| Developers who have claimed items are: | Developers who have claimed items are: | ||||||
| ------------------------------------- | ------------------------------------- | ||||||
|  | 	* Billy is Billy G. Allie <Bill.Allie@mug.org> | ||||||
|  | 	* Brook is Brook Milligan <brook@trillium.NMSU.Edu> | ||||||
| 	* Bruce is Bruce Momjian<maillist@candle.pha.pa.us> | 	* Bruce is Bruce Momjian<maillist@candle.pha.pa.us> | ||||||
| 	* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net> | 	* Bryan is Bryan Henderson<bryanh@giraffe.netgate.net> | ||||||
| 	* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net> | 	* D'Arcy is D'Arcy J.M. Cain <darcy@druid.net> | ||||||
| 	* Dan is Dan McGuirk <mcguirk@indirect.com> | 	* Dan is Dan McGuirk <mcguirk@indirect.com> | ||||||
| 	* Daniel is Daniel Kalchev <daniel@digsys.bg> | 	* Daniel is Daniel Kalchev <daniel@digsys.bg> | ||||||
| 	* Darren is Darren King <darrenk@insightdist.com> | 	* Darren is Darren King <darrenk@insightdist.com> | ||||||
|  | 	* David is David Hartwig <daveh@insightdist.com> | ||||||
| 	* Edmund is Edmund Mergl <E.Mergl@bawue.de> | 	* Edmund is Edmund Mergl <E.Mergl@bawue.de> | ||||||
| 	* Erich Stamberger <eberger@gewi.kfunigraz.ac.at> | 	* Erich Stamberger <eberger@gewi.kfunigraz.ac.at> | ||||||
| 	* Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at> | 	* Gerhard is Gerhard Reithofer <gerhardr@tech-edv.co.at> | ||||||
| @ -31,40 +34,42 @@ Developers who have claimed items are: | |||||||
| 	* Maarten is Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl> | 	* Maarten is Maarten Boekhold <maartenb@dutepp0.et.tudelft.nl> | ||||||
|  	* Marc is Marc Fournier <scrappy@hub.org> |  	* Marc is Marc Fournier <scrappy@hub.org> | ||||||
|  	* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de> |  	* Martin is Martin S. Utesch <utesch@aut.tu-freiberg.de> | ||||||
|  | 	* Massimo Dal Zotto <dz@cs.unitn.it> | ||||||
| 	* Michael is Michael Meskes <meskes@debian.org> | 	* Michael is Michael Meskes <meskes@debian.org> | ||||||
| 	* Oleg is Oleg Bartunov <oleg@sai.msu.su> | 	* Oleg is Oleg Bartunov <oleg@sai.msu.su> | ||||||
| 	* Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU> | 	* Paul is Paul M. Aoki <aoki@CS.Berkeley.EDU> | ||||||
| 	* Patrick is Patrick van Kleef <pvk@pobox.com> | 	* Patrick is Patrick van Kleef <pvk@pobox.com> | ||||||
| 	* Peter is Peter T Mount <psqlhack@maidast.demon.co.uk> | 	* Peter is Peter T Mount <peter@retep.org.uk> | ||||||
| 	* Phil is Phil Thompson <phil@river-bank.demon.co.uk> | 	* Phil is Phil Thompson <phil@river-bank.demon.co.uk> | ||||||
| 	* Raymond is Raymond Toy <toy@rtp.ericsson.se> | 	* Raymond is Raymond Toy <toy@rtp.ericsson.se> | ||||||
|  | 	* Ryan is Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu> | ||||||
| 	* Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr> | 	* Soo-Ho Ok <shok@detc.dongeui-tc.ac.kr> | ||||||
| 	* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at> | 	* Stefan Simkovics <ssimkovi@rainbow.studorg.tuwien.ac.at> | ||||||
| 	* Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be> | 	* Sven is Sven Verdoolaege <skimo@breughel.ufsia.ac.be> | ||||||
| 	* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> | 	* Tatsuo is Tatsuo Ishii <t-ishii@sra.co.jp> | ||||||
| 	* Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov> | 	* Thomas is Thomas Lockhart <tgl@mythos.jpl.nasa.gov> | ||||||
| 	* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu> | 	* Todd is Todd Brandys is <brandys@eng3.hep.uiuc.edu> | ||||||
|  | 	* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO> | ||||||
| 	* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su> | 	* Vadim is "Vadim B. Mikheev" <vadim@sable.krasnoyarsk.su> | ||||||
| 	* Vivek is Vivek Khera <khera@kci.kciLink.com> | 	* Vivek is Vivek Khera <khera@kci.kciLink.com> | ||||||
| 
 | 
 | ||||||
| Additional 6.3 developers include: | Additional 6.4 developers include: | ||||||
| --------------------------------- | --------------------------------- | ||||||
| 	* Billy is Billy G. Allie <Bill.Allie@mug.org> | 	* Jun Kuwamura <juk@rccm.co.jp> | ||||||
| 	* Brook is Brook Milligan <brook@trillium.NMSU.Edu> | 	* Zeugswetter Andreas SARZ <Andreas.Zeugswetter@telecom.at> | ||||||
| 	* James is James Hughes <jamesh@interpath.com> | 	* Soonmyung. Hong <hong@lunaris.hanmesoft.co.kr> | ||||||
| 	* Jeroen is Jeroen van Vianen <jeroenv@design.nl> | 	* Anders Hammarquist <iko@netg.se> | ||||||
| 	* Matt is Matt Maycock <maycock@intelliquest.com> | 	* Jeroen van Vianen <jeroenv@design.nl> | ||||||
| 	* Ryan is Ryan Kirkpatrick <rkirkpat@nag.cs.colorado.edu> | 	* Aldrin L. <aldrin@americasnet.com> | ||||||
| 	* TomH is Tom I Helbekkmo <tih@Hamartun.Priv.NO> | 	* Pascal ANDRE <andre@via.ecp.fr> | ||||||
| 	* TomS is Tom Szybist | 	* Magnus Hagander <mha@edu.sollentuna.se> | ||||||
| 	* Travis is Travis Melhiser <melhiser@viper.co.union.nc.us> |  | ||||||
| 
 | 
 | ||||||
| RELIABILITY | RELIABILITY | ||||||
| ----------- | ----------- | ||||||
| * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup | * Overhaul mdmgr/smgr to fix double unlinking and double opens, cleanup | ||||||
| * Overhaul bufmgr/lockmgr/transaction manager | * Overhaul bufmgr/lockmgr/transaction manager | ||||||
| * Remove EXTEND? | * Remove EXTEND? | ||||||
| * CREATE VIEW requires super-user priviledge | * -CREATE VIEW requires super-user priviledge | ||||||
| * Can lo_export()/lo_import() read/write anywhere, causing a security problem? | * Can lo_export()/lo_import() read/write anywhere, causing a security problem? | ||||||
| * Tables that start with xinv confused to be large objects | * Tables that start with xinv confused to be large objects | ||||||
| * Two and three dimmensional arrays display improperly, missing {} | * Two and three dimmensional arrays display improperly, missing {} | ||||||
| @ -73,7 +78,7 @@ RELIABILITY | |||||||
| * SELECT * FROM table WHERE int4_column = '1' fails | * SELECT * FROM table WHERE int4_column = '1' fails | ||||||
| * SELECT a[1] FROM test fails, it needs test.a[1] | * SELECT a[1] FROM test fails, it needs test.a[1] | ||||||
| * UPDATE table SET table.value = 3 fails | * UPDATE table SET table.value = 3 fails | ||||||
| * Make pg_dump preserve inheritance column order, do non-inherits first | * -Make pg_dump preserve inheritance column order, do non-inherits first | ||||||
| * User who can create databases can modify pg_database table | * User who can create databases can modify pg_database table | ||||||
| * optimizer memory exhaustion with many OR's | * optimizer memory exhaustion with many OR's | ||||||
| * elog() does not free all its memory(Jan) | * elog() does not free all its memory(Jan) | ||||||
| @ -81,6 +86,10 @@ RELIABILITY | |||||||
| * disallow inherited columns with the same name as new columns | * disallow inherited columns with the same name as new columns | ||||||
| * recover or force failure when disk space is exhausted | * recover or force failure when disk space is exhausted | ||||||
| * default char() value not to full length crashes server on some OS's | * default char() value not to full length crashes server on some OS's | ||||||
|  | * allow UPDATE using aggregate to affect all rows, not just one | ||||||
|  | * computations in views fail: | ||||||
|  | 	create view test as select usesysid * usesysid from pg_shadow; | ||||||
|  | * select upper(usename), count(usesysid) from pg_shadow group by 1 fails  | ||||||
| 
 | 
 | ||||||
| ENHANCEMENTS | ENHANCEMENTS | ||||||
| ------------ | ------------ | ||||||
| @ -92,36 +101,37 @@ ENHANCEMENTS | |||||||
| * Add full ANSI SQL capabilities | * Add full ANSI SQL capabilities | ||||||
| 	* -Implement HAVING clause(Stephan) | 	* -Implement HAVING clause(Stephan) | ||||||
| 	* add OUTER joins, left and right (Thomas) | 	* add OUTER joins, left and right (Thomas) | ||||||
| 	* make VIEWs updateable where possible | 	* -make VIEWs updateable where possible(use Rules) | ||||||
| 	* add INTERSECTS, SUBTRACTS(Stephan) | 	* add INTERSECTS, SUBTRACTS(Stephan) | ||||||
| 	* add temporary tables(Bruce) | 	* add temporary tables | ||||||
| 	* add sql3 recursive unions | 	* add sql3 recursive unions | ||||||
| 	* add the concept of dataspaces | 	* add the concept of dataspaces | ||||||
| 	* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING | 	* add DECIMAL, NUMERIC, DOUBLE PRECISION, BIT, BIT VARYING | ||||||
|  	* NCHAR (as distinguished from ordinary varchar), |  	* NCHAR (as distinguished from ordinary varchar), | ||||||
| 	* DOMAIN capability | 	* DOMAIN capability | ||||||
| * Allow compression of large fields or a compressed field type | * Allow compression of large fields or a compressed field type | ||||||
| * Fix the rules system(Jan?,Soo-Ho) | * Fix the rules system(Jan,Soo-Ho) | ||||||
| 	* robust | 	* -robust | ||||||
| 	* making INSTEAD rules work | 	* -making INSTEAD rules work | ||||||
| 	* add CONSTRAINT | 	* add CONSTRAINT | ||||||
| * Full set of text operations and functions | * Full set of text operations and functions | ||||||
| 	* word searches, concat,max() on text, char | 	* word searches, concat,max() on text, char | ||||||
| * Large objects | * Large objects | ||||||
| 	* Fix large object mapping scheme, own reltype | 	* Fix large object mapping scheme, own reltype(Peter) | ||||||
|  | 	* Allow large text type to use large objects(Peter) | ||||||
| 	* not to stuff everything as files in a single directory | 	* not to stuff everything as files in a single directory | ||||||
| 	* Fix large object memory leaks | 	* Fix large object memory leaks | ||||||
|  | 	* delete orphaned large objects | ||||||
| * Better interface for adding to pg_group | * Better interface for adding to pg_group | ||||||
| * Make MONEY/DECIMAL have a defined precision | * Make MONEY/DECIMAL have a defined precision | ||||||
| * Fix tables >2G, or report error when 2G size reached | * Fix tables >2G, or report error when 2G size reached | ||||||
| 	(fix lseek()/off_t, mdextend()/RELSEG_SIZE) | 	(fix lseek()/off_t, mdextend()/RELSEG_SIZE) | ||||||
| * Threaded version of the server or libpq | * -Allow libpq to cancel query requests | ||||||
| * Allow libpq to cancel query requests |  | ||||||
| * Add REGEX internationalization | * Add REGEX internationalization | ||||||
| * allow row re-use without vacuum, maybe?(Vadim) | * allow row re-use without vacuum, maybe?(Vadim) | ||||||
| * Remove restriction that ORDER BY field must be in SELECT list | * -Remove restriction that ORDER BY field must be in SELECT list(David) | ||||||
| * Add word index for text fields, maybe with trigrams, i.e.: | * Add word index for text fields, maybe with trigrams, i.e.: | ||||||
|     * ' (cat | dog) & ! fox ' meaning text has cat or dog, but not fox |     * ' (cat | dog) & ! fox ' meaning text has cat aor dog, but not fox | ||||||
| * Populate backend status area and write program to dump status data | * Populate backend status area and write program to dump status data | ||||||
| * Add ALTER TABLE DROP COLUMN feature | * Add ALTER TABLE DROP COLUMN feature | ||||||
| * Allow INSERT INTO ... SELECT to convert column types | * Allow INSERT INTO ... SELECT to convert column types | ||||||
| @ -146,6 +156,7 @@ ENHANCEMENTS | |||||||
| * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions | * Allow cursors to be DECLAREd/OPENed/CLOSEed outside transactions | ||||||
| * Allow installation data block size and max tuple size configuration(Darren) | * Allow installation data block size and max tuple size configuration(Darren) | ||||||
| * Allow views on a UNION | * Allow views on a UNION | ||||||
|  | * Allow DISTINCT on view | ||||||
| * Allow views of aggregate columns | * Allow views of aggregate columns | ||||||
| * Allow variable block sizes(Darren) | * Allow variable block sizes(Darren) | ||||||
| * System tables are now more update-able from SQL(Jan) | * System tables are now more update-able from SQL(Jan) | ||||||
| @ -161,19 +172,33 @@ ENHANCEMENTS | |||||||
| * Granting permissions to another user looses permissions for the owner | * Granting permissions to another user looses permissions for the owner | ||||||
| * Allow queries across multiple databases | * Allow queries across multiple databases | ||||||
| * Add replication of distributed databases | * Add replication of distributed databases | ||||||
|  | * Allow table destruction/alter to be rolled back | ||||||
|  | * Add pg_attribute.atttypmod/Resdom->restypmod to PGresult structure | ||||||
|  | * Generate error on CREATE OPERATOR of ~~, ~ and and ~* | ||||||
|  | * Allow constraint NULL just as we honor NOT NULL | ||||||
|  | * Add version number in startup banners for psql and postmaster | ||||||
|  | * Restructure storing of GRANT permission information to allow +-= | ||||||
|  | * allow psql \copy to allow delimiters | ||||||
|  | * allow international error message support and add error codes | ||||||
|  | * allow ORDER BY a function(David) | ||||||
|  | * allow usernames with dashes(GRANT fails) | ||||||
|  | * add a function to return the last inserted oid, for use in psql scripts | ||||||
|  | * allow creation of functional indexes to use default types | ||||||
|  | * put sort files, large objects in their on directory | ||||||
|  | * CREATE VIEW myview (name) AS SELECT lname FROM wages fails | ||||||
| 
 | 
 | ||||||
| PERFORMANCE | PERFORMANCE | ||||||
| ----------- | ----------- | ||||||
| * Use indexes in ORDER BY, min(), max()(Costin Oproiu) | * Use indexes in ORDER BY for restrictive data sets, min(), max() | ||||||
| * Optimizing disjunctive queries | * Optimizing disjunctive queries | ||||||
| * Fix bushy-plans (Martin) | * Fix bushy-plans | ||||||
| * Other optimizer bugs | * Other optimizer bugs | ||||||
| * Prevent fsync in SELECT-only queries | * Prevent fsync in SELECT-only queries | ||||||
| * Cache most recent query plan(s?) | * Cache most recent query plan(s?) | ||||||
| * Shared catalog cache, reduce lseek()'s by caching table size in shared area | * Shared catalog cache, reduce lseek()'s by caching table size in shared area | ||||||
| * Allow compression of log and meta data | * Allow compression of log and meta data | ||||||
| * Add FILLFACTOR to index creation | * Add FILLFACTOR to index creation | ||||||
| * Allow indexes to be used with OR clauses(Vadim) | * -Allow indexes to be used with OR clauses(Bruce) | ||||||
| * update pg_statistic table to remove operator column | * update pg_statistic table to remove operator column | ||||||
| * make index creation use psort code, because it is now faster(Vadim) | * make index creation use psort code, because it is now faster(Vadim) | ||||||
| * remove fork()/exec() of backend and make it just fork() | * remove fork()/exec() of backend and make it just fork() | ||||||
| @ -185,6 +210,9 @@ PERFORMANCE | |||||||
| * Use spin locks only on multi-CPU systems, yield CPU instead | * Use spin locks only on multi-CPU systems, yield CPU instead | ||||||
| * Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca> | * Get faster regex() code from Henry Spencer <henry@zoo.utoronto.ca> | ||||||
| 	when it is available | 	when it is available | ||||||
|  | * use mmap() rather than SYSV shared memory(?) | ||||||
|  | * use index to restrict rows returned by multi-key index when used with | ||||||
|  | 	non-consecutive keys or OR clauses, so fewer heap accesses | ||||||
| 
 | 
 | ||||||
| DOCUMENTATION | DOCUMENTATION | ||||||
| ------------- | ------------- | ||||||
| @ -198,284 +226,162 @@ DOCUMENTATION | |||||||
| 
 | 
 | ||||||
| ============================================================================= | ============================================================================= | ||||||
| 
 | 
 | ||||||
| 
 | CHANGES IN THE 6.4 RELEASE | ||||||
| CHANGES IN THE 6.3.2 PATCH |  | ||||||
| -------------------------- | -------------------------- | ||||||
| configure detection improvements for tcl/tk(Brook Milligan, Alvin) |  | ||||||
| Manual page improvements(Bruce) |  | ||||||
| BETWEEN and LIKE fix(Thomas) |  | ||||||
| fix for psql \connect used by pg_dump(Oliver Elphick) |  | ||||||
| New odbc driver |  | ||||||
| pgaccess, version 0.86 |  | ||||||
| qsort removed, now uses libc version, cleanups(Jeroen) |  | ||||||
| fix for buffer over-runs detected(Maurice Gittens) |  | ||||||
| fix for buffer overrun in libpgtcl(Randy Kunkee) |  | ||||||
| fix for UNION with DISTINCT or ORDER BY(Bruce) |  | ||||||
| gettimeofday configure check(Doug Winterburn) |  | ||||||
| Fix "indexes not used" bug(Vadim) |  | ||||||
| docs additions(Thomas) |  | ||||||
| Fix for backend memory leak(Bruce) |  | ||||||
| libreadline cleanup(Erwan MAS) |  | ||||||
| Remove DISTDIR(Bruce) |  | ||||||
| Makefile dependency cleanup(Jeroen van Vianen) |  | ||||||
| ASSERT fixes(Bruce) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| CHANGES IN THE 6.3.1 PATCH  |  | ||||||
| -------------------------- |  | ||||||
| ecpg cleanup/fixes, now version 1.1(Michael Meskes) |  | ||||||
| pg_user cleanup(Bruce) |  | ||||||
| large object fix for pg_dump and tclsh(alvin@camberlo.demon.co.uk) |  | ||||||
| LIKE fix for multiple adjacent underscores |  | ||||||
| LIKE/BETWEEN fix for having function call as target(Thomas) |  | ||||||
| fix for redefining builtin functions(Thomas) |  | ||||||
| ultrix4 cleanup |  | ||||||
| upgrade to pg_access 0.83 |  | ||||||
| updated CLUSTER manual page |  | ||||||
| multi-byte character set support, see doc/README.mb(Tatsuo) |  | ||||||
| configure --with-pgport fix |  | ||||||
| pg_ident fix |  | ||||||
| big-endian fix for backend communications(Kataoka) |  | ||||||
| SUBSTR() and substring() fix(Jan) |  | ||||||
| several jdbc fixes(Peter) |  | ||||||
| libpgtcl improvements, see libptcl/README(Randy Kunkee) |  | ||||||
| Fix for "Datasize = 0" error(Vadim) |  | ||||||
| Prevent \do from wrapping(Bruce) |  | ||||||
| Remove duplicate Russian character set entries |  | ||||||
| Sunos4 cleanup |  | ||||||
| Allow optional TABLE keyword in LOCK and SELECT INTO(Thomas) |  | ||||||
| CREATE SEQUENCE options to allow a negative integer(Thomas) |  | ||||||
| Add "PASSWORD" as an allowed column identifier(Thomas) |  | ||||||
| Add checks for UNION target fields(Bruce) |  | ||||||
| Fix Alpha port(Dwayne Bailey) |  | ||||||
| Fix for text arrays containing quotes(Doug Gibson) |  | ||||||
| Solaris compile fix(Albert Chin-A-Young) |  | ||||||
| Better identify tcl and tk libs and includes(Bruce) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| CHANGES IN THE 6.3 RELEASE |  | ||||||
| -------------------------- |  | ||||||
| 
 |  | ||||||
| There are some general 6.3 issues that I want to mention.  These are |  | ||||||
| only the big items that can not be described in one sentence. |  | ||||||
| 
 |  | ||||||
| First, we now have subselects.  Now that we have them, I would like to |  | ||||||
| mention that without subselects, SQL is a very limited language. |  | ||||||
| Subselects are a major feature, and you should review your code for |  | ||||||
| places where subselects provide a better solution for your queries.  I |  | ||||||
| think you will find that there are more uses for subselects than you may |  | ||||||
| think.  Vadim has put us on the big SQL map with subselects, and fully |  | ||||||
| functional ones too.  The only thing you can't do with subselects is to |  | ||||||
| use them in the target list. |  | ||||||
| 
 |  | ||||||
| Second, 6.3 uses unix domain sockets rather than TCP/IP by default.  To |  | ||||||
| enable connections from other machines, you have to use the new |  | ||||||
| postmaster -i option, and of course edit pg_hba.conf.  Also, for this |  | ||||||
| reason, the format of pg_hba.conf has changed. |  | ||||||
| 
 |  | ||||||
| Third, char() fields will now allow faster access than varchar() or |  | ||||||
| text. Specifically, the text and varchar() have a penalty for access to |  | ||||||
| any columns after the first column of this type.  char() used to also |  | ||||||
| have this access penalty, but it no longer does.  This may suggest that |  | ||||||
| you redesign some of your tables, especially if you have short character |  | ||||||
| columns that you have defined as varchar() or text.  This and other |  | ||||||
| changes make 6.3 even faster than earlier releases. |  | ||||||
| 
 |  | ||||||
| We now have passwords definable independent of any Unix file.  There are |  | ||||||
| new SQL USER commands.  See the pg_hba.conf manual page for more |  | ||||||
| information.  There is a new table, pg_shadow, which is used to store |  | ||||||
| user information and user passwords, and it by default only SELECT-able |  | ||||||
| by the postgres super-user.  pg_user is now a view of pg_shadow, and is |  | ||||||
| SELECT-able by PUBLIC.  You should keep using pg_user in your |  | ||||||
| application without changes. |  | ||||||
| 
 |  | ||||||
| User-created tables now no longer have SELECT permission to PUBLIC by |  | ||||||
| default.  This was done because the ANSI standard requires it.  You can |  | ||||||
| of course GRANT any permissions you want after the table is created.  |  | ||||||
| System tables continue to be SELECT-able by PUBLIC. |  | ||||||
| 
 |  | ||||||
| We also have real deadlock detection code.  No more sixty-second |  | ||||||
| timeouts.  And the new locking code implements a FIFO better, so there |  | ||||||
| should be less resource starvation during heavy use. |  | ||||||
| 
 |  | ||||||
| Many complaints have been made about inadequate documenation in previous |  | ||||||
| releases.  Thomas has put much effort into many new manuals for this |  | ||||||
| release.  Check out the /doc directory. |  | ||||||
| 
 |  | ||||||
| For performance reasons, time travel is gone, but can be implemented |  | ||||||
| using triggers (see pgsql/contrib/spi/README).  Please check out the new |  | ||||||
| \d command for types, operators, etc.  Also, views have their own |  | ||||||
| permissions now, not based on the underlying tables, so permissions on |  | ||||||
| them have to be set separately.  Check /pgsql/interfaces for some new |  | ||||||
| ways to talk to PostgreSQL. |  | ||||||
| 
 |  | ||||||
| This is the first release that really required an explaination for |  | ||||||
| existing users.  In many ways, this was necessary because the new |  | ||||||
| release removes many limitations, and the work-arounds people were using |  | ||||||
| are no longer needed. |  | ||||||
| 
 | 
 | ||||||
| Bug Fixes | Bug Fixes | ||||||
| --------- | --------- | ||||||
| Fix binary cursors broken by MOVE implementation(Vadim) | Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan) | ||||||
| Fix for tcl library crash(Jan) | Remove char2-16 data types, use char/varchar(Darren) | ||||||
| Fix for array handling, from Gerhard Hintermayer | Pqfn not handles a NOTICE message(Anders) | ||||||
| Fix acl error, and remove duplicate pqtrace(Bruce) | Short-term locks now retry locking at random times(David) | ||||||
| Fix psql \e for empty file(Bruce) | Fix up "ISO-style" timespan decoding and encoding(Thomas) | ||||||
| Fix for textcat on varchar() fields(Bruce) | Fix problem with table drop after rollback of transaction(Vadim) | ||||||
| Fix for DBT Sendproc (Zeugswetter Andres) | Change error message and remove non-functional update message(Vadim) | ||||||
| Fix vacuum analyze syntax problem(Bruce) | Fix for COPY array checking | ||||||
| Fix for international identifiers(Tatsuo) | Fix for SELECT 1 UNION SELECT NULL | ||||||
| Fix aggregates on inherited tables(Bruce) | Fix for buffer leaks in large object calls(Pascal) | ||||||
| Fix substr() for out-of-bounds data | Change owner from oid to int4 type(Bruce) | ||||||
| Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce) | Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim() | ||||||
| Fix notty output to show status result.  -q option still turns it off(Bruce) | Fix for usernames longer than eight characters(Tom) | ||||||
| Fix for count(*), aggs with views and multiple tables and sum(3)(Bruce) | Fix for shared invalidation cache overflow(Massimo) | ||||||
| Fix cluster(Bruce) | Prevent file descriptor leaks in failed COPY's(Bruce) | ||||||
| Fix for PQtrace start/stop several times(Bruce) |  | ||||||
| Fix a variety of locking problems like newer lock waiters getting |  | ||||||
| 	lock before older waiters, and having readlock people not share |  | ||||||
| 	locks if a writer is waiting for a lock, and waiting writers not |  | ||||||
| 	getting priority over waiting readers(Bruce) |  | ||||||
| Fix crashes in psql when executing queries from external files(James) |  | ||||||
| Fix problem with multiple order by columns, with the first one having |  | ||||||
| 	NULL values(Jeroen) |  | ||||||
| Use correct hash table support functions for float8 and int4(Thomas) |  | ||||||
| Re-enable JOIN= option in CREATE OPERATOR statement (Thomas) |  | ||||||
| Change precedence for boolean operators to match expected behavior(Thomas) |  | ||||||
| Generate elog(ERROR) on over-large integer(Bruce) |  | ||||||
| Allow multiple-argument functions in constraint clauses(Thomas) |  | ||||||
| Check boolean input literals for 'true','false','yes','no','1','0' |  | ||||||
| 	and throw elog(ERROR) if unrecognized(Thomas) |  | ||||||
| Major large objects fix |  | ||||||
| Fix for GROUP BY showing duplicates(Vadim) |  | ||||||
| Fix for index scans in MergeJion(Vadim) |  | ||||||
| 
 | 
 | ||||||
| Enhancements | Enhancements | ||||||
| ------------ | ------------ | ||||||
| Subselects with EXISTS, IN, ALL, ANY keywords (Vadim, Bruce, Thomas) | Upgrade ECPG to 2.0, see src/interfaces/ecpc/ChangeLog(Michael) | ||||||
| New User Manual(Thomas, others) | Show the index used in an explain(Zeugswetter) | ||||||
| Speedup by inlining some frequently-called functions | Multi-byte awareness of many data data types and functions(Tatsuo) | ||||||
| Real deadlock detection, no more timeouts(Bruce) | New configure --with-mb option(Tatsuo) | ||||||
| Add SQL92 "constants" CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP,  | New initdb --pgencoding option(Tatsuo) | ||||||
| 	CURRENT_USER(Thomas) | New createdb -E multibyte option(Tatsuo) | ||||||
| Modify constraint syntax to be SQL92-compliant(Thomas) | Select version(); now returns PostgreSQL version(Jeroen) | ||||||
| Implement SQL92 PRIMARY KEY and UNIQUE clauses using indices(Thomas) | Libpq now allows asynchronous clients(Tom) | ||||||
| Recognize SQL92 syntax for FOREIGN KEY. Throw elog notice(Thomas) | Allow cancel from client of backend query(Tom) | ||||||
| Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas) | Psql now cancels query with Control-C(Tom) | ||||||
| Allow Postgres-style casting ("::") of non-constants(Thomas) | Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas) | ||||||
| Add support for SQL3 TRUE and FALSE boolean constants(Thomas) | Add routines to convert between varchar and bpchar(Thomas) | ||||||
| Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas) | Add routines to allow sizing of varchar and bpchar into target columns(Thomas) | ||||||
| Allow shorter strings for boolean literals (e.g. "t", "tr", "tru")(Thomas) | Add bit flags to support timezonehour and minute in data retrieval(Thomas) | ||||||
| Allow SQL92 delimited identifiers(Thomas) | Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas) | ||||||
| Implement SQL92 binary and hexadecimal string decoding (b'10' and x'1F')(Thomas) | Fixes for unary minus parsing with leading spaces(Thomas) | ||||||
| Support SQL92 syntax for type coercion of literal strings | Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas) | ||||||
| 	(e.g. "DATETIME 'now'")(Thomas) | Check for and properly ignore FOREIGN KEY column constraints(Thomas) | ||||||
| Add conversions for int2, int4, and OID types to and from text(Thomas) | Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas) | ||||||
| Use shared lock when building indices(Vadim) | Enable HAVING clause but no fixes elsewhere yet. | ||||||
| Free memory allocated for an user query inside transaction block after | Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas) | ||||||
| 	this query is done, was turned off in <= 6.2.1(Vadim) | Save string type if specified for DEFAULT clause handling(Thomas) | ||||||
| New SQL statement CREATE PROCEDURAL LANGUAGE(Jan) | Coerce operations involving different data types(Thomas) | ||||||
| New PostgreSQL Procedural Language (PL) backend interface(Jan) | Allow some index use for columns of different types(Thomas) | ||||||
| Rename pg_dump -H option to -h(Bruce) | Add capabilities for automatic type conversion(Thomas) | ||||||
| Add Java support for passwords, European dates(Peter) | Cleanups for large objects, so file is truncated on open(Peter) | ||||||
| Use indices for LIKE and ~, !~ operations(Bruce) | Readline cleanups(Tom) | ||||||
| Add hash functions for datetime and timespan(Thomas) | Allow psql  \f \ to make spaces as delimiter(Bruce) | ||||||
| Time Travel removed(Vadim, Bruce) | Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce) | ||||||
| Add paging for \d and \z, and fix \i(Bruce) | Msql compatibility library in /contrib(Aldrin) | ||||||
| Add Unix domain socket support to backend and to frontend library(Goran) | Remove the requirement that ORDER/GROUP BY clause identifiers be  | ||||||
| Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas) | included in the target list(David) | ||||||
| Allow more SQL92 and/or Postgres reserved words as column identifiers(Thomas) | Convert columns to match columns in UNION clauses(Thomas) | ||||||
| Augment support for SQL92 SET TIME ZONE...(Thomas) | Remove fork()/exec() and only do fork()(Bruce) | ||||||
| SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas) | Jdbc cleanups(Peter) | ||||||
| Implement SET keyword = DEFAULT and SET TIME ZONE DEFAULT(Thomas) | Show backend status on ps command line(only works on some platforms)(Bruce) | ||||||
| Enable SET TIME ZONE using TZ environment variable(Thomas) | Pg_hba.conf now has a sameuser option in the database field | ||||||
| Add PGDATESTYLE environment variable to frontend and backend initialization(Thomas) | Make lo_unlink take oid param, not int4 | ||||||
| Add PGTZ, PGCOSTHEAP, PGCOSTINDEX, PGRPLANS, PGGEQO | New DISABLE_COMPLEX_MACRO for compilers that can't handle our macros(Bruce) | ||||||
| 	frontend library initialization environment variables(Thomas) | Libpgtcl now gets async notifies from libpq(Tom) | ||||||
| Regression tests time zone automatically set with "setenv PGTZ PST8PDT"(Thomas) | New locale patch, see docs/README/locale(Oleg) | ||||||
| Add pg_description table for info on tables, columns, operators, types, and | Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb) | ||||||
| 	aggregates(Bruce) | New contrib/lo code for large object orphan removal(Peter) | ||||||
| Increase 16 char limit on system table/index names to 32 characters(Bruce) | New psql command "SET CLIENT_ENCODING TO 'encoding'" for multi-bytes | ||||||
| Rename system indices(Bruce) | feature, see /doc/README.mb(Tatsuo) | ||||||
| Add 'GERMAN' option to SET DATESTYLE(Thomas) | /contrib/noupdate code to revoke update permission on a column | ||||||
| Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas) | Libpq can now be compiled on win32(Magnus) | ||||||
| Allow fractional values for delta times (e.g. '2.5 days')(Thomas) | Add PQsetdbLogin() in libpq | ||||||
| Validate numeric input more carefully for delta times(Thomas) | Two styles we agreed upon for database descriptors(Thomas) | ||||||
| Implement day of year as possible input to date_part()(Thomas) | New 8-byte integer type, checked by configure for OS support(Thomas) | ||||||
| Define timespan_finite() and text_timespan() functions(Thomas) | Surround table and column names with double-quotes(Thomas) in generated  | ||||||
| Remove archive stuff(Bruce) | sql code to preserve case (SQL92 syntax)(Thomas) | ||||||
| Allow for a pg_password authentication database that is separate from | New libpqrequestCancel(Tom) | ||||||
| 	the system password file(Todd) | PQreset() now works with passwords(Tom) | ||||||
| Dump ACLs, GRANT, REVOKE permissions(Matt) | Handle case of GROUP BY target list column number out of range(David) | ||||||
| Define text, varchar, and bpchar string length functions(Thomas) | Allow UNION in subselects | ||||||
| Fix Query handling for inheritance, and cost computations(Bruce) | Add auto-size to screen to \d? commands(Bruce) | ||||||
| Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas) | Use UNION to show all \d? results in one query(Bruce) | ||||||
| Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas) | Add \d? field search feature(Bruce) | ||||||
| Implement UNIONs for SELECT(Bruce) | Pg_dump issues fewer \connect requests(Tom) | ||||||
| Add UNION, GROUP, DISTINCT to INSERT(Bruce) | Document pg_dump -z flag in manual page(Tom) | ||||||
| varchar() stores only necessary bytes on disk(Bruce) | Add HAVING clause with full support for subselects and unions(Stephan) | ||||||
| Fix for BLOBs(Peter) | Full text indexing routines in contrib/fulltextindex(Marteen) | ||||||
| Mega-Patch for JDBC...see README_6.3 for list of changes(Peter) | Transaction ids now stored in shared memory(Vadim) | ||||||
| Remove unused "option" from PQconnectdb() | New PGCLIENTENCODING when issuing COPY command(Tatsuo) | ||||||
| New LOCK command and lock manual page describing deadlocks(Bruce) | Support for SQL92 syntax "SET NAMES"(Tatsuo) | ||||||
| Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce) | Support for LATIN2-5(Tatsuo) | ||||||
| Enhance psql \z to show sequences(Bruce) | Add UNICODE regression test case(Tatsuo) | ||||||
| Show NOT NULL and DEFAULT in psql \d table(Bruce) | Lock manager cleanup, new locking modes for LLL(Vadim) | ||||||
| New psql .psqlrc file startup(Andrew) | Allow index use with OR clauses(Bruce) | ||||||
| Modify sample startup script in contrib/linux to show syslog(Thomas) | Allows "SELECT NULL ORDER BY 1;" | ||||||
| New types for IP and MAC addresses in contrib/ip_and_mac(TomH) | Explain VERBOSE prints the plan, and now pretty-prints the plan to | ||||||
| Unix system time conversions with date/time types in contrib/unixdate(Thomas) | the postmaster log file(Bruce) | ||||||
| Update of contrib stuff(Massimo) | Add Indices display to \d command(Bruce) | ||||||
| Add Unix socket support to DBD::Pg(Goran) | Allow GROUP BY on functions(David) | ||||||
| New python interface (PyGreSQL 2.0)(D'Arcy) | New pg_class.relkind for large objects(Bruce) | ||||||
| New frontend/backend protocol has a version number, network byte order(Phil) | New way to send libpq NOTICE messages to a different location(Tom) | ||||||
| Security features in pg_hba.conf enhanced and documented, many cleanups(Phil) | New \w write command to psql(Bruce) | ||||||
| CHAR() now faster access than VARCHAR() or TEXT | New /contrib/findoidjoins scans oid columns to find join relationships(Bruce) | ||||||
| ecpg embedded SQL preprocessor | Allow binary-compatible indices to be considered when checking for valid | ||||||
| Reduce system column overhead(Vadmin) | indices for restriction clauses containing a constant(Thomas) | ||||||
| Remove pg_time table(Vadim) | New ISBN/ISSN code in /contrib/isbn_issn | ||||||
| Add pg_type attribute to identify types that need length (bpchar, varchar) | Allow NOT LIKE, IN, NOT IN, BETWEEN, and NOT BETWEEN constraint(Thomas) | ||||||
| Add report of offending line when COPY command fails | New rewrite system fixes many problems with rules and views(Jan) | ||||||
| Allow VIEW permissions to be set separately from the underlying tables.  | 	* Rules on relations work | ||||||
| 	For security, use GRANT/REVOKE on views as appropriate(Jan) | 	* Event qualifications on insert/update/delete work | ||||||
| Tables now have no default GRANT SELECT TO PUBLIC.  You must | 	* New OLD variable to reference CURRENT, CURRENT will be remove in future | ||||||
| 	explicitly grant such permissions. | 	* Update rules can reference NEW and OLD in rule qualifications/actions | ||||||
| Clean up tutorial examples(Darren) | 	* Insert/update/delete rules on views work | ||||||
|  | 	* Multiple rule actions are now supported, surrounded by parentheses | ||||||
|  | 	* Regular users can create views/rules on tables they have RULE permits | ||||||
|  | 	* Rules and views inherit the permissions on the creator | ||||||
|  | 	* No rules at the column level | ||||||
|  | 	* No UPDATE NEW/OLD rules | ||||||
|  | 	* New pg_rule and pg_view system views | ||||||
|  | 	* Only a single action on SELECT rules | ||||||
|  | 	* Total rewrite overhaul, perhaps for 6.5 | ||||||
|  | 
 | ||||||
|  | System indexes are now multi-key(Bruce) | ||||||
|  | Oidint2, oidint4, and oidname types are removed(Bruce) | ||||||
|  | Use system cache for more system table lookups(Bruce) | ||||||
|  | New backend programming language PL/pgSQL in backend/pl(Jan) | ||||||
|  | New SERIAL data type, auto-creates sequence/index(Thomas) | ||||||
|  | Enable assert checking without a recompile(Massimo) | ||||||
|  | User lock enhancements(Massimo) | ||||||
|  | New setval() command to set sequence value(Massimo) | ||||||
|  | Auto-remove unix socket file on startup if no postmaster running(Massimo) | ||||||
|  | Conditional trace package(Massimo) | ||||||
|  | New UNLISTEN command(Massimo) | ||||||
|  | Psql now compiles under win32 using win32.mak(Magnus) | ||||||
|  | Lo_read no longer stores trailing NULL(Bruce) | ||||||
|  | Identifiers are now truncated to 31 characters internally(Bruce) | ||||||
| 
 | 
 | ||||||
| Source Tree Changes | Source Tree Changes | ||||||
| ------------------- | ------------------- | ||||||
| Add new html development tools, and flow chart in /tools/backend | /contrib cleanup(Jun) | ||||||
| Fix for SCO compiles | Inline some small functions called for every row(Bruce) | ||||||
| Stratus computer port "Gillies, Robert" <GilliesR@Nichols.com> | Alpha/linux fixes | ||||||
| Added support for shlib for BSD44_derived & i386_solaris | Hp/UX cleanups(Tom) | ||||||
| Make configure more automated(Brook) | Multi-byte regression tests(Soonmyung.) | ||||||
| Add script to check regression test results | Remove --disabled options from configure | ||||||
| Break parser functions into smaller files, group together(Bruce) | Define PGDOC to use POSTGRESDIR by default | ||||||
| Rename heap_create to heap_create_and_catalog, rename heap_creatr | Make regression optional | ||||||
| 	to heap_create()(Bruce) | Remove extra braces code to pgindent(Bruce) | ||||||
| Sparc/Linux patch for locking(TomS) | Add bsdi shared library support(Bruce) | ||||||
| Remove PORTNAME and reorganize port-specific stuff(Marc) | New --without-CXX support configure option(Brook) | ||||||
| Add optimizer README file(Bruce) | New FAQ_CVS | ||||||
| Remove some recursion in optimizer and clean up some code there(Bruce) | Update backend flowchart in tools/backend(Bruce) | ||||||
| Fix for NetBSD locking(Henry) | Change atttypmod from int16 to int32(Bruce, Tom) | ||||||
| Fix for libptcl make(Tatsuo) | Getrusage() fix for platforms that do not have it(Tom) | ||||||
| AIX patch(Darren) | Add PGUSER to libpq man page | ||||||
| Change IS TRUE, IS FALSE, ... to expressions using "=" rather than | Ns32k platform fixes(Phil Nelson) | ||||||
| 	function calls to istrue() or isfalse() to allow optimization(Thomas) | Sco 7/UnixWare 2.x fixes(Billy,others) | ||||||
| Various fixes NetBSD/Sparc related(TomH) | Sparc/Solaris 2.5 fixes(Ryan) | ||||||
| Alpha linux locking(Travis,Ryan) | Pgbuiltin.3 is obsolete, move to doc files(Thomas) | ||||||
| Change elog(WARN) to elog(ERROR)(Bruce) | Even more documention(Thomas) | ||||||
| FAQ for FreeBSD(Marc) |  | ||||||
| Bring in the PostODBC source tree as part of our standard distribution(Marc) |  | ||||||
| A minor patch for HP/UX 10 vs 9(Stan) |  | ||||||
| New pg_attribute.atttypmod for type-specific info like varchar length(Bruce) |  | ||||||
| Unixware patches(Billy) |  | ||||||
| New i386 'lock' for spin lock asm(Billy) |  | ||||||
| Support for multiplexed backends is removed |  | ||||||
| Start an OpenBSD port |  | ||||||
| Start an AUX port |  | ||||||
| Start a Cygnus port |  | ||||||
| Add string functions to regression suite(Thomas) |  | ||||||
| Expand a few function names formerly truncated to 16 characters(Thomas) |  | ||||||
| Remove un-needed malloc() calls and replace with palloc()(Bruce) |  | ||||||
|  | |||||||
| @ -27,9 +27,9 @@ System Configuration | |||||||
| 
 | 
 | ||||||
|   Operating System (example: Linux 2.0.26 ELF) 	: |   Operating System (example: Linux 2.0.26 ELF) 	: | ||||||
| 
 | 
 | ||||||
|   PostgreSQL version (example: PostgreSQL-6.3.2)  :   PostgreSQL-6.3.2 |   PostgreSQL version (example: PostgreSQL-6.4)  :   PostgreSQL-6.4 | ||||||
| 
 | 
 | ||||||
|   Compiler used (example:  gcc 2.7.2)		: |   Compiler used (example:  gcc 2.8.0)		: | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Please enter a FULL description of your problem: | Please enter a FULL description of your problem: | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| (1998-05-31) | (1998-09-01) | ||||||
| PostgreSQL has a Web site at http://www.postgresql.org/ which carries details | PostgreSQL has a Web site at http://www.postgresql.org/ which carries details | ||||||
| on the latest release, upcoming features, and other information to make your | on the latest release, upcoming features, and other information to make your | ||||||
| work or play with PostgreSQL more productive. | work or play with PostgreSQL more productive. | ||||||
|  | |||||||
| @ -22,15 +22,15 @@ PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | |||||||
| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| PGACCESS 0.86 29 March 1998 | PGACCESS 0.88 7 June 1998 | ||||||
| ================================ | ================================ | ||||||
| I dedicate this program to my little 4 year daughter Ana-Maria and my wife | I dedicate this program to my little daughters Ana-Maria and Emilia and to my | ||||||
| for their understanding. I hope they will forgive me for spending so many | wife for their understanding. I hope they will forgive me for spending so many | ||||||
| time far from them. | time far from them. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 1.Why PGACCESS ? | 1.Why PgAccess ? | ||||||
| 
 | 
 | ||||||
| First of all because PostgreSQL lacks a graphical interface where you | First of all because PostgreSQL lacks a graphical interface where you | ||||||
| can manage your tables, edit them, define queries, sequences and | can manage your tables, edit them, define queries, sequences and | ||||||
| @ -77,7 +77,7 @@ pgaccess.tcl file. | |||||||
| 
 | 
 | ||||||
| 4.What does it now ? | 4.What does it now ? | ||||||
| 
 | 
 | ||||||
| - Opens any database on a specified host at the specified port. | - Opens any database on a specified host at the specified port, username and password | ||||||
| - Perform vacuum command. | - Perform vacuum command. | ||||||
| - Saves preferences in ~/pgaccessrc file | - Saves preferences in ~/pgaccessrc file | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -13,12 +13,13 @@ PgAccess - a database management tool for <A HREF="http://www.postgreSQL.org">Po | |||||||
| 
 | 
 | ||||||
| <P>This program is protected by the following <A HREF="copyright.html">copyright</A> | <P>This program is protected by the following <A HREF="copyright.html">copyright</A> | ||||||
| <LI> | <LI> | ||||||
| <A HREF="pgaccess-0.86.tar.gz">Download the last version of PgAccess (press | <A HREF="pgaccess-0.88.tar.gz">Download the last version of PgAccess (press | ||||||
| shift and click this link)</A>.</LI> | shift and click this link)</A>.</LI> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| <P>Latest version of PgAccess is 0.86 , 29 March 1998 ! | <P>Latest version of PgAccess is 0.88 , 7 June 1998 ! | ||||||
| <BR>  | <BR><br>  | ||||||
|  | <font color='red'><b>NEW * NEW * NEW *</b></font> Precompiled libpgtcl and libpq binaries for i386 are <a href='ftp://ftp.flex.ro/pub/pgaccess'> here </a>!!! | ||||||
| <BR>  | <BR>  | ||||||
| <CENTER><TABLE BORDER=3 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BGCOLOR="#FFB6C1" > | <CENTER><TABLE BORDER=3 CELLSPACING=0 CELLPADDING=0 WIDTH="100%" BGCOLOR="#FFB6C1" > | ||||||
| <TR> | <TR> | ||||||
|  | |||||||
| @ -8,12 +8,16 @@ | |||||||
| # | # | ||||||
| global activetab;  | global activetab;  | ||||||
| global dbc;  | global dbc;  | ||||||
|  | global username; | ||||||
|  | global password; | ||||||
| global dbname;  | global dbname;  | ||||||
| global host;  | global host;  | ||||||
| global mw;  | global mw;  | ||||||
| global newdbname;  | global newdbname;  | ||||||
| global newhost;  | global newhost;  | ||||||
| global newpport;  | global newpport;  | ||||||
|  | global newusername; | ||||||
|  | global newpassword; | ||||||
| global pport;  | global pport;  | ||||||
| global pref;  | global pref;  | ||||||
| global qlvar;  | global qlvar;  | ||||||
| @ -986,12 +990,14 @@ proc {load_pref} {} { | |||||||
| global pref | global pref | ||||||
| set retval [catch {set fid [open "~/.pgaccessrc" r]}] | set retval [catch {set fid [open "~/.pgaccessrc" r]}] | ||||||
| if {$retval} { | if {$retval} { | ||||||
|     set pref(rows) 200 | 	set pref(rows) 200 | ||||||
|     set pref(tvfont) clean | 	set pref(tvfont) clean | ||||||
|     set pref(autoload) 1 | 	set pref(autoload) 1 | ||||||
|     set pref(lastdb) {} | 	set pref(lastdb) {} | ||||||
|     set pref(lasthost) localhost | 	set pref(lasthost) localhost | ||||||
|     set pref(lastport) 5432 | 	set pref(lastport) 5432 | ||||||
|  | 	set pref(username) {} | ||||||
|  | 	set pref(password) {} | ||||||
| } else { | } else { | ||||||
|     while {![eof $fid]} { |     while {![eof $fid]} { | ||||||
|         set pair [gets $fid] |         set pair [gets $fid] | ||||||
| @ -1483,27 +1489,35 @@ if {$mw(row_edited)==$mw(nrecs)} { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| proc {open_database} {} { | proc {open_database} {} { | ||||||
| global dbc host pport dbname sdbname newdbname newhost newpport pref | global dbc host pport dbname username password newusername newpassword sdbname newdbname newhost newpport pref | ||||||
| catch {cursor_watch .dbod} | catch {cursor_watch .dbod} | ||||||
| if {[catch {set newdbc [pg_connect $newdbname -host $newhost -port $newpport]} msg]} { | if {$newusername!=""} { | ||||||
|  | 	set connres [catch {set newdbc [pg_connect -conninfo "host=$newhost port=$newpport dbname=$newdbname user=$newusername password=$newpassword"]} msg] | ||||||
|  | } else { | ||||||
|  | 	set connres [catch {set newdbc [pg_connect $newdbname -host $newhost -port $newpport]} msg] | ||||||
|  | } | ||||||
|  | if {$connres} { | ||||||
|     catch {cursor_arrow .dbod} |     catch {cursor_arrow .dbod} | ||||||
|     show_error "Error connecting database\n$msg" |     show_error "Error connecting database\n$msg" | ||||||
| } else { | } else { | ||||||
|     catch {pg_disconnect $dbc} | 	catch {pg_disconnect $dbc} | ||||||
|     set dbc $newdbc | 	set dbc $newdbc | ||||||
|     set host $newhost | 	set host $newhost | ||||||
|     set pport $newpport | 	set pport $newpport | ||||||
|     set dbname $newdbname | 	set dbname $newdbname | ||||||
|     set sdbname $dbname | 	set username $newusername | ||||||
|     set pref(lastdb) $dbname | 	set password $newpassword | ||||||
|     set pref(lasthost) $host | 	set sdbname $dbname | ||||||
|     set pref(lastport) $pport | 	set pref(lastdb) $dbname | ||||||
|     save_pref | 	set pref(lasthost) $host | ||||||
|     catch {cursor_arrow .dbod; Window hide .dbod} | 	set pref(lastport) $pport | ||||||
|     tab_click .dw.tabTables | 	set pref(lastusername) $username | ||||||
|     # Check for pga_ tables | 	save_pref | ||||||
|     foreach {table structure} { pga_queries {queryname varchar(64),querytype char(1),querycommand text} pga_forms {formname varchar(64),formsource text} pga_scripts {scriptname varchar(64),scriptsource text} pga_reports {reportname varchar(64),reportsource text,reportbody text,reportprocs text,reportoptions text}} { | 	catch {cursor_arrow .dbod; Window hide .dbod} | ||||||
|         set pgres [pg_exec $dbc "select relname from pg_class where relname='$table'"] | 	tab_click .dw.tabTables | ||||||
|  | 	# Check for pga_ tables | ||||||
|  | 	foreach {table structure} { pga_queries {queryname varchar(64),querytype char(1),querycommand text} pga_forms {formname varchar(64),formsource text} pga_scripts {scriptname varchar(64),scriptsource text} pga_reports {reportname varchar(64),reportsource text,reportbody text,reportprocs text,reportoptions text}} { | ||||||
|  | 	set pgres [pg_exec $dbc "select relname from pg_class where relname='$table'"] | ||||||
|         if {[pg_result $pgres -numTuples]==0} { |         if {[pg_result $pgres -numTuples]==0} { | ||||||
|             pg_result $pgres -clear |             pg_result $pgres -clear | ||||||
|             sql_exec quiet "create table $table ($structure)" |             sql_exec quiet "create table $table ($structure)" | ||||||
| @ -2430,22 +2444,21 @@ Window show .tiw | |||||||
| set tiw(isunique) {} | set tiw(isunique) {} | ||||||
| set tiw(isclustered) {} | set tiw(isclustered) {} | ||||||
| set tiw(indexfields) {} | set tiw(indexfields) {} | ||||||
| pg_select $dbc "select attnum,attname,typname,attlen,usename,pg_class.oid from pg_class,pg_user,pg_attribute,pg_type where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_attribute.attrelid) and (pg_class.relowner=pg_user.usesysid) and (pg_attribute.atttypid=pg_type.oid) order by attnum" rec { | pg_select $dbc "select attnum,attname,typname,attlen,atttypmod,usename,pg_class.oid from pg_class,pg_user,pg_attribute,pg_type where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_attribute.attrelid) and (pg_class.relowner=pg_user.usesysid) and (pg_attribute.atttypid=pg_type.oid) order by attnum" rec { | ||||||
|     set fsize $rec(attlen) | 	set fsize $rec(attlen) | ||||||
|     set ftype $rec(typname) | 	set fsize1 $rec(atttypmod) | ||||||
|     if {$ftype=="varchar"} { | 	set ftype $rec(typname) | ||||||
|         incr fsize -4 | 	if { $fsize=="-1" && $fsize1!="-1" } { | ||||||
|     } | 		set fsize $rec(atttypmod) | ||||||
|     if {$ftype=="bpchar"} { | 		incr fsize -4 | ||||||
|     	incr fsize -4 | 	} | ||||||
|     } | 	if { $fsize1=="-1" && $fsize=="-1" } { | ||||||
|     if {$ftype=="text"} { | 		set fsize "" | ||||||
|         set fsize "" | 	} | ||||||
|     } | 	if {$rec(attnum)>0} {.tiw.lb insert end [format "%-33s %-14s %-4s" $rec(attname) $ftype $fsize]} | ||||||
|     if {$rec(attnum)>0} {.tiw.lb insert end [format "%-33s %-14s %-4s" $rec(attname) $ftype $fsize]} | 	set tiw(owner) $rec(usename) | ||||||
|     set tiw(owner) $rec(usename) | 	set tiw(tableoid) $rec(oid) | ||||||
|     set tiw(tableoid) $rec(oid) | 	set tiw(f$rec(attnum)) $rec(attname) | ||||||
|     set tiw(f$rec(attnum)) $rec(attname) |  | ||||||
| } | } | ||||||
| set tiw(indexlist) {} | set tiw(indexlist) {} | ||||||
| pg_select $dbc "select oid,indexrelid from pg_index where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_index.indrelid)" rec { | pg_select $dbc "select oid,indexrelid from pg_index where (pg_class.relname='$tiw(tablename)') and (pg_class.oid=pg_index.indrelid)" rec { | ||||||
| @ -2540,10 +2553,12 @@ if {$retval} { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| proc {main} {argc argv} { | proc {main} {argc argv} { | ||||||
| global pref newdbname newpport newhost dbc | global pref newdbname newpport newhost newusername newpassword dbc | ||||||
| load libpgtcl.so | load libpgtcl.so | ||||||
| catch {draw_tabs} | catch {draw_tabs} | ||||||
| load_pref | load_pref | ||||||
|  | set newusername {} | ||||||
|  | set newpassword {} | ||||||
| if {$argc>0} { | if {$argc>0} { | ||||||
| 	set newdbname [lindex $argv 0] | 	set newdbname [lindex $argv 0] | ||||||
| 	set newhost localhost | 	set newhost localhost | ||||||
| @ -2553,6 +2568,7 @@ if {$argc>0} { | |||||||
| 	set newdbname $pref(lastdb) | 	set newdbname $pref(lastdb) | ||||||
| 	set newhost $pref(lasthost) | 	set newhost $pref(lasthost) | ||||||
| 	set newpport $pref(lastport) | 	set newpport $pref(lastport) | ||||||
|  | 	catch {set newusername $pref(lastusername)} | ||||||
| 	open_database | 	open_database | ||||||
| } | } | ||||||
| wm protocol .dw WM_DELETE_WINDOW { | wm protocol .dw WM_DELETE_WINDOW { | ||||||
| @ -2636,7 +2652,7 @@ proc vTclWindow.about {base} { | |||||||
|     label $base.l2  -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*  -relief groove  -text {A Tcl/Tk interface to |     label $base.l2  -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*  -relief groove  -text {A Tcl/Tk interface to | ||||||
| PostgreSQL | PostgreSQL | ||||||
| by Constantin Teodorescu}  | by Constantin Teodorescu}  | ||||||
|     label $base.l3  -borderwidth 0  -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*  -relief sunken -text {vers 0.86} |     label $base.l3  -borderwidth 0  -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*  -relief sunken -text {vers 0.88} | ||||||
|     label $base.l4  -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*  -relief groove  -text {You will always get the latest version at: |     label $base.l4  -font -Adobe-Helvetica-Medium-R-Normal-*-*-120-*-*-*-*-*  -relief groove  -text {You will always get the latest version at: | ||||||
| http://www.flex.ro/pgaccess | http://www.flex.ro/pgaccess | ||||||
| 
 | 
 | ||||||
| @ -2662,33 +2678,92 @@ proc vTclWindow.dbod {base} { | |||||||
|     ################### |     ################### | ||||||
|     # CREATING WIDGETS |     # CREATING WIDGETS | ||||||
|     ################### |     ################### | ||||||
|     toplevel $base -class Toplevel  -cursor top_left_arrow  |     toplevel $base -class Toplevel \ | ||||||
|  |         -cursor top_left_arrow  | ||||||
|     wm focusmodel $base passive |     wm focusmodel $base passive | ||||||
|     wm geometry $base 282x128+353+310 |     wm geometry $base 282x180+358+333 | ||||||
|     wm maxsize $base 1009 738 |     wm maxsize $base 1009 738 | ||||||
|     wm minsize $base 1 1 |     wm minsize $base 1 1 | ||||||
|     wm overrideredirect $base 0 |     wm overrideredirect $base 0 | ||||||
|     wm resizable $base 0 0 |     wm resizable $base 0 0 | ||||||
|  |     wm deiconify $base | ||||||
|     wm title $base "Open database" |     wm title $base "Open database" | ||||||
|     label $base.lhost  -borderwidth 0  -relief raised -text Host  |     label $base.lhost \ | ||||||
|     entry $base.ehost  -background #fefefe -borderwidth 1 -highlightthickness 1  -selectborderwidth 0 -textvariable newhost  |         -borderwidth 0 -relief raised -text Host  | ||||||
|     label $base.lport  -borderwidth 0  -relief raised -text Port  |     entry $base.ehost \ | ||||||
|     entry $base.epport  -background #fefefe -borderwidth 1 -highlightthickness 1  -selectborderwidth 0 -textvariable newpport  |         -background #fefefe -borderwidth 1 -highlightthickness 1 \ | ||||||
|     label $base.ldbname  -borderwidth 0  -relief raised -text Database  |         -selectborderwidth 0 -textvariable newhost  | ||||||
|     entry $base.edbname  -background #fefefe -borderwidth 1 -highlightthickness 1  -selectborderwidth 0 -textvariable newdbname  |     bind $base.ehost <Key-Return> { | ||||||
|     button $base.opbtu  -borderwidth 1 -command open_database  -padx 9 -pady 3 -text Open  |         focus .dbod.epport | ||||||
|     button $base.canbut  -borderwidth 1 -command {Window hide .dbod}  -padx 9  -pady 3 -text Cancel  |     } | ||||||
|  |     label $base.lport \ | ||||||
|  |         -borderwidth 0 -relief raised -text Port  | ||||||
|  |     entry $base.epport \ | ||||||
|  |         -background #fefefe -borderwidth 1 -highlightthickness 1 \ | ||||||
|  |         -selectborderwidth 0 -textvariable newpport  | ||||||
|  |     bind $base.epport <Key-Return> { | ||||||
|  |         focus .dbod.edbname | ||||||
|  |     } | ||||||
|  |     label $base.ldbname \ | ||||||
|  |         -borderwidth 0 -relief raised -text Database  | ||||||
|  |     entry $base.edbname \ | ||||||
|  |         -background #fefefe -borderwidth 1 -highlightthickness 1 \ | ||||||
|  |         -selectborderwidth 0 -textvariable newdbname  | ||||||
|  |     bind $base.edbname <Key-Return> { | ||||||
|  |         focus .dbod.eusername | ||||||
|  | 	.dbod.eusername selection range 0 end | ||||||
|  |     } | ||||||
|  |     label $base.lusername \ | ||||||
|  |         -borderwidth 0 -relief raised -text Username  | ||||||
|  |     entry $base.eusername \ | ||||||
|  |         -background #fefefe -borderwidth 1 -highlightthickness 1 \ | ||||||
|  |         -selectborderwidth 0 -textvariable newusername  | ||||||
|  |     bind $base.eusername <Key-Return> { | ||||||
|  |         focus .dbod.epassword | ||||||
|  |     } | ||||||
|  |     label $base.lpassword \ | ||||||
|  |         -borderwidth 0 -relief raised -text Password  | ||||||
|  |     entry $base.epassword \ | ||||||
|  |         -background #fefefe -borderwidth 1 -highlightthickness 1 \ | ||||||
|  |         -selectborderwidth 0 -textvariable newpassword -show "*" | ||||||
|  |     bind $base.epassword <Key-Return> { | ||||||
|  |         focus .dbod.opbtu | ||||||
|  |     } | ||||||
|  |     button $base.opbtu \ | ||||||
|  |         -borderwidth 1 -command open_database -padx 9 -pady 3 -text Open  | ||||||
|  |     bind $base.opbtu <Key-Return> { | ||||||
|  |         open_database | ||||||
|  |     } | ||||||
|  |     button $base.canbut \ | ||||||
|  |         -borderwidth 1 -command {Window hide .dbod} -padx 9 -pady 3 \ | ||||||
|  |         -text Cancel  | ||||||
|     ################### |     ################### | ||||||
|     # SETTING GEOMETRY |     # SETTING GEOMETRY | ||||||
|     ################### |     ################### | ||||||
|     place $base.lhost  -x 35 -y 7 -anchor nw -bordermode ignore  |     place $base.lhost \ | ||||||
|     place $base.ehost  -x 100 -y 5 -anchor nw -bordermode ignore  |         -x 35 -y 7 -anchor nw -bordermode ignore  | ||||||
|     place $base.lport  -x 35 -y 32 -anchor nw -bordermode ignore  |     place $base.ehost \ | ||||||
|     place $base.epport  -x 100 -y 30 -anchor nw -bordermode ignore  |         -x 100 -y 5 -anchor nw -bordermode ignore  | ||||||
|     place $base.ldbname  -x 35 -y 57 -anchor nw -bordermode ignore  |     place $base.lport \ | ||||||
|     place $base.edbname  -x 100 -y 55 -anchor nw -bordermode ignore  |         -x 35 -y 32 -anchor nw -bordermode ignore  | ||||||
|     place $base.opbtu  -x 70 -y 90 -width 60 -height 26 -anchor nw -bordermode ignore  |     place $base.epport \ | ||||||
|     place $base.canbut  -x 150 -y 90 -width 60 -height 26 -anchor nw -bordermode ignore |         -x 100 -y 30 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.ldbname \ | ||||||
|  |         -x 35 -y 57 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.edbname \ | ||||||
|  |         -x 100 -y 55 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.lusername \ | ||||||
|  |         -x 35 -y 82 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.eusername \ | ||||||
|  |         -x 100 -y 80 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.lpassword \ | ||||||
|  |         -x 35 -y 107 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.epassword \ | ||||||
|  |         -x 100 -y 105 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.opbtu \ | ||||||
|  |         -x 70 -y 140 -width 60 -height 26 -anchor nw -bordermode ignore  | ||||||
|  |     place $base.canbut \ | ||||||
|  |         -x 150 -y 140 -width 60 -height 26 -anchor nw -bordermode ignore  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| proc vTclWindow.dw {base} { | proc vTclWindow.dw {base} { | ||||||
| @ -2755,7 +2830,8 @@ proc vTclWindow.dw {base} { | |||||||
| Window show .dbod | Window show .dbod | ||||||
| set newhost $host | set newhost $host | ||||||
| set newpport $pport | set newpport $pport | ||||||
| focus .dbod.edbname} \ | focus .dbod.edbname | ||||||
|  | .dbod.edbname selection range 0 end} \ | ||||||
|         -label Open  |         -label Open  | ||||||
|     $base.menubutton23.01 add command \ |     $base.menubutton23.01 add command \ | ||||||
|         \ |         \ | ||||||
| @ -2972,6 +3048,12 @@ proc vTclWindow.iew {base} { | |||||||
|     place $base.oicb  -x 170 -y 75 -anchor nw -bordermode ignore |     place $base.oicb  -x 170 -y 75 -anchor nw -bordermode ignore | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | proc {mw_canvas_paste} {x y} { | ||||||
|  |        global mw | ||||||
|  |        .mw.c insert $mw(id_edited) insert [selection get] | ||||||
|  |        set mw(dirtyrec) 1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| proc vTclWindow.mw {base} { | proc vTclWindow.mw {base} { | ||||||
|     if {$base == ""} { |     if {$base == ""} { | ||||||
|         set base .mw |         set base .mw | ||||||
| @ -3036,6 +3118,9 @@ if {[mw_save_new_record]} {mw_select_records $nq} | |||||||
|     bind $base.c <Button-1> { |     bind $base.c <Button-1> { | ||||||
|         mw_canvas_click %x %y |         mw_canvas_click %x %y | ||||||
|     } |     } | ||||||
|  |     bind $base.c <Button-2> { | ||||||
|  |         mw_canvas_paste %x %y | ||||||
|  |     } | ||||||
|     bind $base.c <Button-3> { |     bind $base.c <Button-3> { | ||||||
|         if {[mw_exit_edit]} {mw_save_new_record} |         if {[mw_exit_edit]} {mw_save_new_record} | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -2,11 +2,9 @@ README | |||||||
| INSTALL | INSTALL | ||||||
| HISTORY | HISTORY | ||||||
| register.txt | register.txt | ||||||
| configure.in |  | ||||||
| doc/Machine-specific FAQ's | doc/Machine-specific FAQ's | ||||||
| doc/TODO | doc/TODO | ||||||
| doc/bug.template | doc/bug.template | ||||||
| make new /mirgration file |  | ||||||
| update include/version.h after release | update include/version.h after release | ||||||
| update backend/parser/scan.c and gram.c so  flex/bison not necessary | update backend/parser/scan.c and gram.c so  flex/bison not necessary | ||||||
| update pgaccess | update pgaccess | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user