summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2002-06-14Back out SSL changes. Newer patch available.Bruce Momjian
2002-06-14Attached are a revised set of SSL patches. Many of these patchesBruce Momjian
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
2002-06-14Add support for GB18030Tatsuo Ishii
2002-06-13Suppress 'owner of datatype appears to be invalid' warning message forTom Lane
undefined (shell) types.
2002-06-13Allow ANALYZE to run in a transaction.Bruce Momjian
2002-06-13Make WHERE conditions pulled up from subqueries be executed before outerTom Lane
WHERE conditions, if there is no reason to do it differently.
2002-06-13removed personal test parametersDave Cramer
2002-06-13Add PLACING to the list of reserved keywords. Added as a token in the lastThomas G. Lockhart
update to support the new OVERLAY() function.
2002-06-13Added test for newly implemented updateable result setsDave Cramer
2002-06-13changes to accomodate updateable resultset mostly just call setSqlQuery on ↵Dave Cramer
execute
2002-06-13Implemented updateable result sets based on raghu nidagal implementationDave Cramer
2002-06-13changed some commented out messages to use the Driver.debug and fixed first ↵Dave Cramer
to read the underlying data into rowbuffer
2002-06-13added messages for updateable result setsDave Cramer
2002-06-13Add GB18030 support. Contributed by Bill Huang <bill_huanghb@ybb.ne.jp>Tatsuo Ishii
(ODBC support has not been committed yet. left for Hiroshi...)
2002-06-13make namein multibyte awareTatsuo Ishii
2002-06-13Further tweaks to support display of sort keys in EXPLAIN --- initialTom Lane
implementation didn't work for Sort nodes associated with Append plans.
2002-06-13Repair for bug #691 --- CREATE TABLE AS column aliases fail to beTom Lane
applied when the select is a UNION (or other set-operation). An alternative route to a fix would be to leave analyze.c alone and change plan_set_operations in prepunion.c to take column names from the topmost targetlist. But I am not sure that would work in all cases. This patch seems the minimum-risk fix.
2002-06-12Applied Lee Kindness' patch to fix one of memory allocation with floating ↵Michael Meskes
point numbers.
2002-06-121) Fix a bug *double error message*.Hiroshi Inoue
2) Fix a bug *passowrd prompt in case of md5 authentication*. 3) Improve the DSN setup dialog.
2002-06-11Allow createdb to create comments in current db, not template1.Bruce Momjian
2002-06-11Implement SQL99 OVERLAY(). Allows substitution of a substring in a string.Thomas G. Lockhart
Implement SQL99 SIMILAR TO as a synonym for our existing operator "~". Implement SQL99 regular expression SUBSTRING(string FROM pat FOR escape). Extend the definition to make the FOR clause optional. Define textregexsubstr() to actually implement this feature. Update the regression test to include these new string features. All tests pass. Rename the regular expression support routines from "pg95_xxx" to "pg_xxx". Define CREATE CHARACTER SET in the parser per SQL99. No implementation yet.
2002-06-11Katherine Ward wrote:Jan Wieck
> Changes to avoid collisions with WIN32 & MFC names... > 1. Renamed: > a. PROC => PGPROC > b. GetUserName() => GetUserNameFromId() > c. GetCurrentTime() => GetCurrentDateTime() > d. IGNORE => IGNORE_DTF in include/utils/datetime.h & utils/adt/datetim > > 2. Added _P to some lex/yacc tokens: > CONST, CHAR, DELETE, FLOAT, GROUP, IN, OUT Jan
2002-06-11The patch does the following:Barry Lind
Allows you to set the loglevel at runtime by adding ?loglevel=X to the connection URL, where 1 = INFO and 2 = DEBUG. Automatically turns on logging by calling DriverManager.setPrintWriter(new PrintWriter(System.out)) if one is not already set. Adds a Driver.info() message that prints out the version number Adds member variables logDebug and logInfo that can be checked before making logging methods calls Adds a build number to the version number string. This build number will need to be manually incremented when we see fit. ---------------------------------------------------------------------- Modified Files: org/postgresql/Connection.java org/postgresql/Driver.java.in org/postgresql/fastpath/Fastpath.java org/postgresql/jdbc1/DatabaseMetaData.java org/postgresql/jdbc2/Connection.java org/postgresql/jdbc2/DatabaseMetaData.java org/postgresql/largeobject/LargeObjectManager.java org/postgresql/util/PSQLException.java org/postgresql/util/Serialize.java ----------------------------------------------------------------------
2002-06-08Remove DEBUG_LEVEL from postgresql.conf. Now uses CLIENT/SERVER_MIN_MESSAGES.Bruce Momjian
2002-06-07Improve readability of factorial, from Florian Weimer.Bruce Momjian
2002-06-07Fix for factorial(0::int2) returning 1, from sugita@sra.co.jp.Bruce Momjian
2002-06-07The attached patch fixes a problem with InstallXLogFileSegment()'s useBruce Momjian
of link() under Cygwin: http://archives.postgresql.org/pgsql-cygwin/2002-04/msg00072.php Note that it appears that BeOS and Netware also have the above or similar problem. I have only verified that PostgreSQL builds under Cygwin with this patch. Since I cannot reproduce the problem, I cannot verify that the proposed patch solves it. Nevertheless, both Barry Pederson and David P. Caldwell attest that this patch solves the problem. See the following for details: http://archives.postgresql.org/pgsql-cygwin/2002-05/msg00043.php http://archives.postgresql.org/pgsql-cygwin/2002-05/msg00040.php Jason Tishler
2002-06-07Remove int16 from libpgeasy examples. Improve error reporting.Bruce Momjian
2002-06-07fixed bug reported by cc.ais40@wanadoo.fr where getObject was returning an ↵Barry Lind
Integer for a smallint datatype instead of a Short
2002-06-07Fix interface example errors causes by backend changes.Bruce Momjian
Permaine Cheung
2002-06-06change table name to lower case in getColumnsDave Cramer
2002-06-06Add missing win_setup.h.Hiroshi Inoue
2002-06-06Add *Int8 As* option.Hiroshi Inoue
2002-06-05fixed getImported/ExportedKeys to be simpler, and return the correct number ↵Dave Cramer
of keys
2002-06-03Document that SM_* variables should be longer.Bruce Momjian
2002-06-03fixed bug reported by Noel Rappin (nrappin@sockeye.com) java Array type ↵Barry Lind
handled Timestamps incorrectly
2002-06-03Small patch to correct the default arraysize associatedBruce Momjian
with the Cursor object's fetchmany() method. The API and inline documentation state that the default is 1. It currently defaults to 5. Patrick Macdonald
2002-06-03Mention SM_USER should be the same size as the others.Bruce Momjian
2002-06-02Add PQescapeString and PQescapeBytea for Win32.Bruce Momjian
2002-06-02Allow pod2man 5.005p3 to work with our current sources.Bruce Momjian
2002-06-01Fix timestamp to date conversion for the case where timestamp uses a doubleThomas G. Lockhart
precision storage format. Previously applied the same math as used for the 64-bit integer storage format case, which was wrong. Problem introduced recently when the 64-bit storage format was implemented.
2002-05-30small fix to testExportedKeysDave Cramer
2002-05-30added imported/exported key testDatabaseMetaDataTest.javaDave Cramer
2002-05-29Another place that needs schema qualification.Tom Lane
2002-05-29Fix some more not-schema-aware queries in pg_dump. Also fix some placesTom Lane
that would do the wrong thing with BLOB OIDs exceeding 2G.
2002-05-28Rearrange LOG_CONNECTIONS code so that two log messages are made:Tom Lane
one immediately upon forking to handle a new connection, and one after the authentication cycle is finished. Per today's pggeneral discussion.
2002-05-28Rework pg_dump namespace search criteria so that dumping of user objectsTom Lane
having names conflicting with system objects will work --- the search path is now user-schema, pg_catalog rather than implicitly the other way around. Note this requires being careful to explicitly qualify references to system names whenever pg_catalog is not first in the search path. Also, add support for dumping ACLs of schemas.
2002-05-28Queries used by ruleutils were not schema-proof.Tom Lane
2002-05-28In default nextval('foo') expression for a SERIAL column, use doubleTom Lane
quotes only when necessary.
2002-05-28Change PL/Perl and Pg interface build to use configured compiler andPeter Eisentraut
Makefile.shlib system, not MakeMaker.