aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
...
* Clean up some loose ends from the column privileges patch: addTom Lane2009-02-06
| | | | | | | | | | | | | | | | | | | | | | has_column_privilege and has_any_column_privilege SQL functions; fix the information_schema views that are supposed to pay attention to column privileges; adjust pg_stats to show stats for any column you have select privilege on; and fix COPY to allow copying a subset of columns if the user has suitable per-column privileges for all the columns. To improve efficiency of some of the information_schema views, extend the has_xxx_privilege functions to allow inquiring about the OR of a set of privileges in just one call. This is just exposing capability that already existed in the underlying aclcheck routines. In passing, make the information_schema views report the owner's own privileges as being grantable, since Postgres assumes this even when the grant option bit is not set in the ACL. This is a longstanding oversight. Also, make the new has_xxx_privilege functions for foreign data objects follow the same coding conventions used by the older ones. Stephen Frost and Tom Lane
* Fix an old corner-case error in match_unsorted_outer(): don't considerTom Lane2009-02-05
| | | | | | | | | | | | the cheapest-total inner path as a new candidate while truncating the sort key list, if it already matched the full sort key list. This is too much of a corner case to be worth back-patching, since it's unusual for the cheapest total path to be sorted, and anyway no real harm is done (except in JOIN_SEMI/ANTI cases where cost_mergejoin is a bit broken at the moment). But it wasn't behaving as intended, so fix it. Noted while examining a test case from Kevin Grittner. This error doesn't explain his issue, but it does explain why "set enable_seqscan = off" seemed to reproduce it for me.
* Add a failure check for syslogger's use of _beginthreadex(), and removeTom Lane2009-02-03
| | | | | unnecessary thread address output parameter, to make this code look more like that in pg_restore.
* Allow reloption names to have qualifiers, initially supporting a TOASTAlvaro Herrera2009-02-02
| | | | | | | | qualifier, and add support for this in pg_dump. This allows TOAST tables to have user-defined fillfactor, and will also enable us to move the autovacuum parameters to reloptions without taking away the possibility of setting values for TOAST tables.
* Fix unnest() to handle a toasted input array safely. Per report fromTom Lane2009-01-30
| | | | Alvaro.
* Check that connection limit is within valid range. IOW, not < -1.Heikki Linnakangas2009-01-30
| | | | | | It's missing in older versions too, but it doesn't seem worth back-porting. All negative are just harmlessly treated as "no limit", and tightening the check might even brake an application that relies on it.
* Replace argument-checking Asserts with regular test-and-elog checks in allTom Lane2009-01-29
| | | | | | | | | | | | encoding conversion functions. These are not can't-happen cases because it's possible to create a conversion with the wrong conversion function for the specified encoding pair. That would lead to an Assert crash in an Assert-enabled build, or incorrect conversion otherwise, neither of which is desirable. This would be a DOS issue if production databases were customarily built with asserts enabled, but fortunately that's not so. Per an observation by Heikki. Back-patch to all supported branches.
* Fix incorrect dereferencing of char* to array's index.Teodor Sigaev2009-01-29
| | | | Per Tommy Gildseth <tommy.gildseth@usit.uio.no> report
* Go over all OpenSSL return values and make sure we compare themMagnus Hagander2009-01-28
| | | | | | | | to the documented API value. The previous code got it right as it's implemented, but accepted too much/too little compared to the API documentation. Per comment from Zdenek Kotala.
* Silence compiler warnings in new win32 locale codeMagnus Hagander2009-01-27
| | | | | | when building on mingw. ITAGAKI Takahiro
* Revert updatable viewsPeter Eisentraut2009-01-27
|
* Allow extracting and parsing of reloptions from a bare pg_class tuple, andAlvaro Herrera2009-01-26
| | | | | | refactor the relcache code that used to do that. This allows other callers (particularly autovacuum) to do the same without necessarily having to open and lock a table.
* Tweak the existing special case for AIX in pg_getaddrinfo_all() to handleTom Lane2009-01-23
| | | | | yet another failure case in AIX's getaddrinfo(). Per report and patch by Andrew Chernow.
* Put back fast-path for the case that there's no backup blocks inHeikki Linnakangas2009-01-23
| | | | | RestoreBkpBlocks. Went missing in my recent refactoring patch, as pointed out by Simon's hot standby patch.
* Support column-level privileges, as required by SQL standard.Tom Lane2009-01-22
| | | | Stephen Frost, with help from KaiGai Kohei and others
* Only skip pages marked as clean in the visibility map, if the last 32Heikki Linnakangas2009-01-22
| | | | | | | pages were marked as clean as well. The idea is to avoid defeating OS readahead by skipping a page here and there, and also makes it less likely that we miss an opportunity to advance relfrozenxid, for the sake of only a few skipped pages.
* Update comments to reflect that tgenabled is not a boolean anymore.Heikki Linnakangas2009-01-22
| | | | Jonah Harris, with minor tinkering by me.
* Automatic view update rulesPeter Eisentraut2009-01-22
| | | | Bernd Helmle
* Explicitly bind gettext to the correct encoding on Windows.Magnus Hagander2009-01-22
| | | | Original patch from Hiroshi Inoue.
* Remove stray ' character at end of line.Magnus Hagander2009-01-21
| | | | | For some reason it broke OpenBSD compile even when it's inside a #ifdef WIN32 block.....
* Add new SPI_OK_REWRITTEN return code to SPI_execute and friends, for theHeikki Linnakangas2009-01-21
| | | | | | | case that the command is rewritten into another type of command. The old behavior to return the command tag of the last executed command was pretty surprising. In PL/pgSQL, for example, it meant that if a command was rewritten to a utility statement, FOUND wasn't set at all.
* Make win32 builds always do SetEnvironmentVariable() when doing putenv().Magnus Hagander2009-01-21
| | | | | | | | | | | Also, if linked against other versions than the default MSVCRT library (for example the MSVC build which links against MSVCRT80), also update the cache in the default MSVCRT at the same time. This should fix the issues with setting LC_MESSAGES on the MSVC build. Original patch from Hiroshi Inoue and Hiroshi Saito, much rewritten by me.
* Make some strings translatable again that were accidentally removed inMagnus Hagander2009-01-21
| | | | earlier patch to fix "printf-arguments".
* Add a new option to RestoreBkpBlocks() to indicate if a cleanup lock shouldHeikki Linnakangas2009-01-20
| | | | | | | | | be used instead of the normal exclusive lock, and make WAL redo functions responsible for calling RestoreBkpBlocks(). They know better what kind of a lock they need. At the moment, this just moves things around with no functional change, but makes the hot standby patch that's under review cleaner.
* Revise the permission checking on user mapping DDL commands.Peter Eisentraut2009-01-20
| | | | | | | | | | | | | | | CREATE/ALTER/DROP USER MAPPING are now allowed either by the server owner or by a user with USAGE privileges for his own user name. This is more or less what the SQL standard wants anyway (plus "implementation-defined") Hide information_schema.user_mapping_options.option_value, unless the current user is the one associated with the user mapping, or is the server owner and the mapping is for PUBLIC, or is a superuser. This is to protect passwords. Also, fix a bug in information_schema._pg_foreign_servers, which hid servers using wrappers where the current user did not have privileges on the wrapper. The correct behavior is to hide servers where the current user has no privileges on the server.
* Use the new text domain names ("postgres-8.4" instead of "postgres")Magnus Hagander2009-01-19
| | | | Hiroshi Inoue
* Add vacuum_freeze_table_age GUC option, to control when VACUUM shouldHeikki Linnakangas2009-01-16
| | | | | ignore the visibility map and scan the whole table, to advance relfrozenxid.
* Fix URL generation in headline. Only tag lexeme will be replaced by space.Teodor Sigaev2009-01-15
| | | | Per http://archives.postgresql.org/pgsql-bugs/2008-12/msg00013.php
* Fix generation too long headline with ShortWords.Teodor Sigaev2009-01-15
| | | | Per http://archives.postgresql.org/pgsql-hackers/2008-09/msg01088.php
* Make the columns is_insertable_into and is_updatable behave uniformlyPeter Eisentraut2009-01-14
| | | | | correctly. They are supposed to examine which kinds of rules are present, which they did in some of the info schema views but not in others.
* Simplify the writing of amoptions routines by introducing a convenienceAlvaro Herrera2009-01-12
| | | | | | | | | | | | fillRelOptions routine that stores the parsed values in the struct using a table-based approach. Per Tom suggestion. Also remove the "continue" in HANDLE_*_RELOPTION macros, which were useless and in spirit they were assuming too much of how the macros were going to be used. (Note that these macros are now unused, but the intention is to introduce some usage in a future autovacuum patch, which is why they weren't completely removed.) Also, do not call the string validation routine when not validating. It seems less error-prone this way, per commentary on the amoptions SGML docs.
* Tweak order of operations in BitmapHeapNext() to avoid the case of prefetchingTom Lane2009-01-12
| | | | | the same page we are nanoseconds away from reading for real. There should be something left to do on the current page before we consider issuing a prefetch.
* Use qualified_name instead of relation_expr for commands that have noPeter Eisentraut2009-01-12
| | | | | | | | business with inheritance recursion: ALTER INDEX, ALTER SEQUENCE, ALTER TRIGGER, ALTER VIEW. They would just silently ignore the ONLY. ALTER TABLE has mixed behavior and cannot be dealt with this way because of the resulting shift/reduce conflicts.
* Add ONLY support to LOCK and TRUNCATE. By default, these commands are nowPeter Eisentraut2009-01-12
| | | | | | recursive. => Note this incompatibility in the release notes.
* Implement prefetching via posix_fadvise() for bitmap index scans. A newTom Lane2009-01-12
| | | | | | | | | | GUC variable effective_io_concurrency controls how many concurrent block prefetch requests will be issued. (The best way to handle this for plain index scans is still under debate, so that part is not applied yet --- tgl) Greg Stark
* Re-enable the old code in xlog.c that tried to use posix_fadvise(), so thatTom Lane2009-01-11
| | | | | | | we can get some buildfarm feedback about whether that function is still problematic. (Note that the planned async-preread patch will not really prove anything one way or the other in buildfarm testing, since it will be inactive with default GUC settings.)
* Revise the TIDBitmap API to support multiple concurrent iterations over aTom Lane2009-01-10
| | | | | | bitmap. This is extracted from Greg Stark's posix_fadvise patch; it seems worth committing separately, since it's potentially useful independently of posix_fadvise.
* Arrange for function default arguments to be processed properly in expressionsTom Lane2009-01-09
| | | | | | | that are set up for execution with ExecPrepareExpr rather than going through the full planner process. By introducing an explicit notion of "expression planning", this patch also lays a bit of groundwork for maybe someday allowing sub-selects in standalone expressions.
* Code review of strftime patch, per comments from Tom:Magnus Hagander2009-01-09
| | | | | * Use correct buffer size MAX_L10N_DATA * Use strlcpy instead of StrNCpy
* Fix strftime usage on Win32 when trying to fetch the locale-awareMagnus Hagander2009-01-09
| | | | | | | parts of a time string so it properly handles different encodings. Original patch by Hiroshi Saito, heavily reworked by me and ITAGAKI Takahiro.
* Make krb_realm and krb_server_hostname be pg_hba options only, and removeMagnus Hagander2009-01-09
| | | | | | | their GUCs. In passing, noted that the pg_hba options for krb5 authentication weren't listed at all - so add this.
* A couple further reloptions improvements, per KaiGai Kohei: add a validationAlvaro Herrera2009-01-08
| | | | | | function to the string type and add a couple of macros for string handling. In passing, fix an off-by-one bug of mine.
* Defend against null input in analyze_requires_snapshot(), per reportTom Lane2009-01-08
| | | | from Rushabh Lathia.
* Revert current_query() change to use debug_query_string again; add comment.Bruce Momjian2009-01-08
|
* Add comment about why BETWEEN uses operator strings and not opclasses,Bruce Momjian2009-01-07
| | | | with URL pointing to email discussion.
* Create a third option named "partition" for constraint_exclusion, and make itTom Lane2009-01-07
| | | | | | | | | the default. This setting enables constraint exclusion checks only for appendrel members (ie, inheritance children and UNION ALL arms), which are the cases in which constraint exclusion is most likely to be useful. Avoiding the overhead for simple queries that are unlikely to benefit should bring the cost down to the point where this is a reasonable default setting. Per today's discussion.
* Have current_query() use ActivePortal->sourceText rather thanBruce Momjian2009-01-07
| | | | | debug_query_string; this allows current_query() to be more accurate; docs updated; per idea from Tom
* Insert conditional SPI_push/SPI_pop calls into InputFunctionCall,Tom Lane2009-01-07
| | | | | | | | | | | | | | | | | | | | OutputFunctionCall, and friends. This allows SPI-using functions to invoke datatype I/O without concern for the possibility that a SPI-using function will be called (which could be either the I/O function itself, or a function used in a domain check constraint). It's a tad ugly, but not nearly as ugly as what'd be needed to make this work via retail insertion of push/pop operations in all the PLs. This reverts my patch of 2007-01-30 that inserted some retail SPI_push/pop calls into plpgsql; that approach only fixed plpgsql, and not any other PLs. But the other PLs have the issue too, as illustrated by a recent gripe from Christian Schröder. Back-patch to 8.2, which is as far back as this solution will work. It's also as far back as we need to worry about the domain-constraint case, since earlier versions did not attempt to check domain constraints within datatype input. I'm not aware of any old I/O functions that use SPI themselves, so this should be sufficient for a back-patch.
* Add comment that it is difficult to access the more accurateBruce Momjian2009-01-07
| | | | 'query_string' from current_query().
* Update comment associated with 'debug_query_string'.Bruce Momjian2009-01-07
|