Commit Graph

15119 Commits

Author SHA1 Message Date
Tom Lane
fc5894bf77 Adjust parser so that POSTQUEL-style implicit RTEs are stored with
inFromCl true, meaning that they will list out as explicit RTEs if they
are in a view or rule.  Update comments about inFromCl to reflect the way
it's now actually used.  Per recent discussion.
2005-10-26 19:21:55 +00:00
Tom Lane
ddb4015ec0 Fix longstanding bug that would sometimes let the planner generate a bad plan
for an outer join; symptom is bogus error "RIGHT JOIN is only supported with
merge-joinable join conditions".  Problem was that select_mergejoin_clauses
did its tests in the wrong order.  We need to force left join not right join
for a merge join when there are non-mergeable join clauses; but the test for
this only accounted for mergejoinability of the clause operator, and not
whether the left and right Vars were of the proper relations.  Per report
from Jean-Pierre Pelletier.
2005-10-25 20:30:30 +00:00
Tom Lane
6a9b93a0e1 Remove justify_hours call from interval_mul and interval_div, and make
some small stylistic improvements in these functions.  Also fix several
places where TMODULO() was being used with wrong-sized quotient argument,
creating a risk of overflow --- interval2tm was actually capable of going
into an infinite loop because of this.
2005-10-25 17:13:07 +00:00
Tom Lane
25777f6fd3 Fix Windows setitimer() emulation to not depend on delivering an APC
to the main thread.  This allows removal of WaitForSingleObjectEx() calls
from the main thread, thereby allowing us to re-enable Qingqing Zhou's
CHECK_FOR_INTERRUPTS performance improvement.  Qingqing, Magnus, et al.
2005-10-25 15:15:16 +00:00
Bruce Momjian
9ee8b9fd38 Change trace_sort to output to the log, rather than the user's terminal. 2005-10-25 13:47:08 +00:00
Bruce Momjian
819159709f I have applied the following patch to document PQinitSSL() and
PQregisterThreadLock().

I also remove the crypt() mention in the libpq threading section and
added a single sentence in the client-auth manual page under crypt().
Crypt authentication is so old now that a separate paragraph about it
seemed unwise.

