Commit Graph

4757 Commits

Author SHA1 Message Date
Tom Lane 4b2dafcc0b Align GRANT/REVOKE behavior more closely with the SQL spec, per discussion
of bug report #1150.  Also, arrange that the object owner's irrevocable
grant-option permissions are handled implicitly by the system rather than
being listed in the ACL as self-granted rights (which was wrong anyway).
I did not take the further step of showing these permissions in an
explicit 'granted by _SYSTEM' ACL entry, as that seemed more likely to
bollix up existing clients than to do anything really useful.  It's still
a possible future direction, though.
2004-06-01 21:49:23 +00:00
Bruce Momjian a1bd1d70d6 Update pg_dump -v comments to mention additional comments in dump file. 2004-05-31 13:37:52 +00:00
Bruce Momjian f024086db3 Done:
> 	o -Allow Java server-side programming
2004-05-31 02:58:43 +00:00
Bruce Momjian 95cdafd333 Remove pljava todo info. 2004-05-31 02:58:09 +00:00
Bruce Momjian d157b7bbc7 Document new pg_ctl 'kill' command, specificially for Win32. 2004-05-27 03:50:25 +00:00
Tom Lane c792cbcc26 Recommend ALTER TABLE ... TYPE as the best way to reclaim space occupied by deleted columns. The old method involving UPDATE and VACUUM FULL will be considerably less efficient. 2004-05-27 03:30:11 +00:00
Neil Conway 92b0b080eb Add an index entry for "Performance Tips". Patch from Alvaro Herrera. 2004-05-27 01:00:40 +00:00
Bruce Momjian ffef9b8c50 AIX doc addition:
> FWIW, the section on configuring kernel resources under various
> Unixen[1] doesn't have any documentation for AIX. If someone out there
> knows which knobs need to be tweaked, would they mind sending in a doc
> patch? (Or just specifying what needs to be done, and I'll add the
> SGML.)

After verifying that nobody wound up messing with the kernel
parameters, here's a docs patch...

 Chris Browne
2004-05-26 18:51:43 +00:00
Bruce Momjian 97d625dd1c *) inet_(client|server)_(addr|port)() and necessary documentation for
the four functions.


> Also, please justify the temp-related changes.  I was not aware that we
> had any breakage there.

patch-tmp-schema.txt contains the following bits:

*) Changes pg_namespace_aclmask() so that the superuser is always able
to create objects in the temp namespace.
*) Changes pg_namespace_aclmask() so that if this is a temp namespace,
objects are only allowed to be created in the temp namespace if the
user has TEMP privs on the database.  This encompasses all object
creation, not just TEMP tables.
*) InitTempTableNamespace() checks to see if the current user, not the
session user, has access to create a temp namespace.

The first two changes are necessary to support the third change.  Now
it's possible to revoke all temp table privs from non-super users and
limiting all creation of temp tables/schemas via a function that's
executed with elevated privs (security definer).  Before this change,
it was not possible to have a setuid function to create a temp
table/schema if the session user had no TEMP privs.

patch-area-path.txt contains:

*) Can now determine the area of a closed path.


patch-dfmgr.txt contains:

*) Small tweak to add the library path that's being expanded.

I was using $lib/foo.so and couldn't easily figure out what the error
message, "invalid macro name in dynamic library path" meant without
looking through the source code.  With the path in there, at least I
know where to start looking in my config file.

Sean Chittenden
2004-05-26 18:35:51 +00:00
Bruce Momjian 8096fe45ce The added aggregates are:
(1) boolean-and and boolean-or aggregates named bool_and and bool_or.
    they (SHOULD;-) correspond to standard sql every and some/any aggregates.
    they do not have the right name as there is a problem with
    the standard and the parser for some/any. Tom also think that
    the standard name is misleading because NULL are ignored.
    Also add 'every' aggregate.

(2) bitwise integer aggregates named bit_and and bit_or for
    int2, int4, int8 and bit types. They are not standard, but I find
    them useful. I needed them once.


The patches adds:

- 2 new very short strict functions for boolean aggregates in
  src/backed/utils/adt/bool.c,
  src/include/utils/builtins.h and src/include/catalog/pg_proc.h

