aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Use a varno not chosen at random for dummy variables in the top-levelTom Lane2003-02-11
| | | | | | | | | targetlist of a set-operation tree. I'm not sure that this solution will really stand the test of time --- perhaps we need to make a special RTE for such vars to refer to. But this quick hack fixes Brandon Craig Rhodes' complaint of 10-Feb-02 about EXCEPT in CREATE RULE, while not changing any behavior in the better-tested cases where leftmostRTI is one anyway.
* Fix thinko in new logic about pushing down non-nullability constraints:Tom Lane2003-02-10
| | | | | | constraints appearing in outer-join qualification clauses are restricted as to when and where they can be pushed down. Add regression test to catch future errors in this area.
* Add code to show join rule (for outer and IN joins) in join type name.Tom Lane2003-02-10
|
* Get rid of last few vestiges of parsetree dependency on grammar tokenTom Lane2003-02-10
| | | | | | codes, per discussion from last March. parse.h should now be included *only* by gram.y, scan.l, keywords.c, parser.c. This prevents surprising misbehavior after seemingly-trivial grammar adjustments.
* Detect case where an outer join can be reduced to a plain inner joinTom Lane2003-02-09
| | | | | because there are WHERE clauses that will reject the null-extended rows. Per suggestion from Brandon Craig Rhodes, 19-Nov-02.
* Create a distinction between Lists of integers and Lists of OIDs, to getTom Lane2003-02-09
| | | | | | rid of the assumption that sizeof(Oid)==sizeof(int). This is one small step towards someday supporting 8-byte OIDs. For the moment, it doesn't do much except get rid of a lot of unsightly casts.
* Remove bogus comment (too freely copied & pasted).Tom Lane2003-02-09
|
* Make further use of new bitmapset code: executor's chgParam, extParam,Tom Lane2003-02-09
| | | | | | | | locParam lists can be converted to bitmapsets to speed updating. Also, replace 'locParam' with 'allParam', which contains all the paramIDs relevant to the node (i.e., the union of extParam and locParam); this saves a step during SetChangedParamList() without costing anything elsewhere.
* Replace planner's representation of relation sets, per pghackers discussion.Tom Lane2003-02-08
| | | | | Instead of Lists of integers, we now store variable-length bitmap sets. This should be faster as well as less error-prone.
* Revise mechanism for getting rid of temp tables at backend shutdown.Tom Lane2003-02-07
| | | | | | | | | | Instead of grovelling through pg_class to find them, make use of the handy dandy dependency mechanism: just delete everything that depends on our temp schema. Unlike the pg_class scan, the dependency mechanism is smart enough to delete things in an order that doesn't fall foul of any dependency restrictions. Fixes problem reported by David Heggie: a temp table with a serial column may cause a backend FATAL exit at shutdown time, if it chances to try to delete the temp sequence first.
* Make flatten_join_alias_vars() do the right thing when expanding an aliasTom Lane2003-02-06
| | | | referenced from a subquery. Per example from Stefanos Harhalakis.
* Create a GUC variable REGEX_FLAVOR to control the type of regularTom Lane2003-02-06
| | | | | | | | expression accepted by the regex operators, per discussion yesterday. Along the way, reduce deadlock_timeout from PGC_POSTMASTER to PGC_SIGHUP category. It is probably best to insist that all backends share the same setting, but that doesn't mean it has to be frozen at startup.
* Allow qualified type names in CREATE CAST, DROP CAST. Also allow theTom Lane2003-02-05
| | | | | construction 'SETOF type[]' which for some reason was previously overlooked (you'd have to name the array type directly to make it work).
* Replace regular expression package with Henry Spencer's latest versionTom Lane2003-02-05
| | | | | | | (extracted from Tcl 8.4.1 release, as Henry still hasn't got round to making it a separate library). This solves a performance problem for multibyte, as well as upgrading our regexp support to match recent Tcl and nearly match recent Perl.
* Minor code cleanup: remove no-longer-useful pull_subplans() function,Tom Lane2003-02-04
| | | | | and convert pull_agg_clause() into count_agg_clause(), which is a more efficient way of doing what it's really being used for.
* Detect duplicate aggregate calls and evaluate only one copy. ThisTom Lane2003-02-04
| | | | | speeds up some useful real-world cases like SELECT x, COUNT(*) FROM t GROUP BY x HAVING COUNT(*) > 100.
* #ifdef out stuff that shouldn't be compiled when not USE_SSL.Tom Lane2003-02-03
| | | | Curious that gcc doesn't complain about unreferenced static variables.
* Determine the set of constraints applied to a domain at executorTom Lane2003-02-03
| | | | | | startup, not in the parser; this allows ALTER DOMAIN to work correctly with domain constraint operations stored in rules. Rod Taylor; code review by Tom Lane.
* Don't print NO ACTION foreign key actions in dumps and psql \d.Bruce Momjian2003-02-03
|
* Tweak planner and executor to avoid doing ExecProject() in table scanTom Lane2003-02-03
| | | | | | | | nodes where it's not really necessary. In many cases where the scan node is not the topmost plan node (eg, joins, aggregation), it's possible to just return the table tuple directly instead of generating an intermediate projection tuple. In preliminary testing, this reduced the CPU time needed for 'SELECT COUNT(*) FROM foo' by about 10%.
* Move pg_service.conf.sample to /interfaces/libpq.Bruce Momjian2003-02-03
|
* Change MOVE LAST to MOVE ALL.Bruce Momjian2003-02-03
| | | | Standard says FETCH LAST is after last row, and we don't do that.
* Implement EXPLAIN EXECUTE. By Neil Conway, with some kibitzing fromTom Lane2003-02-02
| | | | Tom Lane.
* Fix nodeUnique to behave correctly when reversing direction after reachingTom Lane2003-02-02
| | | | | either end of subplan results. This prevents misbehavior of cursors on SELECT DISTINCT ... queries. Per bug report 1-Feb-02.
* Remove restriction that cast functions cannot be volatile. ThisTom Lane2003-02-01
| | | | | | restriction was debatable to begin with, but it has now become obvious that it breaks forward-porting of user-defined types; contrib/lo being the most salient example.
* Fix assign_session_authorization() to not be confused by all-numericTom Lane2003-02-01
| | | | user names. Per recent reports.
* Tweak bison build rules so that we get the same error messages fromTom Lane2003-01-31
| | | | | | | | bison 1.875 and later as we did from earlier bison releases. Eventually we will probably want to adopt the newer message spelling ... but not yet. Per recent discussion on pgpatches. Note: I didn't change the build rules for bootstrap, ecpg, or plpgsql grammars, since these do not affect regression test results.
* Allow a time zone to be specified (and silently ignored) in the inputTom Lane2003-01-31
| | | | | | | for type 'time without time zone', as we already did for type 'timestamp without time zone'. This patch was proposed by Tom Lockhart on 7-Nov-02, but he never got around to applying it. Adjust regression tests and documentation to match.
* SPI_exec shouldn't return SPI_OK_SELECT if it hasn't actually returnedTom Lane2003-01-29
| | | | | a tuple table. Fixes core dump in pltcl (and probably other PLs) when executing a query rewritten by a rule. Per bug report from Wolfgang Walter.
* Tweak ArrayCount() to forestall possible access to temp[-1]. ProblemTom Lane2003-01-29
| | | | | | cannot actually happen at present because ArrayCount() is only called on strings beginning with '{', but seems best to prevent it going forward. Per report from Yichen Xie.
* Repair array subscript overrun identified by Yichen Xie. Reduce theTom Lane2003-01-29
| | | | | | | value of MAX_TIME_PRECISION in floating-point-timestamp-storage case from 13 to 10, which is as much as time_out is actually willing to print. (The alternative of increasing the number of digits we are willing to print looks risky; we might find ourselves printing roundoff garbage.)
* Fix array subscript overruns identified by Yichen Xie.Tom Lane2003-01-29
|
* Extend join-selectivity API (oprjoin interface) so that join type isTom Lane2003-01-28
| | | | | | | passed to join selectivity estimators. Make use of this in eqjoinsel to derive non-bogus selectivity for IN clauses. Further tweaking of cost estimation for IN. initdb forced because of pg_proc.h changes.
* Convert variable name to canonical spelling before checking for matchesTom Lane2003-01-28
| | | | | in GUCArrayAdd/GUCArrayDelete. This prevents the multiple-entry bug exhibited by Frank Lupo 28-Jan-2003.
* Revert off setting mention for client_min_messages.Bruce Momjian2003-01-28
| | | | | Set log_min_error_messages to the proper and agreed-upon default, PANIC (off). (BACKPATCH)
* Revert optimizer page count change.Bruce Momjian2003-01-28
|
* Set log_min_error_messages to the proper and agreed-upon default, PANIC (off).Bruce Momjian2003-01-27
| | | | Backpatch to 7.3.X.
* Upgrade cost estimation for joins, per discussion with Bradley Baetz.Tom Lane2003-01-27
| | | | | | | Try to model the effect of rescanning input tuples in mergejoins; account for JOIN_IN short-circuiting where appropriate. Also, recognize that mergejoin and hashjoin clauses may now be more than single operator calls, so we have to charge appropriate execution costs.
* Get rid of last few unadorned 'permission denied' messages.Tom Lane2003-01-27
|
* Include IPv6 addresses in pg_hba.conf even if IPv6 is not supported; atBruce Momjian2003-01-26
| | | | suggestion of Peter.
* Allow the planner to collapse explicit inner JOINs together, rather thanTom Lane2003-01-25
| | | | | | | | | necessarily following the JOIN syntax to develop the query plan. The old behavior is still available by setting GUC variable JOIN_COLLAPSE_LIMIT to 1. Also create a GUC variable FROM_COLLAPSE_LIMIT to control the similar decision about when to collapse sub-SELECT lists into their parent lists. (This behavior existed already, but the limit was always GEQO_THRESHOLD/2; now it's separately adjustable.)
* Where available, use utime() or utimes() to update the file mod timeTom Lane2003-01-25
| | | | | | of the socket file and socket lock file; this should prevent both of them from being removed by even the stupidest varieties of /tmp-cleaning script. Per suggestion from Giles Lean.
* Use stat(2) to probe for existing xlog segments in InstallXLogFileSegment,Tom Lane2003-01-25
| | | | | | | | | rather than actually opening the files. This eliminates some corner cases where the file indeed exists but open() fails for another reason, such as being out of file descriptors. The net reliability gain is probably tiny, since xlog.c is full of other file open calls that will elog(PANIC) if they fail for any reason; but this specific failure mode has been observed in the field, so we may as well fix it.
* Suppress gcc warnings.Tom Lane2003-01-24
|
* Modify planner's implied-equality-deduction code so that when a setTom Lane2003-01-24
| | | | | | | | | | | of known-equal expressions includes any constant expressions (including Params from outer queries), we actively suppress any 'var = var' clauses that are or could be deduced from the set, generating only the deducible 'var = const' clauses instead. The idea here is to push down the restrictions implied by the equality set to base relations whenever possible. Once we have applied the 'var = const' clauses, the 'var = var' clauses are redundant, and should be suppressed both to save work at execution and to avoid double-counting restrictivity.
* Grant options, and cascading revoke. Grant options are allowed only forPeter Eisentraut2003-01-23
| | | | | users right now, not groups. Extension of has_foo_privileges functions to query the grant options. Extension of aclitem type to store grantor.
* Fix obsolete error message (isImmutable doesn't exist).Tom Lane2003-01-23
|
* Change CREATE TABLE AS / SELECT INTO to create the new table with OIDs,Tom Lane2003-01-23
| | | | | for backwards compatibility with pre-7.3 behavior. Per discussion on pgsql-general and pgsql-hackers.
* Fix sloppy comment.Tom Lane2003-01-22
|
* Make estimation of mergejoin scan selectivities more robust, per recentTom Lane2003-01-22
| | | | example from RaÇl GutiÅrrez.