summaryrefslogtreecommitdiff
path: root/src/backend/commands/dbcommands.c
AgeCommit message (Collapse)Author
2001-03-22pgindent run. Make it all clean.Bruce Momjian
2001-01-24Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group.Bruce Momjian
2001-01-23Fix all the places that called heap_update() and heap_delete() withoutTom Lane
bothering to check the return value --- which meant that in case the update or delete failed because of a concurrent update, you'd not find out about it, except by observing later that the transaction produced the wrong outcome. There are now subroutines simple_heap_update and simple_heap_delete that should be used anyplace that you're not prepared to do the full nine yards of coping with concurrent updates. In practice, that seems to mean absolutely everywhere but the executor, because *noplace* else was checking.
2001-01-14Need to do BufferSync at end of DROP DATABASE as well as CREATE DATABASE.Tom Lane
Otherwise, newly connecting backends will still think the deleted DB is valid, and will generate unexpected error messages.
2000-11-30No more #ifdef XLOG.Vadim B. Mikheev
2000-11-18Put back BufferSync() for WAL after database creation.Tom Lane
Also, add some comments about what it's for...
2000-11-16Change SearchSysCache coding conventions so that a reference count isTom Lane
maintained for each cache entry. A cache entry will not be freed until the matching ReleaseSysCache call has been executed. This eliminates worries about cache entries getting dropped while still in use. See my posting to pg-hackers of even date for more info.
2000-11-14Extend CREATE DATABASE to allow selection of a template database to beTom Lane
cloned, rather than always cloning template1. Modify initdb to generate two identical databases rather than one, template0 and template1. Connections to template0 are disallowed, so that it will always remain in its virgin as-initdb'd state. pg_dumpall now dumps databases with restore commands that say CREATE DATABASE foo WITH TEMPLATE = template0. This allows proper behavior when there is user-added data in template1. initdb forced!
2000-11-12Keep track of the last active slot in the shared ProcState array, soTom Lane
that search loops only have to scan that far and not through all maxBackends entries. This eliminates a performance penalty for setting maxBackends much higher than the average number of active backends. Also, eliminate no-longer-used 'backend tag' concept. Remove setting of environment variables at backend start (except for CYR_RECODE), since none of them are being examined by the backend any longer.
2000-11-08Clean up compiler warnings.Tom Lane
2000-11-08Reimplement alternative database locations with symlinks. No changes inPeter Eisentraut
user interface.
2000-10-28WALVadim B. Mikheev
2000-10-22Add new datlastsysoid to pg_database.Philip Warner
This field stores the last allocated OID after the database was created. Used by pg_dump in deciding what is user-defined vs. system-defined.
2000-10-16New file naming. Database OID is used as "tablespace" id andVadim B. Mikheev
relation OID is used as file node on creation but may be changed later if required. Regression Tests Approved (c) -:)))
2000-09-06Code cleanup of user name and user id handling in the backend. The currentPeter Eisentraut
user is now defined in terms of the user id, the user name is only computed upon request (for display purposes). This is kind of the opposite of the previous state, which would maintain the user name and compute the user id for permission checks. Besides perhaps saving a few cycles (integer vs string), this now creates a single point of attack for changing the user id during a connection, for purposes of "setuid" functions, etc.
2000-08-03More functions updated to new fmgr style --- money, name, tid datatypes.Tom Lane
We're reaching the mopup stage here (good thing too, this is getting tedious).
2000-07-05Update textin() and textout() to new fmgr style. This is just phaseTom Lane
one of updating the whole text datatype, but there are so dang many calls of these two routines that it seems worth a separate commit.
2000-06-02If create/drop database are going to call closeAllVfds(), they oughtTom Lane
to do it at the last moment before calling system() ... not at some randomly-chosen earlier point in the routine ...
2000-05-30Remove unused include files. Do not touch /port or includes used by defines.Bruce Momjian
2000-05-28First round of changes for new fmgr interface. fmgr itself and theTom Lane
key call sites are changed, but most called functions are still oldstyle. An exception is that the PL managers are updated (so, for example, NULL handling now behaves as expected in plperl and plpgsql functions). NOTE initdb is forced due to added column in pg_proc.
2000-05-25On solaris, createdb/dropdb fails because of strange behavior of system().Tatsuo Ishii
(it returns error with errno ECHILD upon successful completion of commands). This fix ignores an error from system() if errno == ECHILD.
2000-04-12Ye-old pgindent run. Same 4-space tabs.Bruce Momjian
2000-03-26Updated user's guide to match new psql's output formatPeter Eisentraut
Fixed bug in createdb/alternative location
2000-03-15Remove gratuitous and incorrect begin/commit transaction calls inTom Lane
CREATE DB/DROP DB. If you didn't think they were wrong, try what happens when you compile with -DCLOBBER_FREED_MEMORY --- database name displayed in error messages is trashed, because transaction abort freed it. Also, remove trailing periods in error messages, per our prevailing style.
2000-01-26Add:Bruce Momjian
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
2000-01-13Fixed everything in and surrounding createdb and dropdb to make it morePeter Eisentraut
error-proof. Rearranged some old code and removed dead sections.
1999-12-20Clean up some minor gcc warnings.Tom Lane
1999-12-12Meanwhile, database names with single quotes in names don't work very wellBruce Momjian
at all, and because of shell quoting rules this can't be fixed, so I put in error messages to that end. Also, calling create or drop database in a transaction block is not so good either, because the file system mysteriously refuses to roll back rm calls on transaction aborts. :) So I put in checks to see if a transaction is in progress and signal an error. Also I put the whole call in a transaction of its own to be able to roll back changes to pg_database in case the file system operations fail. The alternative location issues I posted recently were untouched, awaiting the outcome of that discussion. Other than that, this should be much more fool-proof now. The docs I cleaned up as well. Peter Eisentraut Sernanders väg 10:115
1999-12-10Rename several destroy* functions/tags to drop*.Bruce Momjian
1999-11-24Add pg_statistic index, add missing Hiroshi file.Bruce Momjian
1999-11-22Add system indexes to match all caches.Bruce Momjian
Make all system indexes unique. Make all cache loads use system indexes. Rename *rel to *relid in inheritance tables. Rename cache names to be clearer.
1999-10-26Hello.Bruce Momjian
The following patch extends the COMMENT ON functionality to the rest of the database objects beyond just tables, columns, and views. The grammer of the COMMENT ON statement now looks like: COMMENT ON [ [ DATABASE | INDEX | RULE | SEQUENCE | TABLE | TYPE | VIEW ] <objname> | COLUMN <relation>.<attribute> | AGGREGATE <aggname> <aggtype> | FUNCTION <funcname> (arg1, arg2, ...) | OPERATOR <op> (leftoperand_typ rightoperand_typ) | TRIGGER <triggername> ON relname> Mike Mascari (mascarim@yahoo.com)
1999-10-25Standardize on MAXPGPATH as the size of a file pathname buffer,Tom Lane
eliminating some wildly inconsistent coding in various parts of the system. I set MAXPGPATH = 1024 in config.h.in. If anyone is really convinced that there ought to be a configure-time test to set the value, go right ahead ... but I think it's a waste of time.
1999-09-24Several changes here, not very related but touching some of the same files.Tom Lane
* Buffer refcount cleanup (per my "progress report" to pghackers, 9/22). * Add links to backend PROC structs to sinval's array of per-backend info, and use these links for routines that need to check the state of all backends (rather than the slow, complicated search of the ShmemIndex hashtable that was used before). Add databaseOID to PROC structs. * Use this to implement an interlock that prevents DESTROY DATABASE of a database containing running backends. (It's a little tricky to prevent a concurrently-starting backend from getting in there, since the new backend is not able to lock anything at the time it tries to look up its database in pg_database. My solution is to recheck that the DB is OK at the end of InitPostgres. It may not be a 100% solution, but it's a lot better than no interlock at all...) * In ALTER TABLE RENAME, flush buffers for the relation before doing the rename of the physical files, to ensure we don't get failures later from mdblindwrt(). * Update TRUNCATE patch so that it actually compiles against current sources :-(. You should do "make clean all" after pulling these changes.
1999-09-18Mega-commit to make heap_open/heap_openr/heap_close take anTom Lane
additional argument specifying the kind of lock to acquire/release (or 'NoLock' to do no lock processing). Ensure that all relations are locked with some appropriate lock level before being examined --- this ensures that relevant shared-inval messages have been processed and should prevent problems caused by concurrent VACUUM. Fix several bugs having to do with mismatched increment/decrement of relation ref count and mismatched heap_open/close (which amounts to the same thing). A bogus ref count on a relation doesn't matter much *unless* a SI Inval message happens to arrive at the wrong time, which is probably why we got away with this sloppiness for so long. Repair missing grab of AccessExclusiveLock in DROP TABLE, ALTER/RENAME TABLE, etc, as noted by Hiroshi. Recommend 'make clean all' after pulling this update; I modified the Relation struct layout slightly. Will post further discussion to pghackers list shortly.
1999-07-17 Move some system includes into c.h, and remove duplicates.Bruce Momjian
1999-07-16Final cleanup.Bruce Momjian
1999-07-16Update #include cleanupsBruce Momjian
1999-07-15Remove unused #includes in *.c files.Bruce Momjian
1999-05-25pgindent run over code.Bruce Momjian
1999-05-10Change error messages to oids come out as %u and not %d. Change has noBruce Momjian
real affect now.
1999-03-16Fix snprintf with strings, and nextval('"Aa"');Bruce Momjian
1999-03-16Here is a patch.Bruce Momjian
I have changed to call pg_exec_query_dest() instead of pg_exec_query(). Thanks. Hiroshi Inoue
1999-03-15Drop buffers before destroying database files.Bruce Momjian
1999-02-13Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian
1999-01-17Apply Win32 patch from Horak Daniel.Bruce Momjian
1998-12-15Initial MVCC code.Vadim B. Mikheev
New code for locking buffer' context.
1998-12-14Initial attempt to clean up the code...Marc G. Fournier
Switch sprintf() to snprintf() Remove any/all #if 0 -or- #ifdef NOT_USED -or- #ifdef FALSE sections of code
1998-11-27New HeapTuple structure/interface.Vadim B. Mikheev
1998-10-05Fix up warning and error messages to use single-quotes around strings.Thomas G. Lockhart