aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* Avoid duplicate definition of LOCALEDIR in pg_config.h, already definedBruce Momjian2006-05-23
| | | | in port/pg_config_paths.h.
* Remove CXT_printf/CXT1_printf macros. If anyone had found them to be ofTom Lane2006-05-23
| | | | | | | | | any use in the past many years, we'd have made some effort to include them in all executor node types; but in fact they were only in nodeAppend.c and nodeIndexscan.c, up until I copied nodeIndexscan.c's occurrence into the new bitmap node types. Remove some other unused macros in execdebug.h, too. Some day the whole header probably ought to go away in favor of better-designed facilities.
* Change \; to ; in RULE, \; unnecessary.Bruce Momjian2006-05-22
|
* Add strerror to pg_dump error messages where missing.Peter Eisentraut2006-05-22
|
* Remove mention of pg_upgrade in release checklist.Bruce Momjian2006-05-21
|
* Modify libpq's string-escaping routines to be aware of encoding considerationsTom Lane2006-05-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and standard_conforming_strings. The encoding changes are needed for proper escaping in multibyte encodings, as per the SQL-injection vulnerabilities noted in CVE-2006-2313 and CVE-2006-2314. Concurrent fixes are being applied to the server to ensure that it rejects queries that may have been corrupted by attempted SQL injection, but this merely guarantees that unpatched clients will fail rather than allow injection. An actual fix requires changing the client-side code. While at it we have also fixed these routines to understand about standard_conforming_strings, so that the upcoming changeover to SQL-spec string syntax can be somewhat transparent to client code. Since the existing API of PQescapeString and PQescapeBytea provides no way to inform them which settings are in use, these functions are now deprecated in favor of new functions PQescapeStringConn and PQescapeByteaConn. The new functions take the PGconn to which the string will be sent as an additional parameter, and look inside the connection structure to determine what to do. So as to provide some functionality for clients using the old functions, libpq stores the latest encoding and standard_conforming_strings values received from the backend in static variables, and the old functions consult these variables. This will work reliably in clients using only one Postgres connection at a time, or even multiple connections if they all use the same encoding and string syntax settings; which should cover many practical scenarios. Clients that use homebrew escaping methods, such as PHP's addslashes() function or even hardwired regexp substitution, will require extra effort to fix :-(. It is strongly recommended that such code be replaced by use of PQescapeStringConn/PQescapeByteaConn if at all feasible.
* Add a new GUC parameter backslash_quote, which determines whether the SQLTom Lane2006-05-21
| | | | | | | | | | | | | | | | | parser will allow "\'" to be used to represent a literal quote mark. The "\'" representation has been deprecated for some time in favor of the SQL-standard representation "''" (two single quote marks), but it has been used often enough that just disallowing it immediately won't do. Hence backslash_quote allows the settings "on", "off", and "safe_encoding", the last meaning to allow "\'" only if client_encoding is a valid server encoding. That is now the default, and the reason is that in encodings such as SJIS that allow 0x5c (ASCII backslash) to be the last byte of a multibyte character, accepting "\'" allows SQL-injection attacks as per CVE-2006-2314 (further details will be published after release). The "on" setting is available for backward compatibility, but it must not be used with clients that are exposed to untrusted input. Thanks to Akio Ishida and Yasuo Ohgaki for identifying this security issue.
* Change the backend to reject strings containing invalidly-encoded multibyteTom Lane2006-05-21
| | | | | | | | | | | | | | | | | | | | characters in all cases. Formerly we mostly just threw warnings for invalid input, and failed to detect it at all if no encoding conversion was required. The tighter check is needed to defend against SQL-injection attacks as per CVE-2006-2313 (further details will be published after release). Embedded zero (null) bytes will be rejected as well. The checks are applied during input to the backend (receipt from client or COPY IN), so it no longer seems necessary to check in textin() and related routines; any string arriving at those functions will already have been validated. Conversion failure reporting (for characters with no equivalent in the destination encoding) has been cleaned up and made consistent while at it. Also, fix a few longstanding errors in little-used encoding conversion routines: win1251_to_iso, win866_to_iso, euc_tw_to_big5, euc_tw_to_mic, mic_to_euc_tw were all broken to varying extents. Patches by Tatsuo Ishii and Tom Lane. Thanks to Akio Ishida and Yasuo Ohgaki for identifying the security issues.
* Add last-vacuum/analyze-time columns to the stats collector, both manual andAlvaro Herrera2006-05-19
| | | | | | | | | issued by autovacuum. Add accessor functions to them, and use those in the pg_stat_*_tables system views. Catalog version bumped due to changes in the pgstat views and the pgstat file. Patch from Larry Rosenman, minor improvements by me.
* Call MarkBufferDirty() before XLogInsert() during completion of insertTeodor Sigaev2006-05-19
|
* Simplify gistSplit() and some refactoring related code.Teodor Sigaev2006-05-19
|
* Have autovacuum report its activities to the stat collector.Alvaro Herrera2006-05-19
|
* Fix typo in comment.Alvaro Herrera2006-05-19
|
* Fix Solaris/ASM test for x86.Bruce Momjian2006-05-19
|
* Rework completion of incomplete inserts. Now it writesTeodor Sigaev2006-05-19
| | | | WAL log during inserts.
* Mention packager bumps configure.in/configure.Bruce Momjian2006-05-19
|
* Use unsigned into for slock_t for pre-sparcv8plus.Bruce Momjian2006-05-18
|
* Fix choose_bitmap_and() so that partial index predicates are considered whenTom Lane2006-05-18
| | | | | | | | | | | deciding whether a potential additional indexscan is redundant or not. As now coded, any use of a partial index that was already used in a previous AND arm will be rejected as redundant. This might be overly restrictive, but not considering the point at all is definitely bad, as per example in bug #2441 from Arjen van der Meijden. In particular, a clauseless scan of a partial index was *never* considered redundant by the previous coding, and that's surely wrong. Being more flexible would also require some consideration of how not to double-count the index predicate's selectivity.
* When a bitmap indexscan is using a partial index, it is necessary to includeTom Lane2006-05-18
| | | | | | | the partial index predicate in the scan's "recheck condition". Otherwise, if the scan becomes lossy for lack of bitmap memory, we would fail to enforce that returned rows satisfy the predicate. Noted while studying bug #2441 from Arjen van der Meijden.
* Allow sparcv8plus to use "cas".Bruce Momjian2006-05-18
| | | | Theo Schlossnagle
* Code alignment fix.Bruce Momjian2006-05-18
|
* Fix thinko in recent changes to handle ScalarArrayOpExpr as an indexableTom Lane2006-05-18
| | | | | | | | | | | condition: when there are multiple possible index paths involving ScalarArrayOpExprs, they are logically to be ANDed together not ORed. This thinko was a direct consequence of trying to put the processing inside generate_bitmap_or_paths(), which I now see was a bit too cute. So pull it out and make the callers do it separately (there are only two that need it anyway). Partially responds to bug #2441 from Arjen van der Meijden. There are some additional infelicities exposed by his example, but they are also in 8.1.x, while this mistake is not.
* Remove canonicalize_path() call for .pgpass socket directory comparison;Bruce Momjian2006-05-18
| | | | not worth adding path.c to libpq.
* Mention that gcc/sparc generates sparcv7 binaries.Bruce Momjian2006-05-18
|
* Add more sparcv8plus comments.Bruce Momjian2006-05-18
|
* Add mention of -xarch=v8plus for "cas" usage on Solaris/sparc.Bruce Momjian2006-05-18
|
* Add simplified sparc8 ASM for solaris_sparc.s, from Alan Stange.Bruce Momjian2006-05-18
|
* Add comments that Solaris Sun compiler only supports sparc9 ASM,Bruce Momjian2006-05-17
|
* Change spaces to tabs, for consistency. (Caused by email cut/paste.)Bruce Momjian2006-05-17
|
* Allow the .pgpass hostname to match the default socket directory, asBruce Momjian2006-05-17
| | | | well as a blank pghost.
* Change catalog version due to WAL protocol changes in GiSTTeodor Sigaev2006-05-17
|
* Reduce size of critial section during vacuum full, criticalTeodor Sigaev2006-05-17
| | | | | | | | sections now isn't nested. All user-defined functions now is called outside critsections. Small improvements in WAL protocol. TODO: improve XLOG replay
* Rename macro parameter, for clarity.Bruce Momjian2006-05-17
|
* Fix the sense of the test on DH_check()'s return value. This was preventingTom Lane2006-05-12
| | | | | custom-generated DH parameters from actually being used by the server. Found by Michael Fuhr.
* Upon closer inspection, the sparc code in s_lock.c is dead code, andTom Lane2006-05-12
| | | | | | always has been, because it's not got any .globl declaration! We've been relying on the solaris_sparc.s code instead. Rip it out. (Not back-patched, since this is just cosmetic cleanup.)
* Fix typo in comment.Bruce Momjian2006-05-11
|
* Remove unnecessary .seg/.section directives, per Alan Stange.Tom Lane2006-05-11
|
* Use SQL standard '' rather than \' for tutorial/sample code.Bruce Momjian2006-05-11
| | | | Backpatch to 8.1.X.
* Code review for standard_conforming_strings patch. Fix it so it does notTom Lane2006-05-11
| | | | | | | throw warnings for 100%-SQL-standard constructs, clean up some minor infelicities, try to un-break ecpg to the best of my ability. (It's not clear how ecpg is going to find out the setting of standard_conforming_strings, though.) I think pg_dump still needs work, too.
* Clean up code associated with updating pg_class statistics columnsTom Lane2006-05-10
| | | | | | | | | | | (relpages/reltuples). To do this, create formal support in heapam.c for "overwrite" tuple updates (including xlog replay capability) and use that instead of the ad-hoc overwrites we'd been using in VACUUM and CREATE INDEX. Take the responsibility for updating stats during CREATE INDEX out of the individual index AMs, and do it where it belongs, in catalog/index.c. Aside from being more modular, this avoids having to update the same tuple twice in some paths through CREATE INDEX. It's probably not measurably faster, but for sure it's a lot cleaner than before.
* Reduce size of critical section and remove call of user-defined functions inTeodor Sigaev2006-05-10
| | | | | | insertion and deletion, modify gistSplit() to do not use buffers. TODO: gistvacuumcleanup and XLOG
* Build server libpgport with all non-FRONTEND object files. This is toBruce Momjian2006-05-08
| | | | | fix a Win32 bug where pipe.c included a file that used FRONTEND, but it wasn't on the server-build list.
* Rewrite btree vacuuming to fold the former bulkdelete and cleanup operationsTom Lane2006-05-08
| | | | | | | | | | | | | into a single mostly-physical-order scan of the index. This requires some ticklish interlocking considerations, but should create no material performance impact on normal index operations (at least given the already-committed changes to make scans work a page at a time). VACUUM itself should get significantly faster in any index that's degenerated to a very nonlinear page order. Also, we save one pass over the index entirely, except in the case where there were no deletions to do and so only one pass happened anyway. Original patch by Heikki Linnakangas, rework by Tom Lane.
* Rewrite btree index scans to work a page at a time in all cases (bothTom Lane2006-05-07
| | | | | | | | | | | | | | | | btgettuple and btgetmulti). This eliminates the problem of "re-finding" the exact stopping point, since the stopping point is effectively always a page boundary, and index items are never moved across pre-existing page boundaries. A small penalty is that the keys_are_unique optimization is effectively disabled (and, therefore, is removed in this patch), causing us to apply _bt_checkkeys() to at least one more tuple than necessary when looking up a unique key. However, the advantages for non-unique cases seem great enough to accept this tradeoff. Aside from simplifying and (sometimes) speeding up the indexscan code, this will allow us to reimplement btbulkdelete as a largely sequential scan instead of index-order traversal, thereby significantly reducing the cost of VACUUM. Those changes will come in a separate patch. Original patch by Heikki Linnakangas, rework by Tom Lane.
* Use $(LIBS:-lpgport=) rather than $(patsubst -lpgport,, $(LIBS)), for ↵Bruce Momjian2006-05-07
| | | | consistency.
* Further minor simplification of relcache startup: don't need a staticTom Lane2006-05-06
| | | | needNewCacheFile flag anymore, it can just be local in RelationCacheInitializePhase2.
* Add SSL CRL support to libpq. Recently added to the backend.Bruce Momjian2006-05-06
|
* Issue a log message if a CRL file exists and the SSL library does notBruce Momjian2006-05-06
| | | | support CRL certificates.
* Seems some NetBSD 3.0 x86 systems still need float8-small-is-zero, soBruce Momjian2006-05-05
| | | | patch reverted.
* On Solaris ASM, / '/' is the comment for x86, while '!' is the commentBruce Momjian2006-05-05
| | | | | | for Sparc Robert Lor