aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Restructure local-buffer handling per recent pghackers discussion.Tom Lane2002-08-06
| | | | | | | | | | | | | | The local buffer manager is no longer used for newly-created relations (unless they are TEMP); a new non-TEMP relation goes through the shared bufmgr and thus will participate normally in checkpoints. But TEMP relations use the local buffer manager throughout their lifespan. Also, operations in TEMP relations are not logged in WAL, thus improving performance. Since it's no longer necessary to fsync relations as they move out of the local buffers into shared buffers, quite a lot of smgr.c/md.c/fd.c code is no longer needed and has been removed: there's no concept of a dirty relation anymore in md.c/fd.c, and we never fsync anything but WAL. Still TODO: improve local buffer management algorithms so that it would be reasonable to increase NLocBuffer.
* Restructure system-catalog index updating logic. Instead of havingTom Lane2002-08-05
| | | | | | | | | hardwired lists of index names for each catalog, use the relcache's mechanism for caching lists of OIDs of indexes of any table. This reduces the common case of updating system catalog indexes to a single line, makes it much easier to add a new system index (in fact, you can now do so on-the-fly if you want to), and as a nice side benefit improves performance a little. Per recent pghackers discussion.
* Preliminary code review for anonymous-composite-types patch: fix breakageTom Lane2002-08-05
| | | | | | | | of functions returning domain types, update documentation for typtype, move get_typtype to lsyscache.c (actually, resurrect the old version), add defense against creating pseudo-typed table columns, fix some bogus list-parsing in grammar. Issues remain with respect to alias handling and type checking; Joe is on those.
* Fix compilation problem with assert checking enabled for recent xlogThomas G. Lockhart2002-08-05
| | | | location feature.
* Code review for anonymous-functions patch --- clean up some confusionTom Lane2002-08-05
| | | | in checkretval about which paths are for base or complex return type.
* Temporary solution for XLogDir breakage.Tom Lane2002-08-04
|
* Fix merge failures for anonymous-type patch. From Joe Conway.Tom Lane2002-08-04
|
* Fix broken pg_backend_pid reference, per Joe Conway.Tom Lane2002-08-04
|
* Another backend_pid rename.Bruce Momjian2002-08-04
|
* Fix compile failures for FRS composite tyhpe patch until Joe can fix it.Bruce Momjian2002-08-04
|
* Rename backend_pid to pg_backend_pid, move docs to monitoring section.Bruce Momjian2002-08-04
|
* Attached are two patches to implement and document anonymous compositeBruce Momjian2002-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | types for Table Functions, as previously proposed on HACKERS. Here is a brief explanation: 1. Creates a new pg_type typtype: 'p' for pseudo type (currently either 'b' for base or 'c' for catalog, i.e. a class). 2. Creates new builtin type of typtype='p' named RECORD. This is the first of potentially several pseudo types. 3. Modify FROM clause grammer to accept: SELECT * FROM my_func() AS m(colname1 type1, colname2 type1, ...) where m is the table alias, colname1, etc are the column names, and type1, etc are the column types. 4. When typtype == 'p' and the function return type is RECORD, a list of column defs is required, and when typtype != 'p', it is disallowed. 5. A check was added to ensure that the tupdesc provide via the parser and the actual return tupdesc match in number and type of attributes. When creating a function you can do: CREATE FUNCTION foo(text) RETURNS setof RECORD ... When using it you can do: SELECT * from foo(sqlstmt) AS (f1 int, f2 text, f3 timestamp) or SELECT * from foo(sqlstmt) AS f(f1 int, f2 text, f3 timestamp) or SELECT * from foo(sqlstmt) f(f1 int, f2 text, f3 timestamp) Included in the patches are adjustments to the regression test sql and expected files, and documentation. p.s. This potentially solves (or at least improves) the issue of builtin Table Functions. They can be bootstrapped as returning RECORD, and we can wrap system views around them with properly specified column defs. For example: CREATE VIEW pg_settings AS SELECT s.name, s.setting FROM show_all_settings()AS s(name text, setting text); Then we can also add the UPDATE RULE that I previously posted to pg_settings, and have pg_settings act like a virtual table, allowing settings to be queried and set. Joe Conway
* Fix obsolete comment.Tom Lane2002-08-04
|
* Minor clarification or fix of typos.Thomas G. Lockhart2002-08-04
|
* Implement WAL log location control using "-X" or PGXLOG.Thomas G. Lockhart2002-08-04
|
* Implement IS OF and IS NOT OF type predicate.Thomas G. Lockhart2002-08-04
| | | | | | | | | | | | | Can now do queries of the form: SELECT value IS OF (integer, float8); Define macros for handling typmod manipulation for date/time types. Should be more robust than all of that brute-force inline code. Rename macros for masking and typmod manipulation to put TIMESTAMP_ or INTERVAL_ in front of the macro name, to reduce the possibility of name space collisions. Allow bit string constants without fully-specified length declaration. Try implementing CREATE TABLE/OF as a mapping to inheritance. May be appropriate, or may be replace later with something more exactly like one might expect from databases without the feature.
* Implement IS OF type predicate. Can now do queries of the form:Thomas G. Lockhart2002-08-04
| | | | select value IS OF (integer, float8);
* Add guard code to protect from buffer overruns on long date/time inputThomas G. Lockhart2002-08-04
| | | | | | | | | | | | | | strings. Should go back in and look at doing this a bit more elegantly and (hopefully) cheaper. Probably not too bad anyway, but it seems a shame to scan the strings twice: once for length for this buffer overrun protection, and once to parse the line. Remove use of pow() in date/time handling; was already gone from everything *but* the time data types. Define macros for handling typmod manipulation for date/time types. Should be more robust than all of that brute-force inline code. Rename macros for masking and typmod manipulation to put TIMESTAMP_ or INTERVAL_ in front of the macro name, to reduce the possibility of name space collisions.
* Define macros for handling typmod manipulation for date/time types.Thomas G. Lockhart2002-08-04
| | | | | | | Should be more robust than all of that brute-force inline code. Rename macros for masking and typmod manipulation to put TIMESTAMP_ or INTERVAL_ in front of the macro name, to reduce the possibility of name space collisions.
* Implement hex literal conversion to bit string literal.Thomas G. Lockhart2002-08-04
| | | | | | | May not be the long-term solution (some continuing discussion with Peter E.) but better than the current mapping of a conversion to integer which I'd put in years ago before we had any bit string types at all. This is already supported in the bit string implementation elsewhere.
* Allow bit string constants without fully-specified length declaration.Thomas G. Lockhart2002-08-04
| | | | | Implement conversion between 8-byte integers and bit strings. Similar to what is done for 4-byte integers.
* Implement WAL log location control using "-X" or PGXLOG.Thomas G. Lockhart2002-08-04
|
* [ Previous patch reversed.]Bruce Momjian2002-08-04
| | | | | | | | | | | | | | Please use this patch instead of my previously submitted one. It is just remerged against HEAD for new alter_table.out stuff. Another reason this patch is useful for _interactive_ users: imagine a view based on a many way join. Imagine creating a complicated insert rule that inserts into all the joined tables and when you insert you get a check failure, but you need to know which actual table the constraint was on that failed! Christopher Kings-Lynne
* This patch fixes a probably harmless write of uninitialized memory inBruce Momjian2002-08-04
| | | | | | | the statistics collector and makes a number of corrections to the documentation for SET, SHOW, and COPY. Neil Conway
* Change messages like this:Bruce Momjian2002-08-04
| | | | | | | | | | | | | | | | ERROR: ExecInsert: rejected due to CHECK constraint insert_con To be like this: ERROR: ExecInsert: rejected due to CHECK constraint "insert_con" on "insert_tbl" Updated regression tests to match. I got sick of seeing 'rejected due to CHECK constraint "$1" in my log and not being able to find the bug in our website code... Christopher Kings-Lynne
* This trivial patch fixes a small memory leak in pg_dump.Bruce Momjian2002-08-04
| | | | Neil Conway
* This patch fixes a "multi-line string literal" warning encounteredBruce Momjian2002-08-04
| | | | | | when compiling psql with GCC 3.1. Neil Conway
* The attached patch implements START TRANSACTION, per SQL99. TheBruce Momjian2002-08-04
| | | | | | | | | | | functionality of the command is basically identical to that of BEGIN; it just accepts a few extra options (only one of which PostgreSQL currently implements), and is standards-compliant. The patch includes a simple regression test and documentation. [ Regression tests removed, per Peter.] Neil Conway
* This patch fixes in intermittent failure in the regression tests:Bruce Momjian2002-08-04
| | | | | | | | | there was a race condition between the "alter_table" and "rules" regression tests. Depending on scheduling, sometimes an ALTER TABLE command would operate on a relation created by the "rules" tests, leading to unexpected results. Neil Conway
* Back out pl/pgsql quotation fix. Has problems.Bruce Momjian2002-08-04
|
* I send a simple patch for PL/pgSQL parser which allow now to useBruce Momjian2002-08-04
| | | | | | | | | | | | whitespaces in identifers of any kind(table names,attribute names,variables ...) in Pl/pgSQL procedural language.Explicit definition of bug can be found in Re: [HACKERS] Bug of PL/pgSQL parser TODO item completed: o -Fix PL/PgSQL to handle quoted mixed-case identifiers eutm
* When compiling with --enable-cassert, check for reference count leaksTom Lane2002-08-02
| | | | | | | in the relcache. It's rather silly that we have reference count leak checks in bufmgr and in catcache, but not in relcache which will normally have many fewer entries. Chris K-L would have caught at least one bug in his recent DROP patch if he'd had this.
* RemoveAttrDefaultById() neglected to obtain exclusive lock on theTom Lane2002-08-02
| | | | | | relation being modified. In most paths of control we'd already have such a lock, but if we were dropping the default due to a cascaded delete of some function it depended on, maybe not.
* ALTER TABLE DROP COLUMN works. Patch by Christopher Kings-Lynne,Tom Lane2002-08-02
| | | | | | | | | | code review by Tom Lane. Remaining issues: functions that take or return tuple types are likely to break if one drops (or adds!) a column in the table defining the type. Need to think about what to do here. Along the way: some code review for recent COPY changes; mark system columns attnotnull = true where appropriate, per discussion a month ago.
* * -Remove LockMethodTable.prio field, not used (Bruce)Bruce Momjian2002-08-01
|
* 1) Improve the handling of the queries like (select ..) union (select ..)Hiroshi Inoue2002-08-01
| | | | | whose first non-space character is '('. 2) Handle Insert .. () VALUES ().
* Instead of having a configure-time DEFAULT_ATTSTATTARGET, store -1 inTom Lane2002-07-31
| | | | | | | | attstattarget to indicate 'use the default'. The default is now a GUC variable default_statistics_target, and so may be changed on the fly. Along the way we gain the ability to have pg_dump dump the per-column statistics target when it's not the default. Patch by Neil Conway, with some kibitzing from Tom Lane.
* Rename pid function to backend_pid().Bruce Momjian2002-07-31
|
* Add function to access backend pid, pg_stat_get_backend_mypid.Bruce Momjian2002-07-31
|
* Teach pg_dump to dump user-defined operator classes. For the moment,Tom Lane2002-07-30
| | | | | | | this only works against 7.3 or later databases; the pushups required to do it without regprocedure/regtype/etc seem more trouble than they're worth, considering that existing users aren't expecting pg_dump support for this.
* If we're cleaning out _deadcode, might as well zap this one too.Tom Lane2002-07-30
|
* Remove last recipe file.Bruce Momjian2002-07-30
|
* Ensure that src/tutorial gets cleaned by top-level make clean.Tom Lane2002-07-30
|
* The attached patch removes the last remnants of support forBruce Momjian2002-07-30
| | | | | | | | 'tioga recipes', whatever those are -- Peter E. killed most of it a couple days ago, but this patch removes the rest. Most of it was #ifdef'ed out anyway. Neil Conway
* IMPROVED VERSION APPLIED:Bruce Momjian2002-07-30
| | | | | | | | | | | | | | The attached patch completes the following TODO item: * Generate failure on short COPY lines rather than pad NULLs I also restructed a lot of the existing COPY code, did some code review on the column list patch sent in by Brent Verner a little while ago, and added some regression tests. I also added an explicit check (and resultant error) for extra data before the end-of-line. Neil Conway
* Added support for schemas and quotes in tab-complete.c, as well asBruce Momjian2002-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a few other things: * Made all references to the pg_* tables absolute, by specifying the pg_catalog schema. * Added SCHEMA as a create/delete completion option. * Added SCHEMA completion as: SELECT nspname FROM pg_catalog.pg_namespace WHERE substr(nspname,1,%d)='%s' * Added completion of "INSERT INTO <table> (" with attribute names. * Added completion of "INSERT INTO <table> (attribs)" with VALUES or SELECT * Added limited locking completion: only for one table: "LOCK" and "LOCK TABLE" now both get a completion list of tables Complete with "IN" for LOCK [TABLE] <table> Complete LOCK [TABLE] <table> IN with a lock mode * Added a very simple WHERE finisher that uses the previous word as a table lookup for attributes. * Added quote support when parsing "previous words". In other words, hitting tab after INSERT INTO "foo bar baby" now does the right thing and recognizes "foo bar baby" as one word. Letting tab-complete quote things that should be quoted seems to be temporarily ifdef'ed out due to readline compatibility problems. Can anyone elaborate on this? Greg Sabino Mullane
* This should fix a bug where a row that was updated orBruce Momjian2002-07-30
| | | | | | | | | | | deleted that had another row inserted/updated to its old value during the same statement or other statements before the integrity check for noaction would incorrectly error. This could happen in deferred constraints or due to triggers or functions. It's effectively a reworking of the previous patch that did a not exists to instead do a separate check. Stephan Szabo
* Since we're depending on %option noyywrap in the main scanner now,Tom Lane2002-07-30
| | | | | we may as well use it in all our flex files. Make all the flex files have a consistent set of options.
* Here are two patches. The guc_and_tablefunc patch addresses the twoBruce Momjian2002-07-30
| | | | | | | | | | | | | | | | changes mentioned above, and also adds a new function to the tablefunc API. The tablefunc API change adds the following function: * Oid foidGetTypeId(Oid foid) - Get a function's typeid given the * function Oid. Use this together with TypeGetTupleDesc() to get a * TupleDesc which is derived from the function's declared return type. In the next post I'll send the contrib/tablefunc patch, which illustrates the usage of this new function. Also attached is a doc patch for this change. The doc patch also adds a function that I failed to document previously. Joe Conway
* This patch fixes one serious bug (runaway INSERT) and a few rare (andBruce Momjian2002-07-30
| | | | | | hard to reproduce) error conditions. Manfred Koizar