]> granicus.if.org Git - postgresql/log
postgresql
22 years agoUpdate dbsize documentation with:
Bruce Momjian [Sun, 23 Jun 2002 20:09:23 +0000 (20:09 +0000)]
Update dbsize documentation with:

Copy this directory to contrib/dbsize in your PostgreSQL source tree.
Then just run make; make install.  Finally, load the functions into any
database using dbsize.sql.

When computing the size of a table, it does not include TOAST or index
disk space.

22 years agoRemove INET6 from SSL. We don't support INET6 yet.
Bruce Momjian [Sun, 23 Jun 2002 14:56:16 +0000 (14:56 +0000)]
Remove INET6 from SSL.  We don't support INET6 yet.

22 years agoRename command to reindexdb, for consistency.
Bruce Momjian [Sun, 23 Jun 2002 03:51:55 +0000 (03:51 +0000)]
Rename command to reindexdb, for consistency.

22 years agoMention REINDEX can be used for disk space reclaimation too.
Bruce Momjian [Sun, 23 Jun 2002 03:45:15 +0000 (03:45 +0000)]
Mention REINDEX can be used for disk space reclaimation too.

22 years agoHandle mixed-case names in reindex script.
Bruce Momjian [Sun, 23 Jun 2002 03:37:12 +0000 (03:37 +0000)]
Handle mixed-case names in reindex script.

Document need for reindex in SGML docs.

22 years agouint -> uint32, portability.
Bruce Momjian [Sat, 22 Jun 2002 04:08:07 +0000 (04:08 +0000)]
uint -> uint32, portability.

22 years agoImplement SQL99 CREATE CAST and DROP CAST statements.
Thomas G. Lockhart [Sat, 22 Jun 2002 02:04:55 +0000 (02:04 +0000)]
Implement SQL99 CREATE CAST and DROP CAST statements.
 Also implement alternative forms to expose the PostgreSQL CREATE FUNCTION
 features.
Implement syntax for READ ONLY and READ WRITE clauses in SET TRANSACTION.
 READ WRITE is already implemented (of course).
Implement syntax for "LIKE table" clause in CREATE TABLE. Should be fairly
 easy to complete since it resembles SELECT INTO.
Implement MATCH SIMPLE clause for foreign key definitions. This is explicit
 SQL99 syntax for the default behavior, so we now support it :)
Start implementation of shorthand for national character literals in
 scanner. For now, just swallow the leading "N", but sometime soon let's
 figure out how to pass leading type info from the scanner to the parser.
 We should use the same technique for binary and hex bit string literals,
 though it might be unusual to have two apparently independent literal
 types fold into the same storage type.

22 years agoDone:
Bruce Momjian [Fri, 21 Jun 2002 20:13:08 +0000 (20:13 +0000)]
Done:

> * -Test hash index performance and discourage usage

22 years agoAdd mention of segmented files to oid2name.
Bruce Momjian [Fri, 21 Jun 2002 19:48:18 +0000 (19:48 +0000)]
Add mention of segmented files to oid2name.

22 years agoAdd reindex utility to /contrib.
Bruce Momjian [Fri, 21 Jun 2002 19:34:18 +0000 (19:34 +0000)]
Add reindex utility to /contrib.

Shaun Thomas                   <sthomas@townnews.com>

22 years agoMention dbsize in database sizing manual section.
Bruce Momjian [Fri, 21 Jun 2002 19:17:40 +0000 (19:17 +0000)]
Mention dbsize in database sizing manual section.

22 years agoMention "PostgreSQL"'s hashes as slower/similar to btree.
Bruce Momjian [Fri, 21 Jun 2002 19:06:44 +0000 (19:06 +0000)]
Mention "PostgreSQL"'s hashes as slower/similar to btree.

22 years agoUpdate hash warning in manual.
Bruce Momjian [Fri, 21 Jun 2002 16:52:00 +0000 (16:52 +0000)]
Update hash warning in manual.

22 years agoDocument problems with hash indexes compared to btree.
Bruce Momjian [Fri, 21 Jun 2002 03:25:53 +0000 (03:25 +0000)]
Document problems with hash indexes compared to btree.

22 years agoRemove Jan's copyright, with his approval.
Bruce Momjian [Fri, 21 Jun 2002 02:59:38 +0000 (02:59 +0000)]
Remove Jan's copyright, with his approval.

22 years agoUpdate FAQ.
Bruce Momjian [Fri, 21 Jun 2002 02:01:04 +0000 (02:01 +0000)]
Update FAQ.

22 years agoAdd pg_dump/restore item to FAQ.
Bruce Momjian [Fri, 21 Jun 2002 02:00:51 +0000 (02:00 +0000)]
Add pg_dump/restore item to FAQ.

