Commit Graph

10090 Commits

Author SHA1 Message Date
Bruce Momjian
79ff2e96de 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
2002-06-15 20:01:31 +00:00
Bruce Momjian
6e8a1a6717 WriteBuffer return value:
>I'd vote for changing WriteBuffer to
>return void, and have it elog() on bad argument.

Manfred Koizar
2002-06-15 19:59:59 +00:00
Bruce Momjian
918e864f14 Remove some pre-WAL relics:
SharedBufferChanged
  BufferRelidLastDirtied
  BufferTagLastDirtied
  BufferDirtiedByMe

Manfred Koizar
2002-06-15 19:55:38 +00:00
Bruce Momjian
3c35face41 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
2002-06-15 19:54:24 +00:00
Bruce Momjian
dbbd13bdb5 Fix for TAB completion using GRANT DELETE in psql.
Oliver Elphick
2002-06-15 19:43:47 +00:00
Bruce Momjian
6b9e742458 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
2002-06-15 19:39:33 +00:00
Bruce Momjian
cd7be4d947 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
2002-06-15 19:37:48 +00:00
Bruce Momjian
240de617fb 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
2002-06-15 19:30:40 +00:00
Bruce Momjian
d54ae2aff2 Add C++ indent tool. 2002-06-15 19:13:04 +00:00
Bruce Momjian
2e58024066 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
2002-06-15 18:49:29 +00:00
Thomas G. Lockhart
133df7ce70 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.
2002-06-15 03:00:09 +00:00
Thomas G. Lockhart
bad5fe9797 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...
2002-06-15 02:49:47 +00:00
Bruce Momjian
63a354c4bb Make encryption of stored passwords the default, as discussed months ago. 2002-06-15 01:29:50 +00:00
Bruce Momjian
579eab9880 Remove pfrees of cached pg_pwd file, per Tom Lane. 2002-06-15 00:52:23 +00:00
Dave Cramer
fd8b153912 added empty result set testing 2002-06-14 14:01:36 +00:00
Dave Cramer
6e2fab0a41 added empty result set testing 2002-06-14 10:56:13 +00:00
Bruce Momjian
1ed4a922b8 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
2002-06-14 04:38:04 +00:00
Bruce Momjian
eb7afc1407 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
2002-06-14 04:36:58 +00:00
Bruce Momjian
b8b6691e52 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
2002-06-14 04:35:02 +00:00
Bruce Momjian
8f44024639 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
2002-06-14 04:33:53 +00:00
Bruce Momjian
55d053233c 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
2002-06-14 04:31:49 +00:00
Bruce Momjian
19570420f5 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
2002-06-14 04:23:17 +00:00
Bruce Momjian
eb43af3210 Back out SSL changes. Newer patch available. 2002-06-14 04:09:37 +00:00
Bruce Momjian
a9bd17616e 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
2002-06-14 03:56:47 +00:00
Tatsuo Ishii
15378a53f8 Add support for GB18030 2002-06-14 03:30:56 +00:00
Tom Lane
b1313e3474 Suppress 'owner of datatype appears to be invalid' warning message for
undefined (shell) types.
2002-06-13 20:02:31 +00:00
Bruce Momjian
c66eb00adc Allow ANALYZE to run in a transaction. 2002-06-13 19:52:02 +00:00
Tom Lane
f67a931aa4 Make WHERE conditions pulled up from subqueries be executed before outer
WHERE conditions, if there is no reason to do it differently.
2002-06-13 15:10:25 +00:00
Dave Cramer
b1ac89f594 removed personal test parameters 2002-06-13 14:37:30 +00:00
Thomas G. Lockhart
bbc9b759d6 Add PLACING to the list of reserved keywords. Added as a token in the last
update to support the new OVERLAY() function.
2002-06-13 14:16:43 +00:00
Dave Cramer
5598cbf641 Added test for newly implemented updateable result sets 2002-06-13 14:06:11 +00:00
Dave Cramer
603c46d8ce changes to accomodate updateable resultset mostly just call setSqlQuery on execute 2002-06-13 14:02:50 +00:00
Dave Cramer
7873bed77c Implemented updateable result sets based on raghu nidagal implementation 2002-06-13 13:52:16 +00:00
Dave Cramer
ad88ee1e04 changed some commented out messages to use the Driver.debug and fixed first to read the underlying data into rowbuffer 2002-06-13 13:48:28 +00:00
Dave Cramer
3f857600b2 added messages for updateable result sets 2002-06-13 13:43:02 +00:00
Tatsuo Ishii
14f72b9a4d Add GB18030 support. Contributed by Bill Huang <bill_huanghb@ybb.ne.jp>
(ODBC support has not been committed yet. left for Hiroshi...)
2002-06-13 08:30:22 +00:00
Tatsuo Ishii
620dbc98cd make namein multibyte aware 2002-06-13 06:19:45 +00:00
Tom Lane
ecb5269404 Further tweaks to support display of sort keys in EXPLAIN --- initial
implementation didn't work for Sort nodes associated with Append plans.
2002-06-13 03:40:49 +00:00
Tom Lane
59c325bb73 Repair for bug #691 --- CREATE TABLE AS column aliases fail to be
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-13 02:04:46 +00:00
Michael Meskes
0f865e17e2 Applied Lee Kindness' patch to fix one of memory allocation with floating point numbers. 2002-06-12 12:06:53 +00:00
Hiroshi Inoue
0484700cda 1) Fix a bug *double error message*.
2) Fix a bug *passowrd prompt in case of md5 authentication*.
3) Improve the DSN setup dialog.
2002-06-12 02:27:44 +00:00
Bruce Momjian
237fb9bbc6 Allow createdb to create comments in current db, not template1. 2002-06-11 22:21:01 +00:00
Thomas G. Lockhart
ea01a451cc Implement SQL99 OVERLAY(). Allows substitution of a substring in a string.
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-11 15:44:38 +00:00
Jan Wieck
469cb65aca Katherine Ward wrote:
> 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-11 13:40:53 +00:00
Barry Lind
b465f5307f The patch does the following:
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-11 02:55:16 +00:00
Bruce Momjian
4cb53d71b9 Remove DEBUG_LEVEL from postgresql.conf. Now uses CLIENT/SERVER_MIN_MESSAGES. 2002-06-08 04:08:19 +00:00
Bruce Momjian
585fef1671 Improve readability of factorial, from Florian Weimer. 2002-06-07 23:43:17 +00:00
Bruce Momjian
8a3f34b558 Fix for factorial(0::int2) returning 1, from sugita@sra.co.jp. 2002-06-07 23:41:53 +00:00
Bruce Momjian
2f297a2fcf The attached patch fixes a problem with InstallXLogFileSegment()'s use
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-07 21:47:45 +00:00
Bruce Momjian
ccab6f7402 Remove int16 from libpgeasy examples. Improve error reporting. 2002-06-07 16:53:40 +00:00
Barry Lind
936ff27696 fixed bug reported by cc.ais40@wanadoo.fr where getObject was returning an Integer for a smallint datatype instead of a Short 2002-06-07 16:46:24 +00:00
Bruce Momjian
ce4a287f43 Fix interface example errors causes by backend changes.
Permaine Cheung
2002-06-07 03:55:15 +00:00
Dave Cramer
106dda2915 change table name to lower case in getColumns 2002-06-06 14:47:52 +00:00
Hiroshi Inoue
6cfb3ec593 Add missing win_setup.h. 2002-06-06 09:47:25 +00:00
Hiroshi Inoue
89d6f6808c Add *Int8 As* option. 2002-06-06 04:50:47 +00:00
Dave Cramer
520695701c fixed getImported/ExportedKeys to be simpler, and return the correct number of keys 2002-06-05 19:12:01 +00:00
Bruce Momjian
31cd5355ee Document that SM_* variables should be longer. 2002-06-03 22:57:47 +00:00
Barry Lind
b48b4ab48e fixed bug reported by Noel Rappin (nrappin@sockeye.com) java Array type handled Timestamps incorrectly 2002-06-03 17:52:05 +00:00
Bruce Momjian
e0faed4bee Small patch to correct the default arraysize associated
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-03 17:42:11 +00:00
Bruce Momjian
416fcd9dba Mention SM_USER should be the same size as the others. 2002-06-03 01:05:45 +00:00
Bruce Momjian
de1f32efc1 Add PQescapeString and PQescapeBytea for Win32. 2002-06-02 22:36:30 +00:00
Bruce Momjian
6bb39991da Allow pod2man 5.005p3 to work with our current sources. 2002-06-02 21:37:26 +00:00
Thomas G. Lockhart
17adf80b47 Fix timestamp to date conversion for the case where timestamp uses a double
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-06-01 15:52:15 +00:00
Dave Cramer
3dd13ffd95 small fix to testExportedKeys 2002-05-30 16:39:26 +00:00
Dave Cramer
1ffd044af7 added imported/exported key testDatabaseMetaDataTest.java 2002-05-30 16:26:55 +00:00
Tom Lane
9ca89b4f8c Another place that needs schema qualification. 2002-05-29 01:49:57 +00:00
Tom Lane
49bf04ba8c Fix some more not-schema-aware queries in pg_dump. Also fix some places
that would do the wrong thing with BLOB OIDs exceeding 2G.
2002-05-29 01:38:56 +00:00
Tom Lane
75c93c0a68 Rearrange LOG_CONNECTIONS code so that two log messages are made:
one immediately upon forking to handle a new connection, and one after
the authentication cycle is finished.  Per today's pggeneral discussion.
2002-05-28 23:56:51 +00:00
Tom Lane
36a1e732a6 Rework pg_dump namespace search criteria so that dumping of user objects
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-28 22:26:57 +00:00
Tom Lane
5a8ab29adf Queries used by ruleutils were not schema-proof. 2002-05-28 22:16:15 +00:00
Tom Lane
e80d6a1bac In default nextval('foo') expression for a SERIAL column, use double
quotes only when necessary.
2002-05-28 22:15:42 +00:00
Peter Eisentraut
7662419f1b Change PL/Perl and Pg interface build to use configured compiler and
Makefile.shlib system, not MakeMaker.
2002-05-28 16:57:53 +00:00
Tom Lane
a71a53079c Repair error with not adjusting active scans properly after gistSplit.
Patch from Teodor Sigaev.
2002-05-28 15:22:33 +00:00
Tom Lane
3212cf9417 Distinguish between MaxHeapAttributeNumber and MaxTupleAttributeNumber,
where the latter is made slightly larger to allow for in-memory tuples
containing resjunk attributes.  Responds to today's complaint that one
cannot UPDATE a table containing the allegedly-legal maximum number of
columns.

Also, apply Manfred Koizar's recent patch to avoid extra alignment padding
when there is a null bitmap.  This saves bytes in some cases while not
creating any backward-compatibility problem AFAICS.
2002-05-27 19:53:33 +00:00
Tom Lane
4d567013cf Remove AMI_OVERRIDE tests from tqual.c routines; they aren't necessary
and just slow down normal operations (only fractionally, but a cycle saved
is a cycle earned).  Improve documentation of AMI_OVERRIDE behavior.
2002-05-25 20:00:12 +00:00
Tom Lane
29737d83d9 AlterDatabaseSet() forgot to update the indexes on pg_database. 2002-05-25 16:30:59 +00:00
Tom Lane
6e675d278a Fix coding error in UTF conversion. 2002-05-24 21:04:34 +00:00
Tom Lane
07be59805b Add 'volatile' to suppress gcc warning. Not sure why this warning
wasn't seen before, maybe the Tcl compiler flags were less strict.
2002-05-24 19:58:04 +00:00
Tom Lane
de09da547a Wups, managed to break ANALYZE with one aspect of that heap_fetch change. 2002-05-24 19:52:43 +00:00
Tom Lane
3f4d488022 Mark index entries "killed" when they are no longer visible to any
transaction, so as to avoid returning them out of the index AM.  Saves
repeated heap_fetch operations on frequently-updated rows.  Also detect
queries on unique keys (equality to all columns of a unique index), and
don't bother continuing scan once we have found first match.

Killing is implemented in the btree and hash AMs, but not yet in rtree
or gist, because there isn't an equally convenient place to do it in
those AMs (the outer amgetnext routine can't do it without re-pinning
the index page).

Did some small cleanup on APIs of HeapTupleSatisfies, heap_fetch, and
index_insert to make this a little easier.
2002-05-24 18:57:57 +00:00
Peter Eisentraut
2f2d05763d Change PL/Tcl build to use configured compiler and Makefile.shlib
system, not Tcl-provided one.

Make sure export file, if any, is cleaned.

Tcl configuration is now read directly in configure and recorded in
Makefile.global.  This eliminates some duplicate efforts and allows
for easier hand-editing of the results, if necessary.
2002-05-24 18:10:17 +00:00
Tom Lane
c0fdec2b6a Add $(LDFLAGS) to Windows make rule for postgres executable. Needed
to do profiling on Cygwin, per report from Dave Page.
2002-05-22 21:46:40 +00:00
Tom Lane
a2597ef179 Modify sequence state storage to eliminate dangling-pointer problem
exemplified by bug #671.  Moving the storage to relcache turned out to
be a bad idea because relcache might decide to discard the info.  Instead,
open and close the relcache entry on each sequence operation, and use
a record of the current XID to discover whether we already hold
AccessShareLock on the sequence.
2002-05-22 21:40:55 +00:00
Tom Lane
b8ffc99602 Minor kibitzing. 2002-05-22 18:33:15 +00:00
Peter Eisentraut
d60f10b0e7 Add optional "validator" function to languages that can validate the
function body (and other properties) as a function in the language
is created.  This generalizes ad hoc code that already existed for
the built-in languages.

The validation now happens after the pg_proc tuple of the new function
is created, so it is possible to define recursive SQL functions.

