aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group.Bruce Momjian2001-01-24
|
* Fix bogus pattern for STRING.Peter Eisentraut2001-01-24
|
* Add all possible config file options.Bruce Momjian2001-01-24
|
* Put back old config contents until I am finished.Bruce Momjian2001-01-24
|
* Add "idle in transaction" status messageBruce Momjian2001-01-24
|
* Fix formatting of db crash.Bruce Momjian2001-01-24
|
* Add comment for getpwid() safety.Bruce Momjian2001-01-24
|
* attached is take-2 of a patch which fixes a bug relatedBruce Momjian2001-01-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to the use of getpwuid when running in standalone mode. this patch allocates some persistent storage (using strdup) to store the username obtained with getpwuid in src/backend/main/main.c. this is necessary because later on, getpwuid is called again (in ValidateBinary). the man pages for getpwuid on SCO OpenServer, FreeBSD, and Darwin all have words to this effect (this is from the SCO OpenServer man page): Note ==== All information is contained in a static area, so it must be copied if it is to be saved. Otherwise, it may be overwritten on subsequent calls to these routines. in particular, on my platform, the storage used to hold the pw_name from the first call is overwritten such that it looks like an empty username. this causes a problem later on in SetSessionUserIdFromUserName. i'd assume this isn't a problem on most platforms because getpwuid is called with the same UID both times, and the same thing ends up happening to that static storage each time. however, that's not guaranteed, and is _not_ what happens on my platform (at least :). this is for the version of 7.1 available via anon cvs as of Tue Jan 23 15:14:00 2001 PST: .../src/backend/main/main.c,v 1.37 2000/12/31 18:04:35 tgl Exp -michael thornburgh, zenomt@armory.com
* Removed a dangerours DropRelationBuffers() call.Hiroshi Inoue2001-01-24
|
* Make functional index copy attstorage from the column data type, ratherTom Lane2001-01-24
| | | | | | | than forcing 'plain'. This probably does not matter right now, but I think it needs to be consistent with the regular (not-functional) index case, where attstorage is copied from the underlying table. Clean up some other dead and infelicitous code too.
* Narrow scope of critical section, per discussion 1/19/01.Tom Lane2001-01-23
|
* Do _bt_wrtbuf() outside critical section, per discussion with Vadim 1/19.Tom Lane2001-01-23
|
* Give 'a_expr ::= a_expr Op' production a slightly lower precedence thanTom Lane2001-01-23
| | | | | | | | | | Op, so that the sequence 'a_expr Op Op a_expr' will be parsed as a_expr Op (Op a_expr) not (a_expr Op) Op a_expr as formerly. In other words, prefer treating user-defined operators as prefix operators to treating them as postfix operators, when there is an ambiguity. Also clean up a couple of other infelicities in production priority assignment --- for example, BETWEEN wasn't being given the intended priority, but that of AND.
* Remove useless leftover global variable Ps_status_buffer.Peter Eisentraut2001-01-23
|
* Fix all the places that called heap_update() and heap_delete() withoutTom Lane2001-01-23
| | | | | | | | | | | 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.
* Remove no-longer-needed restriction against referencing systemTom Lane2001-01-23
| | | | | | attributes in a FieldSelect node --- all the places that manipulate these work just fine with system attribute numbers. OK, it's a new feature, so shoot me ...
* Rename int4 to int32 in a few places.Bruce Momjian2001-01-23
|
* Improve realloc() per idea from Karel Zak --- if chunk to be enlarged isTom Lane2001-01-23
| | | | at end of its block, maybe we can enlarge it in-place.
* Remove rangechecks on errno; just call strerror unconditionally. ThisTom Lane2001-01-22
| | | | | | | | | eliminates a raft of portability issues, including whether sys_nerr exists, whether the platform has any valid negative errnos, etc. The downside is minimal: errno shouldn't ever contain an invalid value anyway, and if it does, reasonably modern versions of strerror will not choke. This rangecheck idea seemed good at the time, but it's clearly a net loss, and I apologize to all concerned for having ever put it in.
* Clean up lockmanager data structures some more, in preparation for plannedTom Lane2001-01-22
| | | | | | | | | | | rewrite of deadlock checking. Lock holder objects are now reachable from the associated LOCK as well as from the owning PROC. This makes it practical to find all the processes holding a lock, as well as all those waiting on the lock. Also, clean up some of the grottier aspects of the SHMQueue API, and cause the waitProcs list to be stored in the intuitive direction instead of the nonintuitive one. (Bet you didn't know that the code followed the 'prev' link to get to the next waiting process, instead of the 'next' link. It doesn't do that anymore.)
* Clean up per-tuple memory leaks in trigger firing and plpgsqlTom Lane2001-01-22
| | | | expression evaluation.
* Back out patch for BLOB operations until approval.Bruce Momjian2001-01-21
|
* Hello,Bruce Momjian2001-01-21
| | | | | | | | | here is the patch attached which do check in each BLOB operation, if we are in transaction, and raise an error otherwise. This will prevent such mistakes. -- Sincerely Yours, Denis Perchine
* Deal with C++ incompatibility of sys_nerr declaration by taking it outTom Lane2001-01-21
| | | | | | | | of c.h altogether, and putting it into the only places that use it (elog.c and exc.c), instead. Modify these routines to check for a NULL or empty-string return from strerror, too, since some platforms define strerror to return empty string for unknown errors (what a useless definition that is ...). Clean up some cruft in ExcPrint while at it.
* Give a good error message for what's likely to be a common syntax error,Tom Lane2001-01-20
| | | | namely omitting the alias clause for a sub-SELECT in FROM.
* Add missing piece of BitString support to node output functions. ExpandPeter Eisentraut2001-01-20
| | | | and remove IsA_Value macro.
* Make critical sections (elog->crash) and interrupt holdoff sectionsTom Lane2001-01-19
| | | | into distinct concepts, per recent discussion on pghackers.
* cleanup.Bruce Momjian2001-01-19
|
* Remove ; and add \n to ASM code.Bruce Momjian2001-01-19
|
* Suppress compiler warning in MULTIBYTE code.Tom Lane2001-01-19
|
* Suppress compiler warning in MULTIBYTE case.Tom Lane2001-01-19
|
* Suppress unused-variable warning in non-Assert compilations.Tom Lane2001-01-19
|
* Comment out xlrec in xact_redo - no support for file unlinking onVadim B. Mikheev2001-01-18
| | | | commit yet.
* Fix some leaks(was my fault).Hiroshi Inoue2001-01-18
|
* Fix up "Postgres-style" time interval representation when fields haveThomas G. Lockhart2001-01-18
| | | | | | | | | | mixed-signs. Previous effort left way too many minus signs, and was at least as broken as the one before that :( Clean up "ISO-style" time interval representation to omit zero fields if there is at least one non-zero field. Supress some leading plus signs when not necessary for clarity. Replace every #ifdef __CYGWIN__ block with a cleaner TIMEZONE_GLOBAL macro defined in datetime.h.
* Fix performance issue with qualifications on VIEWs: outer query shouldTom Lane2001-01-18
| | | | | | | | try to push restrictions on the view down into the view subquery, so that they can become indexscan quals or what-have-you rather than being applied at the top level of the subquery. 7.0 and before were able to do this, though in a much klugier way, and I'd hate to have anyone complaining that 7.1 is stupider than 7.0 ...
* Change LockClassinfoForUpdate() to retry mark4update() in caseHiroshi Inoue2001-01-18
| | | | | the tuple is already uodated. (If LockClassinfoForUpdate() is thought to be useful).
* attached is a patch that makes SysV semaphore emulationBruce Momjian2001-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | using POSIX semaphores more robust on Darwin 1.2/Mac OS X Public Beta. this is for the version of 7.1 available via anon cvs as of Jan 14 2001 14:00 PST. since the semaphores and shared memory created by this emulator are shared with the backends via fork(), their persistent names are not necessary. removing their names with shm_unlink() and sem_unlink() after creation obviates the need for any "ipcclean" function. further, without these changes, the shared memory (and, therefore, the semaphores) will not be re-initialized/re-created after the first execution of the postmaster, until reboot or until some (non-existent) ipcclean function is executed. this patch does the following: 1) if the shared memory segment "SysV_Sem_Info" already existed, it is cleaned up. it shouldn't be there anyways. 2) the real indicator for whether the shared memory/semaphore emulator has been initialized is if "SemInfo" has been initialized. the shared memory and semaphores must be initialized regardless of whether there was a garbage shared memory segment lying around. 3) the shared memory segment "SysV_Sem_Info" is created with "O_EXCL" to catch the case where two postmasters might be starting simultaneously, so they don't both end up with the same shared memory (one will fail). note that this can't be done with the semaphores because Darwin 1.2 has a bug where attempting to open an existing semaphore with "O_EXCL" set will ruin the semaphore until the next reboot. 4) the shared memory segment "SysV_Sem_Info" is unlinked after it is created. it will then exist without a name until the postmaster and all backend children exit. 5) all semaphores are unlinked after they are created. they'll then exist without names until the postmaster and all backend children exit. -michael thornburgh, zenomt@armory.com
* Change lcons(x, NIL) to makeList(x) where appropriate.Bruce Momjian2001-01-17
|
* Change comparisons of tm->tm_isdst from "nonzero" to "greater than zero".Thomas G. Lockhart2001-01-17
| | | | | | | | | Not sure why some were this way, and others were already correct, but it seems to have been like this for several years. This caused problems on a few damaged platforms like AIX and IRIX which do not support DST calculations for years before 1970. Thanks to Andreas Zeugswetter <ZeugswetterA@wien.spardat.at> for finding the problem.
* Move structure comments from the top block down to the line entries forBruce Momjian2001-01-17
| | | | this file to match all the other files, and to be clearer.
* Remove bogus backslashes in sed command.Tom Lane2001-01-16
|
* Oops, I had managed to break query-cancel-while-waiting-for-lock.Tom Lane2001-01-16
|
* Rename fields of lock and lockholder structures to something a tad lessTom Lane2001-01-16
| | | | confusing, and clean up documentation.
* Fix problems with parentheses around sub-SELECT --- for the last time,Tom Lane2001-01-15
| | | | | | | | | | | | | I hope. I finally realized that we were going at it backwards: when there are excess parentheses, they need to be treated as part of the sub-SELECT, not as part of the surrounding expression. Although either choice yields an unambiguous grammar, only this way produces a grammar that is LALR(1). With the old approach we were guaranteed to fail on either 'SELECT (((SELECT 2)) + 3)' or 'SELECT (((SELECT 2)) UNION SELECT 2)' depending on which way we resolve the initial shift/reduce conflict. With the new way, the same reduction track can be followed in both cases until we have advanced far enough to know whether we are done with the sub-SELECT or not.
* Tweak heap_update/delete so that we do not hold the buffer context lockTom Lane2001-01-15
| | | | on the old tuple's page while we are doing TOAST pushups.
* Minor coding cleanups.Tom Lane2001-01-14
|
* Another go-round on making GetRawDatabaseInfo behave as well as it can,Tom Lane2001-01-14
| | | | | | | given the fundamental restriction of not looking at transaction commit data in pg_log. Use code that is actually based on tqual.c rather than ad-hoc tests. Also write the tuple fetch loop using standard access macros rather than ad-hoc code.
* Need to do BufferSync at end of DROP DATABASE as well as CREATE DATABASE.Tom Lane2001-01-14
| | | | | Otherwise, newly connecting backends will still think the deleted DB is valid, and will generate unexpected error messages.
* Make aclcontains() do something that's at least vaguely reasonable:Tom Lane2001-01-14
| | | | | it now returns true if the aclitem argument exactly matches any one of the elements of the aclitem[] argument. Per complaint from Wolff 1/10/01.