aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* More janitorial work: remove the explicit casting of NULL literals to aNeil Conway2004-01-07
| | | | | | | | pointer type when it is not necessary to do so. For future reference, casting NULL to a pointer type is only necessary when (a) invoking a function AND either (b) the function has no prototype OR (c) the function is a varargs function.
* Cleanup: move the 'Value' node into a separate file, rather than puttingNeil Conway2004-01-07
| | | | it in the same file as the 'List' node.
* Apply the core parts of Dennis Bjorklund's patch to allow functionTom Lane2004-01-06
| | | | | | | | | parameters to be declared with names. pg_proc has a column to store names, and CREATE FUNCTION can insert data into it, but that's all as yet. I need to do more work on the pg_dump and plpgsql portions of the patch before committing those, but I thought I'd get the bulky changes in before the tree drifts under me. initdb forced due to pg_proc change.
* Final rearrangement of main postgresql child process (ie.Bruce Momjian2004-01-06
| | | | | | | | BackendFork/SSDataBase/pgstat) startup, to allow fork/exec calls to closely mimic (the soon to be provided) Win32 CreateProcess equivalent calls. Claudio Natoli
* Suppress compiler warning (xlog_outrec is unused if not WAL_DEBUG).Tom Lane2004-01-06
|
* Code cleanup, mostly in the smgr:Neil Conway2004-01-06
| | | | | | | | | | | | | | | | | | - Update comment in IsReservedName() to the present day - Improve some variable & function names in commands/vacuum.c. I was planning to rewrite this to avoid lappend(), but since I still intend to do the list rewrite, there's no need for that. - Update some smgr comments which seemed to imply that we still forced all dirty pages to disk at commit-time. - Replace some #ifdef DIAGNOSTIC code with assertions. - Make the distinction between OS-level file descriptors and virtual file descriptors a little clearer in a few comments - Other minor comment improvements in the smgr code
* Remove unused 'noversion' command-line option processing from theNeil Conway2004-01-06
| | | | backend.
* Make the 'wal_debug' GUC variable a boolean (rather than an integer), andNeil Conway2004-01-06
| | | | hide it behind #ifdef WAL_DEBUG blocks.
* Instead of rechecking lossy index operators by putting them into theTom Lane2004-01-06
| | | | | | | | | regular qpqual ('filter condition'), add special-purpose code to nodeIndexscan.c to recheck them. This ends being almost no net addition of code, because the removal of planner code balances out the extra executor code, but it is significantly more efficient when a lossy operator is involved in an OR indexscan. The old implementation had to recheck the entire indexqual in such cases.
* Adjust indexscan planning logic to keep RestrictInfo nodes associatedTom Lane2004-01-05
| | | | | | | | | | | with index qual clauses in the Path representation. This saves a little work during createplan and (probably more importantly) allows reuse of cached selectivity estimates during indexscan planning. Also fix latent bug: wrong plan would have been generated for a 'special operator' used in a nestloop-inner-indexscan join qual, because the special operator would not have gotten into the list of quals to recheck. This bug is only latent because at present the special-operator code could never trigger on a join qual, but sooner or later someone will want to do it.
* Trivial refactoring: move analysis of ViewStmt into its own function forNeil Conway2004-01-05
| | | | readability and for the sake of consistency with the rest of analyze.c
* Fix three trivial typos in comments.Neil Conway2004-01-05
|
* Improve UniquePath logic to detect the case where the input is alreadyTom Lane2004-01-05
| | | | | known unique (eg, it is a SELECT DISTINCT ... subquery), and not do a redundant unique-ification step.
* Dept. of second thoughts: clause_selectivity shouldn't try to cache itsTom Lane2004-01-05
| | | | result for jointypes associated with IN processing.
* Add the ability to extract OR indexscan conditions from OR-of-ANDTom Lane2004-01-05
| | | | | | | join conditions in which each OR subclause includes a constraint on the same relation. This implements the other useful side-effect of conversion to CNF format, without its unpleasant side-effects. As per pghackers discussion of a few weeks ago.
* There's no longer any good reason for genbki.sh and Gen_fmgrtab.sh toTom Lane2004-01-04
| | | | | | run the data through cpp, and we know of at least one platform where unusual cpp behavior breaks the process. So remove the cpp step, and make consequent simplifications.
* Fix discrepancy in prototypes for HPUX pg_dlerror.Tom Lane2004-01-04
|
* Merge restrictlist_selectivity into clauselist_selectivity byTom Lane2004-01-04
| | | | | | | | teaching the latter to accept either RestrictInfo nodes or bare clause expressions; and cache the selectivity result in the RestrictInfo node when possible. This extends the caching behavior of approx_selectivity to many more contexts, and should reduce duplicate selectivity calculations.
* Rewrite OR indexscan processing to be more flexible. We can now for theTom Lane2004-01-04
| | | | | | | | | first time generate an OR indexscan for a two-column index when the WHERE condition is like 'col1 = foo AND (col2 = bar OR col2 = baz)' --- before, the OR had to be on the first column of the index or we'd not notice the possibility of using it. Some progress towards extracting OR indexscans from subclauses of an OR that references multiple relations, too, although this code is #ifdef'd out because it needs more work.
* Adjust the definition of RestrictInfo's left_relids and right_relidsTom Lane2003-12-30
| | | | | | | | | | fields: now they are valid whenever the clause is a binary opclause, not only when it is a potential join clause (there is a new boolean field canjoin to signal the latter condition). This lets us avoid recomputing the relid sets over and over while examining indexes. Still more work to do to make this as useful as it could be, because there are places that could use the info but don't have access to the RestrictInfo node.
* Instead of trying to force WHERE clauses into CNF or DNF normal form,Tom Lane2003-12-30
| | | | | | | | just look for common clauses that can be pulled out of ORs. Per recent discussion, extracting common clauses seems to be the only really useful effect of normalization, and if we do it explicitly then we can avoid cluttering the qual with partially-redundant duplicated expressions, which was an unpleasant side-effect of the old approach.
* Avoid running out of memory during hash_create, by not passing aTom Lane2003-12-30
| | | | | number-of-buckets that exceeds the size we actually plan to allow the hash table to grow to. Per trouble report from Sean Shanny.
* ShmemInitHash forgot to specify HASH_ALLOC flag bit in its hash_createTom Lane2003-12-30
| | | | | | call. You'd think this would cause some problems, but because of the way hash_create is coded, the only side-effect was creation of a useless memory context for the hashtable.
* Use hash table name, not one-size-fits-all 'DynaHashTable', to identifyTom Lane2003-12-29
| | | | | memory contexts belonging to hash tables. Makes the memory stats printout a little more useful.
* Using canonicalize_qual() to get rid of duplicate index predicateTom Lane2003-12-29
| | | | | | | conditions is overkill; set_union() does the job about as well, and much more efficiently. Furthermore this avoids assuming that canonicalize_qual() will check for duplicate clauses at all, which it may not always do.
* Improve comment.Tom Lane2003-12-29
|
* Tweak OpernameGetCandidates() to reduce palloc overhead --- profilingTom Lane2003-12-29
| | | | | | showed that for common operator names such as '=', the pallocs done by this routine occupied a surprisingly large fraction of the total time for the parser to process an operator.
* Clean up the usage of canonicalize_qual(): in particular, be consistentTom Lane2003-12-28
| | | | | | | | | about whether it is applied before or after eval_const_expressions(). I believe there were some corner cases where the system would fail to recognize that a partial index is applicable because of the previous inconsistency. Store normal rather than 'implicit AND' representations of constraints and index predicates in the catalogs. initdb forced due to representation change of constraints/predicates.
* Improve spinlock code for recent x86 processors: insert a PAUSETom Lane2003-12-27
| | | | | | instruction in the s_lock() wait loop, and use test before test-and-set in TAS() macro to avoid unnecessary bus traffic. Patch from Manfred Spraul, reworked a bit by Tom.
* Continued rearrangement to permit pgstat + BootstrapMain processes to beBruce Momjian2003-12-25
| | | | | | fork/exec'd, in the same mode as the previous patch for backends. Claudio Natoli
* Patch that makes quoting "sameuser", "samegroup", and "all" removeBruce Momjian2003-12-25
| | | | | | | | | special meaning of these terms in pg_hba.conf. Also changes ugly pg_hba.conf IPv6 netmask of ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff to ::1/128. Andrew Dunstan
* > > I have no idea if this in Oracle or not. But it's something IBruce Momjian2003-12-25
| | | | | | | | | | | | | | | > > needed, and other people in the past asked about it too. > > It is in Oracle, but you aren't exactly on the spot. It should be > > IYYY - 4 digits ('2003') > IYY - 3 digits ('003') > IY - 2 digits ('03') > I - 1 digit ('3') Here is an updated patch that does that. Kurt Roeckx
* Use inlined TAS() on PA-RISC, if we are compiling with gcc.Tom Lane2003-12-23
| | | | Patch inspired by original submission from ViSolve.
* Fix a number of places where reconfiguring with a different installationTom Lane2003-12-23
| | | | | prefix would fail, because the new path did not get propagated to where it needed to be. Note this would fail even with --enable-depend.
* Mop-up for HAS_TEST_AND_SET refactoring. Un-break two or three platformsTom Lane2003-12-23
| | | | | | that were broken, try to make layout of s_lock.h entries consistent, use HAVE_SPINLOCKS in preference to HAS_TEST_AND_SET everywhere outside s_lock.h itself.
* Move slock_t typdefs into s_lock.h from include/port files forBruce Momjian2003-12-23
| | | | centralization and easier maintanence.
* Remove __alpha__ additions in main.c but document that they are missing.Bruce Momjian2003-12-23
|
* Remove NEED_I386_TAS_ASM and just test for compiler defines.Bruce Momjian2003-12-23
|
* This applied patch remove NEED_SPARC_TAS_ASM and instead uses __sparc ||Bruce Momjian2003-12-22
| | | | __sparc__.
* Test for __alpha and __alpha__.Bruce Momjian2003-12-22
|
* Further cleanup in _bt_first: eliminate duplicate code paths.Tom Lane2003-12-21
|
* Back out:Bruce Momjian2003-12-21
| | | | | | | > Attached is a patch that addressed all the discussed issues > that did not break backward compatability, including the > ability to output ISO-8601 compliant intervals by setting > datestyle to iso8601basic.
* [ This description should have been on the earlier fork/execBruce Momjian2003-12-21
| | | | | | | | | | | | | | | | | | | | | | | | | | commit, but I am adding it now so it is in CVS.] The patch basically is a slight rearrangement of the code to allow fork/exec on Unix, with the ultimate goal of doing CreateProcess on Win32. The changes are: o Write out postmaster global variables and per-backend variables to be read by the exec'ed backend o Mark some static variables as global when exec is used so then can be dumped from postmaster.c, marked NON_EXEC_STATIC o Remove value passing with -p now that we have per-backend file o Move some pointer storage out of shared memory for easier dumping. o Modified pgsql_temp directory cleanup to handle per-database directories and the backend exec directory under datadir. Claudio Natoli
* Previous change exposed some opportunities for further simplificationTom Lane2003-12-21
| | | | in _bt_first().
* Improve btree's initial-positioning-strategy code so that we never needTom Lane2003-12-21
| | | | | | | to step more than one entry after descending the search tree to arrive at the correct place to start the scan. This can improve the behavior substantially when there are many entries equal to the chosen boundary value. Per suggestion from Dmitry Tkach, 14-Jul-03.
* The recent DUMMY_PROCS patch broke accounting for the number of semaphoresTom Lane2003-12-21
| | | | | needed. This caused us to fail all the time on Darwin, and we'd fail for some values of maxBackends on SysV-sema platforms, too.
* bufmgr.c failed to compile on Darwin, because it didn't includeTom Lane2003-12-20
| | | | <sys/time.h> where struct timeval is defined.
* Fix broken IDENT support for FreeBSD (appears to have been broken byTom Lane2003-12-20
| | | | | ill-considered conditional logic in getpeereid patch of 3-Dec-2002). Per bug #1021.
* This patch is the next step towards (re)allowing fork/exec.Bruce Momjian2003-12-20
| | | | Claudio Natoli
* In my mind there were two categories of open issuesBruce Momjian2003-12-20
| | | | | | | | | | | | | | | | | | | | | | | | a) ones that are 100% backward (such as the comment about outputting this format) and b) ones that aren't (such as deprecating the current postgresql shorthand of '1Y1M'::interval = 1 year 1 minute in favor of the ISO-8601 'P1Y1M'::interval = 1 year 1 month. Attached is a patch that addressed all the discussed issues that did not break backward compatability, including the ability to output ISO-8601 compliant intervals by setting datestyle to iso8601basic. Interval values can now be written as ISO 8601 time intervals, using the "Format with time-unit designators". This format always starts with the character 'P', followed by a string of values followed by single character time-unit designators. A 'T' separates the date and time parts of the interval. Ron Mayer