OSDN Git Service

pg-rex/syncrep.git
20 years agoReplace createdb's obsolete --location switch with --tablespace.
Tom Lane [Fri, 18 Jun 2004 21:47:24 +0000 (21:47 +0000)]
Replace createdb's obsolete --location switch with --tablespace.
I kept the same abbreviated letter -D, in hopes of maintaining some
modicum of backwards compatibility (though it's doubtful whether anyone
is really using scripts that invoke createdb -D ...)

20 years agoinitlocation is history. (It's still mentioned in manage-ag.sgml,
Tom Lane [Fri, 18 Jun 2004 21:24:06 +0000 (21:24 +0000)]
initlocation is history.  (It's still mentioned in manage-ag.sgml,
but I'll leave that file alone so as not to mess up the doc patch
I trust Gavin is working on.)

20 years agoAdd:
Bruce Momjian [Fri, 18 Jun 2004 18:35:53 +0000 (18:35 +0000)]
Add:

> * Allow reporting of which objects are in which tablespaces
> * Allow database recovery where tablespaces can't be created
211a213,214
>  o Add ALTER TABLESPACE to change location, name, owner
>  o Allow objects to be moved between tablespaces

20 years agoRemove tablespaces TODO.detail.
Bruce Momjian [Fri, 18 Jun 2004 16:04:13 +0000 (16:04 +0000)]
Remove tablespaces TODO.detail.

20 years agoDone:
Bruce Momjian [Fri, 18 Jun 2004 16:03:20 +0000 (16:03 +0000)]
Done:

> * -Add the concept of dataspaces/tablespaces (Gavin)

20 years agoTablespaces. Alternate database locations are dead, long live tablespaces.
Tom Lane [Fri, 18 Jun 2004 06:14:31 +0000 (06:14 +0000)]
Tablespaces.  Alternate database locations are dead, long live tablespaces.

There are various things left to do: contrib dbsize and oid2name modules
need work, and so does the documentation.  Also someone should think about
COMMENT ON TABLESPACE and maybe RENAME TABLESPACE.  Also initlocation is
dead, it just doesn't know it yet.

Gavin Sherry and Tom Lane.

20 years agoThe attached patch adds some index entries pointing to the cursor
Bruce Momjian [Thu, 17 Jun 2004 12:41:02 +0000 (12:41 +0000)]
The attached patch adds some index entries pointing to the cursor
reference pages.  Please apply.

Alvaro Herrera

20 years agoAdded patch by ISHIDA Akio to allow indicators in execute statements.
Michael Meskes [Thu, 17 Jun 2004 11:52:25 +0000 (11:52 +0000)]
Added patch by ISHIDA Akio to allow indicators in execute statements.

20 years agoImprove comment.
Bruce Momjian [Wed, 16 Jun 2004 03:01:32 +0000 (03:01 +0000)]
Improve comment.

20 years agoDo PGAC_FUNC_GETPWUID_R_5ARG and PGAC_FUNC_STRERROR_R_INT tests with the
Bruce Momjian [Wed, 16 Jun 2004 02:58:28 +0000 (02:58 +0000)]
Do PGAC_FUNC_GETPWUID_R_5ARG and PGAC_FUNC_STRERROR_R_INT tests with the
same thread flags that will be used to compile thread.c.  Add comment to
make sure no one breaks it.

20 years agoRepresent type-specific length coercion functions as pg_cast entries,
Tom Lane [Wed, 16 Jun 2004 01:27:00 +0000 (01:27 +0000)]
Represent type-specific length coercion functions as pg_cast entries,
eliminating the former hard-wired convention about their names.  Allow
pg_cast entries to represent both type coercion and length coercion in
a single step --- this is represented by a function that takes an
extra typmod argument, just like a length coercion function.  This
nicely merges the type and length coercion mechanisms into something
at least a little cleaner than we had before.  Make use of the single-
coercion-step behavior to fix integer-to-bit coercion so that coercing
to bit(n) yields the rightmost n bits of the integer instead of the
leftmost n bits.  This should fix recurrent complaints about the odd
behavior of this coercion.  Clean up the documentation of the bit string
functions, and try to put it where people might actually find it.
Also, get rid of the unreliable heuristics in ruleutils.c about whether
to display nested coercion steps; instead require parse_coerce.c to
label them properly in the first place.

20 years agoFix doc bug: to_timestamp() returns timestamptz, not plain timestamp.
Tom Lane [Mon, 14 Jun 2004 19:01:09 +0000 (19:01 +0000)]
Fix doc bug: to_timestamp() returns timestamptz, not plain timestamp.

20 years agoArrange to explicitly stop the pgstat processes at the same time we
Tom Lane [Mon, 14 Jun 2004 18:08:19 +0000 (18:08 +0000)]
Arrange to explicitly stop the pgstat processes at the same time we
begin the shutdown checkpoint; there isn't anything left for them to do,
so we may as well ensure that they shut down sooner rather than later.
Per discussion.

20 years agoNew wording:
Bruce Momjian [Mon, 14 Jun 2004 13:44:00 +0000 (13:44 +0000)]
New wording:

<   in-progress when the server terminates abruptly
>   in-progress when the server terminated abruptly

20 years agoNew wording:
Bruce Momjian [Mon, 14 Jun 2004 13:42:47 +0000 (13:42 +0000)]
New wording:

<   in-progress when the server crashed
>   in-progress when the server terminates abruptly

20 years agoAdd missing PQclear().
Tatsuo Ishii [Mon, 14 Jun 2004 11:00:12 +0000 (11:00 +0000)]
Add missing PQclear().

20 years agoUpdated wording:
Bruce Momjian [Sun, 13 Jun 2004 23:42:59 +0000 (23:42 +0000)]
Updated wording:

< * Remove unreferenced table files and temp tables during database vacuum
<   or postmaster startup (Bruce)
> * Remove unreferenced table files created by transactions that were
>   in-progress when the server crashed
>

20 years agoRe-add:
Bruce Momjian [Sun, 13 Jun 2004 23:39:30 +0000 (23:39 +0000)]
Re-add:

> * Remove unreferenced table files and temp tables during database vacuum
>   or postmaster startup (Bruce)

20 years agoGive inet/cidr datatypes their own hash function that ignores the inet vs
Tom Lane [Sun, 13 Jun 2004 21:57:28 +0000 (21:57 +0000)]
Give inet/cidr datatypes their own hash function that ignores the inet vs
cidr type bit, the same as network_eq does.  This is needed for hash joins
and hash aggregation to work correctly on these types.  Per bug report
from Michael Fuhr, 2004-04-13.
Also, improve hash function for int8 as suggested by Greg Stark.

20 years agoRemove README.CVS when making a distribution.
Peter Eisentraut [Sun, 13 Jun 2004 21:51:36 +0000 (21:51 +0000)]
Remove README.CVS when making a distribution.

20 years agoTranslation update
Peter Eisentraut [Sun, 13 Jun 2004 21:41:33 +0000 (21:41 +0000)]
Translation update

20 years agoCode review for recently-added network functions. Get it to work when
Tom Lane [Sun, 13 Jun 2004 19:56:52 +0000 (19:56 +0000)]
Code review for recently-added network functions.  Get it to work when
log_hostname is enabled, clean up documentation.

20 years agoCorrect erroneous table title, per Halley Pacheco de Oliveira.
Tom Lane [Sun, 13 Jun 2004 17:51:08 +0000 (17:51 +0000)]
Correct erroneous table title, per Halley Pacheco de Oliveira.

20 years agoNow needs to include <ctype.h>.
Tom Lane [Sat, 12 Jun 2004 20:31:43 +0000 (20:31 +0000)]
Now needs to include <ctype.h>.

20 years agoSome editorializing on 7.4.3 release notes.
Tom Lane [Sat, 12 Jun 2004 19:30:29 +0000 (19:30 +0000)]
Some editorializing on 7.4.3 release notes.

20 years agoImprove release wording.
Bruce Momjian [Sat, 12 Jun 2004 04:22:15 +0000 (04:22 +0000)]
Improve release wording.

20 years agoMarkup fix.
Bruce Momjian [Sat, 12 Jun 2004 04:08:02 +0000 (04:08 +0000)]
Markup fix.

20 years agoFix markup
Bruce Momjian [Sat, 12 Jun 2004 04:02:53 +0000 (04:02 +0000)]
Fix markup

20 years agoUpdate release notes for 7.4.3.
Bruce Momjian [Sat, 12 Jun 2004 03:54:51 +0000 (03:54 +0000)]
Update release notes for 7.4.3.

20 years agoECPG preprocessor for PostgreSQL 7.4.1, 7.4.2 doubles const,
Bruce Momjian [Fri, 11 Jun 2004 17:32:39 +0000 (17:32 +0000)]
ECPG preprocessor for PostgreSQL 7.4.1, 7.4.2 doubles const,
volatile, static, and register keywords before variables,
declared as VARCHAR.

Sergey N. Yatskevich

20 years agoStrategyDirtyBufferList wasn't being careful to honor max_buffers limit.
Tom Lane [Fri, 11 Jun 2004 17:20:39 +0000 (17:20 +0000)]
StrategyDirtyBufferList wasn't being careful to honor max_buffers limit.
Bug is only latent given that sole caller is passing NBuffers, but it
could bite someone in the rear someday.

20 years agoUse sizeof() rather than strlen() in array size.
Bruce Momjian [Fri, 11 Jun 2004 17:09:13 +0000 (17:09 +0000)]
Use sizeof() rather than strlen() in array size.

20 years agoAdd some code to Assert that when we release pin on a buffer, we are
Tom Lane [Fri, 11 Jun 2004 16:43:24 +0000 (16:43 +0000)]
Add some code to Assert that when we release pin on a buffer, we are
not holding the buffer's cntx_lock or io_in_progress_lock.  A recent
report from Litao Wu makes me wonder whether it is ever possible for
us to drop a buffer and forget to release its cntx_lock.  The Assert
does not fire in the regression tests, but that proves little ...

20 years agoCleanup use of Win32 START by using "" for title. No need for temp
Bruce Momjian [Fri, 11 Jun 2004 16:36:31 +0000 (16:36 +0000)]
Cleanup use of Win32 START by using "" for title.  No need for temp
batch files anymore.

20 years agoAdd URL about Win32 quoting behavior.
Bruce Momjian [Fri, 11 Jun 2004 16:10:09 +0000 (16:10 +0000)]
Add URL about Win32 quoting behavior.

20 years agoAnother fix for Win32 START.
Bruce Momjian [Fri, 11 Jun 2004 04:17:21 +0000 (04:17 +0000)]
Another fix for Win32 START.

20 years agoThe attached tiny patch removes spurious carriage returns that might be
Bruce Momjian [Fri, 11 Jun 2004 03:56:46 +0000 (03:56 +0000)]
The attached tiny patch removes spurious carriage returns that might be
copied by the script that generates psql's help. (You can get the
spurious CRs if you use a CVS client on Windows that does line end
translation.)  Elsewhere, the patch should be totally benign.