Martijn van Oosterhout

22 years agoAdd new documentation on page format.
Bruce Momjian [Thu, 20 Jun 2002 21:48:47 +0000 (21:48 +0000)]
Add new documentation on page format.

Martijn van Ooster

22 years agoClean up some copyrights.
Bruce Momjian [Thu, 20 Jun 2002 20:51:45 +0000 (20:51 +0000)]
Clean up some copyrights.

22 years agoAdd another missing SRF file.
Bruce Momjian [Thu, 20 Jun 2002 20:39:04 +0000 (20:39 +0000)]
Add another missing SRF file.

22 years agoAdd missing SRF file.
Bruce Momjian [Thu, 20 Jun 2002 20:37:00 +0000 (20:37 +0000)]
Add missing SRF file.

22 years agoAdd missing regression files for SRF.
Bruce Momjian [Thu, 20 Jun 2002 20:35:56 +0000 (20:35 +0000)]
Add missing regression files for SRF.

22 years agoUpdate copyright to 2002.
Bruce Momjian [Thu, 20 Jun 2002 20:29:54 +0000 (20:29 +0000)]
Update copyright to 2002.

22 years agoHere is a patch for Composite and Set returning function support. I made
Bruce Momjian [Thu, 20 Jun 2002 17:19:08 +0000 (17:19 +0000)]
Here is a patch for Composite and Set returning function support. I made
two small changes to the API since last patch, which hopefully completes
the decoupling of composite function support from SRF specific support.

Joe Conway

22 years agoAttached is a regression test patch for SRFs. I based it on the test
Bruce Momjian [Thu, 20 Jun 2002 17:09:42 +0000 (17:09 +0000)]
Attached is a regression test patch for SRFs. I based it on the test
scripts that I have been using, minus the C function tests and without
calls to random() -- figured random() wouldn't work too well for a
regression test ;-)

Joe Conway

22 years ago> Here's the first doc patch for SRFs. The patch covers general
Bruce Momjian [Thu, 20 Jun 2002 16:57:00 +0000 (16:57 +0000)]
> Here's the first doc patch for SRFs. The patch covers general
> information and SQL language specific info wrt SRFs. I've taken to
> calling this feature "Table Fuctions" to be consistent with (at least)
> one well known RDBMS.

Joe Conway

22 years agoAdd from Dave Cramer:
Bruce Momjian [Thu, 20 Jun 2002 16:55:20 +0000 (16:55 +0000)]
Add from Dave Cramer:

JDBC
>  o Compile under jdk 1.4

22 years agoUpdate as done:
Bruce Momjian [Thu, 20 Jun 2002 16:49:41 +0000 (16:49 +0000)]
Update as done:

JDBC:
>  o -Updateable resultSet

22 years agoImprove COPY syntax to use WITH clause, keep backward compatibility.
Bruce Momjian [Thu, 20 Jun 2002 16:00:44 +0000 (16:00 +0000)]
Improve COPY syntax to use WITH clause, keep backward compatibility.

22 years agoThis patch updates the CREATE LANGUAGE & pg_language docs for the 7.3
Bruce Momjian [Thu, 20 Jun 2002 15:44:06 +0000 (15:44 +0000)]
This patch updates the CREATE LANGUAGE & pg_language docs for the 7.3
table structure.

 Dave Page

22 years agoAdd new Russian FAQ.
Bruce Momjian [Thu, 20 Jun 2002 04:34:31 +0000 (04:34 +0000)]
Add new Russian FAQ.

Viktor Vislobokov

22 years agoAdd:
Bruce Momjian [Wed, 19 Jun 2002 16:36:13 +0000 (16:36 +0000)]
Add:

> * -Allow object creation to be disabled for specific users

22 years agoProperly mark rules that return no value.
Bruce Momjian [Wed, 19 Jun 2002 15:40:58 +0000 (15:40 +0000)]
Properly mark rules that return no value.

22 years agoCacheMemoryContext should be DLLIMPORT.
Tom Lane [Wed, 19 Jun 2002 13:46:09 +0000 (13:46 +0000)]
CacheMemoryContext should be DLLIMPORT.

22 years agoSplit list of SQL99 features into "Supported" and "Unsupported" lists.
Thomas G. Lockhart [Wed, 19 Jun 2002 06:11:36 +0000 (06:11 +0000)]
Split list of SQL99 features into "Supported" and "Unsupported" lists.

22 years agoWrap long gram.y lines.
Bruce Momjian [Tue, 18 Jun 2002 17:56:41 +0000 (17:56 +0000)]
Wrap long gram.y lines.

22 years agoChange CREATE DATABASE to use DefElem instead of constructing structure
Bruce Momjian [Tue, 18 Jun 2002 17:27:58 +0000 (17:27 +0000)]
Change CREATE DATABASE to use DefElem instead of constructing structure
members in gram.y.  This is the prefered method for WITH and arbitrary
param/value pairs.

