summaryrefslogtreecommitdiff
path: root/src/backend/commands
AgeCommit message (Collapse)Author
2001-07-13Initial implementation of concurrent VACUUM. Ifdef'd out for the moment,Tom Lane
because index locking issues are not handled correctly yet. Need to go work on the index AMs next.
2001-07-12indicies to indexes from Neil ConwayBruce Momjian
2001-07-12Remove grammar restrictions on order of optional clauses in CREATE GROUP.Tom Lane
From Vince Vielhaber.
2001-07-12Create a new HeapTupleSatisfiesVacuum() routine in tqual.c that embodies theTom Lane
validity checking rules for VACUUM. Make some other rearrangements of the VACUUM code to allow more code to be shared between full and lazy VACUUM. Minor code cleanups and added comments for TransactionId manipulations.
2001-07-11Disable COPY TO/FROM on views.Bruce Momjian
2001-07-11Remove direct calls of index_insert(), instead use ExecInsertIndexTuples().Tom Lane
This makes VACUUM work properly with partial indexes, and avoids memory leakage with functional indexes. Also, suppress complaint about fewer index tuples than heap tuples when the index is a partial index. From Martijn van Oosterhout.
2001-07-10Changes from Vince Vielhaber to allow the optional clauses of CREATETom Lane
USER and ALTER USER to appear in any order, not only the fixed order they used to be required to appear in. Also, some changes from Tom Lane to create a FULL option for VACUUM; it doesn't do anything yet, but I needed to change many of the same files to make that happen, so now seemed like a good time.
2001-07-05Don't assume that max offset number stays fixed on a page when we'reTom Lane
not holding a pin on the page. Use double instead of long to count rows in relation, so that code still works for > LONG_MAX rows in rel.
2001-07-02First non-stub implementation of shared free space map. It's not superTom Lane
useful as yet, since its primary source of information is (full) VACUUM, which makes a concerted effort to get rid of free space before telling the map about it ... next stop is concurrent VACUUM ...
2001-06-30Allow default transaction isolation level (a.k.a. set sessionPeter Eisentraut
characteristics) to be set through GUC.
2001-06-29Further work on connecting the free space map (which is still just aTom Lane
stub) into the rest of the system. Adopt a cleaner approach to preventing deadlock in concurrent heap_updates: allow RelationGetBufferForTuple to select any page of the rel, and put the onus on it to lock both buffers in a consistent order. Remove no-longer-needed isExtend hack from API of ReleaseAndReadBuffer.
2001-06-29Fix VACUUM so that it can use pages as move targets even if they do notTom Lane
have any newly-dead tuples on them. This is a longstanding deficiency that prevents VACUUM from compacting a file as much as one would expect. Change requires fixing repair_frag to not assume that fraged_pages is a subset of vacuum_pages. Also make some further cleanups of places that assumed page numbers fit in int and tuple counts fit in uint32.
2001-06-29Fix longstanding error in VACUUM: sometimes would examine a buffer pageTom Lane
after writing/unpinning it. An actual failure is unlikely, unless the system is tremendously short of buffers ... but a bug is a bug.
2001-06-27Install infrastructure for shared-memory free space map. Doesn't actuallyTom Lane
do anything yet, but it has the necessary connections to initialization and so forth. Make some gestures towards allowing number of blocks in a relation to be BlockNumber, ie, unsigned int, rather than signed int. (I doubt I got all the places that are sloppy about it, yet.) On the way, replace the hardwired NLOCKS_PER_XACT fudge factor with a GUC variable.
2001-06-25Optimizer can now estimate selectivity of IS NULL, IS NOT NULL,Tom Lane
IS TRUE, etc, with some degree of verisimilitude. Split out selectivity support functions from builtins.h into a new header file selfuncs.h, so as to reduce the number of header files builtins.h must depend on. Fix a few missing inclusions exposed thereby. From Joe Conway, with some kibitzing from Tom Lane.
2001-06-23Add TEMPORARY sequences and have SERIAL on a temp table have a temporaryBruce Momjian
sequence.
2001-06-22Attached is documentation describing plperlu differences from plperl.Bruce Momjian
Alex Pilosov
2001-06-22Statistical system views (yet without the config stuff, butJan Wieck
it's hard to keep such massive changes in sync with the tree so I need to get it in and work from there now). Jan
2001-06-21Fix strangely formatted comment.Bruce Momjian
2001-06-17Keep the list of to-be-NOTIFYed names in a plain List palloc'd inTom Lane
TopTransactionContext, rather than using Dllist. This simplifies and speeds up the code, and eliminates a former risk of coredump when out of memory (since the old code didn't bother to check for malloc failure). It also moves us one step closer to retiring Dllist...
2001-06-14has_table_privilege functions from Joe Conway (with some kibitzing fromTom Lane
Tom Lane). For the moment, only the OID/name variants are provided. I didn't force initdb, but the additions to the 'privileges' regress test won't pass until you do one.
2001-06-13Allow a non-superuser database owner to vacuum all tables in hisTom Lane
database, including system catalogs (but not the shared catalogs, since they don't really belong to his database). This is per recent mailing list discussion. Clean up some other code that also checks for database ownerness by introducing a test function is_dbadmin().
2001-06-13Fix compile failure when --enable-multibyte.Bruce Momjian
Marko Kreen
2001-06-12Extend GUC concepts of parse_hook and assign_hook to all four supportedTom Lane
datatypes, not only strings. parse_hook is useless for bool, I suppose, but it seems possibly useful for int and double to apply variable-specific constraints that are more complex than simple range limits. assign_hook is definitely useful for all datatypes --- we need it right now for bool to support date cache reset when changing Australian timezone rule setting. Also, clean up some residual problems with the reset all/show all patch, including memory leaks and mistaken reset of PostPortNumber. It seems best that RESET ALL not touch variables that don't have SUSET or USERSET context.
2001-06-12Clean up various to-do items associated with system indexes:Tom Lane
pg_database now has unique indexes on oid and on datname. pg_shadow now has unique indexes on usename and on usesysid. pg_am now has unique index on oid. pg_opclass now has unique index on oid. pg_amproc now has unique index on amid+amopclaid+amprocnum. Remove pg_rewrite's unnecessary index on oid, delete unused RULEOID syscache. Remove index on pg_listener and associated syscache for performance reasons (caching rows that are certain to change before you need 'em again is rather pointless). Change pg_attrdef's nonunique index on adrelid into a unique index on adrelid+adnum. Fix various incorrect settings of pg_class.relisshared, make that the primary reference point for whether a relation is shared or not. IsSharedSystemRelationName() is now only consulted to initialize relisshared during initial creation of tables and indexes. In theory we might now support shared user relations, though it's not clear how one would get entries for them into pg_class &etc of multiple databases. Fix recently reported bug that pg_attribute rows created for an index all have the same OID. (Proof that non-unique OID doesn't matter unless it's actually used to do lookups ;-)) There's no need to treat pg_trigger, pg_attrdef, pg_relcheck as bootstrap relations. Convert them into plain system catalogs without hardwired entries in pg_class and friends. Unify global.bki and template1.bki into a single init script postgres.bki, since the alleged distinction between them was misleading and pointless. Not to mention that it didn't work for setting up indexes on shared system relations. Rationalize locking of pg_shadow, pg_group, pg_attrdef (no need to use AccessExclusiveLock where ExclusiveLock or even RowExclusiveLock will do). Also, hold locks until transaction commit where necessary.
2001-06-08Preliminary code cleanup in elog(). Split out some code into utilityPeter Eisentraut
functions, remove indent support, make sure all strings are marked translatable.
2001-06-07reset all: command line and .conf options change defaultsBruce Momjian
on RESET ALL those are restored. show all: GUC + non-GUC. SHOW ALL, RESET ALL Marko Kreen
2001-06-07This adds unary plus capability. No grammar changes, per Tom's request.Bruce Momjian
Marko Kreen
2001-06-06get_seq_name should truncate name to NAMEDATALEN, so that this works:Tom Lane
create sequence a1234567890123456789012345678901234567890; select nextval('a1234567890123456789012345678901234567890');
2001-06-06Be a little smarter about deciding how many most-common values to save.Tom Lane
2001-06-05Correct permissions-checking bugs associated with ancient decision toTom Lane
copy PUBLIC access rights into each newly created ACL entry. Instead treat each ACL entry as independent flags. Also clean up some ugliness in acl.h API.
2001-06-02Tweak sorting so that nulls appear at the front of a descending sortTom Lane
(vs. at the end of a normal sort). This ensures that explicit sorts yield the same ordering as a btree index scan. To be really sure that that equivalence holds, we use the btree entries in pg_amop to decide whether we are looking at a '<' or '>' operator. For a sort operator that has no btree association, we put the nulls at the front if the operator is named '>' ... pretty grotty, but it does the right thing in simple ASC and DESC cases, and at least there's no possibility of getting a different answer depending on the plan type chosen.
2001-06-01Check for malloc failure.Tom Lane
2001-06-01Clean up some minor problems exposed by further thought about Panon's bugTom Lane
report on old-style functions invoked by RI triggers. We had a number of other places that were being sloppy about which memory context FmgrInfo subsidiary data will be allocated in. Turns out none of them actually cause a problem in 7.1, but this is for arcane reasons such as the fact that old-style triggers aren't supported anyway. To avoid getting burnt later, I've restructured the trigger support so that we don't keep trigger FmgrInfo structs in relcache memory. Some other related cleanups too: it's not really necessary to call fmgr_info at all while setting up the index support info in relcache entries, because those ScanKeyEntry structs are never used to invoke the functions. This should speed up relcache initialization a tiny bit.
2001-05-31Updates to make GIST work with multi-key indexes (from Oleg BartunovTom Lane
and Teodor Sigaev). Declare key values as Datum where appropriate, rather than char* (Tom Lane).
2001-05-30Remove OLD_FILE_NAMING code. No longer used.Bruce Momjian
2001-05-30These patches should fix check constraints not inheritingBruce Momjian
when added by alter table add constraint. The first file patches backend/commands/command.c and the latter is a patch to the alter table regression test. Stephan Szabo
2001-05-30Attached is my patch that adds DROP CONSTRAINT support to PostgreSQL. IBruce Momjian
basically want your guys feedback. I have sprinkled some of my q's thru the text delimited with the @@ symbol. It seems to work perfectly. [ Removed @@ comments because patch was reviewed. ] At the moment it does CHECK constraints only, with inheritance. However, due to the problem mentioned before with the mismatching between inherited constraints it may be wise to disable the inheritance feature for a while. it is written in an extensible fashion to support future dropping of other types of constraint, and is well documented. Please send me your comments, check my use of locking, updating of indices, use of ERROR and NOTICE, etc. and I will rework the patch based on feedback until everyone is happy with it... Christopher Kings
2001-05-27Make UPDATE and DELETE privileges distinct. Add REFERENCES and TRIGGERPeter Eisentraut
privileges. INSERT and COPY FROM now require INSERT (only). Add privileges regression test.
2001-05-25Oops, only wanted python change in the last commit. Backing out.Bruce Momjian
2001-05-25While changing Cygwin Python to build its core as a DLL (like Win32Bruce Momjian
Python) to support shared extension modules, I have learned that Guido prefers the style of the attached patch to solve the above problem. I feel that this solution is particularly appropriate in this case because the following: PglargeType PgType PgQueryType are already being handled in the way that I am proposing for PgSourceType. Jason Tishler
2001-05-21Enhancement of SPI to get access to portalsJan Wieck
- New functions to create a portal using a prepared/saved SPI plan or lookup an existing portal by name. - Functions to fetch/move from/in portals. Results are placed in the usual SPI_processed and SPI_tuptable, so the entire set of utility functions can be used to gain attribute access. - Prepared/saved SPI plans now use their own memory context and SPI_freeplan(plan) can remove them. - Tuple result sets (SPI_tuptable) now uses it's own memory context and can be free'd by SPI_freetuptable(tuptab). Enhancement of PL/pgSQL - Uses generic named portals internally in FOR ... SELECT loops to avoid running out of memory on huge result sets. - Support for CURSOR and REFCURSOR syntax using the new SPI functionality. Cursors used internally only need no explicit transaction block. Refcursor variables can be used inside of explicit transaction block to pass cursors between main application and functions. Jan
2001-05-18Small code cleanups,formatting.Bruce Momjian
2001-05-17Prevent forced blank line before comment block in pgindent.Bruce Momjian
2001-05-17Replace poorly-coded vac_find_eq routine with call to standard bsearchTom Lane
library code. Tweak progress messages to include elapsed real time, not only CPU time.
2001-05-14Remove unused tables pg_variable, pg_inheritproc, pg_ipl tables. InitdbBruce Momjian
forced.
2001-05-10Avoid unnecessary lseek() calls by cleanups in md.c. mdfd_lstbcnt wasTom Lane
not being consulted anywhere, so remove it and remove the _mdnblocks() calls that were used to set it. Change smgrextend interface to pass in the target block number (ie, current file length) --- the caller always knows this already, having already done smgrnblocks(), so it's silly to do it over again inside mdextend. Net result: extension of a file now takes one lseek(SEEK_END) and a write(), not three lseeks and a write.
2001-05-09 This patch should catch cases where the typesBruce Momjian
in referencing and referenced columns of an fk constraint aren't comparable using '=' at constraint definition time rather than insert/update time. Stephan Szabo
2001-05-08Add SET SESSION AUTHORIZATION command.Peter Eisentraut
2001-05-07Rewrite of planner statistics-gathering code. ANALYZE is now available asTom Lane
a separate statement (though it can still be invoked as part of VACUUM, too). pg_statistic redesigned to be more flexible about what statistics are stored. ANALYZE now collects a list of several of the most common values, not just one, plus a histogram (not just the min and max values). Random sampling is used to make the process reasonably fast even on very large tables. The number of values and histogram bins collected is now user-settable via an ALTER TABLE command. There is more still to do; the new stats are not being used everywhere they could be in the planner. But the remaining changes for this project should be localized, and the behavior is already better than before. A not-very-related change is that sorting now makes use of btree comparison routines if it can find one, rather than invoking '<' twice.