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.
Tom Lane [Sat, 6 Apr 2002 06:59:25 +0000 (06:59 +0000)]
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.
Bruce Momjian [Fri, 5 Apr 2002 11:58:24 +0000 (11:58 +0000)]
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.
Bruce Momjian [Fri, 5 Apr 2002 11:52:38 +0000 (11:52 +0000)]
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.
Bruce Momjian [Fri, 5 Apr 2002 11:39:47 +0000 (11:39 +0000)]
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, ... .
Bruce Momjian [Fri, 5 Apr 2002 11:38:13 +0000 (11:38 +0000)]
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.
Tom Lane [Fri, 5 Apr 2002 05:47:05 +0000 (05:47 +0000)]
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.
Tom Lane [Fri, 5 Apr 2002 00:31:36 +0000 (00:31 +0000)]
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).
Bruce Momjian [Thu, 4 Apr 2002 06:27:45 +0000 (06:27 +0000)]
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.
Bruce Momjian [Thu, 4 Apr 2002 04:25:54 +0000 (04:25 +0000)]
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
Tom Lane [Wed, 3 Apr 2002 00:44:27 +0000 (00:44 +0000)]
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...
Tom Lane [Wed, 3 Apr 2002 00:27:25 +0000 (00:27 +0000)]
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.
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 ...
Barry Lind [Tue, 2 Apr 2002 06:24:10 +0000 (06:24 +0000)]
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.
Tom Lane [Tue, 2 Apr 2002 05:11:55 +0000 (05:11 +0000)]
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.
Tom Lane [Mon, 1 Apr 2002 22:36:13 +0000 (22:36 +0000)]
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.
Tom Lane [Mon, 1 Apr 2002 03:34:27 +0000 (03:34 +0000)]
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.
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.
Tom Lane [Mon, 1 Apr 2002 02:02:34 +0000 (02:02 +0000)]
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.
Tom Lane [Sun, 31 Mar 2002 07:49:30 +0000 (07:49 +0000)]
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.
Tom Lane [Sat, 30 Mar 2002 01:02:42 +0000 (01:02 +0000)]
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.
Tom Lane [Fri, 29 Mar 2002 19:06:29 +0000 (19:06 +0000)]
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.
Peter Eisentraut [Fri, 29 Mar 2002 17:32:55 +0000 (17:32 +0000)]
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.
Hiroshi Inoue [Thu, 28 Mar 2002 08:08:07 +0000 (08:08 +0000)]
[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.
Barry Lind [Wed, 27 Mar 2002 05:33:27 +0000 (05:33 +0000)]
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)
Tom Lane [Tue, 26 Mar 2002 19:17:02 +0000 (19:17 +0000)]
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.
Barry Lind [Tue, 26 Mar 2002 05:52:50 +0000 (05:52 +0000)]
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
Tom Lane [Sun, 24 Mar 2002 04:31:09 +0000 (04:31 +0000)]
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.
Tom Lane [Fri, 22 Mar 2002 02:56:37 +0000 (02:56 +0000)]
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.
Tom Lane [Thu, 21 Mar 2002 23:27:25 +0000 (23:27 +0000)]
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.
Tom Lane [Thu, 21 Mar 2002 16:02:16 +0000 (16:02 +0000)]
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.