22 years agoImprove rule action ordering in gram.y, more cleanups.
Bruce Momjian [Tue, 18 Jun 2002 00:28:11 +0000 (00:28 +0000)]
Improve rule action ordering in gram.y, more cleanups.

22 years agoMark noise keyword actions with {} rather than returning TRUE, like
Bruce Momjian [Mon, 17 Jun 2002 20:38:04 +0000 (20:38 +0000)]
Mark noise keyword actions with {} rather than returning TRUE, like
opt_with and from_in.

22 years agoManually indent gram.y to be consistent.
Bruce Momjian [Mon, 17 Jun 2002 20:27:43 +0000 (20:27 +0000)]
Manually indent gram.y to be consistent.

22 years agoUse KAME accessor macros for addr8.
Bruce Momjian [Mon, 17 Jun 2002 15:55:09 +0000 (15:55 +0000)]
Use KAME accessor macros for addr8.

22 years agoFix missing 'buf' variable in SSL sources and add missing includes.
Bruce Momjian [Mon, 17 Jun 2002 15:23:36 +0000 (15:23 +0000)]
Fix missing 'buf' variable in SSL sources and add missing includes.

22 years agoFix SSL DEBUG levels to match CVS elog flags.
Bruce Momjian [Mon, 17 Jun 2002 15:19:28 +0000 (15:19 +0000)]
Fix SSL DEBUG levels to match CVS elog flags.

22 years agoBack out accidental COPY data changes.
Bruce Momjian [Mon, 17 Jun 2002 15:01:45 +0000 (15:01 +0000)]
Back out accidental COPY data changes.

22 years agoRepair AlterTableOwner --- was failing for relations with indexes.
Tom Lane [Mon, 17 Jun 2002 14:31:32 +0000 (14:31 +0000)]
Repair AlterTableOwner --- was failing for relations with indexes.

22 years agoFixed parser bug concerning octal numbers in single quotes.
Michael Meskes [Mon, 17 Jun 2002 13:23:27 +0000 (13:23 +0000)]
Fixed parser bug concerning octal numbers in single quotes.

22 years agoRename DEBUG to DEBUG1 in SSL code.
Bruce Momjian [Mon, 17 Jun 2002 07:33:25 +0000 (07:33 +0000)]
Rename DEBUG to DEBUG1 in SSL code.

22 years agoMerge ALTER GROUP ADD/DROP rules by creating add_drop action.
Bruce Momjian [Mon, 17 Jun 2002 07:00:27 +0000 (07:00 +0000)]
Merge ALTER GROUP ADD/DROP rules by creating add_drop action.

22 years agoSimplify optional WITH handling in CREATE USER, ALTER USER, CREATE
Bruce Momjian [Mon, 17 Jun 2002 05:40:32 +0000 (05:40 +0000)]
Simplify optional WITH handling in CREATE USER, ALTER USER, CREATE
GROUP.  Make WITH optional in CREATE DATABASE for consistency.

22 years agoimplemented refresh row
Dave Cramer [Sun, 16 Jun 2002 18:26:53 +0000 (18:26 +0000)]
implemented refresh row

22 years agoRemove KSQO from GUC and move file to _deadcode.
Bruce Momjian [Sun, 16 Jun 2002 00:09:12 +0000 (00:09 +0000)]
Remove KSQO from GUC and move file to _deadcode.

22 years agoFix up memory leakage created by recent changes.
Tom Lane [Sat, 15 Jun 2002 22:25:40 +0000 (22:25 +0000)]
Fix up memory leakage created by recent changes.

22 years agoOoops, fix busted markup.
Tom Lane [Sat, 15 Jun 2002 22:15:03 +0000 (22:15 +0000)]
Ooops, fix busted markup.

22 years agoClean up gcc warnings. Avoid the bad habit of putting externs in .c
Tom Lane [Sat, 15 Jun 2002 22:06:09 +0000 (22:06 +0000)]
Clean up gcc warnings.  Avoid the bad habit of putting externs in .c
files rather than a header file where they belong.  Pay some modicum
of attention to picking global routine names that aren't likely to
conflict with surrounding applications.

22 years agoFix up gcc warnings, improve comments.
Tom Lane [Sat, 15 Jun 2002 21:52:31 +0000 (21:52 +0000)]
Fix up gcc warnings, improve comments.

22 years agoAdd a little more material to the new section about evaluation order.
Tom Lane [Sat, 15 Jun 2002 21:28:55 +0000 (21:28 +0000)]
Add a little more material to the new section about evaluation order.