- the new aggregates declared in src/include/catalog/pg_proc.h and
  src/include/catalog/pg_aggregate.h

- some documentation and validation about these new aggregates.

Fabien COELHO
2004-05-26 15:26:28 +00:00
Bruce Momjian 3dc37cd8d6 The patch adresses the TODO list item "Allow external interfaces to
extend the GUC variable set".

Plugin modules like the pl<lang> modules needs a way to declare
configuration parameters. The postmaster has no knowledge of such
modules when it reads the postgresql.conf file. Rather than allowing
totally unknown configuration parameters, the concept of a variable
"class" is introduced. Variables that belongs to a declared classes will
create a placeholder value of string type and will not generate an
error. When a module is loaded, it will declare variables for such a
class and make those variables "consume" any placeholders that has been
defined. Finally, the module will generate warnings for unrecognized
placeholders defined for its class.

More detail:
The design is outlined after the suggestions made by Tom Lane and Joe
Conway in this thread:

http://archives.postgresql.org/pgsql-hackers/2004-02/msg00229.php

A new string variable 'custom_variable_classes' is introduced. This
variable is a comma separated string of identifiers. Each identifier
denots a 'class' that will allow its members to be added without error.
This variable must be defined in postmaster.conf.

The lexer (guc_file.l) is changed so that it can accept a qualified name
in the form <ID>.<ID> as the name of a variable. I also changed so that
the 'custom_variable_classes', if found, is added first of all variables
in order to remove the order of declaration issue.

The guc_variables table is made more dynamic. It is originally created
with 20% slack and can grow dynamically. A capacity is introduced to
avoid resizing every time a new variable is added. guc_variables and
num_guc_variables becomes static (hidden).

The GucInfoMain now uses the new function get_guc_variables() and
GetNumConfigOptions  instead or using the guc_variables directly.

The find_option() function, when passed a missing name, will check if
the name is qualified. If the name is qualified and if the qualifier
denotes a class included in the 'custom_variable_classes', a placeholder
variable will be created. Such a placeholder will not participate in a
list operation but will otherwise function as a normal string variable.

Define<type>GucVariable() functions will be added, one for each variable
type. They are inteded to be used by add-on modules like the pl<lang>
mappings. Example:

extern void DefineCustomBoolVariable(
         const char* name,
         const char* short_desc,
         const char* long_desc,
         bool* valueAddr,
         GucContext context,
         GucBoolAssignHook assign_hook,
         GucShowHook show_hook);

(I created typedefs for the assign-hook and show-hook functions). A call
to these functions will define a new GUC-variable. If a placeholder
exists it will be replaced but it's value will be used in place of the
default value. The valueAddr is assumed ot point at a default value when
the define function is called. The only constraint that is imposed on a
Custom variable is that its name is qualified.

Finally, a function:

void EmittWarningsOnPlacholders(const char* className)

was added. This function should be called when a module has completed
its variable definitions. At that time, no placeholders should remain
for the class that the module uses. If they do, elog(INFO, ...) messages
will be issued to inform the user that unrecognized variables are
present.

Thomas Hallgren
2004-05-26 15:07:41 +00:00
Bruce Momjian cfbfdc557d This patch implement the TODO [ALTER DATABASE foo OWNER TO bar].
It was necessary to touch in grammar and create a new node to make home
to the new syntax. The command is also supported in E
CPG. Doc updates are attached too. Only superusers can change the owner
of the database. New owners don't need any aditional
privileges.

