OSDN Git Service
Tom Lane [Wed, 22 May 2002 18:33:15 +0000 (18:33 +0000)]
Minor kibitzing.
Peter Eisentraut [Wed, 22 May 2002 17:21:02 +0000 (17:21 +0000)]
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.
Tom Lane [Wed, 22 May 2002 15:57:40 +0000 (15:57 +0000)]
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).
Tom Lane [Wed, 22 May 2002 15:35:43 +0000 (15:35 +0000)]
Un-break table creation.
Hiroshi Inoue [Wed, 22 May 2002 07:46:58 +0000 (07:46 +0000)]
Allow
CREATE VIEW as SELECT CTID, ....
SELECT currtid( a view, ..).
Hiroshi Inoue [Wed, 22 May 2002 05:51:03 +0000 (05:51 +0000)]
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.
Tom Lane [Tue, 21 May 2002 22:59:01 +0000 (22:59 +0000)]
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.
Tom Lane [Tue, 21 May 2002 22:18:08 +0000 (22:18 +0000)]
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.
Tom Lane [Tue, 21 May 2002 22:05:55 +0000 (22:05 +0000)]
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.
Tom Lane [Tue, 21 May 2002 19:06:00 +0000 (19:06 +0000)]
Spell long option with -c not --, for compatibility's sake.
Tom Lane [Tue, 21 May 2002 18:50:16 +0000 (18:50 +0000)]
Repair OPEN cursor(args), which I broke on 11/29/01 with a change to
be smarter about parentheses in read_sql_construct(). Sigh.
Tom Lane [Mon, 20 May 2002 23:51:44 +0000 (23:51 +0000)]
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.
Bruce Momjian [Mon, 20 May 2002 22:22:27 +0000 (22:22 +0000)]
Mark as done:
> o -Disallow missing columns in INSERT ... VALUES, per ANSI
Michael Meskes [Mon, 20 May 2002 09:29:41 +0000 (09:29 +0000)]
- 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.
Tatsuo Ishii [Mon, 20 May 2002 05:07:28 +0000 (05:07 +0000)]
Update docs about new -N option
Michael Meskes [Sun, 19 May 2002 20:00:53 +0000 (20:00 +0000)]
- Fixed reduce/reduce conflict in parser.
- Synced preproc.y with gram.y.
- Synced pgc.l with scan.l.
- Synced keywords.c.
Peter Eisentraut [Sun, 19 May 2002 15:16:55 +0000 (15:16 +0000)]
Reorder keyword token declarations alphabetically. Status of the keywords
in the various standards can be found in the documentation these days.
Peter Eisentraut [Sun, 19 May 2002 15:13:20 +0000 (15:13 +0000)]
Remove bitrotten view_perms test. Add some similar test cases to
privileges test.
Peter Eisentraut [Sun, 19 May 2002 10:08:25 +0000 (10:08 +0000)]
Dump privileges on functions, aggregates, languages.
Tom Lane [Sat, 18 May 2002 21:38:41 +0000 (21:38 +0000)]
Add display of sort keys to the default EXPLAIN output.
Tom Lane [Sat, 18 May 2002 18:49:41 +0000 (18:49 +0000)]
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).
Peter Eisentraut [Sat, 18 May 2002 15:44:48 +0000 (15:44 +0000)]
Revise command completion tags as per hackers message on 20 March.
Peter Eisentraut [Sat, 18 May 2002 13:48:01 +0000 (13:48 +0000)]
Allow functions to be executed with the privileges of the function owner.
I took the opportunity to remove the pg_proc.proistrusted field.
Tom Lane [Sat, 18 May 2002 02:25:50 +0000 (02:25 +0000)]
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.
Tom Lane [Sat, 18 May 2002 00:42:55 +0000 (00:42 +0000)]
Add missing fix_expr_references() step for the funcexpr of a
FunctionScan plan node.
Tom Lane [Fri, 17 May 2002 22:35:13 +0000 (22:35 +0000)]
Get rid of the last few uses of typeidTypeName() rather than
format_type_be() in error messages.
Tom Lane [Fri, 17 May 2002 20:53:33 +0000 (20:53 +0000)]
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.
Tom Lane [Fri, 17 May 2002 20:32:29 +0000 (20:32 +0000)]
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.
Peter Eisentraut [Fri, 17 May 2002 18:32:52 +0000 (18:32 +0000)]
Extend syntax of CREATE FUNCTION to resemble SQL99.
Tom Lane [Fri, 17 May 2002 02:20:26 +0000 (02:20 +0000)]
Guard against empty-string results from pg_getlocale.
Tom Lane [Fri, 17 May 2002 01:19:19 +0000 (01:19 +0000)]
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.
Tom Lane [Tue, 14 May 2002 18:47:58 +0000 (18:47 +0000)]
Fix obsolete statement about permissions on COPY ref page, and confusion
about TO/FROM direction in several places.
Tom Lane [Tue, 14 May 2002 18:16:51 +0000 (18:16 +0000)]
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.
Thomas G. Lockhart [Tue, 14 May 2002 13:37:27 +0000 (13:37 +0000)]
Fix lookup tables used for rounding interval data values when not using
integer datetimes. Thanks to Tom Lane for spotting the problem.
Peter Eisentraut [Tue, 14 May 2002 13:05:43 +0000 (13:05 +0000)]
Make regression tests locale-proof by setting some locale categories
to C at run-time, and providing alternative output files for different
sort orders.
Tatsuo Ishii [Tue, 14 May 2002 04:20:15 +0000 (04:20 +0000)]
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>.
Barry Lind [Tue, 14 May 2002 03:00:35 +0000 (03:00 +0000)]
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.
Tom Lane [Mon, 13 May 2002 20:39:43 +0000 (20:39 +0000)]
Fix typo in _copyAlterUserSetStmt.
Tom Lane [Mon, 13 May 2002 19:22:06 +0000 (19:22 +0000)]
AVG probably shouldn't be upper case here, considering
that we don't upcase the others.
Tom Lane [Mon, 13 May 2002 17:45:30 +0000 (17:45 +0000)]
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.
Tom Lane [Sun, 12 May 2002 23:43:04 +0000 (23:43 +0000)]
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.
Tom Lane [Sun, 12 May 2002 20:10:05 +0000 (20:10 +0000)]
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 ...
Tom Lane [Sat, 11 May 2002 02:09:41 +0000 (02:09 +0000)]
Update for additional options in CREATE OPERATOR.
Tom Lane [Sat, 11 May 2002 00:24:16 +0000 (00:24 +0000)]
Forgot to handle 'opaque' function arguments in regprocedurein/out.
Tom Lane [Fri, 10 May 2002 22:36:27 +0000 (22:36 +0000)]
First pass at schema-fying pg_dump/pg_restore. Much to do still,
but the basic capability seems to work.
Tom Lane [Fri, 10 May 2002 20:22:13 +0000 (20:22 +0000)]
Suppress duplicate logging of utility commands under debug_print_query.
Peter Eisentraut [Thu, 9 May 2002 13:30:24 +0000 (13:30 +0000)]
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.
Hiroshi Inoue [Thu, 9 May 2002 04:10:22 +0000 (04:10 +0000)]
Add a file for version control.
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 18:33:45 +0000 (18:33 +0000)]
Make dumpACL behave more reasonably for case where owner has revoked
some of his own privileges.
Tom Lane [Mon, 6 May 2002 17:34:45 +0000 (17:34 +0000)]
Cause fmtId to always use its internal buffer for the returned value,
in hopes of making erroneous usage more apparent. Per discussion 15-Apr.
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 17:50:04 +0000 (17:50 +0000)]
A little paranoia never hurt anyone.
Tom Lane [Sun, 5 May 2002 17:38:26 +0000 (17:38 +0000)]
plpgsql_dstring_append was broken for long strings.
Tom Lane [Sun, 5 May 2002 16:47:09 +0000 (16:47 +0000)]
Not needed anymore.
Tom Lane [Sun, 5 May 2002 16:14:24 +0000 (16:14 +0000)]
Add missing includes.
Tom Lane [Sun, 5 May 2002 16:02:37 +0000 (16:02 +0000)]
Add a trivial testbed for pg_sema and pg_shmem code.
Tom Lane [Sun, 5 May 2002 16:01:50 +0000 (16:01 +0000)]
Cope with case that SEM_FAILED is not defined (assume failure code is -1)
Tom Lane [Sun, 5 May 2002 01:03:26 +0000 (01:03 +0000)]
First test of Darwin port with POSIX semaphore code.
Tom Lane [Sun, 5 May 2002 00:50:31 +0000 (00:50 +0000)]
Fix code to work when isalpha and friends are macros, not functions.
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:43:30 +0000 (20:43 +0000)]
Fix compile errors in CYR_RECODE code, per report from Oliver Elphick.
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 17:42:11 +0000 (17:42 +0000)]
Fix obsolete comments.
Tom Lane [Fri, 3 May 2002 15:56:45 +0000 (15:56 +0000)]
Use quote_identifier on relation names in EXPLAIN output, per suggestion
from Liam Stewart. Minor code cleanups also.
Tom Lane [Fri, 3 May 2002 14:21:38 +0000 (14:21 +0000)]
Fix typo in usage instructions.
Tom Lane [Fri, 3 May 2002 04:11:08 +0000 (04:11 +0000)]
Remove the last traces of datatypes datetime and timespan.
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 21:44:43 +0000 (21:44 +0000)]
Fix backslash-n typo, per Joe Conway.
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 19:26:08 +0000 (19:26 +0000)]
Give left_oper() and right_oper() noError parameters like oper() (the
binary case) already has. Needed for upcoming ruleutils change.
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.
Jan Wieck [Wed, 1 May 2002 12:40:22 +0000 (12:40 +0000)]
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>
Hiroshi Inoue [Wed, 1 May 2002 01:23:37 +0000 (01:23 +0000)]
Change heap_get_latest_tid() so that a transaction can
see changes made by the transaction itself.
Tom Lane [Tue, 30 Apr 2002 21:01:52 +0000 (21:01 +0000)]
Fix obj_description() and col_description() functions to work reliably
in presence of schemas.
Tom Lane [Tue, 30 Apr 2002 19:53:03 +0000 (19:53 +0000)]
Document that NAMEDATALEN must be a multiple of sizeof(int).
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 [Tue, 30 Apr 2002 01:24:57 +0000 (01:24 +0000)]
Code review for ALTER TRIGGER RENAME patch: make better use of index,
don't scribble on tuple returned by table scan.
Tom Lane [Mon, 29 Apr 2002 22:28:19 +0000 (22:28 +0000)]
Enforce EXECUTE privilege for aggregate functions.
Tom Lane [Mon, 29 Apr 2002 22:15:07 +0000 (22:15 +0000)]
Implement checking of USAGE rights on namespaces.
Tom Lane [Mon, 29 Apr 2002 22:14:34 +0000 (22:14 +0000)]
Add cache invalidation callback hooks.
Tom Lane [Mon, 29 Apr 2002 17:30:18 +0000 (17:30 +0000)]
Add missing 'static' keyword to suppress compiler complaints.
gcc does not complain about this mistake, but other compilers do.
Tom Lane [Mon, 29 Apr 2002 04:10:02 +0000 (04:10 +0000)]
Remove unnecessary/obsolete regproctooid() references.
Bruce Momjian [Mon, 29 Apr 2002 02:57:18 +0000 (02:57 +0000)]
Add Polish FAQ from Marcin Mazurek.
Bruce Momjian [Sun, 28 Apr 2002 22:49:07 +0000 (22:49 +0000)]
Fix problem with new pg_hba.conf code where the same comparison function
was incorrectly used for both qsort and bsearch.
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.
Michael Meskes [Sun, 28 Apr 2002 17:20:03 +0000 (17:20 +0000)]
- Synced yet again.
- Fixed a typo in a comment printed by ecpg.
Tom Lane [Sun, 28 Apr 2002 00:49:13 +0000 (00:49 +0000)]
Make ruleutils.c use format_type for printing typenames. Minor tweaks
in quoting rules and recognition of implicit type coercions.
Tom Lane [Sun, 28 Apr 2002 00:36:38 +0000 (00:36 +0000)]
Minor code cleanup.
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.
Bruce Momjian [Sat, 27 Apr 2002 15:30:07 +0000 (15:30 +0000)]
Fix write of pg_pwd file for multiple users. Broken recently by my
pg_hba.conf changes.
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.
Bruce Momjian [Sat, 27 Apr 2002 03:04:08 +0000 (03:04 +0000)]
Update DROP COLUMN example to use transactions and rollback-able DROP TABLE>
Tom Lane [Fri, 26 Apr 2002 19:47:35 +0000 (19:47 +0000)]
Fix typo.
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.
Bruce Momjian [Fri, 26 Apr 2002 18:32:44 +0000 (18:32 +0000)]
Updated:
> o Abort all SET changes made in an aborted transaction
Tatsuo Ishii [Fri, 26 Apr 2002 13:55:38 +0000 (13:55 +0000)]
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 21:47:07 +0000 (21:47 +0000)]
Add a reference page for CREATE SCHEMA.