Tom Lane [Mon, 6 May 2002 19:47:30 +0000 (19:47 +0000)]
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.
Tom Lane [Mon, 6 May 2002 02:39:01 +0000 (02:39 +0000)]
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.
Tom Lane [Sun, 5 May 2002 00:03:29 +0000 (00:03 +0000)]
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.
Tom Lane [Fri, 3 May 2002 20:15:02 +0000 (20:15 +0000)]
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.
Tom Lane [Fri, 3 May 2002 00:32:19 +0000 (00:32 +0000)]
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.
Tom Lane [Thu, 2 May 2002 18:44:11 +0000 (18:44 +0000)]
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.
Tom Lane [Wed, 1 May 2002 23:06:41 +0000 (23:06 +0000)]
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.
Tom Lane [Wed, 1 May 2002 17:12:08 +0000 (17:12 +0000)]
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.
Tom Lane [Tue, 30 Apr 2002 01:26:26 +0000 (01:26 +0000)]
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.
Tom Lane [Sun, 28 Apr 2002 19:54:29 +0000 (19:54 +0000)]
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.
Tom Lane [Sat, 27 Apr 2002 21:24:34 +0000 (21:24 +0000)]
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.
Tom Lane [Sat, 27 Apr 2002 03:45:03 +0000 (03:45 +0000)]
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.
Tom Lane [Fri, 26 Apr 2002 19:29:47 +0000 (19:29 +0000)]
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.
Add checking for syslog.h
Enable multibyte support by default. Note that this is the first cut,
and I'm gloing to remove #ifdef MULTIBYTE and others step by step...
Tom Lane [Fri, 26 Apr 2002 01:24:08 +0000 (01:24 +0000)]
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.
Tom Lane [Thu, 25 Apr 2002 02:56:56 +0000 (02:56 +0000)]
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.
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:
Bruce Momjian [Wed, 24 Apr 2002 02:48:55 +0000 (02:48 +0000)]
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.
Bruce Momjian [Wed, 24 Apr 2002 02:45:51 +0000 (02:45 +0000)]
I've improved the contributed vacuumlo command, now it behaves like all other
postgres command line utilites e.g. supports -U, -p, -h, -?, -v, password
prompt and has a "test mode". In test mode, no large objects are removed,
just reported.
Bruce Momjian [Wed, 24 Apr 2002 02:44:19 +0000 (02:44 +0000)]
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.
Bruce Momjian [Wed, 24 Apr 2002 02:40:45 +0000 (02:40 +0000)]
Oops, wrong commit on previous. It was:
The attached patch allows views to have default values. You can't
specify a default value within a CREATE VIEW statement, it must be
done using ALTER TABLE ... ALTER COLUMN ... SET DEFAULT after the
view has already been created. Most of the hard work was done by
Tom Lane, I just patched pg_dump and updated the documentation.
Bruce Momjian [Wed, 24 Apr 2002 02:28:28 +0000 (02:28 +0000)]
Attached is an update to contrib/dblink. Please apply if there are no
objections.
Major changes:
- removed cursor wrap around input sql to allow for remote
execution of INSERT/UPDATE/DELETE
- dblink now returns a resource id instead of a real pointer
- added several utility functions
I'm still hoping to add explicit cursor open/fetch/close support before
7.3 is released, but I need a bit more time on that.
On a somewhat unrelated topic, I never got any feedback on the
unknownin/out patch and the mb_substring patch. Is there anything else I
need to do to get those applied?
Bruce Momjian [Wed, 24 Apr 2002 02:26:06 +0000 (02:26 +0000)]
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).
Bruce Momjian [Wed, 24 Apr 2002 02:12:53 +0000 (02:12 +0000)]
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.
Bruce Momjian [Wed, 24 Apr 2002 01:58:31 +0000 (01:58 +0000)]
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.
Bruce Momjian [Wed, 24 Apr 2002 01:51:11 +0000 (01:51 +0000)]
[ 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).
Bruce Momjian [Tue, 23 Apr 2002 23:46:37 +0000 (23:46 +0000)]
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.
Tom Lane [Tue, 23 Apr 2002 15:45:30 +0000 (15:45 +0000)]
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.