mirror of https://github.com/postgres/postgres
parent
596731dcf8
commit
10aaff0a40
@ -1,73 +0,0 @@ |
||||
From scrappy@ki.net Wed Aug 14 20:41:08 1996 |
||||
Status: RO |
||||
X-Status: |
||||
Received: from candle.pha.pa.us (maillist@s1-03.ppp.op.net [206.84.209.132]) by quagmire.ki.net (8.7.5/8.7.5) with ESMTP id UAA01234 for <scrappy@ki.net>; Wed, 14 Aug 1996 20:41:00 -0400 (EDT) |
||||
Received: (from maillist@localhost) by candle.pha.pa.us (8.7.4/8.7.3) id UAA13966 for scrappy@ki.net; Wed, 14 Aug 1996 20:40:48 -0400 (EDT) |
||||
From: Bruce Momjian <maillist@candle.pha.pa.us> |
||||
Message-Id: <199608150040.UAA13966@candle.pha.pa.us> |
||||
Subject: New migration file |
||||
To: scrappy@ki.net (Marc G. Fournier) |
||||
Date: Wed, 14 Aug 1996 20:40:47 -0400 (EDT) |
||||
X-Mailer: ELM [version 2.4 PL25] |
||||
MIME-Version: 1.0 |
||||
Content-Type: text/plain; charset=US-ASCII |
||||
Content-Transfer-Encoding: 7bit |
||||
|
||||
Here is a new migratoin file for 1.02.1. It includes the 'copy' change |
||||
and a script to convert old ascii files. |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
The following notes are for the benefit of users who want to migrate |
||||
databases from postgres95 1.01 and 1.02 to postgres95 1.02.1. |
||||
|
||||
If you are starting afresh with postgres95 1.02.1 and do not need |
||||
to migrate old databases, you do not need to read any further. |
||||
|
||||
---------------------------------------------------------------------- |
||||
|
||||
In order to upgrade older postgres95 version 1.01 or 1.02 databases to |
||||
version 1.02.1, the following steps are required: |
||||
|
||||
1) start up a new 1.02.1 postmaster |
||||
|
||||
2) Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02 |
||||
databases. This is done by running the new 1.02.1 server against |
||||
your own 1.01 or 1.02 database and applying the queries attached at |
||||
the end of thie file. This can be done easily through psql. If your |
||||
1.01 or 1.02 database is named "testdb" and you have cut the commands |
||||
from the end of this file and saved them in addfunc.sql: |
||||
|
||||
% psql testdb -f addfunc.sql |
||||
|
||||
Those upgrading 1.02 databases will get a warning when executing the |
||||
last two statements because they are already present in 1.02. This is |
||||
not a cause for concern. |
||||
|
||||
* * * |
||||
|
||||
If you are trying to reload a pg_dump or text-mode 'copy tablename to |
||||
stdout' generated with a previous version, you will need to run the |
||||
attached sed script on the ASCII file before loading it into the |
||||
database. The old format used '.' as end-of-data, while '\.' is now the |
||||
end-of-data marker. Also, empty strings are now loaded in as '' rather |
||||
than NULL. See the copy manual page for full details. |
||||
|
||||
sed 's/^\.$/\\./g' <in_file >out_file |
||||
|
||||
If you are loading an older binary copy or non-stdout copy, there is no |
||||
end-of-data character, and hence no conversion necessary. |
||||
|
||||
--------------------------------------------------------------------------- |
||||
|
||||
-- following lines added by agc to reflect the case-insensitive |
||||
-- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1) |
||||
create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq); |
||||
create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne); |
||||
create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq); |
||||
create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne); |
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,5 +0,0 @@ |
||||
This migration requires a complete dump of the 1.09 database and a |
||||
restore of the database in 6.0. |
||||
|
||||
Those migrating from earlier 1.* releases should first upgrade to 1.09 |
||||
because the COPY output format was improved from the 1.02 release. |
@ -1,94 +0,0 @@ |
||||
The following notes are for the benefit of users who want to migrate |
||||
databases from postgres95 1.0 to postgres95 1.01. |
||||
|
||||
If you are starting afresh with postgres95 1.01 and do not need |
||||
to migrate old databases, you do not need to read any further. |
||||
|
||||
---------------------------------------------------------------------- |
||||
|
||||
In order to postgres95 version 1.01 with databases created with |
||||
postgres95 version 1.0, the following steps are required: |
||||
|
||||
1) Set the definition of NAMEDATALEN in src/Makefile.global to 16 |
||||
and OIDNAMELEN to 20. |
||||
|
||||
2) Decide whether you want to use Host based authentication. |
||||
|
||||
A) If you do, you must create a file name "pg_hba" in your top-level data |
||||
directory (typically the value of your $PGDATA). src/libpq/pg_hba |
||||
shows an example syntax. |
||||
|
||||
B) If you do not want host-based authentication, you can comment out |
||||
the line |
||||
HBA = 1 |
||||
in src/Makefile.global |
||||
|
||||
Note that host-based authentication is turned on by default, and if |
||||
you do not take steps A or B above, the out-of-the-box 1.01 will |
||||
not allow you to connect to 1.0 databases. |
||||
|
||||
3) compile and install 1.01, but DO NOT do the initdb step. |
||||
|
||||
4) before doing anything else, terminate your 1.0 postmaster, and |
||||
backup your existing $PGDATA directory. |
||||
|
||||
5) set your PGDATA environment variable to your 1.0 databases, but set up |
||||
path up so that 1.01 binaries are being used. |
||||
|
||||
6) modify the file $PGDATA/PG_VERSION from 5.0 to 5.1 |
||||
|
||||
7) start up a new 1.01 postmaster |
||||
|
||||
5) Add the new built-in functions and operators of 1.01 to 1.0 |
||||
databases. This is done by running the new 1.01 server against |
||||
your own 1.0 database and applying the queries attached and saving |
||||
in the file 1.0_to_1.01.sql. This can be done easily through psql. |
||||
If your 1.0 database is name "testdb": |
||||
|
||||
% psql testdb -f 1.0_to_1.01.sql |
||||
|
||||
------------------------------------------------------------------------------ |
||||
-- add builtin functions that are new to 1.01 |
||||
|
||||
create function int4eqoid (int4, oid) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function oideqint4 (oid, int4) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char2icregexeq (char2, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char2icregexne (char2, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char4icregexeq (char4, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char4icregexne (char4, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char8icregexeq (char8, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char8icregexne (char8, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char16icregexeq (char16, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function char16icregexne (char16, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function texticregexeq (text, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
create function texticregexne (text, text) returns bool as 'foo' |
||||
language 'internal'; |
||||
|
||||
-- add builtin functions that are new to 1.01 |
||||
|
||||
create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid); |
||||
create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4); |
||||
create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq); |
||||
create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne); |
||||
create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq); |
||||
create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne); |
||||
create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq); |
||||
create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne); |
||||
create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq); |
||||
create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne); |
||||
create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq); |
||||
create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne); |
||||
|
||||
|
||||
|
@ -1,5 +0,0 @@ |
||||
This migration requires a complete dump of the 6.0 database and a |
||||
restore of the database in 6.1. |
||||
|
||||
Those migrating from earlier 1.* releases should first upgrade to 1.09 |
||||
because the COPY output format was improved from the 1.02 release. |
@ -1,6 +0,0 @@ |
||||
This is a minor bug-fix release. A dump/reload is not required from v6.2, |
||||
but is required from any release prior to v6.2. |
||||
|
||||
In upgrading from v6.2, if you choose to dump/reload you will find that |
||||
avg(money) is now calculated correctly. All other bug fixes take effect |
||||
upon updating the executables. |
@ -1,8 +0,0 @@ |
||||
This migration requires a complete dump of the 6.1 database and a |
||||
restore of the database in 6.2. |
||||
|
||||
Note that the pg_dump and pg_dumpall utility from 6.2 should be used |
||||
to dump the 6.1 database. |
||||
|
||||
Those migrating from earlier 1.* releases should first upgrade to 1.09 |
||||
because the COPY output format was improved from the 1.02 release. |
@ -1,65 +0,0 @@ |
||||
This migration requires a complete dump of the 6.2 or 6.2.1 database and a |
||||
restore of the database in 6.3. |
||||
|
||||
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. A review |
||||
of the HISTORY files is still needed. |
||||
|
||||
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. |
||||
|
||||
Long live PostgreSQL. |
||||
|
||||
-- Bruce Momjian |
@ -1,15 +0,0 @@ |
||||
This is a minor bug-fix release. A dump/reload is not required from v6.2, |
||||
but is required from any release prior to v6.2. |
||||
|
||||
In upgrading from v6.2, if you choose to dump/reload you will find that |
||||
avg(money) is now calculated correctly. All other bug fixes take effect |
||||
upon updating the executables. |
||||
|
||||
Another way to avoid dump/reload is to use the following SQL command |
||||
from psql to update the existing system table: |
||||
|
||||
update pg_aggregate set aggfinalfn = 'cash_div_flt8' |
||||
where aggname = 'avg' and aggbasetype = 790; |
||||
|
||||
This will need to be done to every existing database, including template1. |
||||
|
@ -1,4 +0,0 @@ |
||||
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. |
Loading…
Reference in new issue