aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Attached patch cleans up the HTML code in tools/backend. This isBruce Momjian2005-04-06
| | | | | | | | required for us to pull it into the main website. Same kind of fixes as last time, just make sure things aren't violating the HTML standard. No context changes at all. Magnus Hagander
* Include information about a domain's CHECK constraint, if any, in theNeil Conway2005-04-06
| | | | output of \dD in psql. From Greg Sabino Mullane.
* This file was whacked by pgindent before it knew it shouldn't removeNeil Conway2005-04-06
| | | | | braces around single statements (for PG_TRY macros). This patch fixes it. Alvaro Herrera.
* Adjust grammar for plpgsql's OPEN command so that a cursor can beTom Lane2005-04-05
| | | | | | | OPENed on non-SELECT commands such as EXPLAIN or SHOW (anything that returns tuples is allowed). This flexibility already existed for bound cursors, but OPEN was artificially restricting what it would take. Per a gripe some months back.
* plpgsql does OUT parameters, as per my proposal a few weeks ago.Tom Lane2005-04-05
|
* This patch changes int2_avg_accum() and int4_avg_accum() use the nodeAggNeil Conway2005-04-04
| | | | | | | | | | | | | performance hack Tom introduced recently. This means we can avoid copying the transition array for each input tuple if these functions are invoked as aggregate transition functions. To test the performance improvement, I created a 1 million row table with a single int4 column. Without the patch, SELECT avg(col) FROM table took about 4.2 seconds (after the data was cached); with the patch, it took about 3.2 seconds. Naturally, the performance improvement for a less trivial query (or a table with wider rows) would be relatively smaller.
* Minor fixes for psql tab completion. Spell "absolute" like the English word,Neil Conway2005-04-04
| | | | | | not the brand of vodka. Complete FETCH <sth> <sth> with FROM and IN, not FROM and TO (which is still pretty incomplete, but at least its the right syntax).
* Remove an unused variable `ShmemBootstrap', and remove an obsoleteNeil Conway2005-04-04
| | | | comment. Patch from Alvaro.
* In cost_mergejoin, the early-exit effect should not apply to theTom Lane2005-04-04
| | | | outer side of an outer join. Per andrew@supernews.
* Second try at making examine_variable and friends behave sanely inTom Lane2005-04-01
| | | | | | | cases with binary-compatible relabeling. My first try was implicitly assuming that all operators scalarineqsel is used for have binary- compatible datatypes on both sides ... which is very wrong of course. Per report from Michael Fuhr.
* Make plperl work with OUT parameters.Tom Lane2005-04-01
|
* Minor improvements in the really-pretty-ad-hoc test scripts for theTom Lane2005-04-01
| | | | PL languages.
* Teach pg_dump about OUT parameters.Tom Lane2005-04-01
|
* Update pgcvslog examples.Bruce Momjian2005-04-01
|
* Fix wrong week returnded by date_trunc('week') for early dates inBruce Momjian2005-04-01
| | | | | | | | January --- would return wrong year for 2005-01-01 and 2006-01-01. per report from Robert Creager. Backpatch to 8.0.X.
* Update pgcvslog examples.Bruce Momjian2005-04-01
|
* Adjust pg_proc.proargtypes[0] tests in psql \df to handle new NULL valueBruce Momjian2005-04-01
| | | | for a function taking no arguments, per report from Michael Fuhr.
* Flush any remaining statistics counts out to the collector at processTom Lane2005-03-31
| | | | | | | | 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.
* First phase of OUT-parameters project. We can now define and use SQLTom Lane2005-03-31
| | | | | functions with OUT parameters. The various PLs still need work, as does pg_dump. Rudimentary docs and regression tests included.
* Minor code cleanup: ExecHash() was returning a null TupleTableSlot, and anNeil Conway2005-03-31
| | | | | | old comment in the code claimed that this was necessary. Since it is not actually necessary any more, it is clearer to remove the comment and just return NULL instead -- the return value of ExecHash() is not used.
* Add proallargtypes and proargmodes columns to pg_proc, as per my earlierTom Lane2005-03-29
| | | | | | | proposal for OUT parameter support. The columns don't actually *do* anything yet, they are just left NULLs. But I thought I'd commit this part separately as a fairly pure example of the tasks needed when adding a column to pg_proc or one of the other core system tables.
* Fix grammar for IN/OUT/INOUT parameters. This commit doesn't actuallyTom Lane2005-03-29
| | | | | | | | implement any new feature, it just pushes the 'not implemented' error message deeper into the backend. I also tweaked the grammar to accept Oracle-ish parameter syntax (parameter name first), as well as the SQL99 standard syntax (parameter mode first), since it was easy and people will doubtless try to use both anyway.
* Officially decouple FUNC_MAX_ARGS from INDEX_MAX_KEYS, and set theTom Lane2005-03-29
| | | | | | former to 100 by default. Clean up some of the less necessary dependencies on FUNC_MAX_ARGS; however, the biggie (FunctionCallInfoData) remains.
* Add SPI_getnspname(), including documentation.Neil Conway2005-03-29
|
* Convert oidvector and int2vector into variable-length arrays. ThisTom Lane2005-03-29
| | | | | | | | | | | | | change saves a great deal of space in pg_proc and its primary index, and it eliminates the former requirement that INDEX_MAX_KEYS and FUNC_MAX_ARGS have the same value. INDEX_MAX_KEYS is still embedded in the on-disk representation (because it affects index tuple header size), but FUNC_MAX_ARGS is not. I believe it would now be possible to increase FUNC_MAX_ARGS at little cost, but haven't experimented yet. There are still a lot of vestigial references to FUNC_MAX_ARGS, which I will clean up in a separate pass. However, getting rid of it altogether would require changing the FunctionCallInfoData struct, and I'm not sure I want to buy into that.
* Remove dead push/pop rollback code. Vadim once planned to implementTom Lane2005-03-28
| | | | | | transaction rollback via UNDO but I think that's highly unlikely to happen, so we may as well remove the stubs. (Someday we ought to rip out the stub xxx_undo routines, too.) Per Alvaro.
* Rethink the order of expression preprocessing: eval_const_expressionsTom Lane2005-03-28
| | | | | | | | | | really ought to run before canonicalize_qual, because it can now produce forms that canonicalize_qual knows how to improve (eg, NOT clauses). Also, because eval_const_expressions already knows about flattening nested ANDs and ORs into N-argument form, the initial flatten_andors pass in canonicalize_qual is now completely redundant and can be removed. This doesn't save a whole lot of code, but the time and palloc traffic eliminated is a useful gain on large expression trees.
* First steps towards index scans with heap access decoupled from indexTom Lane2005-03-27
| | | | | | | | | | access: define new index access method functions 'amgetmulti' that can fetch multiple TIDs per call. (The functions exist but are totally untested as yet.) Since I was modifying pg_am anyway, remove the no-longer-needed 'rel' parameter from amcostestimate functions, and also remove the vestigial amowner column that was creating useless work for Alvaro's shared-object-dependencies project. Initdb forced due to changes in pg_am.
* Teach const-expression simplification to simplify boolean equality cases,Tom Lane2005-03-27
| | | | | | | that is 'x = true' becomes 'x' and 'x = false' becomes 'NOT x'. This isn't all that amazingly useful in itself, but it ensures that we will recognize the different forms as being logically equivalent when checking partial index predicates. Per example from Patrick Clery.
* Eliminate duplicate hasnulls bit testing in index tuple access, andTom Lane2005-03-27
| | | | clean up itup.h a little bit.
* Add a back-link from IndexOptInfo structs to their parent RelOptInfoTom Lane2005-03-27
| | | | | | structs. There are many places in the planner where we were passing both a rel and an index to subroutines, and now need only pass the index struct. Notationally simpler, and perhaps a tad faster.
* Expand the 'special index operator' machinery to handle special casesTom Lane2005-03-26
| | | | | | | | | | | | for boolean indexes. Previously we would only use such an index with WHERE clauses like 'indexkey = true' or 'indexkey = false'. The new code transforms the cases 'indexkey', 'NOT indexkey', 'indexkey IS TRUE', and 'indexkey IS FALSE' into one of these. While this is only marginally useful in itself, I intend soon to change constant-expression simplification so that 'foo = true' and 'foo = false' are reduced to just 'foo' and 'NOT foo' ... which would lose the ability to use boolean indexes for such queries at all, if the indexscan machinery couldn't make the reverse transformation.
* Fix a pair of related issues with estimation of inequalities that involveTom Lane2005-03-26
| | | | | | | | binary-compatible relabeling of one or both operands. examine_variable should avoid stripping RelabelType from non-variable expressions, so that they will continue to have the correct type; and convert_to_scalar should just use that type and ignore the other input type. This isn't perfect but it beats failing entirely. Per example from Michael Fuhr.
* Use a bitmapset instead of a list for duplicate-column checking inTom Lane2005-03-26
| | | | checkInsertTargets(). Avoids O(N^2) behavior on wide target lists.
* Rewrite rewriteTargetList() to avoid O(N^2) behavior on wide target lists.Tom Lane2005-03-26
|
* Add Windows-specific variant comparison file.Tom Lane2005-03-26
|
* Add another ORDER BY to rules test to eliminate platform-specificTom Lane2005-03-26
| | | | output ordering.
* Prevent to_char(interval) from dumping core on month-related formatsTom Lane2005-03-26
| | | | | | when a zero-month interval is given. Per discussion with Karel. Also, some desultory const-labeling of constant tables. More could be done along that line.
* Use 'cp' and 'chmod' in place of 'install' to install header files.Bruce Momjian2005-03-25
| | | | This reduces header file install from 8 seconds to 0.40 seconds.
* Remove lazy_update_relstats; go back to having VACUUM just record theTom Lane2005-03-25
| | | | | | actual number of unremoved tuples as pg_class.reltuples. The idea of trying to estimate a steady state condition still seems attractive, but this particular implementation crashed and burned ...
* Improve EXPLAIN ANALYZE to show the time spent in each trigger whenTom Lane2005-03-25
| | | | | | | | executing a statement that fires triggers. Formerly this time was included in "Total runtime" but not otherwise accounted for. As a side benefit, we avoid re-opening relations when firing non-deferred AFTER triggers, because the trigger code can re-use the main executor's ResultRelInfo data structure.
* Fix resource owner code to generate catcache and relcache leak warningsTom Lane2005-03-25
| | | | | | when open references remain during normal cleanup of a resource owner. This restores the system's ability to warn about leaks to what it was before 8.0. Not really a user-level bug, but helpful for development.
* Have libpgport link before libpq so that PG client applications are moreBruce Momjian2005-03-25
| | | | immunte to changes in libpq's usage of pgport between major versions.
* Fix two bugs in change_owner_recurse_to_sequences: it was grabbing anTom Lane2005-03-25
| | | | | | overly strong lock on pg_depend, and it wasn't closing the rel when done. The latter bug was masked by the ResourceOwner code, which is something that should be changed.
* Add missing min/max parameters to DefineCustomIntVariable() andTom Lane2005-03-25
| | | | DefineCustomRealVariable(). Thomas Hallgren
* Fix to_date to behave reasonably when CC and YY fields are both used.Tom Lane2005-03-25
| | | | Karel Zak
* Make initialization of special trigger variables a little more readable.Tom Lane2005-03-25
| | | | | Correct one mis-setting of freeval (which could at worst leak a few bytes until the trigger exits, so it's no big deal).
* Kerberos fixes from Magnus Hagander --- in theory Kerberos 5 authTom Lane2005-03-25
| | | | | | should work on Windows now. Also, rename set_noblock to pg_set_noblock; since it is included in libpq, the former name polluted application namespace.
* Revert ill-conceived change of libpq linkage --- breaks ecpg.Tom Lane2005-03-24
|
* array_map can't use the fn_extra field of the provided fcinfo struct asTom Lane2005-03-24
| | | | | its private storage, because that belongs to the function that it is supposed to call. Per report from Ezequiel Tolnay.