22 years agoPatch for current_schemas to optionally include implicit ...
Bruce Momjian [Sat, 15 Jun 2002 20:03:51 +0000 (20:03 +0000)]
Patch for current_schemas to optionally include implicit ...

Second cut attached. This one just adds a boolean option to the existing
function to indicate that implicit schemas are to be included (or not).
I remembered the docs as well this time :-)

Dave Page

22 years agoPATCH SSL_pending() checks in libpq/fe-misc.c:
Bruce Momjian [Sat, 15 Jun 2002 20:01:31 +0000 (20:01 +0000)]
PATCH SSL_pending() checks in libpq/fe-misc.c:

I am no longer pursuing a total non-blocking implementation.  I haven't
found a good way to test it with the type of work that I do with
PostgreSQL.  I do use blocking SSL sockets with this mod and have had no
problem whatsoever.  The bug that I fixed in this patch is exceptionally
hard to reproduce reliably.

Jack Bates

22 years agoWriteBuffer return value:
Bruce Momjian [Sat, 15 Jun 2002 19:59:59 +0000 (19:59 +0000)]
WriteBuffer return value:

>I'd vote for changing WriteBuffer to
>return void, and have it elog() on bad argument.

Manfred Koizar

22 years agoUpdate LOG_PID to mention it doesn't control syslog.
Bruce Momjian [Sat, 15 Jun 2002 19:58:53 +0000 (19:58 +0000)]
Update LOG_PID to mention it doesn't control syslog.

Oliver Elphick

22 years agoRemove some pre-WAL relics:
Bruce Momjian [Sat, 15 Jun 2002 19:55:38 +0000 (19:55 +0000)]
Remove some pre-WAL relics:
  SharedBufferChanged
  BufferRelidLastDirtied
  BufferTagLastDirtied
  BufferDirtiedByMe

Manfred Koizar

22 years agoThis patch wraps all accesses to t_xmin, t_cmin, t_xmax, and t_cmax in
Bruce Momjian [Sat, 15 Jun 2002 19:54:24 +0000 (19:54 +0000)]
This patch wraps all accesses to t_xmin, t_cmin, t_xmax, and t_cmax in
HeapTupleHeaderData in setter and getter macros called
HeapTupleHeaderGetXmin, HeapTupleHeaderSetXmin etc.

It also introduces a "virtual" field xvac by defining
HeapTupleHeaderGetXvac and HeapTupleHeaderSetXvac.  Xvac is used by
VACUUM, in fact it is stored in t_cmin.

Manfred Koizar

