aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Allow backends to start up without use of the flat-file copy of pg_database.Tom Lane2009-08-12
| | | | | | | | | | | | | | | | | | | | | | To make this work in the base case, pg_database now has a nailed-in-cache relation descriptor that is initialized using hardwired knowledge in relcache.c. This means pg_database is added to the set of relations that need to have a Schema_pg_xxx macro maintained in pg_attribute.h. When this path is taken, we'll have to do a seqscan of pg_database to find the row we need. In the normal case, we are able to do an indexscan to find the database's row by name. This is made possible by storing a global relcache init file that describes only the shared catalogs and their indexes (and therefore is usable by all backends in any database). A new backend loads this cache file, finds its database OID after an indexscan on pg_database, and then loads the local relcache init file for that database. This change should effectively eliminate number of databases as a factor in backend startup time, even with large numbers of databases. However, the real reason for doing it is as a first step towards getting rid of the flat files altogether. There are still several other sub-projects to be tackled before that can happen.
* Fix old bug in log_autovacuum_min_duration code: it was relying on being ableTom Lane2009-08-12
| | | | | | | | to access a Relation entry it had just closed. I happened to be testing with CLOBBER_CACHE_ALWAYS, which made this a guaranteed core dump (at least on machines where sprintf %s isn't forgiving of a NULL pointer). It's probably quite unlikely that it would fail in the field, but a bug is a bug. Fix by moving the relation_close call down past the logging action.
* Split the plpython regression test into test cases arranged by topic, insteadPeter Eisentraut2009-08-12
| | | | | | of the previous monolithic setup-create-run sequence, that was apparently inherited from a previous test infrastructure, but makes working with the tests and adding new ones weird.
* Document the minimum required Python version.Peter Eisentraut2009-08-12
| | | | | | It turns out that Python 2.2 is the oldest version that PL/Python compiles with, apparently related to the introduction of iterators. Might as well document this.
* Add .cvsignore entries for documentation filesPeter Eisentraut2009-08-11
|
* Remove unnecessary files from distributionPeter Eisentraut2009-08-11
|
* Simplify and speed up man page installationPeter Eisentraut2009-08-11
|
* Refactor some $(JADE.tex.call)sAlvaro Herrera2009-08-11
|
* Remove tab in SGML.Bruce Momjian2009-08-11
|
* Fix URL to "The Hitch-Hiker's Guide to Evolutionary Computation".Alvaro Herrera2009-08-10
| | | | | Per Andreas Wenk, Andres Freund and Rob Wultsh. Thanks, Robert Haas, for the patch.
* Fix number of columns declared for pg_user_mappings description table.Alvaro Herrera2009-08-10
|
* Refactor NUM_cache_remove calls in error report path to a PG_TRY block.Alvaro Herrera2009-08-10
| | | | | The code in the new block was not reindented; it will be fixed by pgindent eventually.
* Support EEEE (scientific notation) in to_char().Tom Lane2009-08-10
| | | | Pavel Stehule, Brendan Jurd
* Adjust test_fsync code to be more sane.Bruce Momjian2009-08-10
| | | | Backpatch to 8.4.X.
* Adjust extract(epoch) example to clarify that it includes fractionalTom Lane2009-08-10
| | | | | seconds, per gripe from Richard Neill. Also, add a cross-reference to the to_timestamp function.
* Extend EXPLAIN to support output in XML or JSON format.Tom Lane2009-08-10
| | | | | | | There are probably still some adjustments to be made in the details of the output, but this gets the basic structure in place. Robert Haas
* Re-add documentation for --no-readline option of psql, mistakenly removed a ↵Andrew Dunstan2009-08-10
| | | | decade ago. Backpatch to release 7.4.
* Ship documentation without intermediate tarballsPeter Eisentraut2009-08-09
| | | | | | | | Documentation files in HTML and man formats are now prepared for distribution using the distprep make target, like everything else. They are placed in doc/src/sgml/html and manX and installed from there by make install, if present. The business with the tarballs in the tarball is gone.
* Document that LocalSetXLogInsertAllowed can be re-executed.Tom Lane2009-08-08
| | | | Per comment from Simon.
* Modify parallel pg_restore to track pending and ready items by means ofTom Lane2009-08-07
| | | | | | | | | | two new lists, rather than repeatedly rescanning the main TOC list. This avoids a potential O(N^2) slowdown, although you'd need a *lot* of tables to make that really significant; and it might simplify future improvements in the scheduling algorithm by making the set of ready items more easily inspectable. The original thought that it would in itself result in a more efficient job dispatch order doesn't seem to have been borne out in testing, but it seems worth doing anyway.
* Document that autovacuum may run ANALYZEAlvaro Herrera2009-08-07
|
* Expand test coverage support to entire treePeter Eisentraut2009-08-07
| | | | | | | | | | | | Test coverage support now covers the entire source tree, including contrib, instead of just src/backend. In a related but independent development, the commands make coverage and make coverage-html can be run in any directory. This turned out to be much easier than feared. Besides a few ad hoc fixes to pass the make target down the tree, change all affected makefiles to list their directories in the SUBDIRS variable, changed from variants like DIRS and WANTED_DIRS. MSVC build fix was attempted as well.
* Try to defend against the possibility that libpq is still in COPY_IN stateTom Lane2009-08-07
| | | | | | | | | | when we reach the post-COPY "pump it dry" error recovery code that was added 2006-11-24. Per a report from Neil Best, there is at least one code path in which this occurs, leading to an infinite loop in code that's supposed to be making it more robust not less so. A reasonable response seems to be to call PQputCopyEnd() again, so let's try that. Back-patch to all versions that contain the cleanup loop.
* rm_cleanup functions need to be allowed to write WAL entries. This oversightTom Lane2009-08-07
| | | | | appears to explain the recent reports of "PANIC: cannot make new WAL entries during recovery".
* Remove unused ecpg variable.Bruce Momjian2009-08-07
|
* Remove long-since-unused file commands/version.h.Tom Lane2009-08-07
| | | | Noticed by Itagaki Takahiro.
* Fix some omissions in the dependency-object-class support for SQL/MED objects.Tom Lane2009-08-07
| | | | Main problem found by Muhammad Aqeel, some cosmetic additions by me.
* Added STRING datatype for Informix compatibility mode. This work isMichael Meskes2009-08-07
| | | | based on a patch send in by Böszörményi Zoltán <zb@cybertec.at>.
* Fast shutdown stop should forcibly disconnect any active backends, evenHeikki Linnakangas2009-08-07
| | | | | | | if a smart shutdown is already in progress. Backpatch to 8.3, this was broken in the patch that introduced "dead-end backends". Per report by Itagaki Takahiro, patch by Fujii Masao.
* Improve plpgsql's ability to cope with rowtypes containing dropped columns,Tom Lane2009-08-06
| | | | | | | | | | | by supporting conversions in places that used to demand exact rowtype match. Since this issue is certain to come up elsewhere (in fact, already has, in ExecEvalConvertRowtype), factor out the support code into new core functions for tuple conversion. I chose to put these in a new source file since heaptuple.c is already overly long. Heavily revised version of a patch by Pavel Stehule.
* Avoid terminating the postmaster on a number of "can't happen" cases duringMagnus Hagander2009-08-06
| | | | | backend startup on Win32. Instead, log the error and just forget about the potentially dangling process, since we can't do anything about it anyway.
* Fix manpages related to SPI functions.Alvaro Herrera2009-08-05
| | | | | | | | This patch adds declaration so that they end up in section 3, and adds them to the Makefiles to install them. Also, some synopses needed reflowing so that they look nice in 80-column terminals.
* Add matchorig, matchsynonyms, and keepsynonyms options to contrib/dict_xsyn.Tom Lane2009-08-05
| | | | Sergey Karpov
* Improve error messages in md.c. When a filesystem operation like open() orHeikki Linnakangas2009-08-05
| | | | | | | | | | | | | fsync() fails, say "file" rather than "relation" when printing the filename. This makes messages that display block numbers a bit confusing. For example, in message 'could not read block 150000 of file "base/1234/5678.1"', 150000 is the block number from the beginning of the relation, ie. segment 0, not 150000th block within that segment. Per discussion, users aren't usually interested in the exact location within the file, so we can live with that. To ease constructing error messages, add FilePathName(File) function to return the pathname of a virtual fd.
* Implement dblink_get_notify().Joe Conway2009-08-05
| | | | | | | Adds the ability to retrieve async notifications using dblink, via the addition of the function dblink_get_notify(). Original patch by Marcus Kempe, suggestions by Tom Lane and Alvaro Herrera, patch review and adjustments by Joe Conway.
* Fixed copyright notice.Michael Meskes2009-08-05
|
* Use DocBook XSL stylesheets for man page buildingPeter Eisentraut2009-08-04
| | | | | | | | This switches the man page building process to use the DocBook XSL stylesheet toolchain. The previous targets for Docbook2X are removed. configure has been updated to look for the new tools. The Documentation appendix contains the new build instructions. There are also a few isolated tweaks in the documentation to improve places that came out strangely in the man pages.
* Fix pg_dump to do the right thing when escaping the contents of large objects.Tom Lane2009-08-04
| | | | | | | | | | | | | | | | The previous implementation got it right in most cases but failed in one: if you pg_dump into an archive with standard_conforming_strings enabled, then pg_restore to a script file (not directly to a database), the script will set standard_conforming_strings = on but then emit large object data as nonstandardly-escaped strings. At the moment the code is made to emit hex-format bytea strings when dumping to a script file. We might want to change to old-style escaping for backwards compatibility, but that would be slower and bulkier. If we do, it's just a matter of reimplementing appendByteaLiteral(). This has been broken for a long time, but given the lack of field complaints I'm not going to worry about back-patching.
* Avoid including miscadmin.h into plpgsql.h; instead include it into the twoAlvaro Herrera2009-08-04
| | | | source files that need it.
* Fix an ecpg test, too. Are we there yet?Tom Lane2009-08-04
|
* Fix some more regression tests (missed these because they're onlyTom Lane2009-08-04
| | | | run when built with --with-openssl).
* Suppress pointer-signedness warning.Tom Lane2009-08-04
|
* Ooops, missed that a couple of contrib modules have calls to byteacmp.Tom Lane2009-08-04
| | | | | Add bytea.h inclusions as needed. Some of the contrib regression tests need to be de-hexified, too. Per buildfarm.
* Teach PQescapeByteaConn() to use hex format when the target connection isTom Lane2009-08-04
| | | | to a server >= 8.5. Per my proposal in discussion of hex-format patch.
* Support hex-string input and output for type BYTEA.Tom Lane2009-08-04
| | | | | | | | | | | | | Both hex format and the traditional "escape" format are automatically handled on input. The output format is selected by the new GUC variable bytea_output. As committed, bytea_output defaults to HEX, which is an *incompatible change*. We will keep it this way for awhile for testing purposes, but should consider whether to switch to the more backwards-compatible default of ESCAPE before 8.5 is released. Peter Eisentraut
* Cause pg_proc.probin to be declared as text, not bytea. Everything wasTom Lane2009-08-04
| | | | | | | | | | | | | | | already treating it as text anyway, to the point that I couldn't find anything to change except the datatype markings in catalog/*.h. The only effect that the bytea declaration had was to cause byteaout() to be invoked when pg_dump (or another client program) inspected the column value. Since pg_dump wasn't expecting that, but just treating what it got as text, the net result is that dump and reload would mangle any backslashes or non-ASCII characters in the filename string for a C-language function. That is a very long-standing bug, but given the lack of field complaints it doesn't seem worth trying to find a back-patchable fix. We'll just make this change to fix it going forward. This change will also forestall problems after the planned change to let bytea emit hex output instead of escaped characters.
* Implement has_sequence_privilege()Joe Conway2009-08-03
| | | | | | | Add family of functions that did not exist earlier, mainly due to historical omission. Original patch by Abhijit Menon-Sen, with review and modifications by Joe Conway. catversion.h bumped.
* Portability and documentation fixes for threaded pgbench patch.Tom Lane2009-08-03
|
* Multi-threaded version of pgbench contributed by ITAGAKI Takahiro,Tatsuo Ishii2009-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reviewed by Greg Smith and Josh Williams. Following is the proposal from ITAGAKI Takahiro: Pgbench is a famous tool to measure postgres performance, but nowadays it does not work well because it cannot use multiple CPUs. On the other hand, postgres server can use CPUs very well, so the bottle-neck of workload is *in pgbench*. Multi-threading would be a solution. The attached patch adds -j (number of jobs) option to pgbench. If the value N is greater than 1, pgbench runs with N threads. Connections are equally-divided into them (ex. -c64 -j4 => 4 threads with 16 connections each). It can run on POSIX platforms with pthread and on Windows with win32 threads. Here are results of multi-threaded pgbench runs on Fedora 11 with intel core i7 (8 logical cores = 4 physical cores * HT). -j8 (8 threads) was the best and the tps is 4.5 times of -j1, that is a traditional result. $ pgbench -i -s10 $ pgbench -n -S -c64 -j1 => tps = 11600.158593 $ pgbench -n -S -c64 -j2 => tps = 17947.100954 $ pgbench -n -S -c64 -j4 => tps = 26571.124001 $ pgbench -n -S -c64 -j8 => tps = 52725.470403 $ pgbench -n -S -c64 -j16 => tps = 38976.675319 $ pgbench -n -S -c64 -j32 => tps = 28998.499601 $ pgbench -n -S -c64 -j64 => tps = 26701.877815 Is it acceptable to use pthread in contrib module? If ok, I will add the patch to the next commitfest.
* Add ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCTTom Lane2009-08-02
| | | | Robert Haas