| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
working buffer into ParseDateTime() and reject too-long input there,
rather than checking the length of the input string before calling
ParseDateTime(). The old method was bogus because ParseDateTime() can use
a variable amount of working space, depending on the content of the
input string (e.g. how many fields need to be NUL terminated). This fixes
a minor stack overrun -- I don't _think_ it's exploitable, although I
won't claim to be an expert.
Along the way, fix a bug reported by Mark Dilger: the working buffer
allocated by interval_in() was too short, which resulted in rejecting
some perfectly valid interval input values. I added a regression test for
this fix.
|
| |
|
| |
|
|
|
|
|
|
| |
if they are two-byte multibyte characters. Same thing can be happen
if octet_length(multibyte_chars) == n where n is char(n).
Long standing bug since 7.3 days. Per report and fix from Yoshiyuki Asaba.
|
|
|
|
|
|
|
| |
where there was also a WHERE-clause restriction that applied to the
join. The check on restrictlist == NIL is really unnecessary anyway,
because select_mergejoin_clauses already checked for and complained
about any unmergejoinable join clauses. So just take it out.
|
|
|
|
| |
Per report from Brian Hackett.
|
|
|
|
| |
need to be created by hand anymore.
|
|
|
|
|
|
| |
starting at 1, not zero as the driver was previously doing.
Thanks to Emmanuel Bernard for the report.
|
|
|
|
|
|
|
|
| |
and VACUUM: in the interval between adding a new page to the relation
and formatting it, it was possible for VACUUM to come along and decide
it should format the page too. Though not harmful in itself, this would
cause data loss if a third transaction were able to insert tuples into
the vacuumed page before the original extender got control back.
|
|
|
|
|
|
|
| |
before we check commit/abort status. Formerly this was done in some paths
but not all, with the result that a transaction might be considered
committed for some purposes before it became committed for others.
Per example found by Jan Wieck.
|
| |
|
|
|
|
| |
is a way to recover from disabling connections to all databases at once.
|
|
|
|
|
|
| |
Backpatch to 7.4.X.
Jason Erickson
|
|
|
|
|
|
| |
output area as INTERNAL not CSTRING. This is to prevent people from
calling the functions by hand. This is a permanent solution for the
back branches but I hope it is just a stopgap for HEAD.
|
|
|
|
|
|
|
|
| |
that return INTERNAL without also having INTERNAL arguments. Since the
functions in question aren't meant to be called by hand anyway, I just
redeclared them to take 'internal' instead of 'text'. Also add code
to ProcedureCreate() to enforce the restriction, as I should have done
to start with :-(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a warning when a variable is used as a format string for printf()
and similar functions (if the variable is derived from untrusted
data, it could include unexpected formatting sequences). This
emits too many warnings to be enabled by default, but it does
flag a few dubious constructs in the Postgres tree. This patch
fixes up the obvious variants: functions that are passed a variable
format string but no additional arguments.
Most of these are harmless (e.g. the ruleutils stuff), but there
is at least one actual bug here: if you create a trigger named
"%sfoo", pg_dump will read uninitialized memory and fail to dump
the trigger correctly.
|
|
|
|
|
| |
incorrect -F argument: write_msg() expects its first parameter to be a
"module name", not the format string.
|
|
|
|
|
|
|
| |
of timetz values misbehaved in --enable-integer-datetime cases, and
EXTRACT(EPOCH) subtracted the zone instead of adding it in all cases.
Backpatch to all supported releases (except --enable-integer-datetime code
does not exist in 7.2).
|
| |
|
|
|
|
|
|
|
|
|
| |
isBeforeFirst and isAfterLast both return false for an empty result
so the checking to make sure the user is on a valid row wasn't
working.
Also don't allow an insert without specifying at least one column
value because INSERT INTO tab() values() is a syntax error.
|
|
|
|
|
|
|
| |
end of the ResultSet we can't try to load that row because it
doesn't exist and will throw an Exception.
Reported by Prasanth.
|
|
|
|
| |
it. Per report from Marinos Yannikos.
|
|
|
|
| |
--enable-integer-datetimes case. Per report from Oliver Siegmar.
|
|
|
|
|
| |
results in an exception being thrown when it really should be a
no-op.
|
|
|
|
|
| |
isn't presently set up to pass them an expected tuple descriptor. Bug has
been there since 7.3 but was just recently reported by Thomas Hallgren.
|
|
|
|
|
| |
that is a plain NULL and not a COALESCE with no inputs. Fixes crash
reported by Michael Williamson.
|
|
|
|
| |
outer side of an outer join. Per andrew@supernews.
|
|
|
|
|
|
|
|
| |
exit. Without this, operations triggered during backend exit (such as
temp table deletions) won't be counted ... which given heavy usage of
temp tables can lead to pg_autovacuum falling way behind on the need
to vacuum pg_class and pg_attribute. Per reports from Steve Crawford
and others.
|
|
|
|
| |
when a zero-month interval is given. Per discussion with Karel.
|
|
|
|
|
| |
its private storage, because that belongs to the function that it is
supposed to call. Per report from Ezequiel Tolnay.
|
|
|
|
|
| |
who for some reason isn't marked usecreatedb. Per report from Alexander
Pravking. Also fix sloppy coding in have_createdb_privilege().
|
|
|
|
|
|
| |
no held locks. This maintains the invariant that proclocks are present
only for procs that are holding or awaiting a lock; when this is not
true, LockRelease will fail. Per report from Stephen Clouse.
|
|
|
|
|
| |
into the sub-SELECT targetlist when it appears in the context
INSERT INTO foo SELECT $1 ... Per report from Abhijit Menon-Sen.
|
| |
|
|
|
|
| |
for all SPI-created cursors.
|
|
|
|
| |
overrunning the array, not after.
|
|
|
|
|
| |
minimally-invasive fix for stable branches; a cleaner fix will be
committed to HEAD soon.
|
|
|
|
|
|
|
| |
there are corner cases involving dropping toasted columns in which the
previous coding would fail, too: the new version of the table might not
have any TOAST table, but we'd still propagate possibly-wide values of
dropped columns forward.
|
|
|
|
| |
CLUSTER failure after ALTER TABLE SET WITHOUT OIDS.
|
| |
|
|
|
|
| |
functions of the aggregate, at both aggregate creation and execution times.
|
|
|
|
|
| |
to fix failure to cope with quote marks in field values; not to mention
that it is shorter and faster. Per report from Charles Haron.
|
| |
|
| |
|
|
|
|
|
| |
left input's sorting, because null rows may be inserted at various points.
Per report from Ferenc Lutischá¸n.
|
|
|
|
|
|
| |
to a refcursor declaration are specified. This is a minimally-invasive fix
for the buffer overrun -- a more thorough cleanup will be checked into
HEAD.
|
|
|
|
| |
Report from Oliver Siegmar.
|
|
|
|
| |
GERMAN datestyles. Ancient bug reported by Terry Lee Tucker.
|
|
|
|
|
| |
index predicate uses temporary memory for evaluation. Per example
from Jean-Gerard Pailloncy.
|
| |
|