I also added a comment about our use of locking around pqGetpwuid().
2005-10-24 15:38:37 +00:00
Tom Lane
18feafcc59 Ensure that a plpgsql LOOP with an empty body still executes at least
one CHECK_FOR_INTERRUPTS() call, so that you can control-C out of the
loop.  Reported by Merlin Moncure.
2005-10-24 15:10:22 +00:00
Tom Lane
6d6c3722fb Make code for selecting default WAL sync method less confusing. 2005-10-22 20:27:17 +00:00
Tom Lane
4d20df3c78 Temporarily disable Qingqing's Windows signal processing patch, so that
WaitForSingleObjectEx is always called by CHECK_FOR_INTERRUPTS.  This
should be reinstated but the setitimer() emulation will have to be
redesigned first.
2005-10-22 17:09:48 +00:00
Andrew Dunstan
188c52497d minor code cleanup - replace useless struct timezone argument to
gettimeofday with NULL in a few places, making it consistent with
usage elsewhere.
2005-10-22 14:27:29 +00:00
Tom Lane
6aad07d270 Improve performance of CHECK_FOR_INTERRUPTS() macro on Windows by not doing
a kernel call unless there's some evidence of a pending signal.  This should
bring its performance on Windows into line with the Unix version.  Problem
diagnosis and patch by Qingqing Zhou.  Minor stylistic tweaks by moi ...
if it's broken, it's my fault.
2005-10-21 21:43:46 +00:00
Tom Lane
9fc24f2bf6 Fix EXPLAIN ANALYZE bug noted by Wiebe Cazemier: although we were
properly advancing the CommandCounter between multiple sub-queries
generated by rules, we forgot to update the snapshot being used, so
that the successive sub-queries didn't actually see each others'
results.  This is still not *exactly* like the semantics of normal
execution of the same queries, in that we don't take new transaction
snapshots and hence don't see changes from concurrently committed
commands, but I think that's OK and probably even preferable for
EXPLAIN ANALYZE.
2005-10-21 16:43:33 +00:00
Tom Lane
ef3b7cd328 Add an implicit cast from varchar to regclass, so that existing code
of the form nextval('foo'::varchar) doesn't break.  Per gripe from
Jean-Pierre Pelletier.  Initdb forced :-(
2005-10-21 15:45:06 +00:00
Tom Lane
5aad28a104 Add missing PQinitSSL and PQregisterThreadLock to exports.txt. 2005-10-21 15:21:21 +00:00
Tom Lane
d1959f9ff6 Improve testlibpq3.c's example of PQexecParams() usage to include sending
a parameter in binary format.  Also, add a TIP explaining how to use casts
in the query text to avoid needing to specify parameter types by OID.
Also fix bogus spacing --- apparently somebody expanded the tabs in the
example programs to 8 spaces instead of 4 when transposing them into SGML.
2005-10-20 23:57:52 +00:00
Tom Lane
78ce809216 Postpone pg_timezone_initialize() until after creation of postmaster.pid,
since it can take a fair amount of time and this can confuse boot scripts
that expect postmaster.pid to appear quickly.  Move initialization of SSL
library and preloaded libraries to after that point, too, just for luck.
Per reports from Tony Caduto and others.
2005-10-20 20:05:45 +00:00
Tom Lane
7218aab7a2 Adjust not-too-sane calculation of DDD value for to_char(interval).
Per gripe from Chris Matheson.
2005-10-20 15:59:46 +00:00
Tom Lane
8130cbce96 Clean up md5.c to make it clearer that it is a frontend-and-backend
module.  Don't rely on backend palloc semantics; in fact, best to not
use palloc at all, rather than #define'ing it to malloc, because that
just encourages errors of omission.  Bug spotted by Volkan YAZICI,
but I went further than he did to fix it.
2005-10-20 13:54:08 +00:00
Tom Lane
a5bd1d357a Make \d order a table's check constraints by constraint name instead
of the text of the constraint condition.  Per Chris K-L, though I didn't
use his patch exactly.
2005-10-20 05:15:09 +00:00
Tom Lane
d9cb48786e Better solution to the problem of labeling whole-row Datums that are
generated from subquery outputs: use the type info stored in the Var
itself.  To avoid making ExecEvalVar and slot_getattr more complex
and slower, I split out the whole-row case into a separate ExecEval routine.
2005-10-19 22:30:30 +00:00
Tom Lane
07908c9c37 Ensure that the Datum generated from a whole-row Var contains valid
type ID information even when it's a record type.  This is needed to
handle whole-row Vars referencing subquery outputs.  Per example from
Richard Huxton.
2005-10-19 18:18:33 +00:00
Tom Lane
32fcfcdbd6 Fix oversight in recent changes to enable the 'physical tlist'
optimization for subquery and function scan nodes: we can't just do it
unconditionally, we still have to check whether there is any need for
a whole-row Var.  I had been thinking that these node types couldn't
have any system columns, which is true, but that loop is also checking
for attno zero, ie, whole-row Var.  Fix comment to not be so misleading.
Per test case from Richard Huxton.
2005-10-19 17:31:20 +00:00
Tom Lane
b33a732264 Improve trace_sort code to also show the total memory or disk space used.
Per request from Marc.
2005-10-18 22:59:37 +00:00
Tom Lane
220f2a7d15 Code review for regexp_replace patch. Improve documentation and comments,
fix problems with replacement-string backslashes that aren't followed by
one of the expected characters, avoid giving the impression that
replace_text_regexp() is meant to be called directly as a SQL function,
etc.
2005-10-18 20:38:58 +00:00
Tom Lane
800af89004 Code review for spi_query/spi_fetchrow patch: handle errors sanely,
avoid leaking memory.  I would add a regression test for error handling
except it seems eval{} can't be used in unprivileged plperl :-(
2005-10-18 17:13:14 +00:00
Tom Lane
23836fb1fb A few trivial code cleanups motivated by reading warnings generated
by a recent HP C compiler.  Mostly, get rid of useless local variables
that are assigned to but never used.
2005-10-18 01:06:24 +00:00
Tom Lane
d330f1554d Clean up libpq's pollution of application namespace by renaming the
exported routines of ip.c, md5.c, and fe-auth.c to begin with 'pg_'.
Also get rid of the vestigial fe_setauthsvc/fe_getauthsvc routines
altogether.
2005-10-17 16:24:20 +00:00
Bruce Momjian
649e74bf90 Add space after description.
Euler Taveira de Oliveira
2005-10-16 18:26:00 +00:00
Bruce Momjian
98d5f4e574 kerberos error message: localhost -> server hostname 2005-10-15 21:27:19 +00:00
Tom Lane
e4cd186608 Fix thinko in pg_read_file: testing for negative result is not the way
to determine whether fread() failed.
2005-10-15 19:47:09 +00:00
Bruce Momjian
1dc3498251 Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
Bruce Momjian
790c01d280 Update pgindent typedef list. 2005-10-15 02:14:22 +00:00
Tom Lane
abd3f43b4c Fix syslog bug: if any messages are emitted to write_syslog before
the facility has been set, the facility gets set to LOCAL0 and cannot
be changed later.  This seems reasonably plausible to happen, particularly
at higher debug log levels, though I am not certain it explains Han Holl's
recent report.  Easiest fix is to teach the code how to change the value
on-the-fly, which is nicer anyway.  I made the settings PGC_SIGHUP to
conform with log_destination.
2005-10-14 20:53:56 +00:00
Tom Lane
4aa0d70fb7 Pass a strdup'd ident string to openlog(), to ensure that reallocation
of GUC memory doesn't cause us to start emitting a bogus ident string.
Per report from Han Holl.  Also some trivial code cleanup in write_syslog.
2005-10-14 16:41:02 +00:00
Bruce Momjian
a93bf4503f Allow times of 24:00:00 to match rounding behavior:
regression=# select '23:59:59.9'::time(0);
	   time
	----------
	 24:00:00
	(1 row)

	This is bad because:

	regression=# select '24:00:00'::time(0);
	ERROR:  date/time field value out of range: "24:00:00"

The last example now works.
2005-10-14 11:47:57 +00:00
Bruce Momjian
35c8983371 Fix uppercase TRUE/FALSE that are WIN32 stuffl. 2005-10-13 23:22:11 +00:00
Bruce Momjian
186bbaab06 Update regression output for new prepare transaction error messages. 2005-10-13 23:12:04 +00:00
Bruce Momjian
2d8e3d1d71 Make stack_base_ptr non-static, for PL/Java. 2005-10-13 22:57:27 +00:00
Bruce Momjian
1d028537a2 This makes the error messages for PREPARE TRANSACTION, COMMIT PREPARED
etc. match the docs, which talk about "transaction identifier" not
"gid" or "global transaction identifier".

Steve Woodcock
2005-10-13 22:55:55 +00:00
Bruce Momjian
5aae047e23 Update krb_server_name to document that a missing entry defaults to
'localhost'.

Improve kerberos error message.
2005-10-13 22:55:19 +00:00
Bruce Momjian
8ac386226d The patch updates the documentation to reflect the fact that higher values
of client_min_messages (fatal + panic) are valid and also fixes a slight
issue with how psql tried to display error messages that aren't sent to
the client.

We often tell people to ignore errors in response to requests for things
like "drop if exists", but there's no good way to completely hide this
without upping client_min_messages past ERROR.  When running a file like

SET client_min_messages TO 'FATAL';

DROP TABLE doesntexist;

with "psql -f filename" you get an error prefix of
"psql:/home/username/filename:3" even though there is no error message to
prefix because it isn't sent to the client.

Kris Jurka
2005-10-13 20:58:42 +00:00
Tom Lane
a0fc05aa6e Go back to emitting path names with forward slashes on Windows.
I'm not clear on what the double-backslash idea was intended to fix,
but it breaks at least mingw GNU Make.  Per report from Thomas Hallgren.
2005-10-13 17:58:44 +00:00
Bruce Momjian
84cc9a4bb3 Back out this because of fear of changing error strings:
This makes the error messages for PREPARE TRANSACTION, COMMIT PREPARED
etc. match the docs, which talk about "transaction identifier" not
"gid" or "global transaction identifier".

Steve Woodcock
2005-10-13 17:57:57 +00:00
Bruce Momjian
90c22c9206 This makes the error messages for PREPARE TRANSACTION, COMMIT PREPARED
etc. match the docs, which talk about "transaction identifier" not
"gid" or "global transaction identifier".

Steve Woodcock
2005-10-13 17:57:17 +00:00
Bruce Momjian
32e6c2a160 Use get_progname() in backend main.c, rather than port-specific hack
that is too fragile.
2005-10-13 15:37:14 +00:00
Tom Lane
203015ebdd Fix small oversight in recent patch to add more CREATE-FUNCTION-time
syntax checking to plpgsql: check_sql_expr() wasn't being called by
make_select_stmt(), so that there was no SQL syntax check for SELECT
statements.
2005-10-13 15:34:19 +00:00
Neil Conway
c10dba2fe3 Remove an antiquated comment. 2005-10-13 06:24:05 +00:00
Neil Conway
689c815b09 Add a comment describing the requirement that pointers into shared memory
that is protected by a spinlock must be volatile, per recent discussion.
2005-10-13 06:17:34 +00:00
Tom Lane
1e9a6ba5e6 Don't try to remove duplicate OR-subclauses in create_bitmap_subplan and
make_restrictinfo_from_bitmapqual.  The likelihood of finding duplicates
seems much less than in the AND-subclause case, and the cost much higher,
because OR lists with hundreds or even thousands of subclauses are not
uncommon.  Per discussion with Ilia Kantor and andrew@supernews.
2005-10-13 00:06:46 +00:00
Tom Lane
e952ae1268 Fix longstanding bug found by Atsushi Ogawa: _bt_check_unique would mark
the wrong buffer dirty when trying to kill a dead index entry that's on
a page after the one it started on.  No risk of data corruption, just
inefficiency, but still a bug.
2005-10-12 17:18:03 +00:00