1
0
mirror of https://github.com/postgres/postgres.git synced 2025-11-15 03:41:20 +03:00
Commit Graph

7587 Commits

Author SHA1 Message Date
Bruce Momjian
fef731d1c4 The "Allow easy display of usernames in a group (pg_hba.conf uses groups
now)" item on the open items, and subsequent plpgsql function I sent in,
made me realize it was too hard to get the upper and lower bound of an
array. The attached creates two functions that I think will be very
useful when combined with the ability of plpgsql to return sets.

array_lower(array, dim_num)
- and -
array_upper(array, dim_num)

They return the value (as an int) of the upper and lower bound of the
requested dim in the provided array.

Joe Conway
2002-11-08 17:27:03 +00:00
Tom Lane
3a4b3ac3a5 Remove inappropriate inclusions of OpenSSL internal header e_os.h,
as well as unnecessary (and incorrect on Windows) assignments to
errno/SOCK_ERRNO.
2002-11-07 18:45:51 +00:00
Tom Lane
2103b7baa2 Phase 2 of hashed-aggregation project. nodeAgg.c now knows how to do
hashed aggregation, but there's not yet planner support for it.
2002-11-06 22:31:24 +00:00
Tom Lane
f6dba10e62 First phase of implementing hash-based grouping/aggregation. An AGG plan
node now does its own grouping of the input rows, and has no need for a
preceding GROUP node in the plan pipeline.  This allows elimination of
the misnamed tuplePerGroup option for GROUP, and actually saves more code
in nodeGroup.c than it costs in nodeAgg.c, as well as being presumably
faster.  Restructure the API of query_planner so that we do not commit to
using a sorted or unsorted plan in query_planner; instead grouping_planner
makes the decision.  (Right now it isn't any smarter than query_planner
was, but that will change as soon as it has the option to select a hash-
based aggregation step.)  Despite all the hackery, no initdb needed since
only in-memory node types changed.
2002-11-06 00:00:45 +00:00
Tom Lane
7f660090e5 Remove unnecessary inclusion, per Andreas. 2002-11-04 14:25:42 +00:00
Tom Lane
c14b72577c Remove no-longer-needed inclusion of bootstrap_tokens.h, per patch
from Andreas.
2002-11-04 14:22:32 +00:00
Tom Lane
2a01b05936 Code review for recent patch to allow ALTER TABLE ADD COLUMN when
a child table already has a matching column.  Acquire appropriate
lock on child table; do the right thing with any CHECK constraints
attached to the new parent column.
2002-11-02 22:02:08 +00:00
Tom Lane
e02d1abee6 During swap_relfilenodes, swap relation size statistic fields along with
the relfilenode and toast fields.  This ensures that the newly-computed
statistics will be available on completion of CLUSTER.
2002-11-02 21:20:40 +00:00
Tom Lane
5123139210 Remove encoding lookups from grammar stage, push them back to places
where it's safe to do database access.  Along the way, fix core dump
for 'DEFAULT' parameters to CREATE DATABASE.  initdb forced due to
change in pg_proc entry.
2002-11-02 18:41:22 +00:00
Tom Lane
f6e0130b5b Clean up a few fprintf(stderr)'s that should be elog's. 2002-11-02 15:54:13 +00:00
Tom Lane
6a7273e14c Fix permissions-checking bugs and namespace-search-path bugs in
CONVERSION code.  Still need to figure out what to do about inappropriate
coding in parsing.
2002-11-02 02:33:03 +00:00
Tom Lane
cab9437a43 Arrange to compile flex output files as inclusions into other files
(usually bison output files), not as standalone files.  This hack
works around flex's insistence on including <stdio.h> before we are
able to include postgres.h; postgres.h will already be read before
the compiler starts to read the flex output file.  Needed for largefile
support on some platforms.
2002-11-01 22:52:34 +00:00
Tom Lane
884cd4b6be Reduce a couple of debugging messages from LOG to DEBUG1 category. 2002-11-01 19:33:09 +00:00
Tom Lane
8d43947886 Reduce messages associated with shell-type function arguments/results
from WARNING to NOTICE, since they are expected messages in common cases.
2002-11-01 19:19:58 +00:00
Tom Lane
0d97eb6ac8 After elog(PANIC), exit with abort() not proc_exit(). This allows a
core file to be produced for debugging, and avoids trying to run the
normal proc-exit cleanup hooks, which are likely to cause additional
problems if the system is hosed.
2002-11-01 17:55:23 +00:00
Tom Lane
643dfb783d Fix some bogus comments. 2002-11-01 00:40:23 +00:00
Tom Lane
966a4ca9b3 Add missing #include <errno.h>, per gripe from Alessio Bragadini. 2002-10-31 22:37:19 +00:00
Tom Lane
1ce069b067 Got tired of explaining why this Assert is not wrong. 2002-10-31 21:59:32 +00:00
Tom Lane
55e4ef138c Code review for statement_timeout patch. Fix some race conditions
between signal handler and enable/disable code, avoid accumulation of
timing error due to trying to maintain remaining-time instead of
absolute-end-time, disable timeout before commit not after.
2002-10-31 21:34:17 +00:00
Tom Lane
8a45a2e9b6 Fix miscalculation of remaining free space during tuple chain moving.
Only affects machines where MAXALIGN > 4, and is a boundary-condition
case even there, but still surprising that it's not been identified
before.  Also reduce tuple chain move give-up messages from WARNING
to DEBUG1, since they are not unexpected conditions.
2002-10-31 19:25:29 +00:00
Tom Lane
5936055d46 Avoid use of inline functions that are not declared static. Needed to
conform to C99's brain-dead notion of how inline functions should work.
2002-10-31 19:11:48 +00:00
Bruce Momjian
2982b97f71 Clean up gram.y trailing spaces. 2002-10-31 02:31:00 +00:00
Tom Lane
3518fbe86f Add missing semicolons to a few PG_FUNCTION_INFO_V1 calls. 2002-10-26 15:01:01 +00:00
Tom Lane
bd19e8f604 Fix some places that were unportably assuming struct timeval's tv_sec
field is signed.  Clean up casting.
2002-10-24 23:19:13 +00:00
Tom Lane
c3086c8f53 Function-call-style type coercions should be treated as explicit
coercions, not implicit ones.  For example, 'select abstime(1035497293)'
should succeed because there is an explicit binary coercion from int4
to abstime.
2002-10-24 22:09:00 +00:00
Tom Lane
30963fc200 Perform transaction cleanup operations in a less ad-hoc, more
principled order; in particular ensure that all shared resources
are released before we release transaction locks.  The code used
to release locks before buffer pins, which might explain an ancient
note I have about a bufmgr assertion failure I'd seen once several
years ago, and been unable to reproduce since.  (Theory: someone
trying to drop a relation might be able to reach FlushRelationBuffers
before the last user of the relation had gotten around to dropping
his buffer pins.)
2002-10-22 22:44:36 +00:00
Tom Lane
200b151615 Fix places that were using IsTransactionBlock() as an (inadequate) check
that they'd get to commit immediately on finishing.  There's now a
centralized routine PreventTransactionChain() that implements the
necessary tests.
2002-10-21 22:06:20 +00:00
Bruce Momjian
e49c1a9234 Fix ALTER TABLE ... ADD COLUMN for inheritance cases.
Alvaro Herrera
2002-10-21 20:31:52 +00:00
Tom Lane
b47c3598d4 Remove unnecessary (and inadequate) check of IsTransactionBlock() in
pgstat_vacuum_tabstat().  Assume that caller (namely, VACUUM) has done
the appropriate state checking beforehand.
2002-10-21 19:59:14 +00:00
Tom Lane
a20e49bea8 Avoid using IsTransactionBlock() in DeferredTriggerSetState(); no real
need for this optimization, and it's too easily fooled anyway.
2002-10-21 19:55:49 +00:00
Tom Lane
e16f04cf72 Make CREATE/ALTER/DROP USER/GROUP transaction-safe, or at least pretty
nearly so, by postponing write of flat password file until transaction
commit.
2002-10-21 19:46:45 +00:00
Tom Lane
13416a1f8f Fix potential problem with btbulkdelete deleting an indexscan's current
item, if the page containing the current item is split while the indexscan
is stopped and holds no read-lock on the page.  The current item might
move right onto a page that the indexscan holds no pin on.  In the prior
code this would allow btbulkdelete to reach and possibly delete the item,
causing 'my bits moved right off the end of the world!' when the indexscan
finally resumes.  Fix by chaining read-locks to the right during
_bt_restscan and requiring btbulkdelete to LockBufferForCleanup on every
page it scans, not only those with deletable items.  Per my pghackers
message of 25-May-02.  (Too bad no one could think of a better way.)
2002-10-20 20:47:31 +00:00
Tom Lane
a044e2abdd Rule rewriter was doing the wrong thing with conditional INSTEAD rules
whose conditions might yield NULL.  The negated qual to attach to the
original query is properly 'x IS NOT TRUE', not 'NOT x'.  This fix
produces correct behavior, but we may be taking a performance hit because
the planner is much stupider about IS NOT TRUE than it is about NOT
clauses.  Future TODO: teach prepqual, other parts of planner how to
cope with BooleanTest clauses more effectively.
2002-10-20 00:58:55 +00:00
Tom Lane
6d6b582850 Disallow aggregate functions in rule WHERE clauses. Per gripe from
Fritz Lehmann-Grube back in January.
2002-10-20 00:31:53 +00:00
Tom Lane
76d09f4610 Fix case where a function in FROM returns a scalar type, but is
referred to with whole-tuple syntax.
2002-10-19 21:23:20 +00:00
Tom Lane
60992456ed Invert logic in pg_exec_query_string() so that we set a snapshot for
all utility statement types *except* a short list, per discussion a few
days ago.  Add missing SetQuerySnapshot calls in VACUUM and REINDEX,
and guard against calling REINDEX DATABASE from a function (has same
problem as VACUUM).
2002-10-19 20:15:09 +00:00
Tom Lane
c1f91a38e2 Fix rewrite code so that rules are in fact executed in order by name,
rather than being reordered according to INSTEAD attribute for
implementation convenience.
Also, increase compiled-in recursion depth limit from 10 to 100 rewrite
cycles.  10 seems pretty marginal for situations where multiple rules
exist for the same query.  There was a complaint about this recently,
so I'm going to bump it up.  (Perhaps we should make the limit a GUC
parameter, but that's too close to being a new feature to do in beta.)
2002-10-19 19:00:47 +00:00
Bruce Momjian
757b98fda8 Back out Alvaro's patch until regression tests pass. 2002-10-19 03:01:09 +00:00
Tom Lane
c0f7dcdac1 Fix range-query estimation to not double-exclude NULLs, per gripe from
Ray Ontko 28-June-02.  Also, fix prefix_selectivity for NAME lefthand
variables (it was bogusly assuming binary compatibility), and adjust
make_greater_string() to not call pg_mbcliplen() with invalid multibyte
data (this last per bug report that I can't find at the moment, but it
was in July '02).
2002-10-19 02:56:16 +00:00
Bruce Momjian
1a63cc5e90 Fix compile failure caused by new patch. 2002-10-19 02:25:51 +00:00
Bruce Momjian
cabad378fc > Huh, I don't know where I got the idea you were (or someone else was?)
> in the position that attislocal should be reset.  I'll clean everything
> up and submit the patch I had originally made.

All right, this is it.  This patch merely checks if child tables have
the column.  If atttypid and atttypmod are the same, the attributes'
attinhcount is incremented; else the operation is aborted.  If child
tables don't have the column, recursively add it.

attislocal is not touched in any case.

Alvaro Herrera
2002-10-19 02:09:45 +00:00
Bruce Momjian
bab3d29fba This patch adds some missing functions for float8 math operations,
specifically ceil(), floor(), and sign(). There may be other functions
that need to be added, but this is a start. I've included some simple
regression tests.

Neil Conway
2002-10-19 02:08:19 +00:00
Tom Lane
5a0a79d694 Add missing #include <errno.h>. 2002-10-19 00:25:36 +00:00
Peter Eisentraut
4cff161703 Improve formatting of --help output. 2002-10-18 22:05:36 +00:00
Tom Lane
0d17ce92ac Fix breakage that had crept into setlocale() usage: once again we've
been bit by the fact that the locale functions return pointers to
modifiable variables.  I added some comments that might help us avoid
the mistake in future.
2002-10-18 20:44:02 +00:00
Tom Lane
3a2ef59116 Fix Linux dynloader code for pre-HAVE_DLOPEN systems, which evidently
are still in use out there.  Per report from Brendan LeFebvre.
2002-10-15 16:04:17 +00:00
Tom Lane
9ff695c944 Make SPI's execution of querystrings follow the rules agreed to for
command status at the interactive level.  SPI_processed, etc are set
in the same way as the returned command status would have been set if
the same querystring were issued interactively.  Per gripe from
Michael Paesold 25-Sep-02.
2002-10-14 23:49:20 +00:00
Tom Lane
d508b057ac Adjust handling of command status strings in the presence of rules,
as per recent pghackers discussions.  initdb forced due to change in
fields of stored Query nodes.
2002-10-14 22:14:35 +00:00
Peter Eisentraut
50634c13e4 Translation updates 2002-10-14 19:04:28 +00:00
Tom Lane
8f2a289d78 Arrange to copy relcache's trigdesc structure at the start of any
query that uses it.  This ensures that triggers will be applied consistently
throughout a query even if someone commits changes to the relation's
pg_class.reltriggers field meanwhile.  Per crash report from Laurette Cisneros.
While at it, simplify memory management in relcache.c, which no longer
needs the old hack to try to keep trigger info in the same place over
a relcache entry rebuild.  (Should try to fix rd_att and rewrite-rule
access similarly, someday.)  And make RelationBuildTriggers simpler and
more robust by making it build the trigdesc in working memory and then
CopyTriggerDesc() into cache memory.
2002-10-14 16:51:30 +00:00