aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Department of second thoughts: probably shouldn't use nth() to get theTom Lane2003-03-22
| | | | | appropriate targetlist entry out of the subquery. Use an explicit search like we do everywhere else.
* Fix comment-only query to return Null result set, rather than nothing.Bruce Momjian2003-03-22
| | | | Cleans up blank query handling to be more consistent.
* Back out to_char fixes until regression tests are fixed.Bruce Momjian2003-03-22
|
* Adjust subquery qual pushdown rules to be more forgiving: if a qualTom Lane2003-03-22
| | | | | | | | | refers to a non-DISTINCT output column of a DISTINCT ON subquery, or if it refers to a function-returning-set, we cannot push it down. But the old implementation refused to push down *any* quals if the subquery had any such 'dangerous' outputs. Now we just look at the output columns actually referenced by each qual expression. More code than before, but probably no slower since we don't make unnecessary checks.
* Fix compile warning.Tom Lane2003-03-21
|
* Add hostmask() function:Bruce Momjian2003-03-21
| | | | | | | | | | + <entry><function>hostmask</function>(<type>inet</type>)</entry> + <entry><type>inet</type></entry> + <entry>construct hostmask for network</entry> + <entry><literal>hostmask('192.168.23.20/30')</literal></entry> + <entry><literal>0.0.0.3</literal></entry> Greg Wickham
* Make "win" a separate port from "cygwin". This means you can nowPeter Eisentraut2003-03-21
| | | | | configure under native Windows (MinGW that is), but you won't get very far compiling yet. The dynaloader files are from Jan Wieck's patch set.
* Fix ALTER TABLE / CLUSTER ON breakage.Bruce Momjian2003-03-21
| | | | Alvaro Herrera1
* Allow error query to start transaction in autocommit off mode.Bruce Momjian2003-03-21
|
* Fix sequence casting.Bruce Momjian2003-03-21
|
* Reimplement NUMERIC datatype using base-10000 arithmetic; also improveTom Lane2003-03-21
| | | | | | | some of the algorithms for higher functions. I see about a factor of ten speedup on the 'numeric' regression test, but it's unlikely that that test is representative of real-world applications. initdb forced due to change of on-disk representation for NUMERIC.
* This patch creates a function named pg_get_triggerdef that takes the oid ofBruce Momjian2003-03-20
| | | | | | | a trigger as its parameter. It is basically copied from the pg_dump code. Christopher Kings-Lynne
* Add ALTER TABLE <tablename> CLUSTER ON <indexname>Bruce Momjian2003-03-20
| | | | Alvaro Herrera
* It would also be handy if users could see their own pg_stat_activityBruce Momjian2003-03-20
| | | | | | queries while the rest remain blank. Kevin Brown
* Todo items:Bruce Momjian2003-03-20
| | | | | | | | | | | | | | | | | | | Add ALTER SEQUENCE to modify min/max/increment/cache/cycle values Also updated create sequence docs to mention NO MINVALUE, & NO MAXVALUE. New Files: doc/src/sgml/ref/alter_sequence.sgml src/test/regress/expected/sequence.out src/test/regress/sql/sequence.sql ALTER SEQUENCE is NOT transactional. It behaves similarly to setval(). It matches the proposed SQL200N spec, as well as Oracle in most ways -- Oracle lacks RESTART WITH for some strange reason. -- Rod Taylor <rbt@rbt.ca>
* Attached is a patch that limits the range tested by horology toBruce Momjian2003-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | what is capable using integer-datatime timestamps. It does attempt to exercise the maximum allowable timestamp range. Also is a small error check when converting a timestamp from external to internal format that prevents out of range timestamps from being entered. Files patched: Index: src/backend/utils/adt/timestamp.c Added range check to prevent out of range timestamps from being used. Index: src/test/regress/sql/horology.sql Index: src/test/regress/expected/horology-no-DST-before-1970.out Index: src/test/regress/expected/horology-solaris-1947.out Limited range of timestamps being checked to Jan 1, 4713 BC to Dec 31, 294276 In creating this patch, I have seen some definite problems with integer timestamps and how they react when used near their limits. For example, the following statement gives the correct result: SELECT timestamp without time zone 'Jan 1, 4713 BC' + interval '109203489 days' AS "Dec 31, 294276"; However, this statement which is the logical inverse of the above gives incorrect results: SELECT timestamp without time zone '12/31/294276' - timestamp without time zone 'Jan 1, 4713 BC' AS "109203489 Days"; John Cochran
* Peter found bug in the to_char() routine for PL/MI options. ThisBruce Momjian2003-03-20
| | | | | | | | | | | | | | | | | | | patch fix it -- but this patch doesn't contains tests or docs fixes. I will send it later. Fixed outputs: select to_char(x, '9999.999') as x, to_char(x, 'S9999.999') as s, to_char(x, 'SG9999.999') as sg, to_char(x, 'MI9999.999') as mi, to_char(x, 'PL9999.999') as pl, to_char(x, 'PLMI9999.999') as plmi, to_char(x, '9999.999SG') as sg2, to_char(x, '9999.999PL') as pl2, to_char(x, '9999.999MI') as mi2 from num; Karel Zak
* > > - Move SEQ_MAXVALUE, SEQ_MINVALUE definitions to sequence.hBruce Momjian2003-03-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > > > > - Add check in pg_dump to see if the value returned is the max /min > > values and replace with NO MAXVALUE, NO MINVALUE. > > > > - Change START and INCREMENT to use START WITH and INCREMENT BY syntax. > > This makes it a touch easier to port to other databases with sequences > > (Oracle). PostgreSQL supports both syntaxes already. > > + char bufm[100], > + bufx[100]; > > This seems to be an arbitary size. Why not set it to the actual maximum > length? > > Also: > > + snprintf(bufm, 100, INT64_FORMAT, SEQ_MINVALUE); > + snprintf(bufx, 100, INT64_FORMAT, SEQ_MAXVALUE); > > sizeof(bufm), sizeof(bufx) is probably the more > maintenance-friendly/standard way to do it. I changed the code to use sizeof - but will wait for a response from Peter before changing the size. It's consistent throughout the sequence code to be 100 for this purpose. Rod Taylor <rbt@rbt.ca>
* "Information_schema" changesBruce Momjian2003-03-20
| | | | | | | | | - Add domain check constraints to "check_constraints" view - Create "domains" view - Create "domain_constraints" view -- Rod Taylor <rbt@rbt.ca>
* > I can see a couple possible downsides: (a) the library might have someBruce Momjian2003-03-20
| | | | | | | | | | | | | | | | | | | | | | | > weird behavior across fork boundaries; (b) the additional memory space > that has to be duplicated into child processes will cost something per > child launch, even if the child never uses it. But these are only > arguments that it might not *always* be a prudent thing to do, not that > we shouldn't give the DBA the tool to do it if he wants. So fire away. Here is a patch for the above, including a documentation update. It creates a new GUC variable "preload_libraries", that accepts a list in the form: preload_libraries = '$libdir/mylib1:initfunc,$libdir/mylib2' If ":initfunc" is omitted or not found, no initialization function is executed, but the library is still preloaded. If "$libdir/mylib" isn't found, the postmaster refuses to start. In my testing with PL/R, it reduces the first call to a PL/R function (after connecting) from almost 2 seconds, down to about 8 ms. Joe Conway
* Add start time to pg_stat_activityBruce Momjian2003-03-20
| | | | Neil Conway
* Arrange to print the relevant key values when reporting a foreign-keyTom Lane2003-03-15
| | | | | violation. Also, factor out some duplicate code in the RI triggers. Patch by Dmitry Tkach, reviewed by Stephan Szabo and Tom Lane.
* A typo in src/backend/libpq/hba.c breaks local ident authenticationBruce Momjian2003-03-15
| | | | | | | in the SO_PEERCRED case. elif is misspelled as elsif for the test. A patch is attached. Bruno Wolff III
* Remove unneeded dash blocks around function start comments.Bruce Momjian2003-03-14
|
* Make eval_const_expressions simplify FieldSelect from a whole-row VarTom Lane2003-03-14
| | | | into an ordinary one-field Var. Per example from Chris Mungall.
* Prevent infinite loop in ln_var() due to roundoff error.Tom Lane2003-03-14
| | | | Per report from Dave Marin.
* GROUP BY got confused if there were multiple equal() GROUP BY items.Tom Lane2003-03-13
| | | | | | This bug has been latent since 7.0 or maybe even further back, but it was only exposed when parse_clause.c stopped suppressing duplicate items (see its rev 1.96 of 18-Aug-02).
* Add explicit tests for division by zero to all user-accessible integerTom Lane2003-03-11
| | | | | | | | division and modulo functions, to avoid problems on OS X (which fails to trap 0 divide at all) and Windows (which traps it in some bizarre nonstandard fashion). Standardize on 'division by zero' as the one true spelling of this error message. Add regression tests as suggested by Neil Conway.
* Implement SQL92-compatible FIRST, LAST, ABSOLUTE n, RELATIVE n optionsTom Lane2003-03-11
| | | | for FETCH and MOVE.
* This patch fixes a bunch of spelling mistakes in comments throughout theTom Lane2003-03-10
| | | | | | PostgreSQL source code. Neil Conway
* Restructure parsetree representation of DECLARE CURSOR: now it's aTom Lane2003-03-10
| | | | | | | | | | | | utility statement (DeclareCursorStmt) with a SELECT query dangling from it, rather than a SELECT query with a few unusual fields in it. Add code to determine whether a planned query can safely be run backwards. If DECLARE CURSOR specifies SCROLL, ensure that the plan can be run backwards by adding a Materialize plan node if it can't. Without SCROLL, you get an error if you try to fetch backwards from a cursor that can't handle it. (There is still some discussion about what the exact behavior should be, but this is necessary infrastructure in any case.) Along the way, make EXPLAIN DECLARE CURSOR work.
* Revise tuplestore and nodeMaterial so that we don't have to read theTom Lane2003-03-09
| | | | | | | | | | entire contents of the subplan into the tuplestore before we can return any tuples. Instead, the tuplestore holds what we've already read, and we fetch additional rows from the subplan as needed. Random access to the previously-read rows works with the tuplestore, and doesn't affect the state of the partially-read subplan. This is a step towards fixing the problems with cursors over complex queries --- we don't want to stick in Materialize nodes if they'll prevent quick startup for a cursor.
* Tweak dependency code to suppress NOTICEs generated by new method forTom Lane2003-03-06
| | | | | | cleaning out temp namespaces. We don't really want the server log to be cluttered with 'Drop cascades to table foo' every time someone uses a temp table...
* Add code to dump contents of free space map into $PGDATA/global/pg_fsm.cacheTom Lane2003-03-06
| | | | | | at database shutdown, and then load it again at database startup. This preserves our hard-won knowledge of free space across restarts (given an orderly shutdown, that is).
* Turns out new IN implementation has got some problems in an UPDATE orTom Lane2003-03-05
| | | | | DELETE with inherited target table. Fix it; add a regression test. Also, correct ancient misspelling of 'inherited'.
* Repair bug reported by Laurent Perez: bad plan generated when UPDATE orTom Lane2003-03-05
| | | | | | DELETE of an inheritance tree references another inherited relation. This bug has been latent since 7.1; I'm still not quite sure why 7.1 and 7.2 don't manifest it (at least, they don't crash on a simple test case).
* Reimplement free-space-map management as per recent discussions.Tom Lane2003-03-04
| | | | | | | | | | | | Adjustable threshold is gone in favor of keeping track of total requested page storage and doling out proportional fractions to each relation (with a minimum amount per relation, and some quantization of the results to avoid thrashing with small changes in page counts). Provide special- case code for indexes so as not to waste space storing useless page free space counts. Restructure internal data storage to be a flat array instead of list-of-chunks; this may cost a little more work in data copying when reorganizing, but allows binary search to be used during lookup_fsm_page_entry().
* Prevent clustering on incomplete indexes: partial indexes are verboten,Tom Lane2003-03-03
| | | | as are non-amindexnulls AMs unless first column is attnotnull.
* Be smart about outer-join qualifications that mention only one side ofTom Lane2003-03-02
| | | | | | the join, per recent discussion on pgsql-sql. Not clear that this will come up often in real queries, but it's not any more expensive to do it right, so we may as well do it right.
* Change EXTRACT(EPOCH FROM timestamp) so that a timestamp without time zoneTom Lane2003-02-27
| | | | | | is assumed to be in local time, not GMT. This improves consistency with other operations, which all assume local timezone when it matters. Per bug #897.
* Remove REWRITE_INVOKE_MAX in favor of making an accurate check forTom Lane2003-02-25
| | | | | | recursion in RewriteQuery(); also, detect recursion in fireRIRrules(), so as to catch self-referential views per example from Ryan VanderBijl. Minor code restructuring to make it easier to catch recursive case.
* During VACUUM FULL, truncate off any deletable pages that are at theTom Lane2003-02-24
| | | | | | end of a btree index. This isn't super-effective, since we won't move nondeletable pages, but it's better than nothing. Also, improve stats displayed during VACUUM VERBOSE.
* Remove no-longer-used FixBTree GUC variable.Tom Lane2003-02-23
|
* btree page recycling can be done as soon as page's next-xact label isTom Lane2003-02-23
| | | | | older than current Xmin; we don't have to wait till it's older than GlobalXmin.
* Adjust btbulkdelete logic so that only one WAL record is issued whileTom Lane2003-02-23
| | | | | | deleting multiple index entries on a single index page. This makes for a very substantial reduction in the amount of WAL traffic during a large delete operation.
* Improve coding of log_heap_clean() and heap_xlog_clean().Tom Lane2003-02-23
|
* First cut at recycling space in btree indexes. Still some rough edgesTom Lane2003-02-23
| | | | to fix, but it seems to basically work...
* If a shutdown request comes in while we're still starting up, don'tTom Lane2003-02-23
| | | | | | | service it until after we execute SetThisStartUpID(). Else shutdown process will write the wrong SUI into the shutdown checkpoint, which seems likely to be trouble --- although I've not quite figured out how significant it really is.
* Simplify timezone-handling code per proposal to pghackers: get rid ofTom Lane2003-02-22
| | | | | | | | setting timezone-related variables during transaction start. They were not used anyway in platforms that HAVE_TM_ZONE or HAVE_INT_TIMEZONE, which it appears is *all* the platforms we are currently supporting. For platforms that have neither, we now only support UTC or numeric- offset-from-UTC timezones.
* More infrastructure for btree compaction project. Tree-traversal codeTom Lane2003-02-22
| | | | | | | | now knows what to do upon hitting a dead page (in theory anyway, it's untested...). Add a post-VACUUM-cleanup entry point for index AMs, to provide a place for dead-page scavenging to happen. Also, fix oversight that broke btpo_prev links in temporary indexes. initdb forced due to additions in pg_am.