aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Fix for COPY-after-truncate feature.Bruce Momjian2007-03-03
| | | | Simon Riggs
* Remove undo information from pg_controldata --- never used.Bruce Momjian2007-03-03
| | | | Florian G. Pflug
* Add lo_truncate() to backend and libpq for large object truncation.Bruce Momjian2007-03-03
| | | | Kris Jurka
* Add resetStringInfo(), which clears the content of a StringInfo, andNeil Conway2007-03-03
| | | | | | fixup various places in the tree that were clearing a StringInfo by hand. Making this function a part of the API simplifies client code slightly, and avoids needlessly peeking inside the StringInfo interface.
* Add GUC log_lock_waits to log long wait times.Bruce Momjian2007-03-03
| | | | Simon Riggs
* Allow \pset and \x, \t to use boolean constants on/off, rather than justBruce Momjian2007-03-03
| | | | | | toggle. Chad Wagner
* Make log_min_error_statement put LOG level at the same priority asTom Lane2007-03-02
| | | | | | log_min_messages does; and arrange to suppress the duplicative output that would otherwise result from log_statement and log_duration messages. Bruce Momjian and Tom Lane.
* Suppress useless searches for unused line pointers in PageAddItem. To doTom Lane2007-03-02
| | | | | | | | | | | | | | this, add a 16-bit "flags" field to page headers by stealing some bits from pd_tli. We use one flag bit as a hint to indicate whether there are any unused line pointers; the remaining 15 are available for future use. This is a cut-down form of an idea proposed by Hiroki Kataoka in July 2005. At the time it was rejected because the original patch increased the size of page headers and it wasn't clear that the benefit outweighed the distributed cost. The flag-bit approach gets most of the benefit without requiring an increase in the page header size. Heikki Linnakangas and Tom Lane
* Fix miscalculation of stats collector's write delay, introduced in revision ↵Tom Lane2007-03-01
| | | | 1.117.
* Fix markQueryForLocking() to work correctly in the presence of nested views.Tom Lane2007-03-01
| | | | | It has been wrong for this case since it was first written for 7.1 :-( Per report from Pavel Hanák.
* Fix date/time formats for XML Schema output.Peter Eisentraut2007-03-01
| | | | Pavel Stehule
* Remove temporary Windows-specific debugging code.Magnus Hagander2007-02-28
|
* Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len).Tom Lane2007-02-27
| | | | | | | | | | | Get rid of VARATT_SIZE and VARATT_DATA, which were simply redundant with VARSIZE and VARDATA, and as a consequence almost no code was using the longer names. Rename the length fields of struct varlena and various derived structures to catch anyplace that was accessing them directly; and clean up various places so caught. In itself this patch doesn't change any behavior at all, but it is necessary infrastructure if we hope to play any games with the representation of varlena headers. Greg Stark and Tom Lane
* Allow information schema definitions to work without requiring implicitPeter Eisentraut2007-02-27
| | | | casts to text.
* Make build.bat return a proper errorcode if the build fails.Magnus Hagander2007-02-27
|
* Get rid of the separate EState for subplans, and just let them share theTom Lane2007-02-27
| | | | | | | | | parent query's EState. Now that there's a single flat rangetable for both the main plan and subplans, there's no need anymore for a separate EState, and removing it allows cleaning up some crufty code in nodeSubplan.c and nodeSubqueryscan.c. Should be a tad faster too, although any difference will probably be hard to measure. This is the last bit of subsidiary mop-up work from changing to a flat rangetable.
* Put back copyObject() call I removed in a fit of brain fade. This oneTom Lane2007-02-25
| | | | | | is still needed despite cleanups in setrefs.c, because the point is to let the inserted Result node compute a different tlist than its input node does. Per example from Jeremy Drake.
* Now that plans have flat rangetable lists, it's a lot easier to get EXPLAIN toTom Lane2007-02-23
| | | | | | | | | | | | drill down into subplan targetlists to print the referent expression for an OUTER or INNER var in an upper plan node. Hence, make it do that always, and banish the old hack of showing "?columnN?" when things got too complicated. Along the way, fix an EXPLAIN bug I introduced by suppressing subqueries from execution-time range tables: get_name_for_var_field() assumed it could look at rte->subquery to find out the real type of a RECORD var. That doesn't work anymore, but instead we can look at the input plan of the SubqueryScan plan node.
* Move BLCKSZ < 1024 check to guc.c.Bruce Momjian2007-02-23
|
* Add psql \prompt capability.Bruce Momjian2007-02-23
| | | | Chad Wagner
* Change Agg and Group nodes so that Vars contained in their targetlistsTom Lane2007-02-22
| | | | | | | and quals have varno OUTER, rather than zero, to indicate a reference to an output of their lefttree subplan. This is consistent with the way that every other upper-level node type does it, and allows some simplifications in setrefs.c and EXPLAIN.
* Fix bug I introduced in recent patch to make hash joins discard null tuplesTom Lane2007-02-22
| | | | | immediately: ExecHashGetHashValue failed to restore the caller's memory context before taking the failure exit.
* Turn the rangetable used by the executor into a flat list, and avoid storingTom Lane2007-02-22
| | | | | | | | | | | | | | | | | useless substructure for its RangeTblEntry nodes. (I chose to keep using the same struct node type and just zero out the link fields for unneeded info, rather than making a separate ExecRangeTblEntry type --- it seemed too fragile to have two different rangetable representations.) Along the way, put subplans into a list in the toplevel PlannedStmt node, and have SubPlan nodes refer to them by list index instead of direct pointers. Vadim wanted to do that years ago, but I never understood what he was on about until now. It makes things a *whole* lot more robust, because we can stop worrying about duplicate processing of subplans during expression tree traversals. That's been a constant source of bugs, and it's finally gone. There are some consequent simplifications yet to be made, like not using a separate EState for subplans in the executor, but I'll tackle that later.
* Update new optional VACUUM FULL hint for translations, per Alvaro.Bruce Momjian2007-02-21
|
* Move increase FSM warning to after lazy_truncate_heap() because theBruce Momjian2007-02-21
| | | | | | | function might reduce the number of free pages in the table. Recommend VACUUM FULL only if 20% free. Simon Riggs.
* btree source code cleanups:Bruce Momjian2007-02-21
| | | | | | | | | | | | | | | | | | | I refactored findsplitloc and checksplitloc so that the division of labor is more clear IMO. I pushed all the space calculation inside the loop to checksplitloc. I also fixed the off by 4 in free space calculation caused by PageGetFreeSpace subtracting sizeof(ItemIdData), even though it was harmless, because it was distracting and I felt it might come back to bite us in the future if we change the page layout or alignments. There's now a new function PageGetExactFreeSpace that doesn't do the subtraction. findsplitloc now tries the "just the new item to right page" split as well. If people don't like the refactoring, I can write a patch to just add that. Heikki Linnakangas
* Add configure --enable-profiling to enable GCC profiling. Patches fromBruce Momjian2007-02-21
| | | | Korry Douglas and Nikhil S
* Revert changes to process pg_proc.h entries without OIDs. We're not supposedMagnus Hagander2007-02-21
| | | | | to have such entries, and want to be notified when we do... Leave the plain bugfix in genbki.
* Allow pltcl args to spi_prepare and plpython args to plpy.prepare to be ↵Andrew Dunstan2007-02-21
| | | | standard type aliases as well as those known in pg_type. Similar to recent change in plperl.
* Prevent BLCKSZ < 1024, and have initdb test shared buffers based on theBruce Momjian2007-02-20
| | | | BLCKSZ value.
* Change $(CC) to $(COMPILER) on Solaris gcc so -m64 is passed into theBruce Momjian2007-02-20
| | | | shared link line.
* Remove the Query structure from the executor's API. This allows us to stopTom Lane2007-02-20
| | | | | | | | | | | | | | | storing mostly-redundant Query trees in prepared statements, portals, etc. To replace Query, a new node type called PlannedStmt is inserted by the planner at the top of a completed plan tree; this carries just the fields of Query that are still needed at runtime. The statement lists kept in portals etc. now consist of intermixed PlannedStmt and bare utility-statement nodes --- no Query. This incidentally allows us to remove some fields from Query and Plan nodes that shouldn't have been there in the first place. Still to do: simplify the execution-time range table; at the moment the range table passed to the executor still contains Query trees for subqueries. initdb forced due to change of stored rules.
* Add comment that on Win32, we don't need to check the .pgpass fileBruce Momjian2007-02-20
| | | | permission, per Magnus.
* Identify schema of inherited table in psql \d when necessary.Peter Eisentraut2007-02-20
| | | | by Bernd Helmle
* Add missing OIDs to pg_proc.Peter Eisentraut2007-02-20
|
* Add "isodow" option to EXTRACT() and date_part() where Sunday = 7.Bruce Momjian2007-02-19
|
* Fix pg_dump on win32 to properly dump files larger than 2Gb when usingMagnus Hagander2007-02-19
| | | | binary dump formats.
* Parse pg_proc.h with entries without OIDs.Magnus Hagander2007-02-19
|
* Get rid of some old and crufty global variables in the planner. WhenTom Lane2007-02-19
| | | | | | | | | this code was last gone over, there wasn't really any alternative to globals because we didn't have the PlannerInfo struct being passed all through the planner code. Now that we do, we can restructure things to avoid non-reentrancy. I'm fooling with this because otherwise I'd have had to add another global variable for the planned compact range table list.
* Improve plpgsql's error message when a datatype declaration is omitted.Tom Lane2007-02-19
| | | | Per example from Jeff Ross.
* Put function expressions and values lists into FunctionScan and ValuesScanTom Lane2007-02-19
| | | | | | plan nodes, so that the executor does not need to get these items from the range table at runtime. This will avoid needing to include these fields in the compact range table I'm expecting to make the executor use.
* Fix portal management code to support non-default command completion tags forTom Lane2007-02-18
| | | | | | portals using PORTAL_UTIL_SELECT strategy. This is currently significant only for FETCH queries, which are supposed to include a count in the tag. Seems it's been broken since 7.4, but nobody noticed before Knut Lehre.
* Add code so that when COPY_PARSE_PLAN_TREES is defined, the copy andTom Lane2007-02-17
| | | | | | equal functions are checked for raw parse trees as well as post-analysis trees. This was never very important before, but the upcoming plan cache control module will need to be able to do copyObject() on raw parse trees.
* Remove rint() for to_char MS and US output. We can't us rint() becauseBruce Momjian2007-02-17
| | | | | we can't overflow to the next higher units, and we might print the lower units for MS.
* Cleanup of to_char() patch.Bruce Momjian2007-02-17
| | | | Brendan Jurd
* Create AVG() aggregates for int8 and NUMERIC which do not compute X^2,Bruce Momjian2007-02-17
| | | | | | as a performance enhancement. Mark Kirkwood
* Teach find_nonnullable_rels to handle OR cases: if every arm of an ORTom Lane2007-02-16
| | | | | | forces a particular relation nonnullable, then we can say that the OR does. This is worth a little extra trouble since it may allow reduction of outer joins to plain joins.
* Fix new RI operator selection code to do the right thing when working withTom Lane2007-02-16
| | | | | | | an opclass for a generic type such as ANYARRAY. The original coding failed to check that PK and FK columns were of the same array type. Per discussion with Tom Dunstan. Also, make the code a shade more readable by not trying to economize on variables.
* Reduce the amount of memory "clobbered" for every process title change,Bruce Momjian2007-02-16
| | | | | on platforms that need this. This is done by only writing past the previously stored message, if it was longer.
* Adjust the definition of is_pushed_down so that it's always true for INNERTom Lane2007-02-16
| | | | | | | | | JOIN quals, just like WHERE quals, even if they reference every one of the join's relations. Now that we can reorder outer and inner joins, it's possible for such a qual to end up being assigned to an outer join plan node, and we mustn't have it treated as a join qual rather than a filter qual for the node. (If it were, the join could produce null-extended rows that it shouldn't.) Per bug report from Pelle Johansson.