| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
PGPROC array into snapshots, and use this information to avoid visits
to pg_subtrans in HeapTupleSatisfiesSnapshot. This appears to solve
the pg_subtrans-related context swap storm problem that's been reported
by several people for 8.1. While at it, modify GetSnapshotData to not
take an exclusive lock on ProcArrayLock, as closer analysis shows that
shared lock is always sufficient.
Itagaki Takahiro and Tom Lane
|
|
|
|
|
|
|
| |
multiplication/division queries like select '41 mon 10:00:00'::interval
/ 10 as "pos".
Report from Michael Glaesemann
|
|
|
|
| |
fetch/move in scan.l.
|
|
|
|
| |
Report from Josh Tolley.
|
| |
|
| |
|
|
|
|
|
|
|
| |
--- was part of autovacuum default 'on' patch that was reverted, but we
want this part.
Peter Eisentraut
|
| |
|
|
|
|
| |
possible autovacuum use.
|
| |
|
|
|
|
|
|
| |
multiple columns
Susanne Ebrecht
|
|
|
|
| |
Dhanaraj M
|
|
|
|
| |
overhead for every connection, per Tom.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RETURNING play nice with views/rules. To wit, have the rule rewriter
rewrite any RETURNING clause found in a rule to produce what the rule's
triggering query asked for in its RETURNING clause, in particular drop
the RETURNING clause if no RETURNING in the triggering query. This
leaves the responsibility for knowing how to produce the view's output
columns on the rule author, without requiring any fundamental changes
in rule semantics such as adding new rule event types would do. The
initial implementation constrains things to ensure that there is
exactly one, unconditionally invoked RETURNING clause among the rules
for an event --- later we might be able to relax that, but for a post
feature freeze fix it seems better to minimize how much invention we do.
Per gripe from Jaime Casanova.
|
|
|
|
|
|
|
|
| |
"server_version" but uses the handy PG_VERSION_NUM which allows apps to
do things like if ($version >= 80200) without having to parse apart the
value of server_version themselves.
Greg Sabino Mullane greg@turnstep.com
|
|
|
|
|
| |
didn't create a dependency from the new conversion to its schema. Back-patch
to all supported releases.
|
| |
|
| |
|
|
|
|
| |
COPY SELECT work done by Zoltan Boszormenyi
|
|
|
|
| |
Bernd Helmle
|
| |
|
|
|
|
| |
Fix printing of NULL bind parameters, use "NULL".
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
optionally bind. I re-added the "statement:" label so people will
understand why the line is being printed (it is log_*statement
behavior).
Use single quotes for bind values, instead of double quotes, and double
literal single quotes in bind values (and document that). I also made
use of the DETAIL line to have much cleaner output.
|
|
|
|
|
|
|
|
|
|
| |
pgstat_bestart() has been called; else any lock-block occurring
during InitPostgres() is disastrous. I believe this explains
recent wasp regression failure; at least it explains the crash I
got while trying to duplicate the problem. I also made
pgstat_report_activity() safe against the same scenario, just
in case. The report_waiting hazard was created by my patch of
19-Aug to include waiting status in pg_stat_activity.
|
|
|
|
|
|
|
| |
trivial if it contains either Vars referencing the corresponding subplan
columns, or Consts equaling the corresponding subplan columns. This
lets the planner eliminate the SubqueryScan in some cases generated by
generate_setop_tlist().
|
|
|
|
| |
Threshold and scale factor are cut in half for more aggressive behavior.
|
|
|
|
|
|
|
| |
Fix all the standard PLs to be able to return tuples from FOO_RETURNING
statements as well as utility statements that return tuples. Also,
fix oversight that SPI_processed wasn't set for a utility statement
returning tuples. Per recent discussion.
|
|
|
|
|
| |
HeapTupleSatisfiesItself without doing LockBuffer first. This code
is a bit fragile, but AFAICS it's not actually broken.
|
|
|
|
|
|
|
|
|
| |
locks that would conflict with a specified lock request, without
actually trying to get that lock. Use this instead of the former ad hoc
method of doing the first wait step in CREATE INDEX CONCURRENTLY.
Fixes problem with undetected deadlock and in many cases will allow the
index creation to proceed sooner than it otherwise could've. Per
discussion with Greg Stark.
|
|
|
|
| |
Needed because lock.c is now going to use the same type of list.
|
|
|
|
|
| |
blocking concurrent writes to the table. Greg Stark, with a little help
from Tom Lane.
|
|
|
|
|
| |
specific Windows error code (GetLastError). This is a hopefully temporary
hack to try to diagnose rare failures. Magnus Hagander
|
|
|
|
|
|
|
|
| |
on the same index page; we can avoid data copying as well as buffer refcount
manipulations in this common case. Makes for a small but noticeable
improvement in mergejoin speed.
Heikki Linnakangas
|
|
|
|
| |
"failure".
|
|
|
|
| |
suggesting review of client_encoding.
|
| |
|
|
|
|
|
| |
entirely on older Windows platforms without the needed library function.
Magnus Hagander
|
|
|
|
|
| |
the subject tuple is already deleted: we need not open the pk_rel
until after we check that.
|
|
|
|
|
|
|
|
|
| |
of the transaction ID counter. Nothing is done with the epoch except to
store it in checkpoint records, but this provides a foundation with which
add-on code can pretend that XIDs never wrap around. This is a severely
trimmed and rewritten version of the xxid patch submitted by Marko Kreen.
Per discussion, the epoch counter seems the only part of xxid that really
needs to be in the core server.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by abandoning the idea that it should say SERIAL in the dump. Instead,
dump serial sequences and column defaults just like regular ones.
Add a new backend command ALTER SEQUENCE OWNED BY to let pg_dump recreate
the sequence-to-column dependency that was formerly created "behind the
scenes" by SERIAL. This restores SERIAL to being truly "just a macro"
consisting of component operations that can be stated explicitly in SQL.
Furthermore, the new command allows sequence ownership to be reassigned,
so that old mistakes can be cleaned up.
Also, downgrade the OWNED-BY dependency from INTERNAL to AUTO, since there
is no longer any very compelling argument why the sequence couldn't be
dropped while keeping the column. (This forces initdb, to be sure the
right kinds of dependencies are in there.)
Along the way, add checks to prevent ALTER OWNER or SET SCHEMA on an
owned sequence; you can now only do this indirectly by changing the
owning table's owner or schema. This is an oversight in previous
releases, but probably not worth back-patching.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
each object to be deleted, instead of the previous hack that just skipped
INTERNAL dependencies, which didn't really work. Per report from Tom Lane.
To do this, introduce a new performMultipleDeletions entry point in
dependency.c to delete multiple objects at once. The dependency code then has
the responsability of tracking INTERNAL and AUTO dependencies as needed.
Along the way, change ObjectAddresses so that we can allocate an ObjectAddress
list from outside dependency.c and not have to export the internal
representation.
|
|
|
|
|
|
| |
functions in its targetlist, to avoid introducing multiple evaluations
of volatile functions that textually appear only once. This is a
slightly tighter version of Jaime Casanova's recent patch.
|
|
|
|
|
|
|
| |
that ps_status provides by appending 'waiting' to the PS display. This
completes the project of making it feasible to turn off process title
updates and instead rely on pg_stat_activity. Per my suggestion a few
weeks ago.
|
|
|
|
|
|
| |
the rel, it's easy to get rid of the narrow race-condition window that
used to exist in VACUUM and CLUSTER. Did some minor code-beautification
work in the same area, too.
|
|
|
|
|
|
|
|
|
|
|
| |
than N seconds apart. This allows a simple, if not very high performance,
means of guaranteeing that a PITR archive is no more than N seconds behind
real time. Also make pg_current_xlog_location return the WAL Write pointer,
add pg_current_xlog_insert_location to return the Insert pointer, and fix
pg_xlogfile_name_offset to return its results as a two-element record instead
of a smashed-together string, as per recent discussion.
Simon Riggs
|
|
|
|
|
|
|
|
|
| |
mergejoin possibility where the inner rel was less well sorted than
the outer (ie, it matches some but not all of the merge clauses that
can work with the outer), if the inner path in question is also the
overall cheapest path for its rel. This is an old bug, but I'm not
sure it's worth back-patching, because it's such a corner case.
Noted while investigating a test case from Peter Hardman.
|