22 years agoThe normal operation of our servers is to have tcpip_sockets enabled,
Bruce Momjian [Sat, 15 Jun 2002 19:52:56 +0000 (19:52 +0000)]
The normal operation of our servers is to have tcpip_sockets enabled,
but occasionally I may need to shut down the server and restart it
w/o tcpip sockets. Postmaster has the -i option to turn on tcpip
connections, but it wasn't immediately clear how to easily or
temporarily turn it off (when it's been enabled in postgresql.conf).

In fact, it wasn't clear to me until digging in to postmaster.c that
I could pass '-c tcpip_socket=false' or '--tcpip_socket=false'.
(And then of course when I looked more closely at the man page I
realized I'd missed the proper part of the documentation.) What I'd
been looking for is a flag that would have the opposite effect of
'-i', and it's conceivable that others will be looking for specific
flags to do the opposite of '-F' and '-S'.

I was preparing to add options to postmaster until I realized that
maybe the solution is just to add some documentation.

If you'd rather have 1 character options to accomplish this, I'd be
happy to do that-- adding those 9 lines of code is definitely within
my ability. :)  (Although, the "right" letter to be the opposite of -S
isn't clear to me, since -s is already taken.)

Ron Snyder.

22 years agoFix for TAB completion using GRANT DELETE in psql.
Bruce Momjian [Sat, 15 Jun 2002 19:43:47 +0000 (19:43 +0000)]
Fix for TAB completion using GRANT DELETE in psql.

Oliver Elphick

22 years agoThe macaddr datatype understands most formats of MAC address, except 12
Bruce Momjian [Sat, 15 Jun 2002 19:39:33 +0000 (19:39 +0000)]
The macaddr datatype understands most formats of MAC address, except 12
hex digits with no separators, eg 00AABBCCDDEE. This is easily remedied
with the following patch (against 7.2.1):

Mike Wyer

22 years agoNoted with versions 7.0.3, 7.1.3, and 7.2.1:
Bruce Momjian [Sat, 15 Jun 2002 19:37:48 +0000 (19:37 +0000)]
Noted with versions 7.0.3, 7.1.3, and 7.2.1:

The psql interpreter becomes unstable if variable substitutions
are used.  The debugger GDB was unable to help however mpatrol
reports that the sprintf at mainloop.c:389 is steping one byte
farther than the allocation.

William K. Volkman

22 years agoOn Wed, 2002-05-29 at 01:41, Tom Lane wrote:
Bruce Momjian [Sat, 15 Jun 2002 19:34:51 +0000 (19:34 +0000)]
On Wed, 2002-05-29 at 01:41, Tom Lane wrote:
>
> > Is it a good idea to provide an example (such as the above), or should I
> > just try and describe the behaviour?
>
> Examples are generally good things ...

OK, the attached documentation patch provides some simple examples of
use of tablename as a parameter, %ROWTYPE and %TYPE.

In the end I decided that the documentation is literally correct, but
hard to follow without any examples explicitly showing the use of a
table name as a parameter.

Andrew McMillan

22 years agoThe method PgLargeObject::LOid() is missing an implementation in the .cc
Bruce Momjian [Sat, 15 Jun 2002 19:30:40 +0000 (19:30 +0000)]
The method PgLargeObject::LOid() is missing an implementation in the .cc
file.

The program seems to compile ok, but when linking a program that uses
the call,
g++ chokes with an undefined reference error.

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------
I include the code:

Oid PgLargeObject::LOid(){
  return pgObject;
}

in the .cc file.

Chris Traylor

22 years agoAdd C++ indent tool.
Bruce Momjian [Sat, 15 Jun 2002 19:13:04 +0000 (19:13 +0000)]
Add C++ indent tool.

22 years agoThis patch fixes a few minor problems with libpq++: remove the deprecated
Bruce Momjian [Sat, 15 Jun 2002 18:49:29 +0000 (18:49 +0000)]
This patch fixes a few minor problems with libpq++: remove the deprecated
PQExec(" ") in the wrapper around PQnotifies(), fix the Makefile for
the examples so that they will actually compile properly (with the
exception of #5, which depends on internal headers), make a minor change
to libpq++.h so that "make examples" now works on my machine, update
some documentation, fix some grammatical problems, and remove some of
the more hideous comments.

Neil Conway

22 years agoAdd LOCALTIME and LOCALTIMESTAMP functions per SQL99 standard.
Thomas G. Lockhart [Sat, 15 Jun 2002 03:00:09 +0000 (03:00 +0000)]
Add LOCALTIME and LOCALTIMESTAMP functions per SQL99 standard.
Remove ODBC-compatible empty parentheses from calls to SQL99 functions
 for which these parentheses do not match the standard.
Update the ODBC driver to ensure compatibility with the ODBC standard
 for these functions (e.g. CURRENT_TIMESTAMP, CURRENT_USER, etc).
Include a new appendix in the User's Guide which lists the labeled features
 for SQL99 (the labeled features replaced the "basic", "intermediate",
 and "advanced" categories from SQL92). features.sgml does not yet split
 this list into "supported" and "unsupported" lists.

22 years agoSearch the existing regular expression cache as a ring buffer.
Thomas G. Lockhart [Sat, 15 Jun 2002 02:49:47 +0000 (02:49 +0000)]
Search the existing regular expression cache as a ring buffer.
Will optimize the case for repeated calls for the same expression,
 which seems to be the most common case. Formerly, always searched
 from the first entry.
May want to look at the least-recently-used algorithm to make sure it
 is identifying the right slots to reclaim. Seems silly to do math when
 it seems that we could simply use an incrementing counter...

22 years agoAdd NetBSD/MIPS as a supported platform.
Thomas G. Lockhart [Sat, 15 Jun 2002 02:41:56 +0000 (02:41 +0000)]
Add NetBSD/MIPS as a supported platform.

22 years agoMake encryption of stored passwords the default, as discussed months ago.
Bruce Momjian [Sat, 15 Jun 2002 01:29:50 +0000 (01:29 +0000)]
Make encryption of stored passwords the default, as discussed months ago.

22 years agoRemove pfrees of cached pg_pwd file, per Tom Lane.
Bruce Momjian [Sat, 15 Jun 2002 00:52:23 +0000 (00:52 +0000)]
Remove pfrees of cached pg_pwd file, per Tom Lane.

22 years agoadded empty result set testing
Dave Cramer [Fri, 14 Jun 2002 14:01:36 +0000 (14:01 +0000)]
added empty result set testing

22 years agoadded empty result set testing
Dave Cramer [Fri, 14 Jun 2002 10:56:13 +0000 (10:56 +0000)]
added empty result set testing

22 years agoYet another SSL patch. :-) This one adds some informational messages
Bruce Momjian [Fri, 14 Jun 2002 04:38:04 +0000 (04:38 +0000)]
Yet another SSL patch. :-)  This one adds some informational messages
on the server, if DebugLvl >= 2.

The patch also includes a late addition to the last patch
(X509_check_private_key()).  I'm not sure why it the currect
revision wasn't tagged.

Bear Giles

22 years agoSSL patch that adds support for optional client certificates.
Bruce Momjian [Fri, 14 Jun 2002 04:36:58 +0000 (04:36 +0000)]
SSL patch that adds support for optional client certificates.

If the user has certificates in $HOME/.postgresql/postgresql.crt
and $HOME/.postgresql/postgresql.key exist, they are provided
to the server.  The certificate used to sign this cert must be
known to the server, in $DataDir/root.crt.  If successful, the
cert's "common name" is logged.

Client certs are not used for authentication, but they could be
via the port->peer (X509 *), port->peer_dn (char *) or
port->peer_cn (char *) fields.  Or any other function could be
used, e.g., many sites like the issuer + serial number hash.

Bear Giles

22 years agoPatch that checks ownership and permissions on server static
Bruce Momjian [Fri, 14 Jun 2002 04:35:02 +0000 (04:35 +0000)]
Patch that checks ownership and permissions on server static
private key.  (You want it to be a regular file owned by the
database process, with 0400 or 0600 permissions.)

Bear Giles

22 years agoSSL patch to periodically renegotiate session key.
Bruce Momjian [Fri, 14 Jun 2002 04:33:53 +0000 (04:33 +0000)]
SSL patch to periodically renegotiate session key.

In order to reduce the risk of cryptanalysis during extended
sessions (or brief ones involving a substantial amount of data),
this patch renegotiates the session key after 64kib has been
transferred.

Bear Giles

22 years agoSSL support for ephemeral DH keys.
Bruce Momjian [Fri, 14 Jun 2002 04:31:49 +0000 (04:31 +0000)]
SSL support for ephemeral DH keys.

As the comment headers in be-secure.c discusses, EPH preserves
confidentiality even if the static private key (which is usually
kept unencrypted) is compromised.

Because of the value of this, common default values are hard-coded
to protect the confidentiality of the data even if an attacker
successfully deletes or modifies the external file.

Bear Giles

22 years agoUPDATED PATCH:
Bruce Momjian [Fri, 14 Jun 2002 04:23:17 +0000 (04:23 +0000)]
UPDATED PATCH:

Attached are a revised set of SSL patches.  Many of these patches
are motivated by security concerns, it's not just bug fixes.  The key
differences (from stock 7.2.1) are:

*) almost all code that directly uses the OpenSSL library is in two
   new files,

     src/interfaces/libpq/fe-ssl.c
     src/backend/postmaster/be-ssl.c

   in the long run, it would be nice to merge these two files.

