aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
...
* Mention MD5 function index for indexing long values.Bruce Momjian2005-08-11
|
* Make new hints follow style guide.Tom Lane2005-08-10
|
* Add hints to cases where indexes fail because of values that are too long.Bruce Momjian2005-08-10
|
* Make backends that are reading the pgstats file verify each backend PIDTom Lane2005-08-09
| | | | | | | against the PGPROC array. Anything in the file that isn't in PGPROC gets rejected as being a stale entry. This should solve complaints about stale entries in pg_stat_activity after a BETERM message has been dropped due to overload.
* Update postgresql.conf to show default ordering for wal_sync_method.Bruce Momjian2005-08-09
|
* Fix crash when reading 'timezone = unknown' from postgresql.conf duringTom Lane2005-08-08
| | | | | SIGHUP; it's not OK for an assign_hook to return a non-malloc'd string. Problem was introduced during timezone library rewrite.
* Avoid useless loop overhead in AtEOXact routines when the backend isTom Lane2005-08-08
| | | | compiled with USE_ASSERT_CHECKING but is running with assert_enabled false.
* Modify AtEOXact_CatCache and AtEOXact_RelationCache to assume that theTom Lane2005-08-08
| | | | | | | | | | | ResourceOwner mechanism already released all reference counts for the cache entries; therefore, we do not need to scan the catcache or relcache at transaction end, unless we want to do it as a debugging crosscheck. Do the crosscheck only in Assert mode. This is the same logic we had previously installed in AtEOXact_Buffers to avoid overhead with large numbers of shared buffers. I thought it'd be a good idea to do it here too, in view of Kari Lavikka's recent report showing a real-world case where AtEOXact_CatCache is taking a significant fraction of runtime.
* Cause ShutdownPostgres to do a normal transaction abort during backendTom Lane2005-08-08
| | | | | | | | exit, instead of trying to take shortcuts. Introduce some additional shutdown callback routines to eliminate kluges like having ProcKill be responsible for shutting down the buffer manager. Ensure that the order of operations during shutdown is predictable and what you would expect given the module layering.
* Fix count_usable_fds() to stop trying to open files once it reachesTom Lane2005-08-07
| | | | | | max_files_per_process. Going further than that is just a waste of cycles, and it seems that current Cygwin does not cope gracefully with deliberately running the system out of FDs. Per Andrew Dunstan.
* COPY performance improvements. Avoid calling CopyGetData for each inputTom Lane2005-08-06
| | | | | | | | | | character, tighten the inner loops of CopyReadLine and CopyReadAttribute, arrange to parse out all the attributes of a line in just one call instead of one CopyReadAttribute call per attribute, be smarter about which client encodings require slow pg_encoding_mblen() loops. Also, clean up the mishmash of static variables and overly-long parameter lists in favor of passing around a single CopyState struct containing all the state data. Original patch by Alon Goldshuv, reworked by Tom Lane.
* ALTER TABLE OWNER must change the ownership of the table's rowtype too.Tom Lane2005-08-04
| | | | | | | | | | | | | This was not especially critical before, but it is now that we track ownership dependencies --- the dependency for the rowtype *must* shift to the new owner. Spotted by Bernd Helmle. Also fix a problem introduced by recent change to allow non-superusers to do ALTER OWNER in some cases: if the table had a toast table, ALTER OWNER failed *even for superusers*, because the test being applied would conclude that the new would-be owner had no create rights on pg_toast. A side-effect of the fix is to disallow changing the ownership of indexes or toast tables separately from their parent table, which seems a good idea on the whole.
* Tweak BgBufferSync() so that a persistent write error on a dirty bufferTom Lane2005-08-02
| | | | | | | doesn't block the bgwriter from making progress writing out other buffers. This was a hard problem in the context of the ARC/2Q design, but it's trivial in the context of clock sweep ... just advance the sweep counter before we try to write not after.
* Prevent planner from including temp tables of other backends when expandingTom Lane2005-08-02
| | | | an inheritance tree. Per recent discussions.
* Clean up CREATE DATABASE processing to make it more robust and get ridTom Lane2005-08-02
| | | | | | | | | | | | of special case for Windows port. Put a PG_TRY around most of createdb() to ensure that we remove copied subdirectories on failure, even if the failure happens while creating the pg_database row. (I think this explains Oliver Siegmar's recent report.) Having done that, there's no need for the fragile assumption that copydir() mustn't ereport(ERROR), so simplify its API. Eliminate the old code that used system("cp ...") to copy subdirectories, in favor of using copydir() on all platforms. This not only should allow much better error reporting, but allows us to fsync the created files before trusting that the copy has succeeded.
* Code and docs review for pg_column_size() patch.Tom Lane2005-08-02
|
* Use ReadDir() not readdir() so as to have some modicum of error checking.Tom Lane2005-08-02
|
* Un-Windows-ify newlines.Tom Lane2005-08-02
|
* Add NOWAIT option to SELECT FOR UPDATE/SHARE.Tom Lane2005-08-01
| | | | | Original patch by Hans-Juergen Schoenig, revisions by Karel Zak and Tom Lane.
* Add ALTER object SET SCHEMA capability for a limited but useful set ofTom Lane2005-08-01
| | | | | | object kinds (tables, functions, types). Documentation is not here yet. Original code by Bernd Helmle, extensive rework by Bruce Momjian and Tom Lane.
* Add per-user and per-database connection limit options.Tom Lane2005-07-31
| | | | | This patch also includes preliminary update of pg_dumpall for roles. Petr Jelinek, with review by Bruce Momjian and Tom Lane.
* Use the standard spelling of the protocol argument to get/setsockopt.Tom Lane2005-07-30
|
* Fix justify_days() for integer datestamp, clean up code.Bruce Momjian2005-07-30
|
* Add GUC variables to control keep-alive times for idle, interval, andBruce Momjian2005-07-30
| | | | | | count. Oliver Jowett
* Fix compile for no O_SYNC, but introduced with O_DIRECT.Bruce Momjian2005-07-30
|
* SUNOS4_CC -> SUNOS_CC.Bruce Momjian2005-07-30
|
* Fix an oversight I introduced on 2003-12-28: find_nots/push_nots shouldTom Lane2005-07-29
| | | | | | | | | continue to recurse after eliminating a NOT-below-a-NOT, since the contained subexpression will now be part of the top-level AND/OR structure and so deserves to be simplified. The real-world impact of this is probably minimal, since it'd require at least three levels of NOT to make a difference, but it's still a bug. Also remove some redundant tests for NULL subexpressions.
* Clean up a number of autovacuum loose ends. Make the stats collectorTom Lane2005-07-29
| | | | | | | | track shared relations in a separate hashtable, so that operations done from different databases are counted correctly. Add proper support for anti-XID-wraparound vacuuming, even in databases that are never connected to and so have no stats entries. Miscellaneous other bug fixes. Alvaro Herrera, some additional fixes by Tom Lane.
* Move dbsize functions into the backend. New functions:Bruce Momjian2005-07-29
| | | | | | | | | | | | pg_tablespace_size pg_database_size pg_relation_size pg_complete_relation_size pg_size_pretty Remove /contrib/dbsize. Dave Page
* Fix typo.Bruce Momjian2005-07-29
| | | | uniware
* Update O_DIRECT comment.Bruce Momjian2005-07-29
|
* Use O_DIRECT if available when using O_SYNC for wal_sync_method.Bruce Momjian2005-07-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, write multiple WAL buffers out in one write() operation. ITAGAKI Takahiro --------------------------------------------------------------------------- > If we disable writeback-cache and use open_sync, the per-page writing > behavior in WAL module will show up as bad result. O_DIRECT is similar > to O_DSYNC (at least on linux), so that the benefit of it will disappear > behind the slow disk revolution. > > In the current source, WAL is written as: > for (i = 0; i < N; i++) { write(&buffers[i], BLCKSZ); } > Is this intentional? Can we rewrite it as follows? > write(&buffers[0], N * BLCKSZ); > > In order to achieve it, I wrote a 'gather-write' patch (xlog.gw.diff). > Aside from this, I'll also send the fixed direct io patch (xlog.dio.diff). > These two patches are independent, so they can be applied either or both. > > > I tested them on my machine and the results as follows. It shows that > direct-io and gather-write is the best choice when writeback-cache is off. > Are these two patches worth trying if they are used together? > > > | writeback | fsync= | fdata | open_ | fsync_ | open_ > patch | cache | false | sync | sync | direct | direct > ------------+-----------+--------+-------+-------+--------+--------- > direct io | off | 124.2 | 105.7 | 48.3 | 48.3 | 48.2 > direct io | on | 129.1 | 112.3 | 114.1 | 142.9 | 144.5 > gather-write| off | 124.3 | 108.7 | 105.4 | (N/A) | (N/A) > both | off | 131.5 | 115.5 | 114.4 | 145.4 | 145.2 > > - 20runs * pgbench -s 100 -c 50 -t 200 > - with tuning (wal_buffers=64, commit_delay=500, checkpoint_segments=8) > - using 2 ATA disks: > - hda(reiserfs) includes system and wal. > - hdc(jfs) includes database files. writeback-cache is always on. > > --- > ITAGAKI Takahiro
* Thank you for applying patch --- regexp_replace.Bruce Momjian2005-07-29
| | | | | | | | | | An attached patch is a small additional improvement. This patch use appendStringInfoText instead of appendStringInfoString. There is an overhead of PG_TEXT_GET_STR when appendStringInfoString is executed by text type. This can be reduced by appendStringInfoText. Atsushi Ogawa
* Make use of new list primitives list_append_unique and list_concat_uniqueTom Lane2005-07-28
| | | | where applicable.
* Fix a bunch of bad interactions between partial indexes and the newTom Lane2005-07-28
| | | | | | | | planning logic for bitmap indexscans. Partial indexes create corner cases in which a scan might be done with no explicit index qual conditions, and the code wasn't handling those cases nicely. Also be a little tenser about eliminating redundant clauses in the generated plan. Per report from Dmitry Karasik.
* Code cleanup.Bruce Momjian2005-07-28
|
* Mark a static array "const" to move a few bytes from the "data" segmentNeil Conway2005-07-28
| | | | | | to the "text" segment. It would be possible to mark the elements of the array "const" as well, but this would require multiple API changes and does not seem to be worth the notational inconvenience.
* Put libpgport into OBJS instead of LIBS, so that it gets includedTom Lane2005-07-28
| | | | | | | | into .def and .exp files automatically on Windows, AIX, and the like. An additional benefit is that changes in libpgport files correctly propagate to force rebuild of the backend executable. This is my reworking of Rocco Altier's idea, and if it breaks anything it's definitely my fault.
* Fix a few macro definitions to ensure that unary minus is enclosed inNeil Conway2005-07-27
| | | | | parentheses. This avoids possible operator precedence problems, and is consistent with most of the macro definitions in the tree.
* Minor correction: cause ALTER ROLE role ROLE rolenames to behaveTom Lane2005-07-26
| | | | sensibly, even though we don't document it.
* Add a role property 'rolinherit' which, when false, denotes that the roleTom Lane2005-07-26
| | | | | | | | | doesn't automatically inherit the privileges of roles it is a member of; for such a role, membership in another role can be exploited only by doing explicit SET ROLE. The default inherit setting is TRUE, so by default the behavior doesn't change, but creating a user with NOINHERIT gives closer adherence to our current reading of SQL99. Documentation still lacking, and I think the information schema needs another look.
* Add pg_has_role() family of privilege inquiry functions modeled after theTom Lane2005-07-26
| | | | | | | existing ones for object privileges. Update the information_schema for roles --- pg_has_role() makes this a whole lot easier, removing the need for most of the explicit joins with pg_user. The views should be a tad faster now, too. Stephen Frost and Tom Lane.
* Add SET ROLE. This is a partial commit of Stephen Frost's recent patch;Tom Lane2005-07-25
| | | | I'm still working on the has_role function and information_schema changes.
* Awhile back we replaced all uses of strcasecmp and strncasecmp withTom Lane2005-07-25
| | | | | | pg_strcasecmp and pg_strncasecmp ... but I see some of the former have crept back in. Eternal vigilance is the price of locale independence, apparently.
* Fix rounding problem in interval_div by using rint(), and improveBruce Momjian2005-07-24
| | | | interval_mul function.
* Fix logic error in tbm_intersect: the intersection of a normal page andTom Lane2005-07-24
| | | | | a lossy page has to be lossy, because we don't know exactly which tuples on the page should remain part of the bitmap. Per Jie Zhang.
* Fix some failures to initialize table entries induced by recent autovacuumTom Lane2005-07-24
| | | | | integration. Not clear this explains recent stats problems, but it's definitely wrong.
* Simple constraint exclusion. For now, only child tables of inheritanceTom Lane2005-07-23
| | | | | scans are candidates for exclusion; this should be fixed eventually. Simon Riggs, with some help from Tom Lane.
* Remove unintended code addition.Bruce Momjian2005-07-23
|
* Macro alignment cleanup.Bruce Momjian2005-07-23
|