Add some regression test cases that cover bogus function definition
attempts.
2002-05-22 17:21:02 +00:00
Tom Lane
df9c8e1a39 Make RelationForgetRelation error out if the relcache entry has nonzero
reference count.  This avoids leaving dangling pointers around, as in
recent bug report against sequences (bug# 671).
2002-05-22 15:57:40 +00:00
Tom Lane
0352e3a783 Un-break table creation. 2002-05-22 15:35:43 +00:00
Hiroshi Inoue
a3519a2fcc Allow
CREATE VIEW as SELECT CTID, ....
  SELECT currtid( a view, ..).
2002-05-22 07:46:58 +00:00
Hiroshi Inoue
79420840ee 1) Support Keyset Driven driver cursors.
2) Supprt ARD precision/scale and SQL_C_NUEMRIC.
3) Minimal implementation of SQLGetDiagField().
4) SQLRowCount() reports the result of SQLSetPos and SQLBulkOperation.
5) int8 -> SQL_NUMERIC for Microsoft Jet.
6) Support isolation level change.
7) ODBC3.0 SQLSTATE code.
8) Append mode log files.
2002-05-22 05:51:03 +00:00
Tom Lane
6c6f395a8a Since COPY fires triggers, it seems like a good idea for it to use
a frozen (copied) snapshot too.  Move execMain's snapshot copying code
out into a subroutine in case we find other places that need it.
2002-05-21 22:59:01 +00:00
Tom Lane
26fcd25c57 Remove SetQuerySnapshot() from FETCH processing. No longer necessary
or appropriate, since the snapshot that will be used by the cursor was
frozen when ExecutorStart was run for it.
2002-05-21 22:18:08 +00:00
Tom Lane
959e61e917 Remove global variable scanCommandId in favor of storing a command ID
in snapshots, per my proposal of a few days ago.  Also, tweak heapam.c
routines (heap_insert, heap_update, heap_delete, heap_mark4update) to
be passed the command ID to use, instead of doing GetCurrentCommandID.
For catalog updates they'll still get passed current command ID, but
for updates generated from the main executor they'll get passed the
command ID saved in the snapshot the query is using.  This should fix
some corner cases associated with functions and triggers that advance
current command ID while an outer query is still in progress.
2002-05-21 22:05:55 +00:00
Tom Lane
0a2682445e Spell long option with -c not --, for compatibility's sake. 2002-05-21 19:06:00 +00:00
Tom Lane
38f5fdb1e9 Repair OPEN cursor(args), which I broke on 11/29/01 with a change to
be smarter about parentheses in read_sql_construct().  Sigh.
2002-05-21 18:50:16 +00:00
Tom Lane
44fbe20d62 Restructure indexscan API (index_beginscan, index_getnext) per
yesterday's proposal to pghackers.  Also remove unnecessary parameters
to heap_beginscan, heap_rescan.  I modified pg_proc.h to reflect the
new numbers of parameters for the AM interface routines, but did not
force an initdb because nothing actually looks at those fields.
2002-05-20 23:51:44 +00:00
Michael Meskes
7f660adeb1 - Fixed some parser bugs.
- Removed some simple rules to work arounf bison limit for now.
        - Update c_keywords.c to reflect changes in keywords.c.
2002-05-20 09:29:41 +00:00
Michael Meskes
f35ced3de9 - Fixed reduce/reduce conflict in parser.
- Synced preproc.y with gram.y.
        - Synced pgc.l with scan.l.
        - Synced keywords.c.
2002-05-19 20:00:53 +00:00
Peter Eisentraut
f76bc9c776 Reorder keyword token declarations alphabetically. Status of the keywords
in the various standards can be found in the documentation these days.
2002-05-19 15:16:55 +00:00
Peter Eisentraut
13cd9eb9b8 Remove bitrotten view_perms test. Add some similar test cases to
privileges test.
2002-05-19 15:13:20 +00:00
Peter Eisentraut
c88540fb0e Dump privileges on functions, aggregates, languages. 2002-05-19 10:08:25 +00:00
Tom Lane
dd9af92c41 Add display of sort keys to the default EXPLAIN output. 2002-05-18 21:38:41 +00:00
Tom Lane
a5b370943e Teach query_tree_walker, query_tree_mutator, and SS_finalize_plan to
process function RTE expressions, which they were previously missing.
This allows outer-Var references and subselects to work correctly in
the arguments of a function RTE.  Install check to prevent function RTEs
from cross-referencing Vars of sibling FROM-items, which doesn't make
any sense (if you want to join, write a JOIN or WHERE clause).
2002-05-18 18:49:41 +00:00
Peter Eisentraut
2c50f6344b Revise command completion tags as per hackers message on 20 March. 2002-05-18 15:44:48 +00:00
Peter Eisentraut
e8ac187c68 Allow functions to be executed with the privileges of the function owner.
I took the opportunity to remove the pg_proc.proistrusted field.
2002-05-18 13:48:01 +00:00
Tom Lane
51fd22abdd Change set_plan_references and join_references to take an rtable List
rather than a Query node; this allows set_plan_references to recurse
into subplans correctly.  Fixes core dump on full outer joins in
subplans.  Also, invoke preprocess_expression on function RTEs'
function expressions.  This seems to fix the planner's problems with
outer-level Vars in function RTEs.
2002-05-18 02:25:50 +00:00
Tom Lane
0a757154bd Add missing fix_expr_references() step for the funcexpr of a
FunctionScan plan node.
2002-05-18 00:42:55 +00:00
Tom Lane
22d641a7d4 Get rid of the last few uses of typeidTypeName() rather than
format_type_be() in error messages.
2002-05-17 22:35:13 +00:00
Tom Lane
940f772a29 Support temporary setting of search path during CREATE SCHEMA; this
allows the example in the CREATE SCHEMA ref page to actually work now.
Also, clean up when the transaction that initially creates a temp-table
namespace is later aborted.  Simplify internal representation of search
path by folding special cases into the main list.
2002-05-17 20:53:33 +00:00
Tom Lane
5f21560ae8 Dept. of second thoughts: interaction between DoIt and makeDepend
in set_config_option wasn't quite right.  Also clean up a couple other
things that could have been done better.
2002-05-17 20:32:29 +00:00
Peter Eisentraut
94bdc4855c Extend syntax of CREATE FUNCTION to resemble SQL99. 2002-05-17 18:32:52 +00:00
Tom Lane
97f7ceaaa6 Guard against empty-string results from pg_getlocale. 2002-05-17 02:20:26 +00:00
Tom Lane
f0811a74b3 Merge the last few variable.c configuration variables into the generic
GUC support.  It's now possible to set datestyle, timezone, and
client_encoding from postgresql.conf and per-database or per-user
settings.  Also, implement rollback of SET commands that occur in a
transaction that later fails.  Create a SET LOCAL var = value syntax
that sets the variable only for the duration of the current transaction.
All per previous discussions in pghackers.
2002-05-17 01:19:19 +00:00
Tom Lane
cbd3b97e5a Remove unnecessary pfree's in geometric operators. At least one of these
is actively dangerous, per bug report from Ewald Geschwinde 14-May-02,
and several of the rest look suspicious to me.  Since there is no longer
any significant value in retail pfree's in these functions, just get
rid of all of them for safety's sake.
2002-05-14 18:16:51 +00:00
Thomas G. Lockhart
cc2ce83633 Fix lookup tables used for rounding interval data values when not using
integer datetimes. Thanks to Tom Lane for spotting the problem.
2002-05-14 13:37:27 +00:00
Peter Eisentraut
5c4e5aa3ff Make regression tests locale-proof by setting some locale categories
to C at run-time, and providing alternative output files for different
sort orders.
2002-05-14 13:05:43 +00:00
Tatsuo Ishii
cd61650f89 Fix bug in psql.
per report from sugita@sra.co.jp on Thu, 09 May 2002 11:57:51 +0900
(JST) at pgsql-patches list.

Illegal long options to pg_dump makes core on some systems, since it
lacks the last null sentinel of struct option array.