*) the legacy code to read and write network data have been
   encapsulated into read_SSL() and write_SSL().  These functions
   should probably be renamed - they handle both SSL and non-SSL
   cases.

   the remaining code should eliminate the problems identified
   earlier, albeit not very cleanly.

*) both front- and back-ends will send a SSL shutdown via the
   new close_SSL() function.  This is necessary for sessions to
   work properly.

   (Sessions are not yet fully supported, but by cleanly closing
   the SSL connection instead of just sending a TCP FIN packet
   other SSL tools will be much happier.)

*) The client certificate and key are now expected in a subdirectory
   of the user's home directory.  Specifically,

- the directory .postgresql must be owned by the user, and
  allow no access by 'group' or 'other.'

- the file .postgresql/postgresql.crt must be a regular file
  owned by the user.

- the file .postgresql/postgresql.key must be a regular file
  owned by the user, and allow no access by 'group' or 'other'.

   At the current time encrypted private keys are not supported.
   There should also be a way to support multiple client certs/keys.

*) the front-end performs minimal validation of the back-end cert.
   Self-signed certs are permitted, but the common name *must*
   match the hostname used by the front-end.  (The cert itself
   should always use a fully qualified domain name (FDQN) in its
   common name field.)

   This means that

  psql -h eris db

   will fail, but

  psql -h eris.example.com db

   will succeed.  At the current time this must be an exact match;
   future patches may support any FQDN that resolves to the address
   returned by getpeername(2).

   Another common "problem" is expiring certs.  For now, it may be
   a good idea to use a very-long-lived self-signed cert.

   As a compile-time option, the front-end can specify a file
   containing valid root certificates, but it is not yet required.

*) the back-end performs minimal validation of the client cert.
   It allows self-signed certs.  It checks for expiration.  It
   supports a compile-time option specifying a file containing
   valid root certificates.

*) both front- and back-ends default to TLSv1, not SSLv3/SSLv2.

*) both front- and back-ends support DSA keys.  DSA keys are
   moderately more expensive on startup, but many people consider
   them preferable than RSA keys.  (E.g., SSH2 prefers DSA keys.)

