| Commit message (Collapse) | Author | Age |
|
|
|
| |
Adjust get_*_path functions to be limited to MAXPGPATH.
|
|
|
|
|
|
| |
TZ stuff (and possibly others) to work in the pgstat backends.
Magnus Hagander
|
|
|
|
|
| |
setting. This is a temporary kluge to keep Alvaro happy; eventually we
should fix the TZ library API to make the problem really go away.
|
|
|
|
|
|
| |
ago. This should give significantly better results when the density of
live tuples is not uniform throughout a table. Manfred Koizar, with
minor kibitzing from Tom Lane.
|
|
|
|
|
| |
remove the ancient (and always pretty dodgy) assumption in parse_clause.c
that a query can't have an empty targetlist.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(SIGUSR1, which we have not been using recently) instead of piggybacking
on SIGUSR2-driven NOTIFY processing. This has several good results:
the processing needed to drain the sinval queue is a lot less than the
processing needed to answer a NOTIFY; there's less contention since we
don't have a bunch of backends all trying to acquire exclusive lock on
pg_listener; backends that are sitting inside a transaction block can
still drain the queue, whereas NOTIFY processing can't run if there's
an open transaction block. (This last is a fairly serious issue that
I don't think we ever recognized before --- with clients like JDBC that
tend to sit with open transaction blocks, the sinval queue draining
mechanism never really worked as intended, probably resulting in a lot
of useless cache-reset overhead.) This is the last of several proposed
changes in response to Philip Warner's recent report of sinval-induced
performance problems.
|
|
|
|
|
| |
(ie, when not inside a transaction block), so that we can avoid holding
locks longer than necessary. Per trouble report from Philip Warner.
|
|
|
|
|
|
| |
to ExclusiveLock. This still serializes the operations of this module,
but doesn't conflict with concurrent ANALYZE operations. Per trouble
report from Philip Warner a few weeks ago.
|
|
|
|
|
|
|
|
|
|
| |
functions. This allows these functions to work correctly with Unicode and
other multibyte encodings. Per prior discussion.
Also, revert my earlier change to move installation path mashing from
Makefile.global to configure. Turns out not to work well because configure
script is working with unexpanded variables, and so fails to match in
cases where it should match.
|
|
|
|
|
|
| |
several different module Makefiles with it. Also, do any adjustment
of installation paths during configure, rather than every time Makefile.global
is read.
|
| |
|
|
|
|
|
|
| |
and should do now that we control our own destiny for timezone handling,
but this commit gets the bulk of the picayune diffs in place.
Magnus Hagander and Tom Lane.
|
| |
|
|
|
|
|
| |
error report for getaddrinfo failures, point at correct token for syntax
errors in all cases, don't log redundant messages.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
right error code previously, and this patch applies an analogous change
to numeric_sqrt().
|
|
|
|
|
| |
rule's event_qual, not only to the rule's action. Per example from
Arturs Zoldners.
|
| |
|
|
|
|
|
|
|
|
| |
timezone code and other places.
Remove elog() calls from find_my_exec; do fprintf(stderr) instead. We
can then remove the exec.c handling in the makefile because it doesn't
have to be built to suppress elog calls.
|
| |
|
|
|
|
|
|
|
| |
Create new get_* functions to access compiled-in paths and adjust if
relative installs are to be used.
Clean up substitute_libpath_macro() code.
|
|
|
|
| |
error codes for certain error conditions, as specified by SQL2003.
|
|
|
|
|
|
|
|
|
| |
a variant of the function for the 'numeric' datatype; it would be possible
to add additional variants for other datatypes, but I haven't done so yet.
This commit includes regression tests and minimal documentation; if we
want developers to actually use this function in applications, we'll
probably need to document what it does more fully.
|
|
|
|
| |
last, not first. This fits our style better.
|
|
|
|
|
| |
so as to deliver more useful error messages for mistakes like
'PASSEDBYVALUE = f'. Per gripe from Gaetano Mendola.
|
|
|
|
| |
backend startup.
|
|
|
|
|
|
| |
by Ken Ashcraft's report. I think there is no actual bug here since if
the int32 value does wrap a little bit, palloc will still reject it.
Still it's better that the code be obviously correct.
|
|
|
|
|
|
|
|
|
| |
find_my_exec/find_other_exec(). Remove passing of progname to these
functions as they can find that out from argv[0], which they already
have.
Make get_progname return const char *, and update all progname variables
to be const char *.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
all the code that looks for other binaries. I move FindExec into
port/exec.c (and renamed it to find_my_binary()). I also added
find_other_binary that looks for another binary in the same directory as
the calling program, and checks the version string.
The only behavior change was that initdb and pg_dump would look in the
hard-coded bindir directory if it can't find the requested binary in the
same directory as the caller. The new code throws an error. The old
behavior seemed too error prone for version mismatches.
|
|
|
|
| |
infinite-loop problems if a bogus data length is passed.
|
|
|
|
|
|
|
| |
permissions tests in about the same amount of code as before. Exactly what
the GRANT/REVOKE code ought to be doing is still up for debate, but this
should be helpful in any case, and it already solves an efficiency problem
in executor startup.
|
| |
|
|
|
|
|
|
| |
Didier Moens. Bug is new in 7.4, and was caused by not updating everyplace
I should've when replacing locParam markers by allParam.
Add a regression test to catch related errors in future.
|
|
|
|
|
|
|
|
|
|
| |
rather than allowing them only in a few special cases as before. In
particular you can now pass a ROW() construct to a function that accepts
a rowtype parameter. Internal generation of RowExprs fixes a number of
corner cases that used to not work very well, such as referencing the
whole-row result of a JOIN or subquery. This represents a further step in
the work I started a month or so back to make rowtype values into
first-class citizens.
|
|
|
|
| |
ALTER SET STATISTICS for functional indexes.
|
|
|
|
|
|
|
|
| |
This simplifies and speeds up the reader by letting it get the representation
right the first time, rather than correcting it after-the-fact. Also,
after int and OID lists become separate node types per Neil's pending
patch, this will let us treat these lists as just plain Nodes instead
of requiring separate read/write macros the way we have now.
|
|
|
|
|
|
|
|
|
| |
costing us lots more to maintain than it was worth. On shared tables
it was of exactly zero benefit because we couldn't trust it to be
up to date. On temp tables it sometimes saved an lseek, but not often
enough to be worth getting excited about. And the real problem was that
we forced an lseek on every relcache flush in order to update the field.
So all in all it seems best to lose the complexity.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
in favor of using the REINDEX TABLE apparatus, which does the same thing
simpler and faster. Also, make TRUNCATE not use cluster.c at all, but
just assign a new relfilenode and REINDEX. This partially addresses
Hartmut Raschick's complaint from last December that 7.4's TRUNCATE is
an order of magnitude slower than prior releases. By getting rid of
a lot of unnecessary catalog updates, these changes buy back about a
factor of two (on my system). The remaining overhead seems associated
with creating and deleting storage files, which we may not be able to
do much about without abandoning transaction safety for TRUNCATE.
|
|
|
|
| |
printing the proper error message out of the common path.
|
|
|
|
|
| |
by the SQL spec and by our parser. Thanks to Jonathan Scott for finding
this longstanding error.
|
|
|
|
|
|
|
| |
have a more proper GUC based test.
Also change error return code to ERRCODE_INVALID_PARAMETER_VALUE so it
matches the old error return code.
|
|
|
|
| |
per-query stage stats.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
conversion of basic ASCII letters. Remove all uses of strcasecmp and
strncasecmp in favor of new functions pg_strcasecmp and pg_strncasecmp;
remove most but not all direct uses of toupper and tolower in favor of
pg_toupper and pg_tolower. These functions use the same notions of
case folding already developed for identifier case conversion. I left
the straight locale-based folding in place for situations where we are
just manipulating user data and not trying to match it to built-in
strings --- for example, the SQL upper() function is still locale
dependent. Perhaps this will prove not to be what's wanted, but at
the moment we can initdb and pass regression tests in Turkish locale.
|