Commit Graph

4777 Commits

Author SHA1 Message Date
Bruce Momjian
6cc4175b25 Attached is a patch that takes care of the PATHSEP issue. I made a more
extensive change then what was suggested. I found the file path.c that
contained a lot of "Unix/Windows" agnostic functions so I added a function
there instead and removed the PATHSEP declaration in exec.c altogether. All
to keep things from scattering all over the code.

I also took the liberty of changing the name of the functions
"first_path_sep" and "last_path_sep". Where I come from (and I'm apparently
not alone given the former macro name PATHSEP), they should be called
"first_dir_sep" and "last_dir_sep". The new function I introduced, that
actually finds path separators, is now the "first_path_sep". The patch
contains changes on all affected places of course.

I also changed the documentation on dynamic_library_path to reflect the
chagnes.

Thomas Hallgren
2004-06-10 22:26:24 +00:00
Bruce Momjian
387b38bec4 Done:
> * -Print table names with constraint names in error messages, or make constraint
2004-06-10 19:04:49 +00:00
Bruce Momjian
93db6f6ae2 Reword:
< * Allow hash buckets to fill disk pages, rather than being sparse
> * Pack hash index buckets onto disk pages more efficiently
2004-06-10 11:56:27 +00:00
Bruce Momjian
13c30084f6 Add:
> * Allow pg_dump to use multiple -t and -n switches
2004-06-10 04:33:51 +00:00
Bruce Momjian
741681b7b2 Modify:
< * Order heap pointers on hash index pages by hash value and ctid
> * Allow hash buckets to fill disk pages, rather than being sparse
2004-06-10 04:06:21 +00:00
Bruce Momjian
c7099997ac Add Brazilian version of FAQ.
Euler Taveira de Oliveira
2004-06-10 03:46:11 +00:00
Bruce Momjian
babd02af5a Add:
> * Order heap pointers on hash index pages by hash value and ctid
2004-06-10 03:45:30 +00:00
Tom Lane
7e64dbc6b5 Support assignment to subfields of composite columns in UPDATE and INSERT.
As a side effect, cause subscripts in INSERT targetlists to do something
more or less sensible; previously we evaluated such subscripts and then
effectively ignored them.  Another side effect is that UPDATE-ing an
element or slice of an array value that is NULL now produces a non-null
result, namely an array containing just the assigned-to positions.
2004-06-09 19:08:20 +00:00
Bruce Momjian
69616f96ec Add:
> * Add ON COMMIT capability to CREATE TABLE AS SELECT
2004-06-09 03:15:51 +00:00
Bruce Momjian
cd8b0fc5f1 Change PGETC to PGSYSCONFDIR and PGLOCALE to PGLOCALEDIR, per Peter. 2004-06-08 13:49:23 +00:00
Bruce Momjian
9136613803 Add start/stop times for pg_dump/pg_dumpall when verbose output is used. 2004-06-07 20:35:57 +00:00
Bruce Momjian
613c684a60 Update date. 2004-06-07 15:11:23 +00:00
Tom Lane
982d005d62 Some preliminary documentation for composite-type stuff. 2004-06-07 04:04:47 +00:00
Tom Lane
c541bb86e9 Infrastructure for I/O of composite types: arrange for the I/O routines
of a composite type to get that type's OID as their second parameter,
in place of typelem which is useless.  The actual changes are mostly
centralized in getTypeInputInfo and siblings, but I had to fix a few
places that were fetching pg_type.typelem for themselves instead of
using the lsyscache.c routines.  Also, I renamed all the related variables
from 'typelem' to 'typioparam' to discourage people from assuming that
they necessarily contain array element types.
2004-06-06 00:41:28 +00:00
Bruce Momjian
768916d753 This is a small fix in FAQ. It just clean up some old comments and
change an old -not-working piece of code.
2004-06-04 04:09:40 +00:00
Bruce Momjian
bf2a115f2f Remove dash in pg_ctl signal name. It broke with getopt_long dash
reorganization processing, and it is clearer without the dash anyway.
2004-06-04 04:05:36 +00:00
Bruce Momjian
6870843339 Add PGETC (for pg_service.conf) and PGLOCALE (for locale dir)
environment variable processing to libpq.

The patch also adds code to our client apps so we set the environment
variable directly based on our binary location, unless it is already
set. This will allow our applications to emit proper locale messages
that are generated in libpq.
2004-06-03 00:07:38 +00:00
Bruce Momjian
70f5a87ecc Small patch that adds some documentation for the area() function.
Specifically, point out that intersecting points in a path will yield
(most likely), unexpected results.  Visually these are identical paths,
but mathematically they're not the same.  Ex:

  area |                                           plan
------
+-----------------------------------------------------------------------
-------------------
    -0 | ((0,0),(0,1),(2,1),(2,2),(1,2),(1,0),(0,0))
     2 | ((0,0),(0,1),(1,1),(1,2),(2,2),(2,1),(1,1),(1,0),(0,0))

The current algorithm for area(PATH) is very quick, but only handles
non-intersecting paths.  I'm going to work on two other functions for
the PATH data type that determines if a PATH is intersecting or not,
and a function that returns the area() for an intersecting PATH.  The
intersecting area() function will be considerably slower (I think it's
going to be O(n!) or worse instead of the current O(n), but that comes
with the territory).

Sean Chittenden
2004-06-02 21:34:49 +00:00
Bruce Momjian
36ae5efab1 Improve without cluster wording. 2004-06-02 21:04:40 +00:00
Bruce Momjian
1cdc58722c OK, here's the final version of ALTER TABLE ... SET WITHOUT CLUSTER.
Has docs + regression test.

Christopher Kings-Lynne
2004-06-02 21:01:10 +00:00
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