*) if /dev/urandom exists, both client and server will read 16k
   of randomization data from it.

*) the server can read empheral DH parameters from the files

     $DataDir/dh512.pem
     $DataDir/dh1024.pem
     $DataDir/dh2048.pem
     $DataDir/dh4096.pem

   if none are provided, the server will default to hardcoded
   parameter files provided by the OpenSSL project.

Remaining tasks:

*) the select() clauses need to be revisited - the SSL abstraction
   layer may need to absorb more of the current code to avoid rare
   deadlock conditions.  This also touches on a true solution to
   the pg_eof() problem.

*) the SIGPIPE signal handler may need to be revisited.

*) support encrypted private keys.

*) sessions are not yet fully supported.  (SSL sessions can span
   multiple "connections," and allow the client and server to avoid
   costly renegotiations.)

*) makecert - a script that creates back-end certs.

*) pgkeygen - a tool that creates front-end certs.

*) the whole protocol issue, SASL, etc.

 *) certs are fully validated - valid root certs must be available.
    This is a hassle, but it means that you *can* trust the identity
    of the server.

 *) the client library can handle hardcoded root certificates, to
    avoid the need to copy these files.

 *) host name of server cert must resolve to IP address, or be a
    recognized alias.  This is more liberal than the previous
    iteration.

 *) the number of bytes transferred is tracked, and the session
    key is periodically renegotiated.

 *) basic cert generation scripts (mkcert.sh, pgkeygen.sh).  The
    configuration files have reasonable defaults for each type
    of use.

Bear Giles

22 years agoBack out SSL changes. Newer patch available.
Bruce Momjian [Fri, 14 Jun 2002 04:09:37 +0000 (04:09 +0000)]
Back out SSL changes.  Newer patch available.

22 years agoAttached are a revised set of SSL patches. Many of these patches
Bruce Momjian [Fri, 14 Jun 2002 03:56:47 +0000 (03:56 +0000)]
Attached are a revised set of SSL patches.  Many of these patches
are motivated by security concerns, it's not just bug fixes.  The key
differences (from stock 7.2.1) are:

*) almost all code that directly uses the OpenSSL library is in two
   new files,

     src/interfaces/libpq/fe-ssl.c
     src/backend/postmaster/be-ssl.c

   in the long run, it would be nice to merge these two files.

*) the legacy code to read and write network data have been
   encapsulated into read_SSL() and write_SSL().  These functions
   should probably be renamed - they handle both SSL and non-SSL
   cases.

   the remaining code should eliminate the problems identified
   earlier, albeit not very cleanly.

*) both front- and back-ends will send a SSL shutdown via the
   new close_SSL() function.  This is necessary for sessions to
   work properly.

   (Sessions are not yet fully supported, but by cleanly closing
   the SSL connection instead of just sending a TCP FIN packet
   other SSL tools will be much happier.)

*) The client certificate and key are now expected in a subdirectory
   of the user's home directory.  Specifically,

- the directory .postgresql must be owned by the user, and
  allow no access by 'group' or 'other.'

- the file .postgresql/postgresql.crt must be a regular file
  owned by the user.

- the file .postgresql/postgresql.key must be a regular file
  owned by the user, and allow no access by 'group' or 'other'.

   At the current time encrypted private keys are not supported.
   There should also be a way to support multiple client certs/keys.

*) the front-end performs minimal validation of the back-end cert.
   Self-signed certs are permitted, but the common name *must*
   match the hostname used by the front-end.  (The cert itself
   should always use a fully qualified domain name (FDQN) in its
   common name field.)

   This means that

  psql -h eris db

   will fail, but

  psql -h eris.example.com db

   will succeed.  At the current time this must be an exact match;
   future patches may support any FQDN that resolves to the address
   returned by getpeername(2).

   Another common "problem" is expiring certs.  For now, it may be
   a good idea to use a very-long-lived self-signed cert.

   As a compile-time option, the front-end can specify a file
   containing valid root certificates, but it is not yet required.

*) the back-end performs minimal validation of the client cert.
   It allows self-signed certs.  It checks for expiration.  It
   supports a compile-time option specifying a file containing
   valid root certificates.

*) both front- and back-ends default to TLSv1, not SSLv3/SSLv2.

*) both front- and back-ends support DSA keys.  DSA keys are
   moderately more expensive on startup, but many people consider
   them preferable than RSA keys.  (E.g., SSH2 prefers DSA keys.)

*) if /dev/urandom exists, both client and server will read 16k
   of randomization data from it.

*) the server can read empheral DH parameters from the files

     $DataDir/dh512.pem
     $DataDir/dh1024.pem
     $DataDir/dh2048.pem
     $DataDir/dh4096.pem

   if none are provided, the server will default to hardcoded
   parameter files provided by the OpenSSL project.