This removes quite a number of the compile warnings I posted the other
day.

Andrew Dunstan

20 years ago>> It certainly doesn't. There still was a bug with the locale stuff,
Bruce Momjian [Fri, 11 Jun 2004 03:54:54 +0000 (03:54 +0000)]
>> It certainly doesn't. There still was a bug with the locale stuff,
>> though - the GUC variable was not set in the child
>processes. So "show
>> lc_collate" would *always* return "C", for example. attached
>patch fixes
>> this.
>
>Hm.  Why were these vars not propagated by the regular
>mechanism for GUC
>variables (write_nondefault_variables or whatever it's called)?  If the
>problem is that it's not accepting PGC_INTERNAL values, then we need to
>fix it there not here, because otherwise we'll have to pass all the
>PGC_INTERNAL variables through the backend_variables file, which seems
>like a recipe for more of the same sort of bug.

Good point :-(

I think the problem is not only that it specifically does not deal with
PGC_INTERNAL variables. The problem is in the fact that
write_nondefault_variables is called *before* the locale is read
(because the locale is read from pg_control and not from any of the
"usual" ways to read it).

Attached patch is another stab at fixing it. It makes postmaster dump a
new copy of the file once it has started the database (before it accepts
any connections), which is when it will know about these parameters.
Also updates the reading code to set the context to the one where the
variable was originally set (PGC_POSTMASTER won't work for PGC_INTERNAL,
and the other way around).

We still pass lc_collate through the special file, because
set_config_option on lc_collate will speficially *not* call setlocale(),
and we need that call. But we no longer call set_config_option from
there.

Magnus Hagander

20 years agoThis patch updates pgpipe() on win32 to log exactly which part of the
Bruce Momjian [Fri, 11 Jun 2004 03:48:35 +0000 (03:48 +0000)]
This patch updates pgpipe() on win32 to log exactly which part of the
call fails when it does. (As it is now, there is no way to figure out
the point of error). Shouldn't be a problem since it's most defintily
not a performance-critical path (only called on pgstat startup ATM).

This should help us debug the pipe error message that's on the win32
status page (which I myself have never been able to reproduce, and thus
haven't figured out a better way to debug yet)

Magnus Hagander

20 years agoWhen using extended-query protocol, postpone planning of unnamed statements
Tom Lane [Fri, 11 Jun 2004 01:09:22 +0000 (01:09 +0000)]
When using extended-query protocol, postpone planning of unnamed statements
until Bind is received, so that actual parameter values are visible to the
planner.  Make use of the parameter values for estimation purposes (but
don't fold them into the actual plan).  This buys back most of the
potential loss of plan quality that ensues from using out-of-line
parameters instead of putting literal values right into the query text.

This patch creates a notion of constant-folding expressions 'for
estimation purposes only', in which case we can be more aggressive than
the normal eval_const_expressions() logic can be.  Right now the only
difference in behavior is inserting bound values for Params, but it will
be interesting to look at other possibilities.  One that we've seen
come up repeatedly is reducing now() and related functions to current
values, so that queries like ... WHERE timestampcol > now() - '1 day'
have some chance of being planned effectively.

Oliver Jowett, with some kibitzing from Tom Lane.

20 years agoMore restructuring to use Win32 START with paths needing quotes.
Bruce Momjian [Fri, 11 Jun 2004 00:57:25 +0000 (00:57 +0000)]
More restructuring to use Win32 START with paths needing quotes.

20 years agoAttached is a patch that takes care of the PATHSEP issue. I made a more
Bruce Momjian [Thu, 10 Jun 2004 22:26:24 +0000 (22:26 +0000)]
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

20 years agoMore quoting cleanups for Win32's pg_ctl.
Bruce Momjian [Thu, 10 Jun 2004 22:20:53 +0000 (22:20 +0000)]
More quoting cleanups for Win32's pg_ctl.

20 years agoAdjust cost_nonsequential_access() to have more reasonable behavior
Tom Lane [Thu, 10 Jun 2004 21:02:00 +0000 (21:02 +0000)]
Adjust cost_nonsequential_access() to have more reasonable behavior
when random_page_cost has a small value.  Per Manfred Koizar, though
I didn't use his equation exactly.

20 years agoDone:
Bruce Momjian [Thu, 10 Jun 2004 19:04:49 +0000 (19:04 +0000)]
Done:

> * -Print table names with constraint names in error messages, or make constraint

20 years agoMake ALTER TABLE ADD SERIAL work reasonably in inheritance cases, too.
Tom Lane [Thu, 10 Jun 2004 18:34:45 +0000 (18:34 +0000)]
Make ALTER TABLE ADD SERIAL work reasonably in inheritance cases, too.

20 years agoFix oversight in recent ALTER TABLE improvements. We now support
Tom Lane [Thu, 10 Jun 2004 18:25:02 +0000 (18:25 +0000)]
Fix oversight in recent ALTER TABLE improvements.  We now support
ALTER TABLE tab ADD COLUMN col SERIAL, but we forgot to install the
dependency between the column and the sequence, so the sequence
would not go away if you dropped the table later.

20 years agoUse /B to start so a new window isn't created, per Andrew Dunstan.
Bruce Momjian [Thu, 10 Jun 2004 18:02:36 +0000 (18:02 +0000)]
Use /B to start so a new window isn't created, per Andrew Dunstan.

20 years agoClean up generation of default names for constraints, indexes, and serial
Tom Lane [Thu, 10 Jun 2004 17:56:03 +0000 (17:56 +0000)]
Clean up generation of default names for constraints, indexes, and serial
sequences, as per recent discussion.  All these names are now of the
form table_column_type, with digits added if needed to make them unique.
Default constraint names are chosen to be unique across their whole schema,
not just within the parent object, so as to be more SQL-spec-compatible
and make the information schema views more useful.

20 years agoAdd START background code for another code path, per Andrew Dunstan.
Bruce Momjian [Thu, 10 Jun 2004 17:45:09 +0000 (17:45 +0000)]
Add START background code for another code path, per Andrew Dunstan.

20 years agoUse START for pg_ctl background runs on Win32, from Magnus.
Bruce Momjian [Thu, 10 Jun 2004 17:26:14 +0000 (17:26 +0000)]
Use START for pg_ctl background runs on Win32, from Magnus.

20 years agoTranslation update
Peter Eisentraut [Thu, 10 Jun 2004 17:18:14 +0000 (17:18 +0000)]
Translation update

20 years agoNew translation
Peter Eisentraut [Thu, 10 Jun 2004 17:10:24 +0000 (17:10 +0000)]
New translation

20 years agoHandle multiple double-quoted strings using Win32's system() call.
Bruce Momjian [Thu, 10 Jun 2004 16:35:18 +0000 (16:35 +0000)]
Handle multiple double-quoted strings using Win32's system() call.
Document limitations.

20 years agoReword:
Bruce Momjian [Thu, 10 Jun 2004 11:56:27 +0000 (11:56 +0000)]
Reword:

< * Allow hash buckets to fill disk pages, rather than being sparse
> * Pack hash index buckets onto disk pages more efficiently

20 years agoAdd:
Bruce Momjian [Thu, 10 Jun 2004 04:33:51 +0000 (04:33 +0000)]
Add:

> * Allow pg_dump to use multiple -t and -n switches

20 years agoModify:
Bruce Momjian [Thu, 10 Jun 2004 04:06:21 +0000 (04:06 +0000)]
Modify:

< * Order heap pointers on hash index pages by hash value and ctid
> * Allow hash buckets to fill disk pages, rather than being sparse

20 years agoAdd Brazilian version of FAQ.
Bruce Momjian [Thu, 10 Jun 2004 03:46:11 +0000 (03:46 +0000)]
Add Brazilian version of FAQ.

Euler Taveira de Oliveira

20 years agoAdd:
Bruce Momjian [Thu, 10 Jun 2004 03:45:30 +0000 (03:45 +0000)]
Add:

> * Order heap pointers on hash index pages by hash value and ctid

20 years agoAdd pg_ctl native language files for Russian.
Bruce Momjian [Thu, 10 Jun 2004 02:59:22 +0000 (02:59 +0000)]
Add pg_ctl native language files for Russian.

Serguei A. Mokhov

20 years agoAdd regression tests for CSV COPY format.
Bruce Momjian [Wed, 9 Jun 2004 23:39:24 +0000 (23:39 +0000)]
Add regression tests for CSV COPY format.

20 years agoFix slightly-wrong syntax error messages from bootstrap parser, as per
Tom Lane [Wed, 9 Jun 2004 19:49:56 +0000 (19:49 +0000)]
Fix slightly-wrong syntax error messages from bootstrap parser, as per
report from Tom Cook.

20 years agoSupport assignment to subfields of composite columns in UPDATE and INSERT.
Tom Lane [Wed, 9 Jun 2004 19:08:20 +0000 (19:08 +0000)]
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.

20 years agoUse single quotes around pg_dump call from pg_dumpall.
Bruce Momjian [Wed, 9 Jun 2004 17:37:28 +0000 (17:37 +0000)]
Use single quotes around pg_dump call from pg_dumpall.

20 years agoUse single quotes for pg_ctl system call.
Bruce Momjian [Wed, 9 Jun 2004 17:36:07 +0000 (17:36 +0000)]
Use single quotes for pg_ctl system call.

20 years agoAdd time.h to pg_dumpall.
Bruce Momjian [Wed, 9 Jun 2004 17:05:14 +0000 (17:05 +0000)]
Add time.h to pg_dumpall.

20 years agoUse mkstemp instead of mktemp in thread test, per Jan.
Bruce Momjian [Wed, 9 Jun 2004 15:16:17 +0000 (15:16 +0000)]
Use mkstemp instead of mktemp in thread test, per Jan.

20 years agoPrevious code cleanup was for bufpage.c, not bufmgr.c.
Bruce Momjian [Wed, 9 Jun 2004 13:11:34 +0000 (13:11 +0000)]
Previous code cleanup was for bufpage.c, not bufmgr.c.

This cleanup just cleans up a comment.

20 years agoAdd:
Bruce Momjian [Wed, 9 Jun 2004 03:15:51 +0000 (03:15 +0000)]
Add:

> * Add ON COMMIT capability to CREATE TABLE AS SELECT

20 years agoAdd missing check for too-few-inputs when replacing a zero-dimensional
Tom Lane [Tue, 8 Jun 2004 20:28:21 +0000 (20:28 +0000)]
Add missing check for too-few-inputs when replacing a zero-dimensional
array.

20 years agoFix mingw link check by using double-brackets.
Bruce Momjian [Tue, 8 Jun 2004 14:06:35 +0000 (14:06 +0000)]
Fix mingw link check by using double-brackets.

20 years agoStylistic changes in bufmgr.c
Bruce Momjian [Tue, 8 Jun 2004 14:00:35 +0000 (14:00 +0000)]
Stylistic changes in bufmgr.c

Basically replaces (*a).b with a->b as it is everywhere else in
Postgres.

Manfred Koizar

20 years agovacuum.c refactoring
Bruce Momjian [Tue, 8 Jun 2004 13:59:36 +0000 (13:59 +0000)]
vacuum.c refactoring

   . rename variables
     . cur_buffer -> dst_buffer
     . ToPage -> dst_page
     . cur_page -> dst_vacpage
   . move variable declarations into block where variable is used
   . various Asserts instead of elog(ERROR, ...)
   . extract functionality from repair_frag() into new routines
     . move_chain_tuple()
     . move_plain_tuple()
     . update_hint_bits()
   . create type ExecContext
   . add comments

Manfred Koizar

20 years agoChange PGETC to PGSYSCONFDIR and PGLOCALE to PGLOCALEDIR, per Peter.
Bruce Momjian [Tue, 8 Jun 2004 13:49:23 +0000 (13:49 +0000)]
Change PGETC to PGSYSCONFDIR and PGLOCALE to PGLOCALEDIR, per Peter.

20 years agoHave strerror_r return "Unknown error".
Bruce Momjian [Tue, 8 Jun 2004 01:45:50 +0000 (01:45 +0000)]
Have strerror_r return "Unknown error".

20 years agoFix strerror_r by checking return type from configure.
Bruce Momjian [Mon, 7 Jun 2004 22:39:45 +0000 (22:39 +0000)]
Fix strerror_r by checking return type from configure.

20 years agoAdd start/stop times for pg_dump/pg_dumpall when verbose output is used.
Bruce Momjian [Mon, 7 Jun 2004 20:35:57 +0000 (20:35 +0000)]
Add start/stop times for pg_dump/pg_dumpall when verbose output is used.

20 years agoRemove asymetrical word processing in query and text
Teodor Sigaev [Mon, 7 Jun 2004 16:48:18 +0000 (16:48 +0000)]
Remove asymetrical word processing in query and text

20 years agoUpdate date.
Bruce Momjian [Mon, 7 Jun 2004 15:11:23 +0000 (15:11 +0000)]
Update date.

20 years agoSome preliminary documentation for composite-type stuff.
Tom Lane [Mon, 7 Jun 2004 04:04:47 +0000 (04:04 +0000)]
Some preliminary documentation for composite-type stuff.

20 years agoDept of second thoughts: don't use the new wide-character upper/lower
Tom Lane [Sun, 6 Jun 2004 22:17:01 +0000 (22:17 +0000)]
Dept of second thoughts: don't use the new wide-character upper/lower
code if we are running in a single-byte encoding.  No point in the
extra overhead in that case.

20 years agoAdd some regression tests for composite-type operations.
Tom Lane [Sun, 6 Jun 2004 21:20:46 +0000 (21:20 +0000)]
Add some regression tests for composite-type operations.

20 years agoAllow use of table rowtypes directly as column types of other tables.
Tom Lane [Sun, 6 Jun 2004 20:30:07 +0000 (20:30 +0000)]
Allow use of table rowtypes directly as column types of other tables.
Instead of prohibiting that, put code into ALTER TABLE to reject ALTERs
that would affect other tables' columns.  Eventually we will probably
want to extend ALTER TABLE to actually do something useful here, but
in the meantime it seems wrong to forbid the feature completely just
because ALTER isn't fully baked.

20 years agoMinor catalog cleanups for composite-type stuff. Adjust signatures shown
Tom Lane [Sun, 6 Jun 2004 19:07:02 +0000 (19:07 +0000)]
Minor catalog cleanups for composite-type stuff.  Adjust signatures shown
in pg_proc for record_in, record_out, etc to reflect that these routines
now make use of the second OID parameter.  Remove the ancient SET entry
in pg_type, which is now highly unlikely to ever become used again.
Adjust type_sanity regression test to match.

20 years agoAdd binary I/O support for composite types.
Tom Lane [Sun, 6 Jun 2004 18:06:25 +0000 (18:06 +0000)]
Add binary I/O support for composite types.

20 years agoRemove finger from dike: composite types are now allowed as table columns.
Tom Lane [Sun, 6 Jun 2004 04:52:55 +0000 (04:52 +0000)]
Remove finger from dike: composite types are now allowed as table columns.
Still a few things to do, like binary I/O and regression tests and docs,
but might as well let people play with the toy.

20 years agoPreliminary support for composite type I/O; just text for now,
Tom Lane [Sun, 6 Jun 2004 04:50:28 +0000 (04:50 +0000)]
Preliminary support for composite type I/O; just text for now,
no binary yet.

20 years agoInfrastructure for I/O of composite types: arrange for the I/O routines
Tom Lane [Sun, 6 Jun 2004 00:41:28 +0000 (00:41 +0000)]
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.

20 years agoTweak palloc/repalloc to allow zero bytes to be requested, as per recent
Tom Lane [Sat, 5 Jun 2004 19:48:09 +0000 (19:48 +0000)]
Tweak palloc/repalloc to allow zero bytes to be requested, as per recent
proposal.  Eliminate several dozen now-unnecessary hacks to avoid palloc(0).
(It's likely there are more that I didn't find.)

20 years agoAdjust PageGetMaxOffsetNumber to ensure sane behavior on uninitialized
Tom Lane [Sat, 5 Jun 2004 17:42:46 +0000 (17:42 +0000)]
Adjust PageGetMaxOffsetNumber to ensure sane behavior on uninitialized
pages, even when the macro's result is stored into an unsigned variable.

20 years agoSlight code cleanup for printf's.
Bruce Momjian [Sat, 5 Jun 2004 04:27:48 +0000 (04:27 +0000)]
Slight code cleanup for printf's.

20 years agoMake the world very nearly safe for composite-type columns in tables.
Tom Lane [Sat, 5 Jun 2004 01:55:05 +0000 (01:55 +0000)]
Make the world very nearly safe for composite-type columns in tables.
1. Solve the problem of not having TOAST references hiding inside composite
values by establishing the rule that toasting only goes one level deep:
a tuple can contain toasted fields, but a composite-type datum that is
to be inserted into a tuple cannot.  Enforcing this in heap_formtuple
is relatively cheap and it avoids a large increase in the cost of running
the tuptoaster during final storage of a row.
2. Fix some interesting problems in expansion of inherited queries that
reference whole-row variables.  We never really did this correctly before,
but it's now relatively painless to solve by expanding the parent's
whole-row Var into a RowExpr() selecting the proper columns from the
child.
If you dike out the preventive check in CheckAttributeType(),
composite-type columns now seem to actually work.  However, we surely
cannot ship them like this --- without I/O for composite types, you
can't get pg_dump to dump tables containing them.  So a little more
work still to do.

20 years agoResurrect heap_deformtuple(), this time implemented as a singly nested
Tom Lane [Fri, 4 Jun 2004 20:35:21 +0000 (20:35 +0000)]
Resurrect heap_deformtuple(), this time implemented as a singly nested
loop over the fields instead of a loop around heap_getattr.  This is
considerably faster (O(N) instead of O(N^2)) when there are nulls or
varlena fields, since those prevent use of attcacheoff.  Replace loops
over heap_getattr with heap_deformtuple in situations where all or most
of the fields have to be fetched, such as printtup and tuptoaster.
Profiling done more than a year ago shows that this should be a nice
win for situations involving many-column tables.

20 years agoThe attached patch will create a dummy pg_config_paths.h. Additionally,
Bruce Momjian [Fri, 4 Jun 2004 13:30:04 +0000 (13:30 +0000)]
The attached patch will create a dummy pg_config_paths.h. Additionally,
ENABLE_THREAD_SAFETY is supported by the makefile (but not by the
sources, which need some rework)

Andreas Pflug

20 years agoThis is a small fix in FAQ. It just clean up some old comments and
Bruce Momjian [Fri, 4 Jun 2004 04:09:40 +0000 (04:09 +0000)]
This is a small fix in FAQ. It just clean up some old comments and
change an old -not-working piece of code.

20 years agoRemove dash in pg_ctl signal name. It broke with getopt_long dash
Bruce Momjian [Fri, 4 Jun 2004 04:05:36 +0000 (04:05 +0000)]
Remove dash in pg_ctl signal name.  It broke with getopt_long dash
reorganization processing, and it is clearer without the dash anyway.

20 years agoRemove some long-obsolete code that was causing a strange error message
Tom Lane [Fri, 4 Jun 2004 03:24:04 +0000 (03:24 +0000)]
Remove some long-obsolete code that was causing a strange error message
when someone attempts to create a column of a composite datatype.  For
now, just make sure we produce a reasonable error at the 'right place'.
Not sure if this will be made to work before 7.5, but make it act
reasonably in case nothing more gets done.

20 years agoSupport assignment to whole-row variables in plpgsql; also fix glitch
Tom Lane [Fri, 4 Jun 2004 02:37:06 +0000 (02:37 +0000)]
Support assignment to whole-row variables in plpgsql; also fix glitch
with using a trigger's NEW or OLD record as a whole-row variable in an
expression.  Fixes several long-standing complaints.

20 years agoAllow plpgsql to pass composite-type arguments (ie, whole-row variables)
Tom Lane [Fri, 4 Jun 2004 00:07:52 +0000 (00:07 +0000)]
Allow plpgsql to pass composite-type arguments (ie, whole-row variables)
into SQL expressions.  At present this only works usefully for variables
of named rowtypes, not RECORD variables, since the SQL parser can't infer
anything about datatypes from a RECORD Param.  Still, it's a step forward.

20 years agoRestructure plpgsql's parsing of datatype declarations to unify the
Tom Lane [Thu, 3 Jun 2004 22:56:43 +0000 (22:56 +0000)]
Restructure plpgsql's parsing of datatype declarations to unify the
scalar and composite (rowtype) cases a little better.  This commit is
just a code-beautification operation and shouldn't make any real
difference in behavior, but it's an important preliminary step for
trying to improve plgsql's handling of rowtypes.