Euler Taveira de Oliveira
2004-05-26 13:57:04 +00:00
Bruce Momjian daac2d2c48 Update Russian FAQ.
Viktor Vislobokov
2004-05-24 15:14:52 +00:00
Neil Conway 2b3f6ecdf5 Clarify an entry in the 7.4 release notes. 2004-05-24 04:54:22 +00:00
Bruce Momjian ffd1880bb4 Add:
> * Allow GRANT/REVOKE permissions to be given to all schema objects with one command
2004-05-24 03:23:00 +00:00
Tom Lane 5fc1046f2f Fix broken markup. 2004-05-23 15:13:43 +00:00
Neil Conway bfa1171c84 Fix a few more minor errors in the 7.4 release notes. 2004-05-22 11:06:55 +00:00
Neil Conway 76e70108e7 Fix typo in an entry in the 7.4 release notes. 2004-05-22 09:48:15 +00:00
Tom Lane 63bd0db121 Integrate src/timezone library for all platforms. There is more we can
and should do now that we control our own destiny for timezone handling,
but this commit gets the bulk of the picayune diffs in place.
Magnus Hagander and Tom Lane.
2004-05-21 05:08:06 +00:00
Bruce Momjian 40296aa2ec Remove pyton, spell check fix:
> * Support composite types as table columns
286,289d286
< * Python
< 	o Allow users to register their own types with pg_
< 	o Allow SELECT to return a dictionary of dictionaries
< 	o Allow COPY BINARY FROM
456d452
< * Support composite types as table columns
2004-05-20 16:36:14 +00:00
Bruce Momjian 8027065660 Updates from Tom:
< Bracketed items "[]" have more detailed.
> Bracketed items "[]" have more detail.
35,36d34
< * Remove unreferenced table files and temp tables during database vacuum
<   or postmaster startup (Bruce)
68c66
< * Allow pg_dump to dump sequences using NO_MAXVALUE and NO_MINVALUE
> * -Allow pg_dump to dump sequences using NO_MAXVALUE and NO_MINVALUE
70c68
< * Prevent whole-row references from leaking memory, e.g. SELECT COUNT(tab.*)
> * -Prevent whole-row references from leaking memory, e.g. SELECT COUNT(tab.*)
76c74
< * Make LENGTH() of CHAR() not count trailing spaces
> * -Make LENGTH() of CHAR() not count trailing spaces
145c143
< * Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
> * -Allow SELECT * FROM tab WHERE int2col = 4 to use int2col index, int8,
179c177
< * Allow more ISOLATION LEVELS to be accepted, but issue a warning for them
> * -Allow more ISOLATION LEVELS to be accepted
186c184
< * Add GUC setting to make created tables default to WITHOUT OIDS
> * -Add GUC setting to make created tables default to WITHOUT OIDS
265d262
< * Allow fastpast to pass values in portable format
271c268
< * Move psql backslash database information into the backend, use nmumonic
> * Move psql backslash database information into the backend, use nmeumonic
275,283d271
< * JDBC
< 	o Comprehensive test suite. This may be available already.
< 	o JDBC-standard BLOB support
< 	o Error Codes (pending backend implementation)
< 	o Support both 'make' and 'ant'
< 	o Fix LargeObject API to handle OIDs as unsigned ints
< 	o Use cursors implicitly to avoid large results (see setCursorName())
< 	o Add LISTEN/NOTIFY support to the JDBC driver (Barry)
<
332c320
< * Have pg_dump -c clear the database using dependency information
> * -Have pg_dump -c clear the database using dependency information
367,368c355,356
< * Cache last known per-tuple offsets to speed long tuple access
< * Automatically place fixed-width, NOT NULL columns first in a table
> * Cache last known per-tuple offsets to speed long tuple access, adjusting
>   for NULLs and TOAST values
467c455,456
< * Change representation of whole-tuple parameters to functions
> * -Change representation of whole-tuple parameters to functions
> * Support composite types as table columns
478,479d466
< * Allow the regression tests to start postmaster with -i so the tests
<   can be run on systems that don't support unix-domain sockets
2004-05-20 15:57:26 +00:00
Bruce Momjian bb206b6dce Update SCO FAQ.
Larry Rosenman
2004-05-20 04:19:26 +00:00
Bruce Momjian 3e485d0ea1 Add:
> * Investigate SMP context switching issues
2004-05-20 04:10:44 +00:00
Bruce Momjian 4714dcb06c Remove item:
< * Allow col IS TRUE/FALSE use an index like col = TRUE/FALSE
2004-05-20 03:27:16 +00:00
Bruce Momjian 5f55347e33 Add:
> 	o Add default clustering to system tables
2004-05-20 02:58:18 +00:00
Bruce Momjian f92630bdca Add:
> 	o Add ALTER DOMAIN TYPE
2004-05-20 02:07:50 +00:00
Bruce Momjian 0ca0099139 Add:
> * Allow col IS TRUE/FALSE use an index like col = TRUE/FALSE
2004-05-20 02:01:00 +00:00
Bruce Momjian d5003e5221 Document &< and &> properly.
William White <bwhite@frognet.net>
2004-05-19 23:56:38 +00:00
Bruce Momjian 24a1fafc8d Clearify CHECK handling of unknown test values.
Karl O. Pinc
2004-05-19 23:10:43 +00:00
Bruce Momjian 952c772158 Done:
> * -Make pg_restore continue after errors, so it acts more like pg_dump scripts
2004-05-19 21:09:53 +00:00
Bruce Momjian 4c82cb9d40 Trim down relocatable docs, per Peter. 2004-05-18 21:46:25 +00:00
Bruce Momjian dcf459e662 Add some documentation on relocatable installs. 2004-05-18 20:34:01 +00:00
Bruce Momjian da401bd314 Add:
> * Allow binaries to be statically linked so they are more easily relocated
2004-05-18 16:06:08 +00:00
Bruce Momjian e30efa0da1 Update Russian FAQ.
Viktor Vislobokov
2004-05-18 13:18:30 +00:00
Bruce Momjian d14db1321b Add documentation that installations are relocatable unless configure
locations are overridden.
2004-05-17 16:06:25 +00:00
Bruce Momjian 2657c24b6d Reformat sgml doc paragraph. 2004-05-17 15:00:50 +00:00
Neil Conway 8295c27c89 Add documentation for the new "dollar quoting" feature, and update existing
examples to use dollar quoting when appropriate. Original patch from David
Fetter, additional work and editorializing by Neil Conway.
2004-05-16 23:22:08 +00:00
Neil Conway 2871f60f23 Change ln(), log(), power(), and sqrt() to emit the correct SQLSTATE
error codes for certain error conditions, as specified by SQL2003.
2004-05-16 23:18:55 +00:00
Bruce Momjian 335cf9ae7f Restore one mention of logrotate, per Peter. 2004-05-16 19:34:46 +00:00
Neil Conway 0079547bcb Implement the width_bucket() function, per SQL2003. This commit only adds
a variant of the function for the 'numeric' datatype; it would be possible
to add additional variants for other datatypes, but I haven't done so yet.