Remaining tasks:

*) the select() clauses need to be revisited - the SSL abstraction
   layer may need to absorb more of the current code to avoid rare
   deadlock conditions.  This also touches on a true solution to
   the pg_eof() problem.

*) the SIGPIPE signal handler may need to be revisited.

*) support encrypted private keys.

*) sessions are not yet fully supported.  (SSL sessions can span
   multiple "connections," and allow the client and server to avoid
   costly renegotiations.)

*) makecert - a script that creates back-end certs.

*) pgkeygen - a tool that creates front-end certs.

*) the whole protocol issue, SASL, etc.

 *) certs are fully validated - valid root certs must be available.
    This is a hassle, but it means that you *can* trust the identity
    of the server.

 *) the client library can handle hardcoded root certificates, to
    avoid the need to copy these files.

 *) host name of server cert must resolve to IP address, or be a
    recognized alias.  This is more liberal than the previous
    iteration.

 *) the number of bytes transferred is tracked, and the session
    key is periodically renegotiated.

 *) basic cert generation scripts (mkcert.sh, pgkeygen.sh).  The
    configuration files have reasonable defaults for each type
    of use.

Bear Giles

22 years agoAdd support for GB18030
Tatsuo Ishii [Fri, 14 Jun 2002 03:30:56 +0000 (03:30 +0000)]
Add support for GB18030

22 years agoSuppress 'owner of datatype appears to be invalid' warning message for
Tom Lane [Thu, 13 Jun 2002 20:02:31 +0000 (20:02 +0000)]
Suppress 'owner of datatype appears to be invalid' warning message for
undefined (shell) types.

22 years agoAllow ANALYZE to run in a transaction.
Bruce Momjian [Thu, 13 Jun 2002 19:52:02 +0000 (19:52 +0000)]
Allow ANALYZE to run in a transaction.

22 years agoAdd:
Bruce Momjian [Thu, 13 Jun 2002 18:01:38 +0000 (18:01 +0000)]
Add:

> * Create native Win32 port [win32]

22 years agoAdd Win32 thread to TODO.detail.
Bruce Momjian [Thu, 13 Jun 2002 18:00:47 +0000 (18:00 +0000)]
Add Win32 thread to TODO.detail.

22 years agoMake WHERE conditions pulled up from subqueries be executed before outer
Tom Lane [Thu, 13 Jun 2002 15:10:25 +0000 (15:10 +0000)]
Make WHERE conditions pulled up from subqueries be executed before outer
WHERE conditions, if there is no reason to do it differently.

22 years agoremoved personal test parameters
Dave Cramer [Thu, 13 Jun 2002 14:37:30 +0000 (14:37 +0000)]
removed personal test parameters

22 years agoAdd PLACING to the list of reserved keywords. Added as a token in the last
Thomas G. Lockhart [Thu, 13 Jun 2002 14:16:43 +0000 (14:16 +0000)]
Add PLACING to the list of reserved keywords. Added as a token in the last
 update to support the new OVERLAY() function.

22 years agoAdded test for newly implemented updateable result sets
Dave Cramer [Thu, 13 Jun 2002 14:06:11 +0000 (14:06 +0000)]
Added test for newly implemented updateable result sets

22 years agochanges to accomodate updateable resultset mostly just call setSqlQuery on execute
Dave Cramer [Thu, 13 Jun 2002 14:02:50 +0000 (14:02 +0000)]
changes to accomodate updateable resultset mostly just call setSqlQuery on execute

22 years agoImplemented updateable result sets based on raghu nidagal implementation
Dave Cramer [Thu, 13 Jun 2002 13:52:16 +0000 (13:52 +0000)]
Implemented updateable result sets based on raghu nidagal implementation

22 years agochanged some commented out messages to use the Driver.debug and fixed first to read...
Dave Cramer [Thu, 13 Jun 2002 13:48:28 +0000 (13:48 +0000)]
changed some commented out messages to use the Driver.debug and fixed first to read the underlying data into rowbuffer

22 years agoadded messages for updateable result sets
Dave Cramer [Thu, 13 Jun 2002 13:43:02 +0000 (13:43 +0000)]
added messages for updateable result sets

22 years agoAdd GB18030 support. Contributed by Bill Huang <bill_huanghb@ybb.ne.jp>
Tatsuo Ishii [Thu, 13 Jun 2002 08:30:22 +0000 (08:30 +0000)]
Add GB18030 support. Contributed by Bill Huang <bill_huanghb@ybb.ne.jp>
(ODBC support has not been committed yet. left for Hiroshi...)

22 years agomake namein multibyte aware
Tatsuo Ishii [Thu, 13 Jun 2002 06:19:45 +0000 (06:19 +0000)]
make namein multibyte aware