OSDN Git Service
Tom Lane [Sat, 11 Feb 2006 23:31:34 +0000 (23:31 +0000)]
Skip ambulkdelete scan if there's nothing to delete and the index is not
partial. None of the existing AMs do anything useful except counting
tuples when there's nothing to delete, and we can get a tuple count
from the heap as long as it's not a partial index. (hash actually can
skip anyway because it maintains a tuple count in the index metapage.)
GIST is not currently able to exploit this optimization because, due to
failure to index NULLs, GIST is always effectively partial. Possibly
we should fix that sometime.
Simon Riggs w/ some review by Tom Lane.
Bruce Momjian [Sat, 11 Feb 2006 22:17:19 +0000 (22:17 +0000)]
Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
Joachim Wieland
Bruce Momjian [Sat, 11 Feb 2006 22:17:17 +0000 (22:17 +0000)]
Done:
> o -Allow ALTER TABLE ... ALTER CONSTRAINT ... RENAME
Bruce Momjian [Sat, 11 Feb 2006 21:55:49 +0000 (21:55 +0000)]
Done:
< o Improve psql's handling of multi-line statements
> o -Improve psql's handling of multi-line statements
Bruce Momjian [Sat, 11 Feb 2006 21:55:35 +0000 (21:55 +0000)]
o Improve psql's handling of multi-line statements
Currently, while \e saves a single statement as one entry, interactive
statements are saved one line at a time. Ideally all statements
would be saved like \e does.
Sergey E. Koposov
Tom Lane [Sat, 11 Feb 2006 20:39:59 +0000 (20:39 +0000)]
Fix incorrect addition, subtraction, and overflow checking in new
inet operators.
Bruce Momjian [Sat, 11 Feb 2006 17:14:09 +0000 (17:14 +0000)]
Revert based on Tom's recommendation:
> Allow VACUUM to complete faster by avoiding scanning the indexes when no
> rows were removed from the heap by the VACUUM.
Bruce Momjian [Sat, 11 Feb 2006 16:59:09 +0000 (16:59 +0000)]
Allow VACUUM to complete faster by avoiding scanning the indexes when no
rows were removed from the heap by the VACUUM.
Simon Riggs
Bruce Momjian [Sat, 11 Feb 2006 16:28:56 +0000 (16:28 +0000)]
Update catalog version for INET additions.
Bruce Momjian [Sat, 11 Feb 2006 03:33:36 +0000 (03:33 +0000)]
Done:
> * -Allow INET + INT8 to increment the host part of the address or
Bruce Momjian [Sat, 11 Feb 2006 03:32:41 +0000 (03:32 +0000)]
Add INET/CIDR operators: and, or, not, plus int8, minus int8, and inet
minus inet.
Stephen R. van den Berg
Tom Lane [Fri, 10 Feb 2006 22:29:06 +0000 (22:29 +0000)]
Clean up signedness warnings and 64-bit bugs in recent psql printing
patch. Martijn van Oosterhout and Tom Lane
Tom Lane [Fri, 10 Feb 2006 22:05:42 +0000 (22:05 +0000)]
Make it possible to run initdb from an admin account on Windows,
by giving up admin privileges (only works if newer than NT4).
Magnus
Tom Lane [Fri, 10 Feb 2006 22:00:59 +0000 (22:00 +0000)]
Enable pg_ctl to give up admin privileges when starting the server under
Windows (if newer than NT4, else works same as before).
Magnus
Tom Lane [Fri, 10 Feb 2006 21:52:21 +0000 (21:52 +0000)]
Check that SID is enabled while checking for Windows admin privileges.
Magnus
Tom Lane [Fri, 10 Feb 2006 19:01:12 +0000 (19:01 +0000)]
Change search for default operator classes so that it examines all opclasses
regardless of the current schema search path. Since CREATE OPERATOR CLASS
only allows one default opclass per datatype regardless of schemas, this
should have minimal impact, and it fixes problems with failure to find a
desired opclass while restoring dump files. Per discussion at
http://archives.postgresql.org/pgsql-hackers/2006-02/msg00284.php.
Remove now-redundant-or-unused code in typcache.c and namespace.c,
and backpatch as far as 8.0.
Tom Lane [Fri, 10 Feb 2006 15:57:58 +0000 (15:57 +0000)]
Clean up some signedness warnings.
Bruce Momjian [Fri, 10 Feb 2006 15:48:05 +0000 (15:48 +0000)]
Fix psql after newline patch for calloc(0).
Kris Jurka
Tom Lane [Fri, 10 Feb 2006 15:47:44 +0000 (15:47 +0000)]
Fix fallout from psql line-wrapping patch.
Teodor Sigaev [Fri, 10 Feb 2006 12:56:14 +0000 (12:56 +0000)]
Allow "'" symbol in affixes ("'s" affix in english): it was diallowed during
multibyte support work.
Add line number to error output during affix file parsing.
Peter Eisentraut [Fri, 10 Feb 2006 11:35:47 +0000 (11:35 +0000)]
Fix up remaining library checks.
Teodor Sigaev [Fri, 10 Feb 2006 11:18:40 +0000 (11:18 +0000)]
renew output of regression test accordingly to
http://archives.postgresql.org/pgsql-committers/2006-02/msg00089.php
Bruce Momjian [Fri, 10 Feb 2006 04:14:17 +0000 (04:14 +0000)]
Done:
< o Allow multi-line column values to align in the proper columns
> o -Allow multi-line column values to align in the proper columns
Bruce Momjian [Fri, 10 Feb 2006 00:39:04 +0000 (00:39 +0000)]
Allow psql multi-line column values to align in the proper columns
If the second output column value is 'a\nb', the 'b' should appear
in the second display column, rather than the first column as it
does now.
Change libpq's PQdsplen() to return more useful values.
> Note: this changes the PQdsplen function, it can now return zero or
> minus one which was not possible before. It doesn't appear anyone is
> actually using the functions other than psql but it is a change. The
> functions are not actually documentated anywhere so it's not like we're
> breaking a defined interface. The new semantics follow the Unicode
> standard.
BACKWARD COMPATIBLE CHANGE.
The only user-visible change I saw in the regression tests is that a
SELECT * on a table where all the columns have been dropped doesn't
return a blank line like before. This seems like a step forward.
Martijn van Oosterhout
Bruce Momjian [Thu, 9 Feb 2006 20:52:13 +0000 (20:52 +0000)]
This fixes pg_dump so that when using the '-O' no owners option it does
not print the owner name in the object comment.
eg:
--
-- Name: actor; Type: TABLE; Schema: public; Owner: chriskl; Tablespace:
--
Becomes:
--
-- Name: actor; Type: TABLE; Schema: public; Owner: -; Tablespace:
--
This makes it far easier to do 'user independent' dumps. Especially for
distribution to third parties.
Christopher Kings-Lynne
Tom Lane [Thu, 9 Feb 2006 18:28:29 +0000 (18:28 +0000)]
Provide the libpq error message when PQputline or PQendcopy fails.
Teodor Sigaev [Thu, 9 Feb 2006 18:04:20 +0000 (18:04 +0000)]
1 Fix bug with very short word: prefix and suffix might be overlapped,
sorry but fix can't be applyed to previous version: it's require
refill tsvector...
2 Small optimize of load time for huge dictionaries
3 use palloc instead of malloc during load dict file
Bruce Momjian [Thu, 9 Feb 2006 14:53:51 +0000 (14:53 +0000)]
Use "bitwise" rather than "binary for AND/OR descriptions in \d, to
match SGML documentation.
Tom Lane [Thu, 9 Feb 2006 07:22:22 +0000 (07:22 +0000)]
C++ comments are verboten. Per gripe from Kris Jurka.
Tom Lane [Thu, 9 Feb 2006 03:39:17 +0000 (03:39 +0000)]
Reject out-of-range dates in date_in().
Kris Jurka
Tom Lane [Thu, 9 Feb 2006 00:56:57 +0000 (00:56 +0000)]
Fix broken non-YYDEBUG case.
Michael Meskes [Wed, 8 Feb 2006 09:10:05 +0000 (09:10 +0000)]
Added just another test case.
Fixed missing continuation line character.
Do not translate $-quoting.
Bit field notation belongs to a variable not a variable list.
Output of line number only done by one function.
Tom Lane [Tue, 7 Feb 2006 17:36:13 +0000 (17:36 +0000)]
Remove ancient hack to work around a peculiarity of libcurses on HPUX.
Since we now use libtermcap in preference to libcurses, no need for hack
anymore.
Bruce Momjian [Tue, 7 Feb 2006 17:04:04 +0000 (17:04 +0000)]
Source code cleanup.
Bruce Momjian [Tue, 7 Feb 2006 16:03:50 +0000 (16:03 +0000)]
I think that NUMERIC datatype has a problem in the performance that
the format on Tuple(Numeric) and the format to calculate(NumericVar)
are different. I understood that to reduce I/O. However, when many
comparisons or calculations of NUMERIC are executed, the conversion
of Numeric and NumericVar becomes a bottleneck.
It is profile result when "create index on NUMERIC column" is executed:
% cumulative self self total
time seconds seconds calls s/call s/call name
17.61 10.27 10.27
34542006 0.00 0.00 cmp_numerics
11.90 17.21 6.94
34542006 0.00 0.00 comparetup_index
7.42 21.54 4.33
71102587 0.00 0.00 AllocSetAlloc
7.02 25.64 4.09
69084012 0.00 0.00 set_var_from_num
4.87 28.48 2.84
69084012 0.00 0.00 alloc_var
4.79 31.27 2.79
142205745 0.00 0.00 AllocSetFreeIndex
4.55 33.92 2.65
34542004 0.00 0.00 cmp_abs
4.07 36.30 2.38
71101189 0.00 0.00 AllocSetFree
3.83 38.53 2.23
69084012 0.00 0.00 free_var
The create index command executes many comparisons of Numeric values.
Functions other than comparetup_index spent a lot of cycles for
conversion from Numeric to NumericVar.
An attached patch enables the comparison of Numeric values without
executing conversion to NumericVar. The execution time of that SQL
becomes half.
o Test SQL (index_test table has 1,000,000 tuples)
create index index_test_idx on index_test(num_col);
o Test results (executed the test five times)
(1)PentiumIII
original: 39.789s 36.823s 36.737s 37.752s 37.019s
patched : 18.560s 19.103s 18.830s 18.408s 18.853s
4.07 36.30 2.38
71101189 0.00 0.00 AllocSetFree
3.83 38.53 2.23
69084012 0.00 0.00 free_var
The create index command executes many comparisons of Numeric values.
Functions other than comparetup_index spent a lot of cycles for
conversion from Numeric to NumericVar.
An attached patch enables the comparison of Numeric values without
executing conversion to NumericVar. The execution time of that SQL
becomes half.
o Test SQL (index_test table has 1,000,000 tuples)
create index index_test_idx on index_test(num_col);
o Test results (executed the test five times)
(1)PentiumIII
original: 39.789s 36.823s 36.737s 37.752s 37.019s
patched : 18.560s 19.103s 18.830s 18.408s 18.853s
(2)Pentium4
original: 16.349s 14.997s 12.979s 13.169s 12.955s
patched : 7.005s 6.594s 6.770s 6.740s 6.828s
(3)Itanium2
original: 15.392s 15.447s 15.350s 15.370s 15.417s
patched : 7.413s 7.330s 7.334s 7.339s 7.339s
(4)Ultra Sparc
original: 64.435s 59.336s 59.332s 58.455s 59.781s
patched : 28.630s 28.666s 28.983s 28.744s 28.595s
Atsushi Ogawa
Bruce Momjian [Tue, 7 Feb 2006 14:49:17 +0000 (14:49 +0000)]
Remove question mark:
< * %Disallow changing default expression of a SERIAL column?
> * %Disallow changing default expression of a SERIAL column
Peter Eisentraut [Tue, 7 Feb 2006 11:36:36 +0000 (11:36 +0000)]
Make --version option print fixed program name.
Peter Eisentraut [Tue, 7 Feb 2006 11:22:41 +0000 (11:22 +0000)]
Remove some checks for libraries that no one can identify. We'll see how
that works out...
Bruce Momjian [Tue, 7 Feb 2006 02:08:08 +0000 (02:08 +0000)]
Split up wal-logging items:
< * Allow control over which tables are WAL-logged [walcontrol]
> * Allow WAL logging to be turned off for a table, but the table
> might be dropped or truncated during crash recovery [walcontrol]
< commit. To do this, only a single writer can modify the table, and
< writes must happen only on new pages. Readers can continue accessing
< the table. This would affect COPY, and perhaps INSERT/UPDATE too.
< Another option is to avoid transaction logging entirely and truncate
< or drop the table on crash recovery. These should be implemented
< using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
< STABLE | DEFAULT ]. Tables using non-default logging should not use
< referential integrity with default-logging tables, and tables using
< stable logging probably can not have indexes. One complexity is
< the handling of indexes on TOAST tables.
> commit. This should be implemented using ALTER TABLE, e.g. ALTER
> TABLE PERSISTENCE [ DROP | TRUNCATE | DEFAULT ]. Tables using
> non-default logging should not use referential integrity with
> default-logging tables. A table without dirty buffers during a
> crash could perhaps avoid the drop/truncate.
>
> * Allow WAL logging to be turned off for a table, but the table would
> avoid being truncated/dropped [walcontrol]
>
> To do this, only a single writer can modify the table, and writes
> must happen only on new pages so the new pages can be removed during
> crash recovery. Readers can continue accessing the table. Such
> tables probably cannot have indexes. One complexity is the handling
> of indexes on TOAST tables.
Bruce Momjian [Tue, 7 Feb 2006 00:26:15 +0000 (00:26 +0000)]
Fix HTML alignment in PQprint.
Christoph Zwerschke
Tom Lane [Mon, 6 Feb 2006 22:21:12 +0000 (22:21 +0000)]
Improve the tests to see if ScalarArrayOpExpr is strict. Original coding
would basically punt in all cases for 'foo <> ALL (array)', which resulted
in a performance regression for NOT IN compared to what we were doing in
8.1 and before. Per report from Pavel Stehule.
Teodor Sigaev [Mon, 6 Feb 2006 15:45:34 +0000 (15:45 +0000)]
Check number of affixes to prevent core dump with zero number of affixes
Bruce Momjian [Mon, 6 Feb 2006 02:23:07 +0000 (02:23 +0000)]
Fix PQprint HTML tag, "centre" -> "center".
Tom Lane [Sun, 5 Feb 2006 20:58:47 +0000 (20:58 +0000)]
Fix pg_restore to properly discard COPY data when trying to continue
after an error in a COPY statement. Formerly it thought the COPY data
was SQL commands, and got quite confused.
Stephen Frost
Bruce Momjian [Sun, 5 Feb 2006 18:19:14 +0000 (18:19 +0000)]
Fix typo in configuration docs.
Devrim GUNDUZ
Tom Lane [Sun, 5 Feb 2006 02:59:17 +0000 (02:59 +0000)]
Improve my initial, rather hacky implementation of joins to append
relations: fix the executor so that we can have an Append plan on the
inside of a nestloop and still pass down outer index keys to index scans
within the Append, then generate such plans as if they were regular
inner indexscans. This avoids the need to evaluate the outer relation
multiple times.
Bruce Momjian [Sun, 5 Feb 2006 02:47:53 +0000 (02:47 +0000)]
Update PL/pgSQL trigger example to be clearer about how to "merge" data
into a table.
Jim C. Nasby
Tom Lane [Sat, 4 Feb 2006 23:03:20 +0000 (23:03 +0000)]
Fix constraint exclusion to work in inherited UPDATE/DELETE queries
... in fact, it will be applied now in any query whatsoever. I'm still
a bit concerned about the cycles that might be expended in failed proof
attempts, but given that CE is turned off by default, it's the user's
choice whether to expend those cycles or not. (Possibly we should
change the simple bool constraint_exclusion parameter to something
more fine-grained?)
Tom Lane [Sat, 4 Feb 2006 22:38:39 +0000 (22:38 +0000)]
Fix broken markup.
Michael Meskes [Sat, 4 Feb 2006 20:54:44 +0000 (20:54 +0000)]
Added C bit fields to ecpg parser
Added some default rules to lexer
Added log output to prepare statement
Added some more stuff to a test case
Andrew Dunstan [Sat, 4 Feb 2006 19:06:47 +0000 (19:06 +0000)]
DROP IF EXISTS for ROLE/USER/GROUP
Peter Eisentraut [Sat, 4 Feb 2006 12:50:47 +0000 (12:50 +0000)]
Issue a warning if a change-on-restart-only postgresql.conf value is
modified and the server config files are reloaded
Bruce Momjian [Sat, 4 Feb 2006 03:23:21 +0000 (03:23 +0000)]
Update walcontrol item:
< * Allow control over which tables are WAL-logged
> * Allow control over which tables are WAL-logged [walcontrol]
1038c1038,1039
< stable logging probably can not have indexes. [walcontrol]
> stable logging probably can not have indexes. One complexity is
> the handling of indexes on TOAST tables.
Bruce Momjian [Sat, 4 Feb 2006 03:22:36 +0000 (03:22 +0000)]
Add to TODO.detail/walcontrol.
Bruce Momjian [Sat, 4 Feb 2006 02:32:38 +0000 (02:32 +0000)]
In ecpg, automatically double single quotes in $$ strings because
internally $$ strings are converted to single-quote strings.
In ecpg, output newlines in commands using standard C escapes, rather
than using literal newlines, which is not portable.
Bruce Momjian [Sat, 4 Feb 2006 01:04:20 +0000 (01:04 +0000)]
Update Makefile for new thread_test location.
Bruce Momjian [Sat, 4 Feb 2006 01:00:02 +0000 (01:00 +0000)]
Move thread_test directory from /tools to /test so source-only tarballs
have the directory for the configure test.
Peter Eisentraut [Sat, 4 Feb 2006 00:42:54 +0000 (00:42 +0000)]
First attempt at removing some AC_CHECK_LIB(foo, main) calls.
Tom Lane [Fri, 3 Feb 2006 21:08:49 +0000 (21:08 +0000)]
Teach planner to convert simple UNION ALL subqueries into append relations,
thereby sharing code with the inheritance case. This puts the UNION-ALL-view
approach to partitioned tables on par with inheritance, so far as constraint
exclusion is concerned: it works either way. (Still need to update the docs
to say so.) The definition of "simple UNION ALL" is a little simpler than
I would like --- basically the union arms can only be SELECT * FROM foo
--- but it's good enough for partitioned-table cases.
Bruce Momjian [Fri, 3 Feb 2006 13:56:20 +0000 (13:56 +0000)]
Update tested AIX memset platforms.
Bruce Momjian [Fri, 3 Feb 2006 13:53:15 +0000 (13:53 +0000)]
Allow MEMSET_LOOP_LIMIT to be set on a per-platform basis, and turn off
MemSet on AIX by setting MEMSET_LOOP_LIMIT to zero.
Add optimization to skip MemSet tests in MEMSET_LOOP_LIMIT == 0 case and
just call memset() directly.
Bruce Momjian [Fri, 3 Feb 2006 12:45:47 +0000 (12:45 +0000)]
Update random() usage so ranges are inclusive/exclusive as required.
Bruce Momjian [Fri, 3 Feb 2006 12:41:07 +0000 (12:41 +0000)]
Prevent COPY from using newline or carriage return as delimiter or null.
Disallow backslash as the delimiter in non-CVS mode.
David Fetter
Bruce Momjian [Fri, 3 Feb 2006 05:38:35 +0000 (05:38 +0000)]
Improve tab whitespace in file.
Add comment about $$ and '' SCONST strings.
Bruce Momjian [Thu, 2 Feb 2006 03:51:41 +0000 (03:51 +0000)]
More spacing cleanups.
Bruce Momjian [Wed, 1 Feb 2006 22:16:36 +0000 (22:16 +0000)]
Source code alignment fixes for preproc.y.
Bruce Momjian [Wed, 1 Feb 2006 20:57:39 +0000 (20:57 +0000)]
More alignment improvements.
Bruce Momjian [Wed, 1 Feb 2006 20:56:44 +0000 (20:56 +0000)]
Make pgc.l source code alignment consistent.
Bruce Momjian [Wed, 1 Feb 2006 17:32:45 +0000 (17:32 +0000)]
Add:
> * Allow statistics collector information to be pulled from the collector
> process directly, rather than requiring the collector to write a
> filesystem file twice a second?
Bruce Momjian [Wed, 1 Feb 2006 16:00:06 +0000 (16:00 +0000)]
Add code comment about Linux stack randomization and shared memory.
Bruce Momjian [Wed, 1 Feb 2006 12:41:45 +0000 (12:41 +0000)]
Fix const cast in get_progname().
Backpatch.
Bruce Momjian [Wed, 1 Feb 2006 00:31:59 +0000 (00:31 +0000)]
Set progname early in the postmaster/postgres binary, rather than doing
it later. This fixes a problem where EXEC_BACKEND didn't have progname
set, causing a segfault if log_min_messages was set below debug2 and our
own snprintf.c was being used.
Also alway strdup() progname.
Backpatch to 8.1.X and 8.0.X.
Bruce Momjian [Wed, 1 Feb 2006 00:07:26 +0000 (00:07 +0000)]
Move items:
> * Add SQL99 WITH clause to SELECT
> * Add SQL99 WITH RECURSIVE to SELECT
< * Add SQL99 WITH clause to SELECT
< * Add SQL99 WITH RECURSIVE to SELECT
Bruce Momjian [Wed, 1 Feb 2006 00:03:09 +0000 (00:03 +0000)]
Add:
>
> o Prevent tab completion of SET TRANSACTION from querying the
> database and therefore preventing the transaction isolation
> level from being set.
>
> Currently, SET <tab> causes a database lookup to check all
> supported session variables. This query causes problems
> because setting the transaction isolation level must be the
> first statement of a transaction.
Tom Lane [Tue, 31 Jan 2006 22:40:03 +0000 (22:40 +0000)]
Allow %TYPE to be used with SETOF, per gripe from Murat Tasan.
Tom Lane [Tue, 31 Jan 2006 21:39:25 +0000 (21:39 +0000)]
Restructure planner's handling of inheritance. Rather than processing
inheritance trees on-the-fly, which pretty well constrained us to considering
only one way of planning inheritance, expand inheritance sets during the
planner prep phase, and build a side data structure that can be consulted
later to find which RTEs are members of which inheritance sets. As proof of
concept, use the data structure to plan joins against inheritance sets more
efficiently: we can now use indexes on the set members in inner-indexscan
joins. (The generated plans could be improved further, but it'll take some
executor changes.) This data structure will also support handling UNION ALL
subqueries in the same way as inheritance sets, but that aspect of it isn't
finished yet.
Michael Meskes [Tue, 31 Jan 2006 13:32:20 +0000 (13:32 +0000)]
Removed single quotes from connect to example.
Tom Lane [Mon, 30 Jan 2006 16:18:58 +0000 (16:18 +0000)]
Fix ALTER COLUMN TYPE bug: it sometimes tried to drop UNIQUE or PRIMARY KEY
constraints before FOREIGN KEY constraints that depended on them. Originally
reported by Neil Conway on 29-Jun-2005. Patch by Nakano Yoshihisa.
Tom Lane [Sun, 29 Jan 2006 18:55:48 +0000 (18:55 +0000)]
When building a bitmap scan, must copy the bitmapqualorig expression tree
to avoid sharing substructure with the lower-level indexquals. This is
currently only an issue if there are SubPlans in the indexquals, which is
uncommon but not impossible --- see bug #2218 reported by Nicholas Vinen.
We use the same kluge for indexqual vs indexqualorig in the index scans
themselves ... would be nice to clean this up someday.
Tom Lane [Sun, 29 Jan 2006 17:40:00 +0000 (17:40 +0000)]
Fix Assert that's no longer correct now that RowCompareExpr is indexable.
Tom Lane [Sun, 29 Jan 2006 17:27:42 +0000 (17:27 +0000)]
Fix code that checks to see if an index can be considered to match the query's
requested sort order. It was assuming that build_index_pathkeys always
generates a pathkey per index column, which was not true if implied equality
deduction had determined that two index columns were effectively equated to
each other. Simplest fix seems to be to install an option that causes
build_index_pathkeys to support this behavior as well as the original one.
Per report from Brian Hirt.
Andrew Dunstan [Sat, 28 Jan 2006 16:20:31 +0000 (16:20 +0000)]
Undo perl's nasty locale setting on Windows. Since we can't do that as
elsewhere by setting the environment appropriately, we make perl do it
right after interpreter startup by calling its POSIX::setlocale().
Neil Conway [Sat, 28 Jan 2006 03:28:15 +0000 (03:28 +0000)]
Per a bug report from Theo Schlossnagle, plperl_return_next() leaks
memory in the executor's per-query memory context. It also inefficient:
it invokes get_call_result_type() and TupleDescGetAttInMetadata() for
every call to return_next, rather than invoking them once (per PL/Perl
function call) and memoizing the result.
This patch makes the following changes:
- refactor the code to include all the "per PL/Perl function call" data
inside a single struct, "current_call_data". This means we don't need to
save and restore N pointers for every recursive call into PL/Perl, we
can just save and restore one.
- lookup the return type metadata needed by plperl_return_next() once,
and then stash it in "current_call_data", so as to avoid doing the
lookup for every call to return_next.
- create a temporary memory context in which to evaluate the return
type's input functions. This memory context is reset for each call to
return_next.
The patch appears to fix the memory leak, and substantially reduces
the overhead imposed by return_next.
Tom Lane [Fri, 27 Jan 2006 19:01:15 +0000 (19:01 +0000)]
Tweak initdb to reduce verbosity of progress messages, by printing just
one 'creating subdirectories' message instead of one per subdirectory.
The original decision to print something for each subdirectory was made
when there were only one or two of 'em; we have way too many now.
Per discussion.
Teodor Sigaev [Fri, 27 Jan 2006 16:32:31 +0000 (16:32 +0000)]
Snowball multibyte. It's a pity, but snowball sources is very diferent for multibyte and
singlebyte encodings, so we should have snowball for every encodings.
I hope that finalize multibyte support work in tsearch2, but testing is needed...
Tom Lane [Thu, 26 Jan 2006 18:08:10 +0000 (18:08 +0000)]
Suppress signed-vs-unsigned-char warning.
Tom Lane [Thu, 26 Jan 2006 17:08:19 +0000 (17:08 +0000)]
Fix display of whole-row Var appearing at the top level of a SELECT list.
While we normally prefer the notation "foo.*" for a whole-row Var, that does
not work at SELECT top level, because in that context the parser will assume
that what is wanted is to expand the "*" into a list of separate target
columns, yielding behavior different from a whole-row Var. We have to emit
just "foo" instead in that context. Per report from Sokolov Yura.
Tom Lane [Thu, 26 Jan 2006 04:22:36 +0000 (04:22 +0000)]
Update btree_gist for CIDR/INET changes --- there's really no need to
have a separate set of CIDR code here, either.
Bruce Momjian [Thu, 26 Jan 2006 02:50:11 +0000 (02:50 +0000)]
Done:
< * %Prevent INET cast to CIDR if the unmasked bits are not zero, or
< zero the bits
< * %Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
> * -Zero umasked bits in conversion from INET cast to CIDR
> * -Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
Tom Lane [Thu, 26 Jan 2006 02:35:51 +0000 (02:35 +0000)]
Clean up the INET-vs-CIDR situation. Get rid of the internal is_cidr flag
and rely exclusively on the SQL type system to tell the difference between
the types. Prevent creation of invalid CIDR values via casting from INET
or set_masklen() --- both of these operations now silently zero any bits
to the right of the netmask. Remove duplicate CIDR comparison operators,
letting the type rely on the INET operators instead.
Tom Lane [Wed, 25 Jan 2006 23:26:11 +0000 (23:26 +0000)]
Remove the no-longer-useful HashItem/HashItemData level of structure.
Same motivation as for BTItem.
Tom Lane [Wed, 25 Jan 2006 23:04:21 +0000 (23:04 +0000)]
Remove the no-longer-useful BTItem/BTItemData level of structure, and
just refer to btree index entries as plain IndexTuples, which is what
they have been for a very long time. This is mostly just an exercise
in removing extraneous notation, but it does save a palloc/pfree cycle
per index insertion.
Tom Lane [Wed, 25 Jan 2006 20:44:32 +0000 (20:44 +0000)]
Remove unnecessary PQconsumeInput call from PQputCopyData; it's redundant
because pqSendSome will absorb input data anytime it'd be forced to block.
Avoiding a kernel call per PQputCopyData call helps COPY speed materially.
Alon Goldshuv
Tom Lane [Wed, 25 Jan 2006 20:29:24 +0000 (20:29 +0000)]
Allow row comparisons to be used as indexscan qualifications.
This completes the project to upgrade our handling of row comparisons.
Bruce Momjian [Wed, 25 Jan 2006 18:20:22 +0000 (18:20 +0000)]
Update regression error message for NUMERIC range overflow. Display "1"
instead of "10^0".
Bruce Momjian [Wed, 25 Jan 2006 18:15:03 +0000 (18:15 +0000)]
Update regression error message for NUMERIC range overflow. Display "1"
instead of 10^0.
Bruce Momjian [Wed, 25 Jan 2006 17:54:14 +0000 (17:54 +0000)]
Improve error message when NUMERIC precision is exceeded.
Tom Lane [Tue, 24 Jan 2006 16:38:42 +0000 (16:38 +0000)]
Fix unportable usage of socklen_t: should use ACCEPT_TYPE_ARG3 macro
provided by configure, instead. Per bug #2205.
Michael Meskes [Tue, 24 Jan 2006 11:01:38 +0000 (11:01 +0000)]
- Synced parser and keyword list.
- Added another test case.
Tom Lane [Mon, 23 Jan 2006 22:31:41 +0000 (22:31 +0000)]
Instead of using a numberOfRequiredKeys count to distinguish required
and non-required keys in a btree index scan, mark the required scankeys
with private flag bits SK_BT_REQFWD and/or SK_BT_REQBKWD. This seems
at least marginally clearer to me, and it eliminates a wired-into-the-
data-structure assumption that required keys are consecutive. Even though
that assumption will remain true for the foreseeable future, having it
in there makes the code seem more complex than necessary.