Attached is a patch made by Mr. Ishida Akio <iakio@pjam.jpweb.net>.
2002-05-14 04:20:15 +00:00
Barry Lind
e25c93c7eb fixed problem connecting to server with client_min_messages set to debug. The code was not expecting to receive notice messages during the connection handshake. 2002-05-14 03:00:35 +00:00
Tom Lane
ef9db25a7e Fix typo in _copyAlterUserSetStmt. 2002-05-13 20:39:43 +00:00
Tom Lane
f69bc37be8 Make operators have their own comments separate from those of the
underlying function; but cause psql's \do to show the underlying
function's comment if the operator has no comment of its own, to preserve
the useful functionality of the original behavior.  Also, implement
COMMENT ON SCHEMA.  Patch from Rod Taylor.
2002-05-13 17:45:30 +00:00
Tom Lane
3389a110d4 Get rid of long-since-vestigial Iter node type, in favor of adding a
returns-set boolean field in Func and Oper nodes.  This allows cleaner,
more reliable tests for expressions returning sets in the planner and
parser.  For example, a WHERE clause returning a set is now detected
and complained of in the parser, not only at runtime.
2002-05-12 23:43:04 +00:00
Tom Lane
f9e4f611a1 First pass at set-returning-functions in FROM, by Joe Conway with
some kibitzing from Tom Lane.  Not everything works yet, and there's
no documentation or regression test, but let's commit this so Joe
doesn't need to cope with tracking changes in so many files ...
2002-05-12 20:10:05 +00:00
Tom Lane
9b5ca7ee0c Forgot to handle 'opaque' function arguments in regprocedurein/out. 2002-05-11 00:24:16 +00:00
Tom Lane
9f0ae0c820 First pass at schema-fying pg_dump/pg_restore. Much to do still,
but the basic capability seems to work.
2002-05-10 22:36:27 +00:00
Tom Lane
1011fb651d Suppress duplicate logging of utility commands under debug_print_query. 2002-05-10 20:22:13 +00:00
Peter Eisentraut
1944bff1d6 Make initdb print a message about which locale it is about to use.
Re-add warning if the locale prevents LIKE-optimization.  Done within
initdb now.
2002-05-09 13:30:24 +00:00
Hiroshi Inoue
16e22de53a Add a file for version control. 2002-05-09 04:10:22 +00:00
Tom Lane
2822788993 Accept SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION
to reset session userid to the originally-authenticated name.  Also,
relax SET SESSION AUTHORIZATION to allow specifying one's own username
even if one is not superuser, so as to avoid unnecessary error messages
when loading a pg_dump file that uses this command.  Per discussion from
several months ago.
2002-05-06 19:47:30 +00:00
Tom Lane
15162aef24 Make dumpACL behave more reasonably for case where owner has revoked
some of his own privileges.
2002-05-06 18:33:45 +00:00
Tom Lane
340b66cc70 Cause fmtId to always use its internal buffer for the returned value,
in hopes of making erroneous usage more apparent.  Per discussion 15-Apr.
2002-05-06 17:34:45 +00:00
Tom Lane
1cf693ab86 Reorder snapshot checks to save a couple comparisons in the common case,
where the tuple's xmin or xmax is older than the snapshot xmin.  There
is no need to check it against snapshot xmax in that case.
2002-05-06 02:39:01 +00:00
Tom Lane
205b5c2f4b A little paranoia never hurt anyone. 2002-05-05 17:50:04 +00:00
Tom Lane
c0e9dc1229 plpgsql_dstring_append was broken for long strings. 2002-05-05 17:38:26 +00:00
Tom Lane
846429e3d6 Not needed anymore. 2002-05-05 16:47:09 +00:00
Tom Lane
d15c30d327 Add missing includes. 2002-05-05 16:14:24 +00:00
Tom Lane
17ea23dd17 Add a trivial testbed for pg_sema and pg_shmem code. 2002-05-05 16:02:37 +00:00
Tom Lane
2010a43fcb Cope with case that SEM_FAILED is not defined (assume failure code is -1) 2002-05-05 16:01:50 +00:00
Tom Lane
8df5625966 First test of Darwin port with POSIX semaphore code. 2002-05-05 01:03:26 +00:00
Tom Lane
3e48c66136 Fix code to work when isalpha and friends are macros, not functions. 2002-05-05 00:50:31 +00:00
Tom Lane
72a3902a66 Create an internal semaphore API that is not tied to SysV semaphores.
As proof of concept, provide an alternate implementation based on POSIX
semaphores.  Also push the SysV shared-memory implementation into a
separate file so that it can be replaced conveniently.
2002-05-05 00:03:29 +00:00
Tom Lane
91fc10fdac Fix compile errors in CYR_RECODE code, per report from Oliver Elphick. 2002-05-03 20:43:30 +00:00
Tom Lane
90739d4621 Make ruleutils.c schema-aware. Displayed names are schema-qualified
only if they would not be found without qualification given the current
search path, as per idea from Peter Eisentraut.
2002-05-03 20:15:02 +00:00
Tom Lane
1a69a37d5b Fix obsolete comments. 2002-05-03 17:42:11 +00:00
Tom Lane
d662f29302 Use quote_identifier on relation names in EXPLAIN output, per suggestion
from Liam Stewart.  Minor code cleanups also.
2002-05-03 15:56:45 +00:00
Tom Lane
4a2fe8e03d Fix typo in usage instructions. 2002-05-03 14:21:38 +00:00
Tom Lane
8338cc03a8 Remove the last traces of datatypes datetime and timespan. 2002-05-03 04:11:08 +00:00
Tom Lane
53cedcac22 Retire xlateSqlType/xlateSqlFunc; all type name translations are now
handled as special productions.  This is needed to keep us honest about
user-schema type names that happen to coincide with system type names.
Per pghackers discussion 24-Apr.  To avoid bloating the keyword list
too much, I removed the translations for datetime, timespan, and lztext,
all of which were slated for destruction several versions back anyway.
2002-05-03 00:32:19 +00:00
Tom Lane
c2def1b128 Fix backslash-n typo, per Joe Conway. 2002-05-02 21:44:43 +00:00
Tom Lane
3220fd2138 Tweak scanner/grammar interface so that the keyword-as-identifier rules
in gram.y can make use of the keywords.c string table, instead of having
their own copies of the keyword strings.  This saves a few kilobytes and
more importantly eliminates an opportunity for cut-and-paste errors.
2002-05-02 18:44:11 +00:00
Tom Lane
0041a3d72f Add routines in namespace.c to determine whether objects are visible
in the search path.  (We might want to make these available as SQL
functions too, but I haven't done that yet.)  Fix format_type to be
schema-aware.
2002-05-01 23:06:41 +00:00
Tom Lane
a829cbb877 Give left_oper() and right_oper() noError parameters like oper() (the
binary case) already has.  Needed for upcoming ruleutils change.
2002-05-01 19:26:08 +00:00
Tom Lane
61446e0927 Improve lexer's error reporting. You get the whole token mentioned now
in parse error messages, not just the part scanned by the last flex rule.
For example,
	select "foo" "bar";
used to draw
	ERROR:  parser: parse error at or near """
which was rather unhelpful.  Now it gives
	ERROR:  parser: parse error at or near ""bar""
Also, error messages concerning bitstring literals and suchlike will
quote the source text at you, not the processed internal form of the literal.
2002-05-01 17:12:08 +00:00
Jan Wieck
241978b91b The attached patch fixes 4 instances of missing simi-colons in the
PL/PgSQL grammar, which were causing warnings when used with Bison
1.35.

Neil Conway <neilconway@rogers.com>
2002-05-01 12:40:22 +00:00
Hiroshi Inoue
d1406f1b1e Change heap_get_latest_tid() so that a transaction can
see changes made by the transaction itself.
2002-05-01 01:23:37 +00:00
Tom Lane
936afc8a4b Fix obj_description() and col_description() functions to work reliably
in presence of schemas.
2002-04-30 21:01:52 +00:00
Tom Lane
1e4f34f309 Document that NAMEDATALEN must be a multiple of sizeof(int). 2002-04-30 19:53:03 +00:00
Tom Lane
e4f06dc12e Clean up loose ends remaining from schema privileges discussion.
I concluded that RENAME should require CREATE privilege on the namespace
as well as ownership of the table.
2002-04-30 01:26:26 +00:00
Tom Lane
4c25a0655b Code review for ALTER TRIGGER RENAME patch: make better use of index,
don't scribble on tuple returned by table scan.
2002-04-30 01:24:57 +00:00
Tom Lane
857661ba2e Enforce EXECUTE privilege for aggregate functions. 2002-04-29 22:28:19 +00:00
Tom Lane
ccfaf9067d Implement checking of USAGE rights on namespaces. 2002-04-29 22:15:07 +00:00
Tom Lane
88ef7067f7 Add cache invalidation callback hooks. 2002-04-29 22:14:34 +00:00
Tom Lane
8d615763da Add missing 'static' keyword to suppress compiler complaints.
gcc does not complain about this mistake, but other compilers do.
2002-04-29 17:30:18 +00:00
Tom Lane
e896912ee9 Remove unnecessary/obsolete regproctooid() references. 2002-04-29 04:10:02 +00:00
Bruce Momjian
ea43fec258 Fix problem with new pg_hba.conf code where the same comparison function
was incorrectly used for both qsort and bsearch.
2002-04-28 22:49:07 +00:00
Tom Lane
6c59886942 Second try at fixing join alias variables. Instead of attaching miscellaneous
lists to join RTEs, attach a list of Vars and COALESCE expressions that will
replace the join's alias variables during planning.  This simplifies
flatten_join_alias_vars while still making it easy to fix up varno references
when transforming the query tree.  Add regression test cases for interactions
of subqueries with outer joins.
2002-04-28 19:54:29 +00:00
Michael Meskes
c8996f9c6b - Synced yet again.
- Fixed a typo in a comment printed by ecpg.
2002-04-28 17:20:03 +00:00
Tom Lane
25dfba3954 Make ruleutils.c use format_type for printing typenames. Minor tweaks
in quoting rules and recognition of implicit type coercions.
2002-04-28 00:49:13 +00:00
Tom Lane
7677fe0aa6 Minor code cleanup. 2002-04-28 00:36:38 +00:00
Tom Lane
c06f6a6bc2 Support toasting of shared system relations, and provide toast tables for
pg_database, pg_shadow, pg_group, all of which now have potentially-long
fields.  Along the way, get rid of SharedSystemRelationNames list: shared
rels are now identified in their include/pg_catalog/*.h files by a
BKI_SHARED_RELATION macro, while indexes and toast rels inherit sharedness
automatically from their parent table.  Fix some bugs with failure to detoast
pg_group.grolist during ALTER GROUP.
2002-04-27 21:24:34 +00:00
Bruce Momjian
108871f4fc Fix write of pg_pwd file for multiple users. Broken recently by my
pg_hba.conf changes.
2002-04-27 15:30:07 +00:00
Tom Lane
31c775adeb Restructure aclcheck error reporting to make permission-failure
messages more uniform and internationalizable: the global array
aclcheck_error_strings[] is gone in favor of a subroutine
aclcheck_error().  Partial implementation of namespace-related
permission checks --- not all done yet.
2002-04-27 03:45:03 +00:00
Tom Lane
7de307f96c Move renametrig() from tablecmds.c to trigger.c --- if we're going to
divide backend/commands by object type, let's try to pay at least
minimal attention to respecting that structure, eh?  Also reorder the
contents of tablecmds.c; it seems odd to me to put ALTER commands before
creation/deletion commands.
2002-04-26 19:29:47 +00:00
Tom Lane
a309032d2f Add current_schema() and current_schemas() inquiry functions.
Update has_table_privilege functions to cope with schema-qualified
names in the same way as nextval() and others.
2002-04-26 01:24:08 +00:00
Tom Lane
52200befd0 Implement types regprocedure, regoper, regoperator, regclass, regtype
per pghackers discussion.  Add some more typsanity tests, and clean
up some problems exposed thereby (broken or missing array types for
some built-in types).  Also, clean up loose ends from unknownin/out
patch.
2002-04-25 02:56:56 +00:00
Hiroshi Inoue
4eac3919dd Fix for the following items about escape sequence
by Marcelo Aceto <aceto@newinf.com.br> .

1) Wrong translations of embedded escape sequences inside outer join escape
sequences.
2) Wrong translation of parameter markers inside outer joins and function
escape sequences.
3) Bad concatenation of date, time, timestamp constants with next word in
statement:
2002-04-25 02:50:08 +00:00
Bruce Momjian
6cdba03d38 Fix password code to deal with new quoting code. 2002-04-25 00:56:36 +00:00
Peter Eisentraut
39e77dd365 Remove reference to NAMEDATALEN, which wasn't necessary anyway. 2002-04-24 23:00:40 +00:00
Peter Eisentraut
ed8aa9711e Remove references to NAMEDATALEN and INDEX_MAX_KEYS from pg_dump. Handles
any size now.
2002-04-24 22:39:49 +00:00
Peter Eisentraut
8889eb098a Remove reference to BLCKSZ. 2002-04-24 21:00:10 +00:00
Tom Lane
6260c7c167 Don't dump core on empty table. 2002-04-24 15:56:38 +00:00
Bruce Momjian
8be68479dc Remove compile warnings for lo dump by casting to char *. 2002-04-24 14:03:22 +00:00
Peter Eisentraut
71aab11327 Missed one NAMEDATALEN. 2002-04-24 06:17:04 +00:00
Peter Eisentraut
3d726290c0 Remove traces of NAMEDATALEN and INDEX_MAX_KEYS from psql. Build buffers
dynamically with PQExpBuffer.
2002-04-24 05:24:00 +00:00
Bruce Momjian
246f47fdf0 Update version for UNKNOWN regression fix. 2002-04-24 05:23:14 +00:00
Bruce Momjian
a1fe85d749 Fix UNKNOWN regression test failure. 2002-04-24 05:22:20 +00:00
Bruce Momjian
eb5df80759 Fix regression for new DROP RULE syntax. 2002-04-24 03:52:16 +00:00
Bruce Momjian
a4b361b747 Add missing columns for UNKNOWN patch. Increment catalog version. 2002-04-24 03:09:09 +00:00
Bruce Momjian
ab117a6643 Restrict comment to the current database in order to prevent them from
mysteriously disappearing.

ie.  \d+ will only ever show the comment for the current database --
which is appropriate since it can only pull comments from the current
database.

Won't break pgadmin functionality as it enforces this behaviour already.


I didn't find any regression tests for COMMENT.

Rod Taylor
2002-04-24 02:50:30 +00:00
Bruce Momjian
3a96b6cdeb Attached is a patch for ALTER TRIGGER RENAME per the above thread. I
left a stub for a future "ALTER RULE RENAME" but did not write that one
yet. Bruce, if you want to add my name for for that I'll take it and do
it later.

Joe Conway
2002-04-24 02:48:55 +00:00
Bruce Momjian
fbc4b7110f The attached patch adds regression tests for setting and removing
default values using ALTER TABLE, on both views and tables.

(You'll need to apply the default-values-for-views patch that I sent
to -patches earlier for the regression tests to pass.)

Neil Conway <neilconway@rogers.com>
2002-04-24 02:47:23 +00:00
Bruce Momjian
5b0fb008e7 The attached patch cleans up some code in pg_dump. It cuts some
unused function arguments, and makes the TableInfo struct slightly
smaller by removing an unnecessary member.

Neil Conway <neilconway@rogers.com>
2002-04-24 02:44:19 +00:00
Bruce Momjian
244693744f Update patch for DEFAULT on Views.
Apparently, you need to make two calls to appendPQExpBuffer() to
use fmtId() twice, because it uses a static buffer (thanks for
spotting this Tom).

Another revision of the patch is attached.

Neil Conway <neilconway@rogers.com>
2002-04-24 02:42:27 +00:00
Bruce Momjian
adf7cc04cb Doc fix for INSERT ... (DEFAULT, ...)
Appears I forgot to update the docs earlier.

Rod Taylor
2002-04-24 02:38:58 +00:00
Bruce Momjian
80e232f2b8 Update jdbc errors_zh_TW.properties.
Zhenbang Wei
2002-04-24 02:30:53 +00:00
Bruce Momjian
30571b5496 I'm at the win32 error messages once more. The DLL load thingy doesn't
work on all win9x machines, so i made it go thru a l ookup table
instead, using the DLL as last resort.  I also moved this out of the
fe-misc.c file because of the size of the lookup ta ble. Who knows, we
might add more other win32 specific code there in the future.

I also fixed a small typo in the pg_config.h.win32 that made the
compiler compla in about the gnu snprintf declaration.

I tried to make this patch with psql coding style. I've successfully
tested this on win2k and win98 and it works fine (i.e. the mes sage
shows on win98 too, it didn't with the old implementation).

Magnus Naeslund
2002-04-24 02:26:06 +00:00
Bruce Momjian
dd4ca824cc Reports missing values as bad.
BAD:  INSERT INTO tab (col1, col2) VALUES ('val1');
GOOD: INSERT INTO tab (col1, col2) VALUES ('val1', 'val2');

Regress tests against DEFAULT and normal values as they're managed
slightly different.

Rod Taylor
2002-04-24 02:22:54 +00:00
Bruce Momjian
e975123454 Speed improvement for large object restore.
Mario Weilguni
2002-04-24 02:21:04 +00:00
Bruce Momjian
5d2fdf6e6d Here's a patch to add unknownin/unknownout support. I also poked around
looking for places that assume UNKNOWN == TEXT. One of those was the
"SET" type in pg_type.h, which was using textin/textout. This one I took
care of in this patch. The other suspicious place was in
string_to_dataum (which is defined in both selfuncs.c and indxpath.c). I
wasn't too sure about those, so I left them be.

Joe Conway
2002-04-24 02:12:53 +00:00
Bruce Momjian
be9728acf1 pgdb.connect() seems to be broken on Python 2.0.1 (which ships with
Slackware 8), and perhaps on other Pythons, haven't checked.  Something in
the _pg.connect() call isn't working.  I think the problem stems from the
fact that 'host' is a named parameter of both _pg.connect and pgdb.connect,
and so Python treats it as a variable assignment, not a named parameter.

Uses non-named parameters.

Andrew Johnson
2002-04-24 01:58:31 +00:00
Bruce Momjian
2d81019493 Sorry for the package, but the following patch need to be applied to get
the new verion compiled on SCO Openserver 5.0.5 and Unixware 7.1.1

Nicolas Bazin
2002-04-24 01:56:20 +00:00
Bruce Momjian
d37134085b xlog.c: If possible please add the following patch to better support NetWare.
Ulrich Neumann
2002-04-24 01:54:43 +00:00
Bruce Momjian
f71c924f10 [ Patch comments in three pieces.]
Attached is a pacth against 7.2 which adds locale awareness to the
character classes of the regular expression engine.

...

> > I still think the xdigit class could be handled the same way the digit
> > class is (by enumeration rather than using the isxdigit function). That
> > saves you a cicle, and I don't think there's any loss.
>
> In fact, I will email you when I apply the original patch.

I miss that case :-(. Here is the pached patch.

...

Here is a patch which addresses Tatsuo's concerns (it does return an
static struct instead of constructing it).
2002-04-24 01:51:11 +00:00
Bruce Momjian
42f2e5bd11 Based on this report, I am adding a FUNC_MAX_ARGS define to
src/include/pg_config.h.win32.  Certainly if we have INDEX_MAX_KEYS in
there, we should have FUNC_MAX_ARGS too.

Report from Chris Ryan
2002-04-23 23:46:37 +00:00
Tom Lane
28a898ad54 Clean up INT64CONST conflicts. Make the pg_crc code use a macro called
UINT64CONST, since unsigned was what it wanted anyway.  Centralize macro
definitions into c.h.
2002-04-23 15:45:30 +00:00
Hiroshi Inoue
bf1f2e545c 1) Fix SQLProcedures().
2) Handle timestamp without time zone.
3) Improve SQLForeignKeys() in multibyte mode.
2002-04-23 04:14:13 +00:00
Tom Lane
5dd1c713d0 Oops, forgot we had a macro to encapsulate test for type toastability. 2002-04-22 21:56:06 +00:00
Tom Lane
3faf224ace Fix incorrect Assert; install a more trustworthy check on whether
ALTER COLUMN SET STORAGE should be allowed.
2002-04-22 21:46:11 +00:00
Michael Meskes
75c33220ad Synced preproc.y and keywords.c. 2002-04-22 18:54:43 +00:00
Thomas G. Lockhart
3c184d18ef Convert GUC parameters back to strings if input as integers.
Change elog(ERROR) messages to say that a variable takes one parameter,
 rather than saying that it does not take multiple parameters.
2002-04-22 15:13:53 +00:00
Thomas G. Lockhart
58ca6e091e Check for multiple arguments on parameters which do not allow them.
The last version caught this with an assert because I wasn't sure whether
 we should elog(ERROR) or just loop through the parameters.
2002-04-22 14:34:27 +00:00
Thomas G. Lockhart
8d2441e55c Oops. Remove declaration for set_name_needs_quotes(), since it is now gone. 2002-04-21 21:53:23 +00:00
Thomas G. Lockhart
d19439f7cd Remove the definition for set_name_needs_quotes() on the assumption that
it is now obsolete. Need some regression test cases to prove otherwise...
2002-04-21 21:37:03 +00:00
Thomas G. Lockhart
b875b599f3 Initialize or set a couple of variables to suppress compiler warnings.
These were for cases protected by elog(ERROR) exits, but may as well
 keep the compiler happy. Not sure why they don't show up on my gcc-2.96.x
 version of the compiler.
2002-04-21 21:35:17 +00:00
Tom Lane
67ef699ff4 Update horology-no-DST-before-1970.out (tested on HPUX), plus an extrapolated horology-solaris-1947.out
(needs verification).
2002-04-21 21:06:21 +00:00
Thomas G. Lockhart
547df0cc85 Support alternate storage scheme of 64-bit integer for date/time types.
Use "--enable-integer-datetimes" in configuration to use this rather
 than the original float8 storage. I would recommend the integer-based
 storage for any platform on which it is available. We perhaps should
 make this the default for the production release.
Change timezone(timestamptz) results to return timestamp rather than
 a character string. Formerly, we didn't have a way to represent
 timestamps with an explicit time zone other than freezing the info into
 a string. Now, we can reasonably omit the explicit time zone from the
 result and return a timestamp with values appropriate for the specified
 time zone. Much cleaner, and if you need the time zone in the result
 you can put it into a character string pretty easily anyway.
Allow fractional seconds in date/time types even for dates prior to 1BC.
Limit timestamp data types to 6 decimal places of precision. Just right
 for a micro-second storage of int8 date/time types, and reduces the
 number of places ad-hoc rounding was occuring for the float8-based types.
Use lookup tables for precision/rounding calculations for timestamp and
 interval types.  Formerly used pow() to calculate the desired value but
 with a more limited range there is no reason to not type in a lookup
 table. Should be *much* better performance, though formerly there were
 some optimizations to help minimize the number of times pow() was called.
Define a HAVE_INT64_TIMESTAMP variable. Based on the configure option
 "--enable-integer-datetimes" and the existing internal INT64_IS_BUSTED.
Add explicit date/interval operators and functions for addition and
 subtraction. Formerly relied on implicit type promotion from date to
 timestamp with time zone.
Change timezone conversion functions for the timetz type from "timetz()"
 to "timezone()". This is consistant with other time zone coersion
 functions for other types.
Bump the catalog version to 200204201.
Fix up regression tests to reflect changes in fractional seconds
 representation for date/times in BC eras.
All regression tests pass on my Linux box.
2002-04-21 19:52:18 +00:00
Thomas G. Lockhart
3fab49325d Include stdio.h and stdlib.h for completeness. 2002-04-21 19:51:44 +00:00
Thomas G. Lockhart
37cfb04094 Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types.
This is a big change from past behavior, but the last release was
 designed to handle this correctly for dump/restore upgrades.
Fix up handling of SET value arguments. Allow lists for most options at
 least at the parser level; multiple values may be rejected at the
 command processor of course.
Allow more variations on values for SET commands, including integer and
 float values where formerly stringy fields were required.
Check precision specification for date/time fields against the true
 precision range allowed by the data types. Especially useful with the
 new int8-based storage for these types, where precision is fixed and
 predictable.
Stub out a basic CREATE ASSERTION per SQL9x. Does not do anything (yet) but
 should be augmented as appropriate.
Minor fixups in braces and tabbing.
2002-04-21 19:21:49 +00:00
Thomas G. Lockhart
e53f94ad68 Allow more choices for style of value in various SET commands. Formerly,
most required a stringy syntax in the parser; now integers and floats
 can (or should) be handled. There is at least one cheesy error message
 mentioning sending mail to me if there are problems; should be changed
 prior to release.
Allow lists of values from the parser in more cases. If multiple arguments
 were not allowed previously, they probably are not allowed now, but at
 least the data structures being passed around are more consistant across
 more cases.
2002-04-21 19:12:46 +00:00
Thomas G. Lockhart
f56e8fec31 Add fields in the control file to check for whether the backend was
compiled for integer date/time storage and to check the length of
 storage for the locale fields in the same data structure.
Slightly reword some of the error messages to be more accurate on
 possible recovery options (e.g. recompile *or* re-initdb).
Bump version number on this file.
2002-04-21 19:08:02 +00:00
Peter Eisentraut
d433a3628e Make pg_dump independent of FUNC_MAX_ARGS. 2002-04-21 05:21:18 +00:00
Tom Lane
5a99671515 Fix typo. 2002-04-21 01:03:33 +00:00
Tom Lane
b0bcf8aab2 Restructure AclItem representation so that we can have more than eight
different privilege bits (might as well make use of the space we were
wasting on padding).  EXECUTE and USAGE bits for procedures, languages
now are separate privileges instead of being overlaid on SELECT.  Add
privileges for namespaces and databases.  The GRANT and REVOKE commands
work for these object types, but we don't actually enforce the privileges
yet...
2002-04-21 00:26:44 +00:00
Tatsuo Ishii
ad201b8d18 Remove --enable-syslog option 2002-04-21 00:22:52 +00:00
Peter Eisentraut
eef5c4f0e5 pq_getstring doesn't go through pq_getbyte anymore, for better performance. 2002-04-20 23:35:43 +00:00
Peter Eisentraut
32c6c99e0b Scanner performance improvements
Use flex flags -CF.  Pass the to-be-scanned string around as StringInfo
type, to avoid querying the length repeatedly.  Clean up some code and
remove lex-compatibility cruft.  Escape backslash sequences inline.  Use
flex-provided yy_scan_buffer() function to set up input, rather than using
myinput().
2002-04-20 21:56:15 +00:00
Peter Eisentraut
ff4281472a Add missing include. 2002-04-20 03:46:16 +00:00
Tom Lane
6d6ca2166c Change naming rule for ON SELECT rules of views: they're all just
_RETURN now, since there's no need to keep 'em unique anymore.
2002-04-19 23:13:54 +00:00
Tom Lane
201737168c pg_trigger's index on tgrelid is replaced by a unique index on
(tgrelid, tgname).  This provides an additional check on trigger name
uniqueness per-table (which was already enforced by the code anyway).
With this change, RelationBuildTriggers will read the triggers in
order by tgname, since it's scanning using this index.  Since a
predictable trigger ordering has been requested for some time, document
this behavior as a feature.  Also document that rules fire in name
order, since yesterday's changes to pg_rewrite indexing cause that too.
2002-04-19 16:36:08 +00:00
Tom Lane
87d00363cb Make PUBLIC an unreserved word (in fact, not a keyword at all),
per previous discussion.
2002-04-18 21:16:16 +00:00
Tom Lane
b3120804ad Rule names are now unique per-relation, rather than unique globally.
DROP RULE and COMMENT ON RULE syntax adds an 'ON tablename' clause,
similar to TRIGGER syntaxes.  To allow loading of existing pg_dump
files containing COMMENT ON RULE, the COMMENT code will still accept
the old syntax --- but only if the target rulename is unique across
the whole database.
2002-04-18 20:01:11 +00:00
Bruce Momjian
2de427d1ef Ant 1.4.1 now requires for jdbc. Mention in HISTORY release notes. 2002-04-18 04:58:13 +00:00
Bruce Momjian
a770da9d8d Back out python change, needs delay. 2002-04-18 03:38:30 +00:00
Bruce Momjian
3cd9399d86 Change docs to do 20! rather than larger. 2002-04-18 03:37:13 +00:00
Tom Lane
27a54ae282 Opclasses live in namespaces. I also took the opportunity to create
an 'opclass owner' column in pg_opclass.  Nothing is done with it at
present, but since there are plans to invent a CREATE OPERATOR CLASS
command soon, we'll probably want DROP OPERATOR CLASS too, which
suggests that a notion of ownership would be a good idea.
2002-04-17 20:57:57 +00:00
Tom Lane
6cef5d2549 Operators live in namespaces. CREATE/DROP/COMMENT ON OPERATOR take
qualified operator names directly, for example CREATE OPERATOR myschema.+
( ... ).  To qualify an operator name in an expression you need to write
OPERATOR(myschema.+) (thanks to Peter for suggesting an escape hatch).
I also took advantage of having to reformat pg_operator to fix something
that'd been bugging me for a while: mergejoinable operators should have
explicit links to the associated cross-data-type comparison operators,
rather than hardwiring an assumption that they are named < and >.
2002-04-16 23:08:12 +00:00
Dave Cramer
4da51bfd6d Added some rudimentary table and column tests
added a setup/teardown to create and drop the connection, and table
2002-04-16 15:25:17 +00:00
Dave Cramer
710a711ac3 fixed getColumns as per Panu Outinen's email. At this point have only repaired the bug, haven't made it caseInsensitive 2002-04-16 13:28:44 +00:00
Michael Meskes
cc592ed8ea Fixed typo in preproc/type.h 2002-04-16 07:03:56 +00:00
Bruce Momjian
171824087c The patch I sent to -patches a little while ago wasn't applied: it
was in the thread "make BufferGetBlockNumber() a macro". Tom
objected to the original patch, so I prepared a new one which
doesn't change BufferGetBlockNumber() into a macro, it just
cleans up some comments and fixes an assertion. The patch
is attached.

Neil Conway
2002-04-15 23:47:12 +00:00
Bruce Momjian
33d1bb76c6 The attached patch corrects an inaccuracy in src/backend/catalog/README
and fixes a few spelling mistakes in src/bakckend/lmgr/README.

Neil Conway
2002-04-15 23:46:13 +00:00
Bruce Momjian
bbae09c2cb CATALOG VERSION UPDATED:
The indexes on most system catalogs are named with the suffix "_index";
not so with TOAST table indexes, which use "_idx". This trivial patch
changes TOAST table index names to use the "_index" suffix for
consistency.

Neil Conway
2002-04-15 23:45:07 +00:00
Bruce Momjian
2036b3fc59 Disable VACUUM from being called from a function because function memory
would be cleared by vacuum;  fix idea from Tom Lane.
2002-04-15 23:39:42 +00:00
Bruce Momjian
5b92d004fa Fix for NOTIFY when NAMEDATALEN is nonstandard in server. Fix idea from
Tom Lane to move string storage to end of structure but keep pointer in
the same location.
2002-04-15 23:35:51 +00:00
Bruce Momjian
394eec1068 Fix for EINTR returns from Win9X socket operations:
In summary, if a software writer implements timer events or other events
 which generate a signal with a timing fast enough to occur while libpq
is inside connect(), then connect returns -EINTR.  The code following
the connect call does not handle this and generates an error message.
The sum result is that the pg_connect() fails.  If the timer or other
event is right on the window of the connect() completion time, the
pg_connect() may appear to work sporadically.  If the event is too slow,
 pg_connect() will appear to always work and if the event is too fast,
pg_connect() will always fail.

David Ford
2002-04-15 23:34:17 +00:00
Tom Lane
b66cbc1fa2 Adjust rules for search_path so that pg_catalog is never implicitly
selected as the creation target namespace; to make that happen, you
must explicitly set search_path that way.  This makes initdb a hair
more complex but seems like a good safety feature.
2002-04-15 22:33:21 +00:00
Tatsuo Ishii
c4e0c113b8 Fix text_substr bug intrduced in 7.3 development
using Joe Conway's patches (submitted at pgsql-patches on 2002/04/08)
 + small fix.
2002-04-15 07:54:37 +00:00
Tom Lane
3767970cbf Fix oversight in recent change of representation for JOIN alias
variables: JOIN/ON should allow references to contained JOINs.
Per bug report from Barry Lind.
2002-04-15 06:05:49 +00:00
Tom Lane
71dc300a37 The contents of command.c, creatinh.c, define.c, remove.c and rename.c
have been divided according to the type of object manipulated - so ALTER
TABLE code is in tablecmds.c, aggregate commands in aggregatecmds.c and
so on.

A few common support routines remain in define.c (prototypes in
src/include/commands/defrem.h).

No code has been changed except for includes to reflect the new files.
The prototypes for aggregatecmds.c, functioncmds.c, operatorcmds.c,
and typecmds.c remain in src/include/commands/defrem.h.

From John Gray <jgray@azuli.co.uk>
2002-04-15 05:22:04 +00:00
Hiroshi Inoue
ab1ead6b97 1) Fix a bug about reporting varchar info thanks to Aceto.
2) Introcuced 3 drivers.
3) The version is now 7.02.0001.
2002-04-15 02:46:00 +00:00
Peter Eisentraut
2e32eca8d0 Allow detection of collateindex.pl in stylesheet directory or in path,
which covers some recent installation schemes.

Add Mandrake installation layout to directories to check for stylesheets.

Allow documentation build to proceed if stylesheets were not found, in case
the stylesheets might be found through the SGML catalog mechanism.
2002-04-14 17:23:20 +00:00
Bruce Momjian
872911bc41 Fix comment dashes. 2002-04-14 16:47:16 +00:00
Michael Meskes
70fb71f487 - Synced preproc.y with gram.y
- Fixed one bug in structure handling resulting in using sizeof indicator instead of variable.
2002-04-14 08:59:16 +00:00
Bruce Momjian
7603c42edf Rod's patch does what it is supposed to do, but it also includes
some old code to add PK constraints to CREATE TABLE. That stuff
had been removed as part of my original patch for pg_dump a
little while ago.

The attached patch fixes this by removing (again :-) ) the
code in dumpTables() to perform PK creation during CREATE
TABLE. I briefly tested it locally and it fixes both of
Tom's test cases.

Please apply.

Cheers,

Neil

--
Neil Conway <neilconway@rogers.com>
2002-04-13 19:57:18 +00:00
Bruce Momjian
b73859db8c Patch against 7.2.1 sources. Uses Solaris Intimate Shared Memory
for Solaris on SPARC.  Scott Brunza (sbrunza@sonalysts.com) gets
credit for identifying the issue, making the change, and doing
the regression tests.

Earlier testing on 7.2rc2 and 7.2 showed performance gains of
1% to 10% on pgbench, osdb-pg, and some locally developed apps.

Solaris Intimate Shared Memory is described in "SOLARIS INTERNALS
Core Kernel Components" by Jim Mauro and Richard McDougall,
Copyright 2001 Sun Microsystem, Inc.  ISBN 0-13-022496-0

P.J. "Josh" Rovero
2002-04-13 19:52:51 +00:00
Tom Lane
9999f5a10e Checking to decide whether relations are system relations now depends
on the namespace not the name; pg_ is not a reserved prefix for table
names anymore.  From Fernando Nasser.
2002-04-12 20:38:31 +00:00
Tom Lane
79b60cb132 Tweak error message wording. 2002-04-12 19:11:49 +00:00
Bruce Momjian
0847fea6b9 Allow prompting of create/drop user to handle spaces. 2002-04-12 09:42:32 +00:00
Bruce Momjian
5804a7ce3e Allow dropdb and others to use identifiers with spaces; IFS cleanup for
pg_dumpall.
2002-04-12 09:37:11 +00:00
Bruce Momjian
5129e1bde6 Update new Russian FAQ. 2002-04-12 09:17:10 +00:00
Hiroshi Inoue
40eb5495c9 1) Fix a bug in declare/fetch mode.
2) Suppress some error logs for the request to other drivers.
2002-04-12 08:03:12 +00:00
Bruce Momjian
50b5d4bf76 Add mention of function CREATE INDEX usage. 2002-04-11 23:20:04 +00:00
Bruce Momjian
0c9790e616 Cleanup in use of IFS. 2002-04-11 21:22:27 +00:00
Tom Lane
a521d5a25e Update obsolete syntax in example of inheritance. 2002-04-11 21:18:50 +00:00
Bruce Momjian
2dd06b0593 Make sure leading/trailing/multiple consecutive space/tab in db/user/group
names are handled OK.
2002-04-11 21:16:28 +00:00
Tom Lane
902a6a0a4b Restructure representation of aggregate functions so that they have pg_proc
entries, per pghackers discussion.  This fixes aggregates to live in
namespaces, and also simplifies/speeds up lookup in parse_func.c.
Also, add a 'proimplicit' flag to pg_proc that controls whether a type
coercion function may be invoked implicitly, or only explicitly.  The
current settings of these flags are more permissive than I would like,
but we will need to debate and refine the behavior; for now, I avoided
breaking regression tests as much as I could.
2002-04-11 20:00:18 +00:00
Bruce Momjian
3f6299df6c Fix pg_upgrade to handle dbnames, user/group names with spaces. 2002-04-11 19:23:36 +00:00
Peter Eisentraut
25f050d90d Make sure that usesuper is always accessed through superuser(), so that the
single-user escape path always works.
2002-04-11 05:32:03 +00:00
Bruce Momjian
a62f43ae6e Fix problem with invalid database name assignment in while loop.
Properly warn of invalid pg_dumpall options;  minor quoting cleanups.
2002-04-11 04:56:21 +00:00
Peter Eisentraut
5c1f31d2d4 Readline and Zlib now required by default. Add options --without-readline
and --without-zlib to turn them off.
2002-04-10 22:47:09 +00:00
Peter Eisentraut
563673e15d Add make install-strip target. 2002-04-10 16:45:25 +00:00
Hiroshi Inoue
b210b16265 Prevent an infinite loop of error reporting. 2002-04-10 08:18:54 +00:00
Tom Lane
f2d70d32eb Functions live in namespaces. Qualified function names work, eg
SELECT schema1.func2(...).  Aggregate names can be qualified at the
syntactic level, but the qualification is ignored for the moment.
2002-04-09 20:35:55 +00:00
Hiroshi Inoue
557de2a715 Let psqlodbc30 be compilable without /D DRIVER_CURSOR_IMPLEMENT. 2002-04-09 03:58:33 +00:00
Bruce Momjian
45963af52f Update comment to clarify fetch limit and LIMIT. 2002-04-08 22:42:18 +00:00
Tom Lane
c21cb16d64 Document genbki.sh's ability to auto-assign OIDs for DESCR macros.
Some other minor wording improvements.
2002-04-08 22:09:05 +00:00
Tatsuo Ishii
38671e01e9 Fix PQescapeBytea/PQunescapeBytea so that they handle bytes > 0x7f.
This is necessary for mulibyte character sequences.
See "[HACKERS] PQescapeBytea is not multibyte aware" thread posted around
2002/04/05 for more details.
2002-04-08 03:48:10 +00:00
Tom Lane
0332d65ac4 Implement partial-key searching of syscaches, per recent suggestion
to pghackers.  Use this to do searching for ambiguous functions ---
it will get more uses soon.
2002-04-06 06:59:25 +00:00
Bruce Momjian
1f9010cc8d > > This patch corrects the use of rpath and export options when compiling
> > on postgres on Unixware with GCC built with gnu-as and gnu-ld.

Remove leading spaces in conditional tests in patch and Makefile.aix.

Nicolas Bazin
2002-04-05 12:01:59 +00:00
Bruce Momjian
80f46fab63 This patch adds a missing heap_freetuple() to renamerel(), documents
the decision not to make renamerel() update the sequence name that
is stored within sequences themselves (thanks to Tom Lane), and adds
some rudimentary regression tests for ALTER TABLE ... RENAME on
non-table relations.

Neil Conway
2002-04-05 11:58:24 +00:00
Bruce Momjian
97b4e5ad30 Add INSERT(..., DEFAULT, ).
Rod Taylor
2002-04-05 11:56:55 +00:00
Bruce Momjian
aab0b8f5eb I was tinkering with creating rules on views (so, for instance, one could
insert on a view), and noticed that psql wouldn't show the list of rules
set up on a view, like it does for tables.

The fix was extremely simple, so I figured I'd share it.  Not sure what
the standard is for communicating these things, so I've attached the diff
file for /src/bin/psql/describe.c.

Paul (?)
2002-04-05 11:52:38 +00:00
Bruce Momjian
9f20765919 Adds domain dumping support to pg_dump.
Rod Taylor
2002-04-05 11:51:13 +00:00
Bruce Momjian
811f7df274 When a macro is replaced by the preprocessor, pgc.l reaches a end of
file, which is not the actual end of the file. One side effect of that
is that if you are i n a ifdef block, you get a wrong error telling you
that a endif is missing.

This patch corrects pgc.l and also adds a test of this problem to
test1.pgc. To  convince you apply the patch to test1.pgc first then try
to compile the test the n apply the patch to pgc.l.

The patch moves the test of the scope of an ifdef block to the end of
the file b eeing parsed, including all includes files, ... .

Nicolas Bazin
2002-04-05 11:39:47 +00:00
Bruce Momjian
3cbe6b2478 Looks like a small patch is needed as well to do the right thing on Linux.
The patch enables the mips2 ISA for the ll/sc operations, and then restores
it when done.  The kernel/libc emulation code will take over on CPUs without
ll/sc, and on CPUs with it, it'll use the operations provided by the CPU.

Combined with the earlier fix (removing -mips2), postgresql builds again on
mips and mipsel.  The patch is against 7.2-7.

Oliver Elphick
2002-04-05 11:38:13 +00:00
Tom Lane
b9ae55f2aa Undo not-so-hot decision to postpone insertion of default values into
INSERT statements to the planner.  Taking it out of the parser was right
(so that defaults don't get into stored rules), but it has to happen
before rewrite rule expansion, else references to NEW.field behave
incorrectly.  Accordingly, add a step to the rewriter to insert defaults
just before rewrite-rule expansion.
2002-04-05 05:47:05 +00:00
Tom Lane
4bdb4be62e Divide functions into three volatility classes (immutable, stable, and
volatile), rather than the old cachable/noncachable distinction.  This
allows indexscan optimizations in many places where we formerly didn't.
Also, add a pronamespace column to pg_proc (it doesn't do anything yet,
however).
2002-04-05 00:31:36 +00:00
Hiroshi Inoue
0e11aea246 Fix a bug in SQLError(). 2002-04-04 23:29:16 +00:00
Bruce Momjian
45c7c6067a This patch against 0.98.7 lib/tables.tcl will allow PGAccess to create new
records containing apostrophes in text fields without altering the appearance
of the entry in the GUI interface (by copying the fldval to fldvalfixed).

This will alleviate the need for users to create a record and then go back to
edit apostrophes into the text they entered.

Ryan Grange
2002-04-04 06:27:45 +00:00
Bruce Momjian
958a1c2a0e Cleanup of level ordering and add missing LOG entry. 2002-04-04 04:43:44 +00:00
Bruce Momjian
f5648c205c Add missing mention of 'log' option for client_min_messages. 2002-04-04 04:33:58 +00:00
Bruce Momjian
43a3543a4e Authentication improvements:
A new pg_hba.conf column, USER
Allow specifiction of lists of users separated by commas
Allow group names specified by +
Allow include files containing lists of users specified by @
Allow lists of databases, and database files
Allow samegroup in database column to match group name matching dbname
Removal of secondary password files
Remove pg_passwd utility
Lots of code cleanup in user.c and hba.c
New data/global/pg_pwd format
New data/global/pg_group file
2002-04-04 04:25:54 +00:00
Hiroshi Inoue
af10378ab0 Fix a bug in multibyte_strchr(). 2002-04-04 01:36:17 +00:00
Peter Eisentraut
867901db9e Locale support is on by default. The choice of locale is done in initdb
and/or with GUC variables.
2002-04-03 05:39:33 +00:00
Tom Lane
3d7755c8e9 Replace perror() calls by elog()s, so that messages can be routed to
syslog when appropriate.  These were the last perror() calls remaining
in the backend; let's not reintroduce any...
2002-04-03 00:44:27 +00:00
Tom Lane
f764869ad0 Allow postmaster to start up anyway when PGSTAT code fails to initialize,
per recent discussion on pghackers.  Also, fix PGSTAT code to report
errors via elog, not scribbling directly on stderr.
2002-04-03 00:27:25 +00:00
Hiroshi Inoue
2966001c77 Fix compiler warnings. 2002-04-02 10:57:25 +00:00
Hiroshi Inoue
f8da3990b5 [HACKERS] Proposed patch for ODBC driver w/ C-a-n-c-e-l
From: Bradley McLean <brad@bradm.net>

Patch against 7,2 submitted for comment.

This seems to work just fine; Now, when our users submit a 2 hour
query with four million row sorts by accident, then cancel it 30 seconds
later, it doesn't bog down the server ...
2002-04-02 10:50:50 +00:00
Hiroshi Inoue
c26a44db08 Removed obsolete DROP_COLUMN_HACK stuff. 2002-04-02 08:51:52 +00:00
Tom Lane
b4bedfa956 Tweak SERIAL column creation to emit a fully qualified sequence name
as argument for nextval().
2002-04-02 06:30:34 +00:00
Barry Lind
8860110a74 Removed error message that was incorectly being issued. This fixes a problem reported a few months ago where a select in a rule was causing an insert statement to return a result set which the code was explicitly prohibiting. 2002-04-02 06:24:10 +00:00
Tom Lane
9c54cfb493 Fix CLOG truncation code to not do the Wrong Thing when there are already
wrapped-around databases.  The unvacuumed databases might be fine, or
they might not, but things will definitely not be fine if we remove the
wrong CLOG segments.  Per trouble report from Gary Wolfe, 1-Apr-2002.
2002-04-02 05:11:55 +00:00
Tom Lane
1dc43ea75f Make VACUUM handle schema-qualified relation names properly. 2002-04-02 01:03:07 +00:00
Tom Lane
789ddcb5fe Add tgconstrrelid to stored Trigger structures, make RI trigger functions
depend on this rather than the trigger argument strings to locate the
other relation to test.  This makes RI triggers function properly in
the presence of schemas and temp tables.  Along the way, fix bogus lack
of locking in RI triggers, handle quoting of names fully correctly,
compute required sizes of query buffers with some semblance of accuracy.
2002-04-01 22:36:13 +00:00
Bruce Momjian
6a25cd6b26 Attached is a patch which adds 2 missing semi-colons to
bootstrap/bootparse.y, so that recent versions of bison don't emit a
warning.

Neil Conway
2002-04-01 14:22:41 +00:00
Tom Lane
9b77f61930 ALTER TABLE SET/DROP NOT NULL, from Christopher Kings-Lynne. 2002-04-01 04:35:40 +00:00
Tom Lane
838fe25a95 Create a new GUC variable search_path to control the namespace search
path.  The default behavior if no per-user schemas are created is that
all users share a 'public' namespace, thus providing behavior backwards
compatible with 7.2 and earlier releases.  Probably the semantics and
default setting will need to be fine-tuned, but this is a start.
2002-04-01 03:34:27 +00:00
Hiroshi Inoue
6df395f63a 1) Add rollback functionality to updatable cursors.
2) Implement some options for SQLGetDescField().
3) Handle *Inifinity* timestamp for SQL_C_CHAR type output.
4) Separate Unicode conversions from common implementations.
5) Improve internal parse_statement() function.
2002-04-01 03:01:15 +00:00
Tom Lane
87b0808020 Temporary kluge to let RI triggers work on tables outside the system
catalog namespace.  This will not do as a production solution because
the interpretation of RI trigger arguments will vary depending on the
current namespace search path.  I'm just putting it in so that the RI
regression tests don't fail while schema development proceeds.  We
must find a better answer before 7.3 can be released.
2002-04-01 02:02:34 +00:00
Tom Lane
d51675169f Make renamerel take an OID, not a RangeVar, to identify the relation
to rename.  Avoids some corner-case bugs in cluster.c, improves
consistency with renameatt.
2002-03-31 07:49:30 +00:00
Tom Lane
3114102521 Reimplement temp tables using schemas. The temp table map is history;
temp table entries in pg_class have the names the user would expect.
2002-03-31 06:26:32 +00:00
Tom Lane
5f4745adf4 Further cleanups for relations in schemas: teach nextval and other
sequence functions how to cope with qualified names.  Same code is
also used for int4notin, currtid_byrelname, pgstattuple.  Also,
move TOAST tables into special pg_toast namespace.
2002-03-30 01:02:42 +00:00
Tom Lane
d67442ccfd Mop-up some infelicities in new relation lookup handling. 2002-03-29 22:10:34 +00:00
Tom Lane
d5e99ab4d6 pg_type has a typnamespace column; system now supports creating types
in different namespaces.  Also, cleanup work on relation namespace
support: drop, alter, rename commands work for tables in non-default
namespaces.
2002-03-29 19:06:29 +00:00
Peter Eisentraut
7c1ff35410 Upgrade to Autoconf version 2.53. Replaced many custom macro
calls with new or now-built-in versions.  Make sure that all
calls to AC_DEFINE have a third argument, for possible use of
autoheader in the future.
2002-03-29 17:32:55 +00:00
Bruce Momjian
eb1ee9e63f Fix ODBC warnings about missing parens and pg_ismb not used (added
#ifdef NOT_USED).
2002-03-29 07:48:56 +00:00
Bruce Momjian
b2c89fa7af Fox for old python PyMem_DEL, was PyMem_Del, 2002-03-29 07:45:39 +00:00
Bruce Momjian
ed6cce4c7b Fix '#' commant to be proper C comment. 2002-03-29 07:21:25 +00:00
Hiroshi Inoue
6852741c18 [2002-03-28]
1) Prepare to separate 4 kinds of Descriptor handles.
2) Detect the transaction status more naturally.
3) Improve Parse Statement functionality for the use
   of updatable cursors.
4) Improve updatable cursors.
5) Implement SQLGetDescField() and improve SQLColAttribute().
6) etc.
2002-03-28 08:08:07 +00:00
Peter Eisentraut
d235d9b8a3 Reset parenthesis level counter upon \r. 2002-03-27 19:16:13 +00:00
Barry Lind
2442e79e32 applied patch from Liam Stewart fixing a message in the properties file
also fixed a NPE when calling the next() method on a result set after the
connection or resultset has been closed. (bug reported by Hans Deragon)
2002-03-27 05:33:27 +00:00
Tom Lane
1dbf8aa7a8 pg_class has a relnamespace column. You can create and access tables
in schemas other than the system namespace; however, there's no search
path yet, and not all operations work yet on tables outside the system
namespace.
2002-03-26 19:17:02 +00:00
Barry Lind
da631e931f applied patch submitted by Florian (mailing-list@urbanet.ch) for BigDecimal support 2002-03-26 06:33:21 +00:00
Barry Lind
ef7d791074 Changed QueryExecutor.java to correctly read responses from the backend.
Fixed NPE when database name was not passed on the jdbc connection URL
Fixed Connection.isClosed() to not hit the DB for every call
2002-03-26 05:52:50 +00:00
Bruce Momjian
af3c380158 Update release list. 2002-03-26 05:34:33 +00:00
Bruce Momjian
ebcd74c788 Update sgml version properly. 2002-03-26 05:33:23 +00:00
D'Arcy J.M. Cain
102fe3f845 Further changes following discussion on INTERFACES mailing list:
- Use PyObject_Del() rather than macro version
  - Check version and drop back to PyMem_Del() for older systems.
2002-03-26 01:50:14 +00:00
Tom Lane
eb77ad55ed Re-allow CREATE AS (but not SELECT INTO) in EXECUTE. 2002-03-25 07:41:10 +00:00
Bruce Momjian
51b55730ae Fix for ODBC compile warnings. 2002-03-25 01:53:55 +00:00
Tom Lane
5eed835b9a Indenting #if commands is not portable, is it? 2002-03-24 18:22:21 +00:00
Tom Lane
ea10ec1b69 Tweak labeling of plan qual conditions for more consistency. 2002-03-24 17:11:37 +00:00
Tom Lane
10d3995057 EXPLAIN output now comes out as a query result, not a NOTICE message.
Also, fix debug logging of parse/plan trees so that the messages actually
go through elog(), not directly to stdout.
2002-03-24 04:31:09 +00:00
Tom Lane
a25b94c080 Create the pg_namespace system catalog. Doesn't do much yet, but it's
there and CREATE SCHEMA will make entries in it...
2002-03-22 21:34:44 +00:00
Tom Lane
48c9164901 Improve catalog commentary. 2002-03-22 20:14:42 +00:00
Tom Lane
108a0ec87d A little further progress on schemas: push down RangeVars into
addRangeTableEntry calls.  Remove relname field from RTEs, since
it will no longer be a useful unique identifier of relations;
we want to encourage people to rely on the relation OID instead.
Further work on dumping qual expressions in EXPLAIN, too.
2002-03-22 02:56:37 +00:00
Tom Lane
56c9b73c1d Change the aclchk.c routines to uniformly use OIDs to identify the
objects to be privilege-checked.  Some change in their APIs would be
necessary no matter what in the schema environment, and simply getting
rid of the name-based interface entirely seems like the best way.
2002-03-21 23:27:25 +00:00
Tom Lane
6137ed1b59 Fix minor syntax error. 2002-03-21 18:28:07 +00:00
Tom Lane
95ef6a3448 First phase of SCHEMA changes, concentrating on fixing the grammar and
the parsetree representation.  As yet we don't *do* anything with schema
names, just drop 'em on the floor; but you can enter schema-compatible
command syntax, and there's even a primitive CREATE SCHEMA command.
No doc updates yet, except to note that you can now extract a field
from a function-returning-row's result with (foo(...)).fieldname.
2002-03-21 16:02:16 +00:00
Peter Eisentraut
8c9c8ca2b5 Remove -mips2 flag, which breaks the build on some MIPS systems.
Report from Ryan Murray via Debian
2002-03-21 15:21:41 +00:00
Michael Meskes
73b92d10c6 Added typedef patches and a new option '-c' to automatically create C typedefs from SQL ones. 2002-03-21 09:42:52 +00:00
Tom Lane
a13ddd36b0 Remove long-dead 'fix for SELECT NULL' to stop current coredump. 2002-03-21 06:21:04 +00:00
Bruce Momjian
c52670e8b2 Fix pg_dump help option alignment. 2002-03-21 05:47:14 +00:00
Dave Cramer
78d40a2a2f Two versions of QueryExecutor, currently only version 2 works 100%
these versions adhere to the backend protocol better than previous version
fixes problem when an error occurs on the backend, and the connection is still used
previous versions were throwing an exception half way through the protocol, leaving it
indeterminate.
also removes empty query code, should speed things up a bit
2002-03-21 03:20:30 +00:00
Dave Cramer
54cc549d8f modifications to the way the protocol is handled to be consistent with
QueryExecutor. This includes:
1) only exit after we receive a 'Z' packet
2) append error messages to a buffer and throw the exception at the end
2002-03-21 02:52:37 +00:00
Dave Cramer
00923229c2 Part of Anders Bengtsson's patch to clean up Connection.java 2002-03-21 02:40:03 +00:00
Dave Cramer
d96c29ab30 Applied Anders patch to move the startup code out of Connection into StartupPacket
* Introduces a new class, StartupPacket.
* Moves a lot of constants from Connection to StartupPacket.
* Makes two instance variables in Connection into locals.
2002-03-21 02:39:06 +00:00
Michael Meskes
8e9b215fdf Just one more test case. 2002-03-20 21:00:24 +00:00
Tom Lane
337b22cb47 Code review for DOMAIN patch. 2002-03-20 19:45:13 +00:00
Tom Lane
251282d4b7 Tweak behavior of array slicing operations: seems like it ought to be
okay to omit low-order dimensions when accessing an array slice.
2002-03-20 19:41:47 +00:00
D'Arcy J.M. Cain
861c336b51 PyGreSQL causes a segfault when used with a Python executable that was
compiled with --with-pymalloc.  This change fixes that.  Thanks to
Dave Wallace <dwallace@udel.edu>
2002-03-20 14:36:06 +00:00
Bruce Momjian
f2842a969d Make CREATE DOMAIN emit CREATE DOMAIN on completion, per Peter E. 2002-03-19 16:10:48 +00:00
D'Arcy J.M. Cain
b752788510 Bump version number to match tree. 2002-03-19 13:21:14 +00:00
D'Arcy J.M. Cain
d6b4153f93 Fix name in comments and add info about this module's place in PyGreSQL. 2002-03-19 13:20:52 +00:00
Bruce Momjian
b292cafcd4 Just adds a regressions test suite for the ALTER TABLE/ADD PRIMARY KEY
feature.

I'll do ALTER TABLE / DROP CONSTRAINT next...

Christopher Kings-Lynne
2002-03-19 12:59:08 +00:00
Bruce Momjian
f5810bb8a5 Add missing trailing semicolons to ecpg rules.
Neil Conway
2002-03-19 12:56:38 +00:00
Bruce Momjian
b9c7b0a2ba Fix DOMAIN breakage. 2002-03-19 12:52:22 +00:00
Bruce Momjian
714f7859d8 psql \? cleanups by Ian Barwick 2002-03-19 03:01:01 +00:00
Bruce Momjian
a9819ca253 The attached patch cleans up the implementation of the TRUNCATE command;
in the current code, the authentication logic (check user, check the
relation we're operating on, etc) is done in tcop/utility.c, whereas the
actual TRUNCATE command in done in TruncateRelation() in
commands/createinh.c (which is really just a wrapper over
heap_truncate() in catalog/heap.c). This patch moves the authentication
logic into TruncateRelation(), as well as making some minor code
cleanups.

Neil Conway
2002-03-19 02:58:20 +00:00
Bruce Momjian
d8e70cd829 Fix for trigger handling:
* We should not even consider checking the row if it is no longer
         * valid since it was either deleted (doesn't matter) or updated
         * (in which case it'll be checked with its final values).

Stephan Szabo
2002-03-19 02:57:15 +00:00
Bruce Momjian
eb1fb8650f >Added ServerEncoding
>       Korean (JOHAB), Thai (WIN874),
>       Vietnamese (TCVN), Arabic (WIN1256)
>
>Added ClientEncoding
>       Simplified Chinese (GBK), Korean (UHC)
>
>Add PsqlODBC and document ...etc patch.


"JDBC patch" is delivered, too. :-)



Eiji Tokuya
2002-03-19 02:48:45 +00:00
Bruce Momjian
d3337c6e3f > I am backing out this patch. Please resubmit with this corrected. Thanks.
>
> I am running Python 1.5.

Therein lies the problem... :)

Since it appears you have the requirement of supporting old python
versions, attached is just the pgdb.py part of the patch (with a fix for
DateTime handling). It has the same functionality but certainly won't be
quite as fast. Given the absence of _PyString_Join in python1.5, it's a
pain to get the C variants working for all versions. The pgdb.py patch
does leaves the hooks in, should someone wish to do the optimization at a
later point.

Elliot Lee
2002-03-19 02:47:57 +00:00
Bruce Momjian
a7ade2bb6b Add psql \dD listing of domains, from Jonathan Eisler. 2002-03-19 02:32:21 +00:00
Bruce Momjian
d3788c3305 Add DOMAIN support. Includes manual pages and regression tests, from
Rod Taylor.
2002-03-19 02:18:25 +00:00
Dave Cramer
525b19399c applied patch from Liam Stewart
If one is trying to compile a JDBC 1 driver and junit.jar is in the
CLASSPATH, then the build fails as ant tries to build the JDBC 2 test
classes. This patch fixes this problem by excluding the jdbc 2 files
unless the jdk1.2+ property is set.
2002-03-19 01:32:48 +00:00
Bruce Momjian
1f0e5f6792 Comment patch:
This one better describes the problem.

heap.c needs to be updated to include 'Hard coded badness' for that
table.
--
Rod Taylor
2002-03-19 01:14:41 +00:00
Bruce Momjian
658371fe9f Update for 7.2.1. 2002-03-18 23:03:13 +00:00
Dave Cramer
202a19e47b Fixes bug where query hangs if there is an error in the query, went back to
code before QueryExecutor class was created and copied behaviour
2002-03-18 04:16:33 +00:00
Tom Lane
0f2fbbbac1 Try to make array_in's behavior a tad less bizarre. Leading whitespace
before a data item is now always skipped, rather than only sometimes.
Backslashes not within double-quoted text are treated reasonably, as
are multiple sequences of quoted text in a single data item.  But it
still seems rather prone to misbehavior if the input is not completely
syntactically correct --- in particular, garbage following a right brace
will be ignored.
2002-03-16 22:47:13 +00:00
Dave Cramer
134fe5ec61 fixed QueryExecuter to deal with multiple errors
previously it was throwing a SQLException as soon as the error message was
received from the backend. This did not allow the protocol to finish properly
now, simply collects error messages from the backend until the query is done
and throws exception at the end
Also added setLogLevel to Driver.java, and made the log levels public
2002-03-16 02:15:23 +00:00
Bruce Momjian
efd45bc68f Manually clean up indenting of ecpg lex/yacc files, OK'ed by Michael
Meskes.  These files are not touched by pgindent so this has to be
manually done.
2002-03-15 21:46:59 +00:00
Tom Lane
01747692fe Repair two problems with WAL logging of sequence nextvalI() ops, as
per recent pghackers discussion: force a new WAL record at first nextval
after a checkpoint, and ensure that xlog is flushed to disk if a nextval
record is the only thing emitted by a transaction.
2002-03-15 19:20:36 +00:00
Dave Cramer
a2b5512929 patch from Alexey Slynko
This patch solve problems with arrays in latest development JDBC driver
2002-03-15 04:11:49 +00:00
Bruce Momjian
31effd10fe The attached patch changes ALTER TABLE OWNER to also change the
ownership of any toast tables that belong to the table that is being
operated upon (as suggested by Tom Lane).

Neil Conway
2002-03-14 22:44:50 +00:00
Hiroshi Inoue
01e322652b 1) Internal improvements to handle updatable cursors(1st cut).
2) Fix a bug in SQLColAttribute().
2002-03-14 05:42:04 +00:00
Peter Eisentraut
f362dcec61 Move
src/GNUmakefile.in to src/Makefile
and
  src/backend/port/Makefile.in to src/backend/port/Makefile

All configure substitutions are now done in Makefile.global.
2002-03-13 00:05:06 +00:00
Tom Lane
6eeb95f0f5 Restructure representation of join alias variables. An explicit JOIN
now has an RTE of its own, and references to its outputs now are Vars
referencing the JOIN RTE, rather than CASE-expressions.  This allows
reverse-listing in ruleutils.c to use the correct alias easily, rather
than painfully reverse-engineering the alias namespace as it used to do.
Also, nested FULL JOINs work correctly, because the result of the inner
joins are simple Vars that the planner can cope with.  This fixes a bug
reported a couple times now, notably by Tatsuo on 18-Nov-01.  The alias
Vars are expanded into COALESCE expressions where needed at the very end
of planning, rather than during parsing.
Also, beginnings of support for showing plan qualifier expressions in
EXPLAIN.  There are probably still cases that need work.
initdb forced due to change of stored-rule representation.
2002-03-12 00:52:10 +00:00
Bruce Momjian
66b6bf67a1 More pgsql \? cleanup for Peter E. 2002-03-11 18:26:20 +00:00
Bruce Momjian
560a2c017c Correct optional args in psql \? as pointed out by Ian Barwick. 2002-03-11 18:22:03 +00:00
Bruce Momjian
80bbfe76d5 Inlined a patch to add the libpq setNoticeProcessor capability to
libpq++.

Ofir Reichenberg
2002-03-11 15:08:18 +00:00
Michael Meskes
9f9e3c9803 Changed the version numbers, but did not commit the Makefiles. 2002-03-11 12:56:02 +00:00
Hiroshi Inoue
dadb718b10 Bug fixes for the 2002-03-08 change.
1) Put back the error message for SQLError().
2) Change Disallow premature to handle the SELECTed
   result.
3) Put back the behavior of AUTUCOMMIT mode change.
4) Fix SQLColumns for ODBC3.0.

5) Improve the handling of variable bookmark in ODBC3.0.
6) Enable Recognize Unique Index Button.
2002-03-11 10:25:57 +00:00
Michael Meskes
7f7fb4e64c Fixed two bugs in define command in pgc.l 2002-03-10 12:09:54 +00:00
Bruce Momjian
a35b6b6418 Add DEFAULT_INDEX_TYPE == "btree", for clarity. 2002-03-10 06:02:24 +00:00
Bruce Momjian
ee27436f6c Disable brackets in multi-statement rules, as discussed. 2002-03-10 06:00:15 +00:00
Thomas G. Lockhart
f20509551d Guard against NULL strings in SET key=val constructs.
Problem noted by Fernando Nasser.
2002-03-09 17:37:16 +00:00
Dave Cramer
ee2154829e Added a check for not calling next() before getting objects from the result set,
moved the check for columnIndex into same call
check at the top of all getXXX
added appropriate error
2002-03-09 17:36:14 +00:00
Tom Lane
c422b5ca6b Code review for improved-hashing patch. Fix some portability issues
(char != unsigned char, Datum != uint32); make use of new hash code in
dynahash hash tables and hash joins.
2002-03-09 17:35:37 +00:00
Dave Cramer
1eb31d197d Here is a small patch that cleans up some error reporting in the JDBC driver. PSQLExceptions are thrown instead of SQLExceptions and if a warning is received while waiting for the backend secret key, that warning is chained to the new Connection object instead of generating an exception. A couple new error messages have been added. 2002-03-09 17:08:39 +00:00
Bruce Momjian
fdcb8516d4 Wording improvements to runtime.sgml. Add mention in postgresql.conf
file that SIGHUP or "pg_ctl reload" are required for changes to take
affect on a running server.
2002-03-09 05:11:38 +00:00
Bruce Momjian
db1d7a9ada Improve wording of pg_hba.conf file. 2002-03-08 20:36:58 +00:00
Hiroshi Inoue
fc70104725 Remove compile errors. 2002-03-08 09:50:39 +00:00
Hiroshi Inoue
4b47467a6b 1) Implement SQLParamOptions().
2) Handle Multiple results and implement SQLMoreResult().
3) Improve multibyte handling thanks to Eiji Tokuya.
4) Add new options.
   LF <-> CR/LF converion.
   TRUE is -1 (for VB).
5) Introduce unicode(UCS-2) support.
6) Reduce the length of connection strings.
7) Improve SQLError, SQLGetDiagRec(ODBC 3.0).
8) Implement SQLTablePrivileges().
9) Miscellaneous changes for ODBC 3.0 support.
2002-03-08 08:52:55 +00:00
Tom Lane
21f8aa396f analyze.o need not depend on parser.h. 2002-03-08 07:12:11 +00:00
Tom Lane
01fe40f5c5 Remove unnecessary inclusion. 2002-03-08 06:55:08 +00:00
Tom Lane
cf68a686a6 Fix copying/equality-check bugs in GrantStmt and ConstraintsSetStmt,
per reports from Fernando Nasser.  Also, rearrange order of declarations
in parsenodes.h as suggested by Fernando.
2002-03-08 04:37:18 +00:00
Bruce Momjian
ee81126d1f TODO item done:
* Change FIXED_CHAR_SEL to 0.20 from 0.04 to give better selectivity (Bruce)
2002-03-08 04:29:01 +00:00
Tom Lane
98b3ae7378 Add missing colon to getopt() arg. 2002-03-08 00:42:09 +00:00
Bruce Momjian
08e1664ab4 Add FULL in VACUUM psql completion. 2002-03-07 20:48:41 +00:00
Bruce Momjian
7ce0f9c375 Adjust elog() tags so source and regression tests match. 2002-03-07 20:18:15 +00:00
Bruce Momjian
7d1b8fe716 Back out psql domain improvements until domain is applied. 2002-03-07 17:54:42 +00:00
Bruce Momjian
b976b8af80 Back out domain patch until it works properly. 2002-03-07 16:35:41 +00:00
Bruce Momjian
609f71b760 Also an small change to the tab-complete feature of psql which allows to
use tables and views interchangeably.

Manuel Sugawara
2002-03-07 04:45:53 +00:00
Bruce Momjian
9178b7fcea Fix syntax error introduced by patch. 2002-03-06 21:49:52 +00:00
Bruce Momjian
7ab7467318 I've attached a patch which implements Bob Jenkin's hash function for
PostgreSQL. This hash function replaces the one used by hash indexes and
the catalog cache. Hash joins use a different, relatively poor-quality
hash function, but I'll fix that later.

As suggested by Tom Lane, this patch also changes the size of the fixed
hash table used by the catalog cache to be a power-of-2 (instead of a
prime: I chose 256 instead of 257). This allows the catcache to lookup
hash buckets using a simple bitmask. This should improve the performance
of the catalog cache slightly, since the previous method (modulo a
prime) was slow.

In my tests, this improves the performance of hash indexes by between 4%
and 8%; the performance when using btree indexes or seqscans is
basically unchanged.

Neil Conway <neilconway@rogers.com>
2002-03-06 20:49:46 +00:00
Bruce Momjian
5b5cef9abd Enable ALTER TABLE ADD PRIMARY KEY for pg_dump, for performance reasons
so index is not on table during COPY.

> > AFAICT, the patch I posted to -patches a little while to enable the
> > usage of ALTER TABLE ADD PRIMARY KEY by pg_dump hasn't been applied, nor
> > is it in the unapplied patches list. I was under the impression that
> > this was in the queue for application -- did it just get lost?

Neil Conway <neilconway@rogers.com>
2002-03-06 20:48:42 +00:00
Bruce Momjian
c666d6fd41 Here is a diff of changes to the psql source code implementing a simple
'list domains' command '\dD'. This is the interface component of
rbt@zort.ca's domain backend modifications.

Jonathan Eisler
2002-03-06 20:39:45 +00:00
Bruce Momjian
01c76f7411 Ok. Updated patch attached.
- domain.patch -> source patch against pgsql in cvs
- drop_domain.sgml and create_domain.sgml -> New doc/src/sgml/ref docs

- dominfo.txt -> basic domain related queries I used for testing
[ ADDED TO /doc]

Enables domains of array elements -> CREATE DOMAIN dom int4[3][2];

Uses a typbasetype column to describe the origin of the domain.

Copies data to attnotnull rather than processing in execMain().

Some documentation differences from earlier.

If this is approved, I'll start working on pg_dump, and a \dD <domain>
option in psql, and regression tests.  I don't really feel like doing
those until the system table structure settles for pg_type.


CHECKS when added, will also be copied to to the table attributes.  FK
Constraints (if I ever figure out how) will be done similarly.  Both
will lbe handled by MergeDomainAttributes() which is called shortly
before MergeAttributes().

Rod Taylor
2002-03-06 20:35:02 +00:00
Bruce Momjian
3d9f865e94 Modify ALTER TABLE OWNER to change index ownership; code cleanup.
Neil Conway
2002-03-06 19:58:26 +00:00
Bruce Momjian
7d5edf2ba7 Add new elog() levels to stored procedure languages. plperl DEBUG hack
still needed because only removed in 7.4.
2002-03-06 18:50:33 +00:00
Bruce Momjian
9956c566e3 Add libpgeasy example file. 2002-03-06 14:40:05 +00:00
Michael Meskes
5ca7c8e314 Synced parser with backend. 2002-03-06 10:10:52 +00:00
Bruce Momjian
4e15b9233d Improve elog descriptions. 2002-03-06 06:23:20 +00:00
Bruce Momjian
e6227fd0ec Add missing Unicode multibyte files. 2002-03-06 06:12:59 +00:00
Bruce Momjian
92288a1cf9 Change made to elog:
o  Change all current CVS messages of NOTICE to WARNING.  We were going
to do this just before 7.3 beta but it has to be done now, as you will
see below.

o Change current INFO messages that should be controlled by
client_min_messages to NOTICE.

o Force remaining INFO messages, like from EXPLAIN, VACUUM VERBOSE, etc.
to always go to the client.

o Remove INFO from the client_min_messages options and add NOTICE.

Seems we do need three non-ERROR elog levels to handle the various
behaviors we need for these messages.

Regression passed.
2002-03-06 06:10:59 +00:00
Dave Cramer
39c58b9065 changed Cancel to cancel 2002-03-06 03:07:45 +00:00
Dave Cramer
ffe356b5dd backed out changes for cancel, no need to look for two 'Z' responses 2002-03-05 20:11:57 +00:00
Dave Cramer
29ea8ff9b1 Patch by Nicolas Verger to correctly propogate SQLWarning to the Statement and ResultSet 2002-03-05 18:02:44 +00:00
Dave Cramer
ff2f9b663f fixed cancel query bug introduced by patch 2002-03-05 18:01:27 +00:00
Bruce Momjian
0416641baa At this moment, --enable-debug adds debugging information to most of the
parts o f postgresql. The jdbc drivers are never compiled with debugging
support. This p atch make sure that debugging information is added to
the jdbc jar when the --en able-debug is added. This was usefull for me
for debugging some java jdbc poolin g objects but this might perhaps be
usefull for other people too?

Dries Verachtert
2002-03-05 17:55:23 +00:00
Bruce Momjian
af41101a40 Prevent failed passwords from being echoed to server logs, for security. 2002-03-05 07:57:45 +00:00
Bruce Momjian
16d6615b41 Prevent failed passwords from being echoed to server logs, for security. 2002-03-05 06:52:05 +00:00
Bruce Momjian
ed5eb09cce Adds \du documentation line for \? in psqls help.c
Thought I saw a patch earlier converting docs to use []s, so this uses
them.

Rod Taylor
2002-03-05 06:13:19 +00:00
Bruce Momjian
6024ac1ba0 Back out old version and update with newer patch of:
Fix for non-blocking connections in libpq

Bernhard Herzog
2002-03-05 06:07:27 +00:00
Bruce Momjian
a8bd7e1c6e > Tatsuo Ishii wrote:
> > > > It was made to cope with encoding such as an Asian bloc in 7.2Beta2.
> > > >
> > > > Added ServerEncoding
> > > >         Korean (JOHAB), Thai (WIN874),
> > > >         Vietnamese (TCVN), Arabic (WIN1256)
> > > >
> > > > Added ClientEncoding
> > > >         Simplified Chinese (GBK), Korean (UHC)
> > > >
> > > >
> > > >
> http://www.sankyo-unyu.co.jp/Pool/postgresql-7.2b2.newencoding.diff.tar.gz
> > > > (608K)
> > >
> > > Looks good.  I need some people to review this for me.
> >
> > For me they look good too. The only missing part is a
> > documentation. I will ask him to write it up. If he couldn't, I will
> > do it for him.
> > > The diff is 3mb
> > > but appears to address only additions to multibyte.  I have attached a
> > > list of files it modifies.  Also, look at the sizes of the mb/
> > > directory.  It is getting large:
> > >
> > >   4       ./CVS
> > >   6       ./Unicode/CVS
> > >   3433    ./Unicode
> > >   6197    .
> >
> > Yes. We definitely need the on-the-fly encoding addition capability:
> > i.e. CREATE CHRACTER SET in the future...
> > --
> > Tatsuo Ishii
> >
> >

Address chainge.

http://www.sankyo-unyu.co.jp/Pool/postgresql-7.2.newencoding.diff.gz

Add PsqlODBC and document ...etc patch.

Eiji Tokuya
2002-03-05 05:52:50 +00:00
Bruce Momjian
03194432de I attach a version of my toast-slicing patch, against current CVS
(current as of a few hours ago.)

This patch:

1. Adds PG_GETARG_xxx_P_SLICE() macros and associated support routines.

2. Adds routines in src/backend/access/tuptoaster.c for fetching only
necessary chunks of a toasted value. (Modelled on latest changes to
assume chunks are returned in order).

3. Amends text_substr and bytea_substr to use new methods. It now
handles multibyte cases -and should still lead to a performance
improvement in the multibyte case where the substring is near the
beginning of the string.

4. Added new command: ALTER TABLE tabname ALTER COLUMN colname SET
STORAGE {PLAIN | EXTERNAL | EXTENDED | MAIN} to parser and documented in
alter-table.sgml. (NB I used ColId as the item type for the storage
mode string, rather than a new production - I hope this makes sense!).
All this does is sets attstorage for the specified column.

4. AlterTableAlterColumnStatistics is now AlterTableAlterColumnFlags and
handles both statistics and storage (it uses the subtype code to
distinguish). The previous version of my patch also re-arranged other
code in backend/commands/command.c but I have dropped that from this
patch.(I plan to return to it separately).

5. Documented new macros (and also the PG_GETARG_xxx_P_COPY macros) in
xfunc.sgml. ref/alter_table.sgml also contains documentation for ALTER
COLUMN SET STORAGE.

John Gray
2002-03-05 05:33:31 +00:00
Bruce Momjian
276fc7ce82 I was digging through the GiST code, and figured I'd fix up some of the
"bad smell" in that code. Stuff like function parameters that aren't
used, typos in the comments, comparison between signed and unsigned
ints, etc.

Attached is a pretty trivial patch; it compiles, but beyond that
completely untested. Unless anyone sees any problems, please apply for
7.3.

Neil Conway
2002-03-05 05:30:40 +00:00
Bruce Momjian
33766e680d Here's a patch against 7.1.3 that fixes a problem with sending larger
queries over non-blocking connections with libpq. "Larger" here
basically means that it doesn't fit into the output buffer.

The basic strategy is to fix pqFlush and pqPutBytes.

The problem with pqFlush as it stands now is that it returns EOF when an
error occurs or when not all data could be sent. The latter case is
clearly not an error for a non-blocking connection but the caller can't
distringuish it from an error very well.

The first part of the fix is therefore to fix pqFlush. This is done by
to renaming it to pqSendSome which only differs from pqFlush in its
return values to allow the caller to make the above distinction and a
new pqFlush which is implemented in terms of pqSendSome and behaves
exactly like the old pqFlush.

The second part of the fix modifies pqPutBytes to use pqSendSome instead
of pqFlush and to either send all the data or if not all data can be
sent on a non-blocking connection to at least put all data into the
output buffer, enlarging it if necessary. The callers of pqPutBytes
don't have to be changed because from their point of view pqPutBytes
behaves like before. It either succeeds in queueing all output data or
fails with an error.

I've also added a new API function PQsendSome which analogously to
PQflush just calls pqSendSome. Programs using non-blocking queries
should use this new function. The main difference is that this function
will have to be called repeatedly (calling select() properly in between)
until all data has been written.

AFAICT, the code in CVS HEAD hasn't changed with respect to non-blocking
queries and this fix should work there, too, but I haven't tested that
yet.

Bernhard Herzog
2002-03-05 05:20:12 +00:00
Tom Lane
944671820f Previous patch to mark UNION outputs with common typmod (if any) breaks
three-or-more-way UNIONs, as per example from Josh Berkus.  Cause is a
fragile assumption that one tlist's entries will exactly match another.
Restructure code to make that assumption a little less fragile.
2002-03-05 05:10:24 +00:00
Dave Cramer
17b6baf17d Doug Fields patch to prevent exception being thrown on zero length arrays 2002-03-05 03:46:03 +00:00
Dave Cramer
fe4e95f682 patch from Zhenbang Wei
The errors_zh_TW.properties must be translated using native2ascii or it
will raise an exception. Please replace the old file.
2002-03-05 03:33:29 +00:00
Dave Cramer
8f83590aa1 Patch from Ryouichi Matsuda
An attached patch corrects problem of this bug and fractional second.


 The handling of time zone was as follows:

   (a) with time zone
       using  SimpleDateFormat("yyyy-MM-dd HH:mm:ss z")
   (b) without time zone
       using  SimpleDateFormat("yyyy-MM-dd HH:mm:ss")


 About problem of fractional second,
 Fractional second was changed from milli-second to nano-second
2002-03-05 03:29:30 +00:00
Dave Cramer
7aa6270fc7 patch from Mitchel Friedman to fix getTables 2002-03-05 03:02:52 +00:00
Bruce Momjian
925d60ee53 Showing index details with \d on psql.
Greg Sabino Mullane
2002-03-05 02:42:56 +00:00
Dave Cramer
521017c5d0 patch from Vicktor to fix Numeric decimal digits in getColumns 2002-03-05 02:14:08 +00:00
Bruce Momjian
fef790cc03 Back out python patch:
Elliot Lee wrote:
> This patch to the python bindings adds C versions of the often-used
query
> args quoting routines, as well as support for quoting lists e.g.
> dbc.execute("SELECT * FROM foo WHERE blah IN %s", ([1,2,3],))
2002-03-05 02:01:44 +00:00
Bruce Momjian
14b05248cc This patch to the python bindings adds C versions of the often-used
query args quoting routines, as well as support for quoting lists e.g.
dbc.execute("SELECT * FROM foo WHERE blah IN %s", ([1,2,3],))

Elliot Lee
2002-03-05 00:23:13 +00:00
Bruce Momjian
25b0b09fd3 Add \timing patch to psql. Times all queries.
Greg Sabino Mullane
2002-03-05 00:01:03 +00:00
Bruce Momjian
294f0d4bd6 Add PQunescapeBytea libpq function.
Everyone using libpq and bytea is probably having to invent this wheel..

Patrick Welche
2002-03-04 23:59:14 +00:00
Bruce Momjian
b2aade0e4b Improve libpgeasy API for multiple result sets, add example. 2002-03-04 18:50:21 +00:00
Tom Lane
e7db8fa80e Add Assert check to catch vsnprintf overrunning its buffer. (Seen to
occur on Solaris 7 in 64-bit mode, for one.)
2002-03-04 18:34:02 +00:00
Tom Lane
dd178e37f0 Make port makefile slightly less crufty. 2002-03-04 17:43:32 +00:00
Tom Lane
26c246036d Fix very ancient breakage in alter-table tests: apparently, there was a
type named 'dt' back in Postgres 4.2, and the regression test wasn't
updated when it was removed.  Per report from Patricia Holben of Great
Bridge.
2002-03-04 05:17:55 +00:00
Tom Lane
653556cc26 If presented db path has a trailing slash, remove it to avoid generating
double slashes in generated filenames.  This is not strictly necessary
on standard Unixen, but I'm being a neatnik...
2002-03-04 04:45:27 +00:00
Tatsuo Ishii
3382fbb60d Fix bug in extract/date_part for milliseconds/miscroseconds and
timestamp/timestamptz combo. Now extract/date_part returns
seconds*1000 or 1000000 + fraction part as the manual stats.
regression test are also fixed.

See the thread in pgsql-hackers:

Subject: Re: [HACKERS] timestamp_part() bug?
Date: Sat, 02 Mar 2002 11:29:53 +0900
2002-03-04 03:55:50 +00:00
Tom Lane
a616cbc5e3 Fix bogus error check in pg_execute, per report from lbayuk@mindspring.com. 2002-03-04 02:41:49 +00:00
Tom Lane
36f693ec69 Further work on elog cleanup: fix some bogosities in elog's logic about
when to send what to which, prevent recursion by introducing new COMMERROR
elog level for client-communication problems, get rid of direct writes
to stderr in backend/libpq files, prevent non-error elogs from going to
client during the authentication cycle.
2002-03-04 01:46:04 +00:00
Tom Lane
26ac217173 Catcaches can now store negative entries as well as positive ones, to
speed up repetitive failed searches; per pghackers discussion in late
January.  inval.c logic substantially simplified, since we can now treat
inserts and deletes alike as far as inval events are concerned.  Some
repair work needed in heap_create_with_catalog, which turns out to have
been doing CommandCounterIncrement at a point where the new relation has
non-self-consistent catalog entries.  With the new inval code, that
resulted in assert failures during a relcache entry rebuild.
2002-03-03 17:47:56 +00:00
Bruce Momjian
343e47c27d Default server_min_messages is NOTICE. 2002-03-03 02:11:09 +00:00
Tom Lane
ce7a4f06a2 Cause regression tests to pass again after elog changes. 2002-03-03 01:05:22 +00:00
Tom Lane
cfae62c476 Some kibitzing about appropriate elog levels for sinval messages. 2002-03-02 23:35:57 +00:00
Bruce Momjian
a033daf566 Commit to match discussed elog() changes. Only update is that LOG is
now just below FATAL in server_min_messages.  Added more text to
highlight ordering difference between it and client_min_messages.

---------------------------------------------------------------------------

REALLYFATAL => PANIC
STOP => PANIC
New INFO level the prints to client by default
New LOG level the prints to server log by default
Cause VACUUM information to print only to the client
NOTICE => INFO where purely information messages are sent
DEBUG => LOG for purely server status messages
DEBUG removed, kept as backward compatible
DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1 added
DebugLvl removed in favor of new DEBUG[1-5] symbols
New server_min_messages GUC parameter with values:
        DEBUG[5-1], INFO, NOTICE, ERROR, LOG, FATAL, PANIC
New client_min_messages GUC parameter with values:
        DEBUG[5-1], LOG, INFO, NOTICE, ERROR, FATAL, PANIC
Server startup now logged with LOG instead of DEBUG
Remove debug_level GUC parameter
elog() numbers now start at 10
Add test to print error message if older elog() values are passed to elog()
Bootstrap mode now has a -d that requires an argument, like postmaster
2002-03-02 21:39:36 +00:00
Tom Lane
8d8aa931ef Add code to allow profiling of backends on Linux: save and restore the
profiling timer setting across fork().  The correct way to build a
profilable backend on Linux is now gmake PROFILE="-pg -DLINUX_PROFILE"
2002-03-02 20:46:12 +00:00
Tom Lane
78ab803402 Don't bother to request SSL connection over a Unix socket, since the
postmaster won't accept the request anyway.  (If your kernel can't
be trusted, SSL will not help you.)
2002-03-02 00:49:22 +00:00
Tom Lane
608d843e61 Array slice extraction should produce a result array with index lower
bounds of 1, not the lower bound subscripts of the original slice.
Per bug report from Andre Holzner, 1-Feb-02.
2002-03-02 00:34:24 +00:00
Peter Eisentraut
1aac2c852a User and database-specific session defaults for run-time configuration
variables.  New commands ALTER DATABASE ... SET and ALTER USER ... SET.
2002-03-01 22:45:19 +00:00
Peter Eisentraut
851f766115 array_ref() should set isNull to false explicitly if it's not going to
return NULL.
2002-03-01 22:17:10 +00:00
Tom Lane
54f7f62d4a Fix thinko: cost_mergejoin must pay attention to which side of the
mergeclause is which when extracting selectivity info.
2002-03-01 20:50:20 +00:00
Hiroshi Inoue
e1716475e4 Add files for Unicode support. 2002-03-01 07:18:34 +00:00
Tom Lane
8f0a9e85b3 Second thoughts dept: arrange to cache mergejoin scan selectivity
in RestrictInfo nodes, instead of recomputing on every use.
2002-03-01 06:01:20 +00:00
Tom Lane
f8c109528c Teach planner about the idea that a mergejoin won't necessarily read
both input streams to the end.  If one variable's range is much less
than the other, an indexscan-based merge can win by not scanning all
of the other table.  Per example from Reinhard Max.
2002-03-01 04:09:28 +00:00
Tom Lane
fdc60bd9d9 Tweak pg_exec_query_string so that we close down transaction command
before reporting command-complete message for the final command of a
query string.  This way, any errors detected during finish_xact_command
(such as RI violations) will appear to be part of the final command,
rather than coming out after the command is reported complete.  This
avoids confusing PQendcopy and other not-overly-bright clients.
Per Lee Harr's bug report of 25-Feb-02.
2002-02-27 23:16:07 +00:00
Tom Lane
af1b72d83b #ifdef out pg_dump's check on whether a sequence's sequence_name field
matches the sequence name from pg_class.  This fails if the sequence has
been renamed, and seems rather pointless in any case.
Also improve a couple of error messages about inconsistencies.
2002-02-27 20:59:05 +00:00
Tom Lane
04cb9a6a16 Paranoia about data structure lifetime ... 2002-02-27 19:52:41 +00:00
Tom Lane
6779c55c22 Clean up BeginCommand and related routines. BeginCommand and EndCommand
are now both invoked once per received SQL command (raw parsetree) from
pg_exec_query_string.  BeginCommand is actually just an empty routine
at the moment --- all its former operations have been pushed into tuple
receiver setup routines in printtup.c.  This makes for a clean distinction
between BeginCommand/EndCommand (once per command) and the tuple receiver
setup/teardown routines (once per ExecutorRun call), whereas the old code
was quite ad hoc.  Along the way, clean up the calling conventions for
ExecutorRun a little bit.
2002-02-27 19:36:13 +00:00
Hiroshi Inoue
fc3726b4b9 Improve the handling of ODBC escape(a request from Marcelo Aceto).
Change SQLGetFunctions() to reply not yet implemented ODBC 3.0
functions precisely.
2002-02-27 01:43:24 +00:00
Tatsuo Ishii
21f9a654f0 Fix bug in COPY FROM when DELIMITER is not in ASCII range.
See pgsql-bugs/pgsql-hackers discussion "COPY FROM is not 8bit clean"
around 2002/02/26 for more details -- Tatsuo Ishii
2002-02-27 01:34:41 +00:00
Tom Lane
56ee2ecba9 Restructure command-completion-report code so that there is just one
report for each received SQL command, regardless of rewriting activity.
Also ensure that this report comes from the 'original' command, not the
last command generated by rewrite; this fixes 7.2 breakage for INSERT
commands that have actions added by rules.  Fernando Nasser and Tom Lane.
2002-02-26 22:47:12 +00:00
Dave Cramer
7776319a7e Implementation for cancelQuery by Grant Finnemore <grantf@guruhut.co.za> 2002-02-26 02:15:55 +00:00
Tom Lane
29e3ef0fe9 Use quote-marks to try to clarify a plpgsql error message, per
gripe from Dan Langille.
2002-02-26 00:00:08 +00:00
Tom Lane
86a07143d4 Tweak psql's \connect command to not downcase unquoted database and user
names.  This is a temporary measure to allow backwards compatibility with
7.2 and earlier pg_dump.  7.2.1 and later pg_dump will double-quote mixed
case names in \connect.  Once we feel that older dumps are not a problem
anymore, we can revert this change and treat \connect arguments as normal
SQL identifiers.
2002-02-25 21:37:42 +00:00
Bruce Momjian
f75e16d459 Fix for PAM error message display:
> and that the right fix is to make each of the subsequent calls be in
> this same pattern, not to try to emulate their nonsensical style.

Dominic J. Eidson
2002-02-25 20:07:02 +00:00
Tom Lane
f70a7e3832 Add note that BLCKSZ must be a power of 2. 2002-02-25 17:11:22 +00:00
Thomas G. Lockhart
c1911c94e9 Add a large number of time zones to the lookup table.
Fix a few apparently-wrong TZ vs DTZ declarations.
2002-02-25 16:17:04 +00:00
Bruce Momjian
b4a09eaaad This patch will allow arbitrary levels of analyze / rewriting
by making the static variables extra_before and extra_after
automatic so we can use recursion.

It gets much easier to generate extra commands now, and one can rest
assured that the extra commands will be properly analyzed/rewritten.


Without this patch, if a command produced by transformation tries to
use these static lists their first contents would be lost with
unpredictable results.  I know I could fix this by just using nconc()
instead of assignments, but the resulting order of the commands would
not be exactly what one could expect.

--
Fernando Nasser
2002-02-25 04:21:55 +00:00
Bruce Momjian
f5dff44736 I've attached a simple patch which should improve the performance of
hashname() and reduce the penalty incured when NAMEDATALEN is increased.
I posted this to -hackers a couple days ago, and there haven't been any
major complaints. It passes the regression tests. See -hackers for more
discussion, as well as the suggestion from Tom Lane on which this patch
is based.

Unless anyone sees any problems, please apply for 7.3.

Cheers,

Neil Conway
2002-02-25 04:06:52 +00:00
Bruce Momjian
eb54314bb7 Re-add equals documentation with CREATE DATABASE. 2002-02-25 03:37:14 +00:00
Bruce Momjian
95ec9ff2f7 Remove documentation of equals in CREATE DATABASE. Mention removal of
equals hack for the future.
2002-02-25 02:53:46 +00:00
Tom Lane
c3fe58ed63 Fix bogus createdb option syntax recommended by initlocation message. 2002-02-24 23:59:36 +00:00
Tom Lane
75e5e20d0e Add -O/--owner switch to createdb script, in support of new OWNER option
for CREATE DATABASE.
2002-02-24 23:27:58 +00:00
Tom Lane
36d2cc1d57 Modify pg_dumpall so that output script uses new OWNER option of CREATE
DATABASE; also make it use SET SESSION AUTHORIZATION commands rather than
\connect commands.  This makes it possible to restore databases belonging
to users who do not have CREATEDB privilege.  It should also become at
least somewhat feasible to run the restore script under password
authentication --- you'll get one superuser password prompt per database,
rather than a large number of challenges for passwords belonging to
varying unspecified user names.
2002-02-24 21:57:23 +00:00
Tom Lane
a833c441fd Add OWNER option to CREATE DATABASE, so superusers can create databases
on behalf of unprivileged users.  Also, make '=' optional in CREATE
DATABASE syntax.  From Gavin Sherry, with kibitzing and docs by Tom Lane.
2002-02-24 20:20:21 +00:00
Dave Cramer
f66f7a542f compiles correctly but still doesn't work with jdk 1.4 2002-02-24 16:12:51 +00:00
Bruce Momjian
87675fab6f pgindent copy.c. Patch wasn't in proper format. 2002-02-24 02:33:33 +00:00
Bruce Momjian
0cd8cb1a03 Free files on dir open failure in COPY. 2002-02-24 02:32:26 +00:00
Bruce Momjian
b3199bc9fa OK'ed by Peter.
The attached patch enables plperl to build under Cygwin.  It is
basically yet another BE_DLLLIBS patch with a perl MakeMaker twist.  I
tried the patch under Red Hat 7.1 Linux too and I did not observe any
ill effects.

Jason Tishler
2002-02-23 21:49:10 +00:00
Bruce Momjian
5f644ea699 Add fstat / S_ISDIR checks to make sure we're not trying to use a
directory for COPY TO/FROM.

Brent Verner
2002-02-23 21:46:03 +00:00
Bruce Momjian
ec4027f85b Feature patch per prev thread for --with-tcl, only affects AIX
patch is low risc, thus could be applied now, but can also wait for 7.3
Old Makefile shows, that -bnoentry is available since 4.1 .

Andreas Zeugswetter
2002-02-23 21:25:35 +00:00
Tom Lane
9a279da73d Guard against createdb --location=PGDATA foo; without this, the code
tries to create a symlink pointing at itself.  Per trouble report from
Kenneth McDowell.
2002-02-23 20:55:46 +00:00
Peter Eisentraut
42c3381fc7 Heimdal support (Kerberos V implementation from KTH) 2002-02-23 04:17:47 +00:00
Peter Eisentraut
0055a39390 Add -Wno-error to CFLAGS, so the rest of the tree can compile with
-Werror.
2002-02-23 04:16:04 +00:00
Peter Eisentraut
51f195580f Save source of GUC settings, allowing different sources to be processed in
any order without affecting results.
2002-02-23 01:31:37 +00:00
Bruce Momjian
ab786f6299 Make factorial(0) return 1, as per spec. 2002-02-23 01:01:30 +00:00
Bruce Momjian
73732ef914 We had a problem with to compile pgsql-7.2 under SW-8.0.
In the mailing lists I found no informations.
See note for further informations.

Add missing AuthBlockSig.

regards Heiko
2002-02-22 15:39:42 +00:00
Dave Cramer
391e1f7b7f fixed compile error 2002-02-22 03:22:31 +00:00
Dave Cramer
8c17e4e0fc This patch fixes the exception thrown to inform the user the method
getColumnClassName(int) is not implemented. This will futher fixes method
ResultSet.getObject(int) since it requires the getColumnClassName(int) method to return the proper java class used to map the database column.

auther Ed Yu
2002-02-22 02:58:24 +00:00
Dave Cramer
deaad93462 Patch from Cormac Twomey
fixes getIndexInfo throwing NullPointerException
fixes getIndexInfo improper results when multiple key indexs are used
2002-02-22 02:40:09 +00:00
Dave Cramer
0786c61c14 Patch from Cormac Twomey
fixes getIndexInfo throwing NullPointerException
fixes getIndexInfo improper results when multiple key indexs are used
2002-02-22 02:17:13 +00:00
Dave Cramer
178961ad47 now compiles clean with jdk 1.4 2002-02-22 02:07:30 +00:00
Tom Lane
a40c17e17d Fix comment. 2002-02-20 22:47:12 +00:00
Tom Lane
d9b01c13a6 Avoid failures in cash_out and cash_words for INT_MIN.
Also, 'fourty' -> 'forty'.
2002-02-19 22:19:34 +00:00
Tom Lane
2220a2b5d7 Add casts to suppress gcc warnings on Solaris (where apparently pid_t
is different from int).
2002-02-19 20:45:04 +00:00
Tom Lane
7863404417 A bunch of changes aimed at reducing backend startup time...
Improve 'pg_internal.init' relcache entry preload mechanism so that it is
safe to use for all system catalogs, and arrange to preload a realistic
set of system-catalog entries instead of only the three nailed-in-cache
indexes that were formerly loaded this way.  Fix mechanism for deleting
out-of-date pg_internal.init files: this must be synchronized with transaction
commit, not just done at random times within transactions.  Drive it off
relcache invalidation mechanism so that no special-case tests are needed.

Cache additional information in relcache entries for indexes (their pg_index
tuples and index-operator OIDs) to eliminate repeated lookups.  Also cache
index opclass info at the per-opclass level to avoid repeated lookups during
relcache load.

Generalize 'systable scan' utilities originally developed by Hiroshi,
move them into genam.c, use in a number of places where there was formerly
ugly code for choosing either heap or index scan.  In particular this allows
simplification of the logic that prevents infinite recursion between syscache
and relcache during startup: we can easily switch to heapscans in relcache.c
when and where needed to avoid recursion, so IndexScanOK becomes simpler and
does not need any expensive initialization.

Eliminate useless opening of a heapscan data structure while doing an indexscan
(this saves an mdnblocks call and thus at least one kernel call).
2002-02-19 20:11:20 +00:00