summaryrefslogtreecommitdiff
path: root/src/test/regress/sql
AgeCommit message (Collapse)Author
2006-02-11Fix incorrect addition, subtraction, and overflow checking in newTom Lane
inet operators.
2006-02-11Add INET/CIDR operators: and, or, not, plus int8, minus int8, and inetBruce Momjian
minus inet. Stephen R. van den Berg
2006-02-04DROP IF EXISTS for ROLE/USER/GROUPAndrew Dunstan
2006-01-26Clean up the INET-vs-CIDR situation. Get rid of the internal is_cidr flagTom Lane
and rely exclusively on the SQL type system to tell the difference between the types. Prevent creation of invalid CIDR values via casting from INET or set_masklen() --- both of these operations now silently zero any bits to the right of the netmask. Remove duplicate CIDR comparison operators, letting the type rely on the INET operators instead.
2006-01-22Allow an optional alias for the target table to be specified for UPDATENeil Conway
and DELETE. If specified, the alias must be used instead of the full table name. Also, the alias currently cannot be used in the SET clause of UPDATE. Patch from Atsushi Ogawa, various editorialization by Neil Conway. Along the way, make the rowtypes regression test pass if add_missing_from is enabled, and add a new (skeletal) regression test for DELETE.
2006-01-18Add a new system view, pg_cursors, that displays the currently availableNeil Conway
cursors. Patch from Joachim Wieland, review and ediorialization by Neil Conway. The view lists cursors defined by DECLARE CURSOR, using SPI, or via the Bind message of the frontend/backend protocol. This means the view does not list the unnamed portal or the portal created to implement EXECUTE. Because we do list SPI portals, there might be more rows in this view than you might expect if you are using SPI implicitly (e.g. via a procedural language). Per recent discussion on -hackers, the query string included in the view for cursors defined by DECLARE CURSOR is based on debug_query_string. That means it is not accurate if multiple queries separated by semicolons are submitted as one query string. However, there doesn't seem a trivial fix for that: debug_query_string is better than nothing. I also changed SPI_cursor_open() to include the source text for the portal it creates: AFAICS there is no reason not to do this. Update the documentation and regression tests, bump the catversion.
2006-01-15Add regression tests to verify that domain constraints on parametersNeil Conway
to prepared statements with unknown type are correctly enforced, per recent bug report.
2006-01-15Allow the types of parameters to PREPARE to be inferred. If a parameter'sNeil Conway
data type is unspecified or is declared to be "unknown", the type will be inferred from the context in which the parameter is used. This was already possible for protocol-level prepared statements.
2006-01-11Create a standard function pg_sleep() to sleep for a specified amount of time.Tom Lane
Replace the former ad-hoc implementation used in the regression tests. Joachim Wieland
2006-01-08Add a new system view, pg_prepared_statements, that can be used toNeil Conway
access information about the prepared statements that are available in the current session. Original patch from Joachim Wieland, various improvements by Neil Conway. The "statement" column of the view contains the literal query string sent by the client, without any rewriting or pretty printing. This means that prepared statements created via SQL will be prefixed with "PREPARE ... AS ", whereas those prepared via the FE/BE protocol will not. That is unfortunate, but discussion on -patches did not yield an efficient way to improve this, and there is some merit in returning exactly what the client sent to the backend. Catalog version bumped, regression tests updated.
2005-12-28Add COPY CSV test that tests CSV output of \.Bruce Momjian
2005-12-28Add regression tests for CSV and \., and add automatic quoting of aBruce Momjian
single column dump that has a \. value, so the load works properly. I also added documentation describing this issue.
2005-12-28Implement SQL-compliant treatment of row comparisons for < <= > >= casesTom Lane
(previously we only did = and <> correctly). Also, allow row comparisons with any operators that are in btree opclasses, not only those with these specific names. This gets rid of a whole lot of indefensible assumptions about the behavior of particular operators based on their names ... though it's still true that IN and NOT IN expand to "= ANY". The patch adds a RowCompareExpr expression node type, and makes some changes in the representation of ANY/ALL/ROWCOMPARE SubLinks so that they can share code with RowCompareExpr. I have not yet done anything about making RowCompareExpr an indexable operator, but will look at that soon. initdb forced due to changes in stored rules.
2005-12-14Fix problem with whole-row Vars referencing sub-select outputs, perTom Lane
example from Jim Dew. Add some simple regression tests, since this is an area we seem to break regularly :-(
2005-12-11Implement IS NOT DISTINCT FROM, update the regression tests and docs.Neil Conway
Patch from Pavel Stehule, minor fixups by myself.
2005-12-07Spell "explicitly" correctly, per Simon.Tom Lane
2005-12-05Add regression test to see if the min/max values of int8 convert correctly.Tom Lane
2005-11-23Fix problems with rewriter failing to set Query.hasSubLinks when insertingTom Lane
a SubLink expression into a rule query. Pre-8.1 we essentially did this unconditionally; 8.1 tries to do it only when needed, but was missing a couple of cases. Per report from Kyle Bateman. Add some regression test cases covering this area.
2005-11-21Implement DROP OWNED and REASSIGN OWNED. These new commands facilitate theAlvaro Herrera
process of dropping roles by dropping objects owned by them and privileges granted to them, or giving the owned objects to someone else, through the use of the data stored in the new pg_shdepend catalog. Some refactoring of the GRANT/REVOKE code was needed, as well as ALTER OWNER code. Further cleanup of code duplication in the GRANT code seems necessary. Implemented by me after an idea from Tom Lane, who also provided various kind of implementation advice. Regression tests pass. Some tests for the new functionality are also added, as well as rudimentary documentation.
2005-11-19DROP objecttype IF EXISTS for the following objects:Andrew Dunstan
table view index sequence schema type domain conversion
2005-11-17Make SQL arrays support null elements. This commit fixes the core arrayTom Lane
functionality, but I still need to make another pass looking at places that incidentally use arrays (such as ACL manipulation) to make sure they are null-safe. Contrib needs work too. I have not changed the behaviors that are still under discussion about array comparison and what to do with lower bounds.
2005-11-07R-tree is dead ... long live GiST.Tom Lane
2005-10-06Revise pgstats stuff to fix the problems with not counting accessesTom Lane
generated by bitmap index scans. Along the way, simplify and speed up the code for counting sequential and index scans; it was both confusing and inefficient to be taking care of that in the per-tuple loops, IMHO. initdb forced because of internal changes in pg_stat view definitions.
2005-10-02Change nextval and other sequence functions to specify their sequenceTom Lane
argument as a 'regclass' value instead of a text string. The frontend conversion of text string to pg_class OID is now encapsulated as an implicitly-invocable coercion from text to regclass. This provides backwards compatibility to the old behavior when the sequence argument is explicitly typed as 'text'. When the argument is just an unadorned literal string, it will be taken as 'regclass', which means that the stored representation will be an OID. This solves longstanding problems with renaming sequences that are referenced in default expressions, as well as new-in-8.1 problems with renaming such sequences' schemas or moving them to another schema. All per recent discussion. Along the way, fix some rather serious problems in dbmirror's support for mirroring sequence operations (int4 vs int8 confusion for instance).
2005-09-14Tweak the PL/PgSQL regression tests to catch the recently reported bugNeil Conway
in parsing cursor declarations.
2005-08-30Add regression tests for disabling constraints.Bruce Momjian
Gavin Sherry
2005-08-15Clean up some stray remaining references to pg_shadow, pg_user, pg_group.Tom Lane
2005-08-04ALTER TABLE OWNER must change the ownership of the table's rowtype too.Tom Lane
This was not especially critical before, but it is now that we track ownership dependencies --- the dependency for the rowtype *must* shift to the new owner. Spotted by Bernd Helmle. Also fix a problem introduced by recent change to allow non-superusers to do ALTER OWNER in some cases: if the table had a toast table, ALTER OWNER failed *even for superusers*, because the test being applied would conclude that the new would-be owner had no create rights on pg_toast. A side-effect of the fix is to disallow changing the ownership of indexes or toast tables separately from their parent table, which seems a good idea on the whole.
2005-08-01Add ALTER object SET SCHEMA capability for a limited but useful set ofTom Lane
object kinds (tables, functions, types). Documentation is not here yet. Original code by Bernd Helmle, extensive rework by Bruce Momjian and Tom Lane.
2005-07-30Please find attached diffs for documentation and simple regressionBruce Momjian
tests for the new interval->day changes. I added tests for justify_hours() and justify_days() to interval.sql, as they take interval input and produce interval output. If there's a more appropriate place for them, please let me know. Michael Glaesemann
2005-07-23In the stats test, delay for the stats collector to catch up using aTom Lane
function that actually sleeps, instead of busy-waiting. Perhaps this will resolve some of the intermittent stats failures we keep seeing.
2005-07-15Fix overenthusiastic optimization of 'x IN (SELECT DISTINCT ...)' and relatedTom Lane
cases: we can't just consider whether the subquery's output is unique on its own terms, we have to check whether the set of output columns we are going to use will be unique. Per complaint from Luca Pireddu and test case from Michael Fuhr.
2005-07-10Change typreceive function API so that receive functions get the sameTom Lane
optional arguments as text input functions, ie, typioparam OID and atttypmod. Make all the datatypes that use typmod enforce it the same way in typreceive as they do in typinput. This fixes a problem with failure to enforce length restrictions during COPY FROM BINARY.
2005-07-10I made the patch that implements regexp_replace again.Bruce Momjian
The specification of this function is as follows. regexp_replace(source text, pattern text, replacement text, [flags text]) returns text Replace string that matches to regular expression in source text to replacement text. - pattern is regular expression pattern. - replacement is replace string that can use '\1'-'\9', and '\&'. '\1'-'\9': back reference to the n'th subexpression. '\&' : entire matched string. - flags can use the following values: g: global (replace all) i: ignore case When the flags is not specified, case sensitive, replace the first instance only. Atsushi Ogawa
2005-07-07Track dependencies on shared objects (which is to say, roles; we alreadyTom Lane
have adequate mechanisms for tracking the contents of databases and tablespaces). This solves the longstanding problem that you can drop a user who still owns objects and/or has access permissions. Alvaro Herrera, with some kibitzing from Tom Lane.
2005-07-02In PL/PgSQL, allow a block's label to be optionally specified at theNeil Conway
end of the block: <<label>> begin ... end label; Similarly for loops. This is per PL/SQL. Update the documentation and add regression tests. Patch from Pavel Stehule, code review by Neil Conway.
2005-07-01Fix platform-dependency in recently added regression tests.Tom Lane
Per buildfarm results.
2005-07-01Avoid function name conflict when plpgsql and rangefuncs regression testsTom Lane
execute in parallel. Spotted by Peter.
2005-07-01Migrate rtree_gist functionality into the core system, and add someTom Lane
basic regression tests for GiST to the standard regression tests. I took the opportunity to add an rtree-equivalent gist opclass for circles; the contrib version only covered boxes and polygons, but indexing circles is very handy for distance searches.
2005-06-28Replace pg_shadow and pg_group by new role-capable catalogs pg_authidTom Lane
and pg_auth_members. There are still many loose ends to finish in this patch (no documentation, no regression tests, no pg_dump support for instance). But I'm going to commit it now anyway so that Alvaro can make some progress on shared dependencies. The catalog changes should be pretty much done.
2005-06-26Add E'' syntax so eventually normal strings can treat backslashesBruce Momjian
literally. Add GUC variables: "escape_string_warning" - warn about backslashes in non-E strings "escape_string_syntax" - supports E'' syntax? "standard_compliant_strings" - treats backslashes literally in '' Update code to use E'' when escapes are used.
2005-06-24Extend r-tree operator classes to handle Y-direction tests equivalentTom Lane
to the existing X-direction tests. An rtree class now includes 4 actual 2-D tests, 4 1-D X-direction tests, and 4 1-D Y-direction tests. This involved adding four new Y-direction test operators for each of box and polygon; I followed the PostGIS project's lead as to the names of these operators. NON BACKWARDS COMPATIBLE CHANGE: the poly_overleft (&<) and poly_overright (&>) operators now have semantics comparable to box_overleft and box_overright. This is necessary to make r-tree indexes work correctly on polygons. Also, I changed circle_left and circle_right to agree with box_left and box_right --- formerly they allowed the boundaries to touch. This isn't actually essential given the lack of any r-tree opclass for circles, but it seems best to sync all the definitions while we are at it.
2005-06-22Fix bug in CONTINUE statement for PL/pgSQL: when we continue a loop,Neil Conway
we need to be careful to reset rc to PLPGSQL_RC_OK, depending on how the loop's logic is structured. If we continue a loop but it then exits without executing the loop's body again, we want to return PLPGSQL_RC_OK to our caller. Enhance the regression tests to catch this problem. Per report from Michael Fuhr.
2005-06-22Add a CONTINUE statement to PL/PgSQL, which can be used to begin theNeil Conway
next iteration of a loop. Update documentation and add regression tests. Patch from Pavel Stehule, reviewed by Neil Conway.
2005-06-17Two-phase commit. Original patch by Heikki Linnakangas, with additionalTom Lane
hacking by Alvaro Herrera and Tom Lane.
2005-06-14Allow the parameters to PL/PgSQL's RAISE statement to be expressions,Neil Conway
instead of just scalar variables. Add regression tests and update the documentation. Along the way, remove some redundant error checking code from exec_stmt_perform(). Original patch from Pavel Stehule, reworked by Neil Conway.
2005-06-10Implement two new special variables in PL/PgSQL: SQLSTATE and SQLERRM.Neil Conway
These contain the SQLSTATE and error message of the current exception, respectively. They are scope-local variables that are only defined in exception handlers (so attempting to reference them outside an exception handler is an error). Update the regression tests and the documentation. Also, do some minor related cleanup: export an unpack_sql_state() function from the backend and use it to unpack a SQLSTATE into a string, and add a free_var() function to pl_exec.c Original patch from Pavel Stehule, review by Neil Conway.
2005-06-08Remove grammar productions for prefix and postfix % and ^ operators,Tom Lane
as well as the existing pg_catalog entries for prefix and postfix %. These have never been documented, though they did appear in one old regression test. This avoids surprising behavior in cases like "SELECT -25 % -10". Per recent discussion. Note: although there is a catalog change here, I did not force initdb since there's no harm in leaving the inaccessible entries in one's copy of pg_operator.
2005-06-07Add a function lastval(), which returns the value returned by theNeil Conway
last nextval() or setval() performed by the current session. Update the docs, add regression tests, and bump the catalog version. Patch from Dennis Björklund, various improvements by Neil Conway.
2005-06-07Add support for an optional INTO clause to PL/PgSQL's EXECUTE command.Neil Conway
This allows the result of executing a SELECT to be assigned to a row variable, record variable, or list of scalars. Docs and regression tests updated. Per Pavel Stehule, improvements and cleanup by Neil Conway.