This commit includes regression tests and minimal documentation; if we
want developers to actually use this function in applications, we'll
probably need to document what it does more fully.
2004-05-14 21:42:30 +00:00
Bruce Momjian 19a495caaa Properly document rotatelogs, and add mention of it to pg_ctl manual page. 2004-05-14 20:01:19 +00:00
Neil Conway 0cb27df5c6 Improve documentation for SQLSTATE error codes, per recent thread on
-patches.
2004-05-14 18:04:02 +00:00
Bruce Momjian 3bfd4d9284 Remove:
< 	o Add PL/PHP (Joe)
2004-05-12 04:10:41 +00:00
Bruce Momjian 270c9aa34a Add DELETE:
> * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules, triggers?)
2004-05-11 20:23:05 +00:00
Bruce Momjian f739deb50f Add mention of rules/triggers:
> * Add MERGE command that does UPDATE, or on failure, INSERT (rules, triggers?)
2004-05-11 13:44:05 +00:00
Tom Lane 2f63232d30 Promote row expressions to full-fledged citizens of the expression syntax,
rather than allowing them only in a few special cases as before.  In
particular you can now pass a ROW() construct to a function that accepts
a rowtype parameter.  Internal generation of RowExprs fixes a number of
corner cases that used to not work very well, such as referencing the
whole-row result of a JOIN or subquery.  This represents a further step in
the work I started a month or so back to make rowtype values into
first-class citizens.
2004-05-10 22:44:49 +00:00
Neil Conway 9a939886ac Fix typo. 2004-05-10 21:08:28 +00:00
Bruce Momjian b071a40068 Add:
> * Add MERGE command that does UPDATE, or on failure, INSERT
2004-05-10 03:58:19 +00:00
Bruce Momjian 1fe11fad54 Fix typo. 2004-05-08 02:13:31 +00:00
Bruce Momjian 97c7cb0930 Uppercase keyword for ecpg. 2004-05-07 02:40:43 +00:00