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