summaryrefslogtreecommitdiff
path: root/src/backend/tcop/postgres.c
AgeCommit message (Collapse)Author
2005-12-14Defend against crash while processing Describe Statement or Describe PortalTom Lane
messages, when client attempts to execute these outside a transaction (start one) or in a failed transaction (reject message, except for COMMIT/ROLLBACK statements which we can handle). Per report from Francisco Figueiredo Jr.
2005-11-10When in transaction-aborted state, reject Bind message for portals containingTom Lane
anything but transaction-exiting commands (ROLLBACK etc). We already rejected Parse and Execute in such cases, so there seems little point in allowing Bind. This prevents at least an Assert failure, and probably worse things, since there's a lot of infrastructure that doesn't work when not in a live transaction. We can also simplify the Bind logic a bit by rejecting messages with a nonzero number of parameters, instead of the former kluge to silently substitute NULL for each parameter. Per bug #2033 from Joel Stevenson.
2005-06-02Push enable/disable of notify and catchup interrupts all the way downTom Lane
to just around the bare recv() call that gets a command from the client. The former placement in PostgresMain was unsafe because the intermediate processing layers (especially SSL) use facilities such as malloc that are not necessarily re-entrant. Per report from counterstorm.com.
2004-09-26Repair bug that would allow libpq to think a command had succeeded whenTom Lane
it really hadn't, due to double output of previous command's response. Fix prevents recursive entry to libpq routines. Found by Jan Wieck.
2003-11-24Repair missed renamings of show_statement_stats and show_executor_stats.Tom Lane
2003-10-19Save_r, Save_t should be static not global variables.Tom Lane
2003-10-18Cleanup on --help-config: Now called --describe-config, no further options,Peter Eisentraut
machine readable, without headers, not sorted. Parameter descriptions adjusted to fit first sentence + rest convention.
2003-10-16Fix bad interaction between NOTIFY processing and V3 extended queryTom Lane
protocol, per report from Igor Shevchenko. NOTIFY thought it could do its thing if transaction blockState is TBLOCK_DEFAULT, but in reality it had better check the low-level transaction state is TRANS_DEFAULT as well. Formerly it was not possible to wait for the client in a state where the first is true and the second is not ... but now we can have such a state. Minor cleanup in StartTransaction() as well.
2003-10-09Change "query:" to "statement:".Bruce Momjian
Have log_duration print when log_min_duration_statement prints.
2003-10-08Have log_min_duration_statement = 0 always print duration/statement.Bruce Momjian
Change log line to be "duration: ms query:" Indent multi-line queries with a tab in the server logs.
2003-10-04Fix log_duration and log_min_duration_statement to print properly, asBruce Momjian
pointed out by Peter.
2003-10-02Change some notices to warnings and vice versa according to criteriaPeter Eisentraut
developed on -hackers.
2003-09-29This patch fixes an obvious bug in the "should I print the duration ofBruce Momjian
this query?" logic in postgres.c Also, make it print "duration:" like log_duration. Neil Conway
2003-09-29More message editing, some suggested by Alvaro HerreraPeter Eisentraut
2003-09-27You can't NLS-enable a program component by just putting gettext() aroundPeter Eisentraut
every string, especially if some of the output should be fixed-format machine-readable. This needs to be more carefully sorted out. Also, make the help message generated by --help-config -h be more similar in style to the others.
2003-09-25Message editing: remove gratuitous variations in message wording, standardizePeter Eisentraut
terms, add some clarifications, fix some untranslatable attempts at dynamic message building.
2003-09-24Repair some REINDEX problems per recent discussions. The relcache isTom Lane
now able to cope with assigning new relfilenode values to nailed-in-cache indexes, so they can be reindexed using the fully crash-safe method. This leaves only shared system indexes as special cases. Remove the 'index deactivation' code, since it provides no useful protection in the shared- index case. Require reindexing of shared indexes to be done in standalone mode, but remove other restrictions on REINDEX. -P (IgnoreSystemIndexes) now prevents using indexes for lookups, but does not disable index updates. It is therefore safe to allow from PGOPTIONS. Upshot: reindexing system catalogs can be done without a standalone backend for all cases except shared catalogs.
2003-09-14Reconsider placement of MemoryContextCheck() call --- do after commit,Tom Lane
not before, to avoid duplication of effort.
2003-09-02Cause standalone backend (including bootstrap case) to read the GUCTom Lane
config file if it exists. This was already discussed as being a good idea, and now seems the cleanest way to deal with initdb-time failures on machines with small SHMMAX. (The submitted patches instead modified initdb.sh to pass the correct sizing parameters, but that would still leave standalone backends prone to failure later. An admin who needs to use a standalone backend has enough trouble already, he shouldn't have to manually configure its shmem settings...)
2003-08-26Mop-up for previous change to determine default shared_buffers andTom Lane
max_connections at initdb time. Get rid of DEF_NBUFFERS and DEF_MAXBACKENDS macros, which aren't doing anything useful anymore, and put more likely defaults into postgresql.conf.sample.
2003-08-13Move MemoryContextCheck() call from bottom of PostgresMain loop toTom Lane
just before CommitTransactionCommand(). This is a more sensible place to put it since commit discards a lot of contexts, and we'd not find out about stomps affecting only transaction-local contexts.
2003-08-12Marginal hacks to move some processing out of the per-client-messageTom Lane
processing loop; avoids extra overhead when using parse/bind/execute messages instead of single Query message.
2003-08-12Change some frequently-reached elog(DEBUG...) calls to ereport(DEBUG...)Tom Lane
for speed reasons. (ereport falls out much more quickly when no output is needed than elog does.)
2003-08-06Rename fields of DestReceiver to avoid collisions with (ill-considered)Tom Lane
macros in some platforms' sys/socket.h.
2003-08-04Remove --enable-recode feature, since it's been broken by IPv6 changes,Tom Lane
and seems to have too few users to justify maintaining.
2003-08-04Update copyrights to 2003.Bruce Momjian
2003-08-04pgindent run.Bruce Momjian
2003-07-29Apply (a somewhat revised version of) Greg Mullane's patch to eliminateTom Lane
heuristic determination of day vs month in date/time input. Add the ability to specify that input is interpreted as yy-mm-dd order (which formerly worked, but only for yy greater than 31). DateStyle's input component now has the preferred spellings DMY, MDY, or YMD; the older keywords European and US are now aliases for the first two of these. Per recent discussions on pgsql-general.
2003-07-27elog mop-up: bring some straggling fprintf(stderr)'s into the elog world.Tom Lane
2003-07-22Error message editing in backend/libpq, backend/postmaster, backend/tcop.Tom Lane
Along the way, fix some logic problems in pgstat_initstats, notably the bogus assumption that malloc returns zeroed memory.
2003-07-09Add new USERLIMIT GUC source level so certain options can be disabledBruce Momjian
or increased only by super-users. This fixes problems caused by making certain variables SUSET for security reasons.
2003-07-04Add --help-config facility to dump information about GUC parametersTom Lane
without needing a running backend. Reorder postgresql.conf.sample to match new layout of runtime.sgml. This commit re-adds work lost in Wednesday's crash.
2003-06-20Fix for extended-query protocol: in event of error, backend was issuingTom Lane
a ReadyForQuery (Z message) immediately and then another one after the Sync message arrives. Suppress the first one to make it work per spec.
2003-06-11Add log_min_duration_statement.Bruce Momjian
Christopher Kings-Lynne
2003-05-27Make debug_ GUC varables output DEBUG1 rather than LOG, and mention inBruce Momjian
docs that CLIENT/LOG_MIN_MESSAGES now controls debug_* output location. Doc changes included.
2003-05-14Fix oversight: ignore-till-SYNC state should not ignore EOF ...Tom Lane
2003-05-14Backend support for autocommit removed, per recent discussions. TheTom Lane
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.
2003-05-12Avoid unnecessary copying of parameter values in BIND. This allowsTom Lane
efficient insertion of large bytea values through the BIND interface.
2003-05-09Implement new-protocol binary I/O support in DataRow, Bind, and FunctionCallTom Lane
messages. Binary I/O is now up and working, but only for a small set of datatypes (integers, text, bytea).
2003-05-09Pass canAcceptConnections to exec'ed backend, for Jan.Bruce Momjian
2003-05-08Update 3.0 protocol support to match recent agreements about how toTom Lane
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.
2003-05-08Pass shared memory address on command line to exec'ed backend.Bruce Momjian
Allow backends to attached to specified shared memory address.
2003-05-06Pass shared memory id and socket descriptor number on command line forBruce Momjian
fork/exec.
2003-05-06Add display of eventual result RowDescription (if any) to the outputTom Lane
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.
2003-05-06Restructure command destination handling so that we pass aroundTom Lane
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.
2003-05-06Rename internal variables DBName|dbName to dbname, for consistency.Bruce Momjian
2003-05-06Comment out some of the conditional tests until we have exec().Bruce Momjian
Reorder non-default variable loading until PGDATA is defined.
2003-05-06Implement feature of new FE/BE protocol whereby RowDescription identifiesTom Lane
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.
2003-05-05Extended query protocol: parse, bind, execute, describe FE/BE messages.Tom Lane
Only lightly tested as yet, since libpq doesn't know anything about 'em.
2003-05-03Cleanup patch for exec() handling.Bruce Momjian