- 14 Oct, 2008 2 commits
-
-
Tom Lane authored
depth-first search order. Upon close reading of SQL:2008, it seems that the spec's SEARCH DEPTH FIRST and SEARCH BREADTH FIRST options do not actually guarantee any particular result order: what they do is provide a constructed column that the user can then sort on in the outer query. So this is actually just as much functionality ...
-
Tom Lane authored
detection.
-
- 13 Oct, 2008 4 commits
-
-
Tom Lane authored
pseudo-type record[] to represent arrays of possibly-anonymous composite types. Since composite datums carry their own type identification, no extra knowledge is needed at the array level. The main reason for doing this right now is that it is necessary to support the general case of detection of cycles in recursive queries: if you need to compare more than one column to detect a cycle, you need to compare a ROW() to an array built from ROW()s, at least if you want to do it as the spec suggests. Add some documentation and regression tests concerning the cycle detection issue.
-
Tom Lane authored
-
Tom Lane authored
-
Tom Lane authored
RecursiveUnion to which it refers. It turns out that we can just postpone the relevant initialization steps until the first exec call for the node, by which time the ancestor node must surely be initialized. Per report from Greg Stark.
-
- 11 Oct, 2008 1 commit
-
-
Alvaro Herrera authored
-
- 10 Oct, 2008 4 commits
-
-
Tom Lane authored
Per gripe from Bill Thoen.
-
Tom Lane authored
for bitmap index scans. Per report and test case from Kevin Grittner.
-
Tom Lane authored
Depesz Lubaczewski. In HEAD, also move a couple of other cases to make the code ordering match up with ProcessUtility.
-
Michael Meskes authored
-
- 09 Oct, 2008 8 commits
-
-
Tom Lane authored
-
Alvaro Herrera authored
-
Tom Lane authored
it can handle functions returning setof record. The case was left undone originally, but it turns out to be simple to fix.
-
Alvaro Herrera authored
-
Alvaro Herrera authored
the ereport macro. Included in this commit are enough files for starting plpgsql, plpython, plperl and pltcl translations.
-
Tom Lane authored
the isTrigger state explicitly, not rely on nonzero-ness of trigrelOid to indicate trigger-hood, because trigrelOid will be left zero when compiling for validation. The (useless) function hash entry built by the validator was able to match an ordinary non-trigger call later in the same session, thereby bypassing the check that is supposed to prevent such a call. Per report from Alvaro. It might be worth suppressing the useless hash entry altogether, but that's a bigger change than I want to consider back-patching. Back-patch to 8.0. 7.4 doesn't have the problem because it doesn't have validation mode.
-
Tom Lane authored
Report and fix by Michael McMaster. Some minor code beautification by me, also avoid memory leaks in the special-case paths.
-
Heikki Linnakangas authored
to process any pending unlinks for the source database. Before, if you dropped a relation in the template database just before CREATE DATABASE, and a checkpoint happened during copydir(), the checkpoint might delete a file that we're just about to copy, causing lstat() in copydir() to fail with ENOENT. Backpatch to 8.3, where the pending unlinks were introduced. Per report by Matthew Wakeling and analysis by Tom Lane.
-
- 08 Oct, 2008 1 commit
-
-
Tom Lane authored
of referencing a WITH item that's not yet in scope according to the SQL spec's semantics. This seems to be an easy error to make, and the bare "relation doesn't exist" message doesn't lead one's mind in the correct direction to fix it.
-
- 07 Oct, 2008 8 commits
-
-
Bruce Momjian authored
Jun Kuwamura
-
Tom Lane authored
-
Tom Lane authored
implementation uses an in-memory hash table, so it will poop out for very large recursive results ... but the performance characteristics of a sort-based implementation would be pretty unpleasant too.
-
Michael Meskes authored
-
Heikki Linnakangas authored
use the old relfilenode in the new tablespace. There might be another relation in the new tablespace with the same relfilenode, so we must generate a fresh relfilenode in the new tablespace. The 8.3 patch to let deleted relation files linger as zero-length files until the next checkpoint made this more obvious: moving a relation from one table space another, and then back again, caused a collision with the lingering file. Back-patch to 8.1. The issue is present in 8.0 as well, but it doesn't seem worth fixing there, because we didn't have protection from OID collisions after OID wraparound before 8.1. Report by Guillaume Lelarge.
-
Tom Lane authored
supplies an expression that can't be coerced to the target column type. The code previously attempted to point at the target column name, which doesn't work at all in an INSERT with omitted column name list, and is also not remarkably helpful when the problem is buried somewhere in a long INSERT-multi-VALUES command. Make it point at the failed expression instead.
-
Bruce Momjian authored
-
Tom Lane authored
tuplestore: in READFILE state tuplestore_select_read_pointer must save the current file seek position in the read pointer being deactivated.
-
- 06 Oct, 2008 11 commits
-
-
Tom Lane authored
get_name_for_var_field didn't have enough context to interpret a reference to a CTE query's output. Fixing this requires separate hacks for the regular deparse case (pg_get_ruledef) and for the EXPLAIN case, since the available context information is quite different. It's pretty nearly parallel to the existing code for SUBQUERY RTEs, though. Also, add code to make sure we qualify a relation name that matches a CTE name; else the CTE will mistakenly capture the reference when reloading the rule. In passing, fix a pre-existing problem with get_name_for_var_field not working on variables in targetlists of SubqueryScan plan nodes. Although latent all along, this wasn't a problem until we made EXPLAIN VERBOSE try to print targetlists. To do this, refactor the deparse_context_for_plan API so that the special case for SubqueryScan is all on ruleutils.c's side.
-
Tom Lane authored
the column alias names of the RTE referenced by the Var to the RowExpr. This is needed to allow ruleutils.c to correctly deparse FieldSelect nodes referencing such a construct. Per my recent bug report. Adding a field to RowExpr forces initdb (because of stored rules changes) so this solution is not back-patchable; which is unfortunate because 8.2 and 8.3 have this issue. But it only affects EXPLAIN for some pretty odd corner cases, so we can probably live without a solution for the back branches.
-
Tom Lane authored
from a query level above the current ParseState.
-
Heikki Linnakangas authored
relation forks. While the file names are not visible to users, for those that do peek into the data directory, it's nice to have more descriptive names. Per Greg Stark's suggestion.
-
Tom Lane authored
-
Magnus Hagander authored
the value a parameter has at server start and will have after RESET, respectively. Greg Smith, with some modifications by me.
-
Heikki Linnakangas authored
-
Tom Lane authored
maybe isalnum is returning a value with the low-order byte all zero?
-
Tom Lane authored
-
Tom Lane authored
well as regular tables. Per discussion, this seems necessary to meet the principle of least astonishment. In passing, simplify the error messages in warnAutoRange(). Now that we have parser error position info for these errors, it doesn't seem very useful to word the error message differently depending on whether we are inside a sub-select or not.
-
Tom Lane authored
-
- 05 Oct, 2008 1 commit
-
-
Tom Lane authored
machine produces zero (rather than the more usual minimum-possible-integer) for the only possible overflow case. This has been seen to occur for at least some word widths on some hardware, and it's cheap enough to check for everywhere. Per Peter's analysis of buildfarm reports. This could be back-patched, but in the absence of any gripes from the field I doubt it's worth the trouble.
-