| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
single-byte encodings, and a direct C implementation of the single-argument
forms (where spaces are always what gets trimmed). This is in preparation
for using rtrim1() as the bpchar-to-text cast operator, but is a useful
performance improvement even if we decide not to do that.
|
| |
|
|
|
|
|
|
|
| |
example from Rao Kumar. This is a very corner corner-case, requiring
a minimum of three closely-spaced database crashes and an unlucky
positioning of the second recovery's checkpoint record before you'd notice
any problem. But the consequences are dire enough that it's a must-fix.
|
|
|
|
| |
qualified when necessary, simplify argument-printing code.
|
|
|
|
| |
views.
|
|
|
|
|
|
|
|
| |
Ross Reedstrom, a couple months back) and to detect timezones that are
using leap-second timekeeping. The unknown-zone-name test is pretty
heuristic and ugly, but it seems better than the old behavior of just
switching to GMT given a bad name. Also make DecodePosixTimezone() a
tad more robust.
|
| |
|
| |
|
|
|
|
| |
window.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Win32 port is now called 'win32' rather than 'win'
add -lwsock32 on Win32
make gethostname() be only used when kerberos4 is enabled
use /port/getopt.c
new /port/opendir.c routines
disable GUC unix_socket_group on Win32
convert some keywords.c symbols to KEYWORD_P to prevent conflict
create new FCNTL_NONBLOCK macro to turn off socket blocking
create new /include/port.h file that has /port prototypes, move
out of c.h
new /include/port/win32_include dir to hold missing include files
work around ERROR being defined in Win32 includes
|
|
|
|
| |
class when lc_collate is not C.
|
| |
|
|
|
|
|
|
| |
only remnant of this failed experiment is that the server will take
SET AUTOCOMMIT TO ON. Still TODO: provide some client-side autocommit
logic in libpq.
|
|
|
|
|
|
| |
the type OID and typmod of the underlying base type. Per discussions
a few weeks ago with Andreas Pflug and others. Note that this behavioral
change affects both old- and new-protocol clients.
|
| |
|
|
|
|
|
|
|
| |
This makes no difference for existing uses, but allows SelectSortFunction()
and pred_test_simple_clause() to use indexscans instead of seqscans to
locate entries for a particular operator in pg_amop. Better yet, they can
use the SearchSysCacheList() API to cache the search results.
|
|
|
|
|
| |
but that was enough tedium for one day. Along the way, move the few
support routines for types xid and cid into a more logical place.
|
|
|
|
| |
efficient insertion of large bytea values through the BIND interface.
|
|
|
|
|
|
|
|
|
|
|
| |
dropped. The simplest fix for INSERT/UPDATE cases turns out to be for
preptlist.c to insert NULLs of a known-good type (I used INT4) rather
than making them match the deleted column's type. Since the representation
of NULL is actually datatype-independent, this should work fine.
I also re-reverted the patch to disable the use_physical_tlist optimization
in the presence of dropped columns. It still doesn't look worth the
trouble to be smarter, if there are no other bugs to fix.
Added a regression test to catch future problems in this area.
|
|
|
|
|
| |
more cases than I thought, so ExecTypeFromTL() will have to be fixed
anyway.
|
|
|
|
|
|
|
|
| |
where the table contains dropped columns. If the columns are dropped,
then their types may be gone as well, which causes ExecTypeFromTL() to
fail if the dropped columns appear in a plan node's tlist. This could
be worked around but I don't think the optimization is valuable enough
to be worth the trouble.
|
|
|
|
|
|
|
|
|
|
| |
detected during buffer dump to be labeled with the buffer location.
For example, if a page LSN is clobbered, we now produce something like
ERROR: XLogFlush: request 2C000000/8468EC8 is not satisfied --- flushed only
to 0/8468EF0
CONTEXT: writing block 0 of relation 428946/566240
whereas before there was no convenient way to find out which page had
been trashed.
|
|
|
|
| |
instead of calling it a 'server process'.
|
|
|
|
|
|
| |
dead xlog segments are not considered part of a critical section. It is
not necessary to force a database-wide panic if we get a failure in these
operations. Per recent trouble reports.
|
|
|
|
| |
the folly of not passing element type to typsend/typreceive, so fix that.
|
|
|
|
| |
so that COPY BINARY regression test passes.
|
|
|
|
| |
fastpath.c had better check for strict functions.
|
|
|
|
|
| |
messages. Binary I/O is now up and working, but only for a small set
of datatypes (integers, text, bytea).
|
| |
|
| |
|
| |
|
|
|
|
| |
testing purposes.
|
|
|
|
|
| |
yet, but they're there. Also some editorial work on CREATE TYPE reference
page.
|
| |
|
| |
|
|
|
|
| |
as speaking the one true 3.0 protocol.
|
|
|
|
|
|
|
| |
handle multiple 'formats' for data I/O. Restructure CommandDest and
DestReceiver stuff one more time (it's finally starting to look a bit
clean though). Code now matches latest 3.0 protocol document as far
as message formats go --- but there is no support for binary I/O yet.
|
|
|
|
| |
Allow backends to attached to specified shared memory address.
|
|
|
|
| |
than WIN32.
|
|
|
|
| |
fork/exec.
|
|
|
|
|
|
| |
of Describe on a prepared statement. This was in the original 3.0
protocol proposal, but I took it out for reasons that seemed good at
the time. Put it back per yesterday's pghackers discussion.
|
|
|
|
|
|
|
| |
Describe would claim that no tuples will be returned. Only affects
SELECTs added to non-SELECT base queries by rewrite rules. If you
want to see the output of such a select, you gotta use 'simple Query'
protocol.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DestReceiver pointers instead of just CommandDest values. The DestReceiver
is made at the point where the destination is selected, rather than
deep inside the executor. This cleans up the original kluge implementation
of tstoreReceiver.c, and makes it easy to support retrieving results
from utility statements inside portals. Thus, you can now do fun things
like Bind and Execute a FETCH or EXPLAIN command, and it'll all work
as expected (e.g., you can Describe the portal, or use Execute's count
parameter to suspend the output partway through). Implementation involves
stuffing the utility command's output into a Tuplestore, which would be
kind of annoying for huge output sets, but should be quite acceptable
for typical uses of utility commands.
|
| |
|
|
|
|
| |
Reorder non-default variable loading until PGDATA is defined.
|
|
|
|
|
|
|
|
|
| |
the column by table OID and column number, if it's a simple column
reference. Along the way, get rid of reskey/reskeyop fields in Resdoms.
Turns out that representation was not convenient for either the planner
or the executor; we can make the planner deliver exactly what the
executor wants with no more effort.
initdb forced due to change in stored rule representation.
|
|
|
|
|
|
| |
which does the same thing. Perhaps at one time there was a reason to
allow plan nodes to store their result types in different places, but
AFAICT that's been unnecessary for a good while.
|
|
|
|
| |
*got* to be pointless.
|
|
|
|
| |
Only lightly tested as yet, since libpq doesn't know anything about 'em.
|
| |
|