aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
Commit message (Collapse)AuthorAge
* Revert temp_tablespaces because of coding problems, per Tom.Bruce Momjian2007-03-06
|
* Remove copied comments from geo_ops.c source file and replace with newBruce Momjian2007-03-05
| | | | | comments, and cleanup functions. Remove copyright that is no longer relevant.
* Fix for COPY-after-truncate feature.Bruce Momjian2007-03-03
| | | | Simon Riggs
* 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
* 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.
* Fix date/time formats for XML Schema output.Peter Eisentraut2007-03-01
| | | | Pavel Stehule
* 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
* 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
|
* 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.
* 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.
* 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 "isodow" option to EXTRACT() and date_part() where Sunday = 7.Bruce Momjian2007-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.
* 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
* 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.
* Better fix for determining minimum and maximum int64 values that doesn'tPeter Eisentraut2007-02-16
| | | | require stdint.h and works for "busted" int64.
* Code review for SSLKEY patch.Tom Lane2007-02-16
|
* Fix // commentPeter Eisentraut2007-02-16
|
* Add stdint.h includePeter Eisentraut2007-02-16
|
* Functions for mapping table data and table schemas to XML (a.k.a. XML export)Peter Eisentraut2007-02-16
|
* Add two new format fields for use with to_char(), to_date() andBruce Momjian2007-02-16
| | | | | | | | | | | | | | to_timestamp(): - ID for day-of-week - IDDD for day-of-year This makes it possible to convert ISO week dates to and from text fully represented in either week ('IYYY-IW-ID') or day-of-year ('IYYY-IDDD') format. I have also added an 'isoyear' field for use with extract / date_part. Brendan Jurd
* SSL improvements:Bruce Momjian2007-02-16
| | | | | | | | o read global SSL configuration file o add GUC "ssl_ciphers" to control allowed ciphers o add libpq environment variable PGSSLKEY to control SSL hardware keys Victor B. Wagner
* Restructure autovacuum in two processes: a dummy process, which runsAlvaro Herrera2007-02-15
| | | | | | | | | continuously, and requests vacuum runs of "autovacuum workers" to postmaster. The workers do the actual vacuum work. This allows for future improvements, like allowing multiple autovacuum jobs running in parallel. For now, the code keeps the original behavior of having a single autovac process at any time by sleeping until the previous worker has finished.
* Fix to_date()/to_timestamp() 'D' field for day of week, was off by one.Bruce Momjian2007-02-14
| | | | | | Converting from char using 'D' doesn't make lots of sense, of course. Report from Brendan Jurd.
* Fix capitalization and punctuation of two more GUC description strings.Neil Conway2007-02-14
|
* Fix up foreign-key mechanism so that there is a sound semantic basis for theTom Lane2007-02-14
| | | | | | | | | | | | | | | | | | | | | equality checks it applies, instead of a random dependence on whatever operators might be named "=". The equality operators will now be selected from the opfamily of the unique index that the FK constraint depends on to enforce uniqueness of the referenced columns; therefore they are certain to be consistent with that index's notion of equality. Among other things this should fix the problem noted awhile back that pg_dump may fail for foreign-key constraints on user-defined types when the required operators aren't in the search path. This also means that the former warning condition about "foreign key constraint will require costly sequential scans" is gone: if the comparison condition isn't indexable then we'll reject the constraint entirely. All per past discussions. Along the way, make the RI triggers look into pg_constraint for their information, instead of using pg_trigger.tgargs; and get rid of the always error-prone fixed-size string buffers in ri_triggers.c in favor of building up the RI queries in StringInfo buffers. initdb forced due to columns added to pg_constraint and pg_trigger.
* Un-break build on ANSI compilers (like msvc) by moving Assert to positionMagnus Hagander2007-02-13
| | | | after variable declarations.
* Add comment that to_char() for broken glibc pt_BR might cause a problem.Bruce Momjian2007-02-13
|
* Add support for optionally escaping periods when converting SQL identifiersPeter Eisentraut2007-02-11
| | | | to XML names, which will be required for supporting XML export.
* Fix for early log messages during postmaster startup getting lost whenMagnus Hagander2007-02-11
| | | | | | running as a service on Win32. Per report from Harald Armin Massa.
* Add proper mapping of boolean type data to XML Schema.Peter Eisentraut2007-02-10
|
* StrNCpy -> strlcpy (not complete)Peter Eisentraut2007-02-10
|
* Replace useless uses of := by = in makefiles.Peter Eisentraut2007-02-09
|
* Remove blank lines in code.Bruce Momjian2007-02-09
|
* Combine cmin and cmax fields of HeapTupleHeaders into a single field, byTom Lane2007-02-09
| | | | | | | | | | keeping private state in each backend that has inserted and deleted the same tuple during its current top-level transaction. This is sufficient since there is no need to be able to determine the cmin/cmax from any other transaction. This gets us back down to 23-byte headers, removing a penalty paid in 8.0 to support subtransactions. Patch by Heikki Linnakangas, with minor revisions by moi, following a design hashed out awhile back on the pghackers list.
* Remove blank line from C code.Bruce Momjian2007-02-09
|
* Fix bug when localized to_char() day or month names were incorectlyBruce Momjian2007-02-08
| | | | | | trnasformed to lower or upper string. Pavel Stehule
* Fix bug in our code when using to_timestamp() or to_date() without "TM".Bruce Momjian2007-02-08
| | | | | Assume "TM" when input fields are variable-length, like month or day names. This matches Oracle behavior.
* Add a function pg_stat_clear_snapshot() that discards any statistics snapshotTom Lane2007-02-07
| | | | | | | | | | | | already collected in the current transaction; this allows plpgsql functions to watch for stats updates even though they are confined to a single transaction. Use this instead of the previous kluge involving pg_stat_file() to wait for the stats collector to update in the stats regression test. Internally, decouple storage of stats snapshots from transaction boundaries; they'll now stick around until someone calls pgstat_clear_snapshot --- which xact.c still does at transaction end, to maintain the previous behavior. This makes the logic a lot cleaner, at the price of a couple dozen cycles per transaction exit.
* Replace some strncpy() by strlcpy().Peter Eisentraut2007-02-07
|
* Implement XMLSERIALIZE for real. Analogously, make the xml to text castPeter Eisentraut2007-02-03
| | | | | | | | | observe the xmloption. Reorganize the representation of the XML option in the parse tree and the API to make it easier to manage and understand. Add regression tests for parsing back XML expressions.
* Wording cleanup for error messages. Also change can't -> cannot.Bruce Momjian2007-02-01
| | | | | | | | | | | | | | Standard English uses "may", "can", and "might" in different ways: may - permission, "You may borrow my rake." can - ability, "I can lift that log." might - possibility, "It might rain today." Unfortunately, in conversational English, their use is often mixed, as in, "You may use this variable to do X", when in fact, "can" is a better choice. Similarly, "It may crash" is better stated, "It might crash".
* Rewrite uuid input and output routines to avoid dependency on theNeil Conway2007-01-31
| | | | | | | | | | | nonportable "hh" sprintf(3) length modifier. Instead, do the parsing and output by hand. The code to do this isn't ideal, but this is an interim measure anyway: the uuid type should probably use the in-memory struct layout specified by RFC 4122. For now, this patch should hopefully rectify the buildfarm failures for the uuid test. Along the way, re-add pg_cast entries for uuid <-> varchar, which I mistakenly removed earlier, and bump the catversion.
* Revert gincostestimate changes.Teodor Sigaev2007-01-31
|
* Allow GIN's extractQuery method to signal that nothing can satisfy the query.Teodor Sigaev2007-01-31
| | | | | | | | | | | | | In this case extractQuery should returns -1 as nentries. This changes prototype of extractQuery method to use int32* instead of uint32* for nentries argument. Based on that gincostestimate may see two corner cases: nothing will be found or seqscan should be used. Per proposal at http://archives.postgresql.org/pgsql-hackers/2007-01/msg01581.php PS tsearch_core patch should be sightly modified to support changes, but I'm waiting a verdict about reviewing of tsearch_core patch.
* Update documentation for pg_get_serial_sequence() function.Bruce Momjian2007-01-30
|