summaryrefslogtreecommitdiff
path: root/src/backend/parser
AgeCommit message (Collapse)Author
2004-05-05ALTER TABLE rewrite. New cool stuff:Tom Lane
* ALTER ... ADD COLUMN with defaults and NOT NULL constraints works per SQL spec. A default is implemented by rewriting the table with the new value stored in each row. * ALTER COLUMN TYPE. You can change a column's datatype to anything you want, so long as you can specify how to convert the old value. Rewrites the table. (Possible future improvement: optimize no-op conversions such as varchar(N) to varchar(N+1).) * Multiple ALTER actions in a single ALTER TABLE command. You can perform any number of column additions, type changes, and constraint additions with only one pass over the table contents. Basic documentation provided in ALTER TABLE ref page, but some more docs work is needed. Original patch from Rod Taylor, additional work from Tom Lane.
2004-04-21Change COPY CSV keyword to be:Bruce Momjian
FORCE QUOTE to force quotes FORCE NOT NULL to quote null input values
2004-04-19Complete TODO item:Bruce Momjian
o -Allow dump/load of CSV format This adds new keywords to COPY and \copy: CSV - enable CSV mode (comma separated variable) QUOTE - specify quote character ESCAPE - specify escape character FORCE - force quoting of specified column LITERAL - suppress null comparison for columns Doc changes included. Regression updates coming from Andrew.
2004-04-18Tweak findTargetlistEntry so that bare names occurring in GROUP BY clausesTom Lane
are sought first as local FROM columns, then as local SELECT-list aliases, and finally as outer FROM columns; the former behavior made outer FROM columns take precedence over aliases. This does not change spec conformance because SQL99 allows only the first case anyway, and it seems more useful and self-consistent. Per gripe from Dennis Bjorklund 2004-04-05.
2004-04-05Allow LIKE/ILIKE to appear in more places in a query.Bruce Momjian
Fabien COELHO
2004-04-02Fix poor choice of error message in corner cases.Tom Lane
2004-04-02Clean up some code that had gotten a bit ugly through repeated revisions.Tom Lane
2004-04-02Get rid of crocky use of RangeVar nodes in parser to represent partiallyTom Lane
transformed whole-row variables. Cleaner to use regular whole-row Vars.
2004-04-01Replace TupleTableSlot convention for whole-row variables and functionTom Lane
results with tuples as ordinary varlena Datums. This commit does not in itself do much for us, except eliminate the horrid memory leak associated with evaluation of whole-row variables. However, it lays the groundwork for allowing composite types as table columns, and perhaps some other useful features as well. Per my proposal of a few days ago.
2004-03-24Replace max_expr_depth parameter with a max_stack_depth parameter thatTom Lane
is measured in kilobytes and checked against actual physical execution stack depth, as per my proposal of 30-Dec. This gives us a fairly bulletproof defense against crashing due to runaway recursive functions.
2004-03-21Revise syntax-error reporting behavior to give pleasant results forTom Lane
errors in internally-generated queries, such as those submitted by plpgsql functions. Per recent discussions with Fabien Coelho.
2004-03-17Reimplement CASE val WHEN compval1 THEN ... WHEN compval2 THEN ... ENDTom Lane
so that the 'val' is computed only once, per recent discussion. The speedup is not much when 'val' is just a simple variable, but could be significant for larger expressions. More importantly this avoids issues with multiple evaluations of a volatile 'val', and it allows the CASE expression to be reverse-listed in its original form by ruleutils.c.
2004-03-15Remove grotty special-case code in coerce_to_target_type() thatTom Lane
implemented casts to varchar and bpchar using a cast-to-text function. This is a holdover from before we had pg_cast; it now makes more sense to just list these casts in pg_cast. While at it, add pg_cast entries for the other direction (casts from varchar/bpchar) where feasible.
2004-03-11Add NOWAIT option to LOCK commandTatsuo Ishii
2004-03-09Add ALSO keyword to CREATE RULE.Bruce Momjian
Fabien COELHO
2004-02-24Implement dollar-quoting in the backend lexer and psql. DocumentationTom Lane
is still lacking, as is support in plpgsql and other places, but this is the basic feature. Patch by Andrew Dunstan, some tweaking by Tom Lane. Also, enable %option nodefault in these two lexers, and patch some gaps revealed thereby.
2004-02-21Implement a solution to the 'Turkish locale downcases I incorrectly'Tom Lane
problem, per previous discussion. Make some additional changes to centralize the knowledge of just how identifier downcasing is done, in hopes of simplifying any future tweaking in this area.
2004-02-19Cosmetic changes (mostly whitespace) to make it easier to diff theTom Lane
backend lexer against psql's.
2004-02-13Try to make 'cross-database references are not implemented' errors aTom Lane
bit more helpful by identifying the specific qualified name being complained of.
2004-01-28Fix oversight in check_ungrouped_columns optimization that avoidsTom Lane
unnecessary checks for complex grouping expressions: we cannot check whether the expressions are simple Vars until after we apply flatten_join_alias_vars, because in the case of FULL JOIN that routine can introduce non-Var expressions. Per example from Joel Knight.
2004-01-23Fix a minor bug introduced by the recent CREATE TABLE AS / WITH OIDSNeil Conway
patch: a 3-value enum was mistakenly assigned directly to a 'bool' in transformCreateStmt(). Along the way, change makeObjectName() to be static, as it isn't used outside analyze.c
2004-01-14Fix permission-checking bug reported by Tim Burgess 10-Feb-03 (this timeTom Lane
for sure...). Rather than relying on the query context of a rangetable entry to identify what permissions it wants checked, store a full AclMode mask in each RTE, and check exactly those bits. This allows an RTE specifying, say, INSERT privilege on a view to be copied into a derived UPDATE query without changing meaning. Per recent discussion thread. initdb forced due to change of stored rule representation.
2004-01-11Add CREATE TRIGGER, CREATE INDEX, and CREATE SEQUENCE to the list ofNeil Conway
expressions supported by CREATE SCHEMA. Also added the beginning of some regression tests for CREATE SCHEMA; plenty more work is needed here.
2004-01-10Implement "WITH / WITHOID OIDS" clause for CREATE TABLE AS. This isNeil Conway
intended to allow application authors to insulate themselves from changes to the default value of 'default_with_oids' in future releases of PostgreSQL. This patch also fixes a bug in the earlier implementation of the 'default_with_oids' GUC variable: code in gram.y should not examine the value of GUC variables directly due to synchronization issues.
2004-01-10Allow BEGIN WORK to specify transaction isolation level, like STARTBruce Momjian
TRANSACTION.
2004-01-07More janitorial work: remove the explicit casting of NULL literals to aNeil Conway
pointer type when it is not necessary to do so. For future reference, casting NULL to a pointer type is only necessary when (a) invoking a function AND either (b) the function has no prototype OR (c) the function is a varargs function.
2004-01-06Apply the core parts of Dennis Bjorklund's patch to allow functionTom Lane
parameters to be declared with names. pg_proc has a column to store names, and CREATE FUNCTION can insert data into it, but that's all as yet. I need to do more work on the pg_dump and plpgsql portions of the patch before committing those, but I thought I'd get the bulky changes in before the tree drifts under me. initdb forced due to pg_proc change.
2004-01-05Trivial refactoring: move analysis of ViewStmt into its own function forNeil Conway
readability and for the sake of consistency with the rest of analyze.c
2003-12-17Reorder tests in parse_coerce so that ANY/ANYELEMENT/ANYARRAY coercionTom Lane
does not affect UNKNOWN-type literals or Params. This fixes the recent complaint about count('x') being broken, and improves consistency in a few other respects too.
2003-12-01This patch adds a new GUC var, "default_with_oids", which follows theBruce Momjian
proposal for eventually deprecating OIDs on user tables that I posted earlier to pgsql-hackers. pg_dump now always specifies WITH OIDS or WITHOUT OIDS when dumping a table. The documentation has been updated. Neil Conway
2003-11-29$Header: -> $PostgreSQL Changes ...PostgreSQL Daemon
2003-11-24Overdue code review for ALTER SEQUENCE patch. Don't generate illegal NodeTom Lane
tree for CYCLE option; don't assume zeros are invalid values for sequence fields other than increment_by; don't reset cache_value when not told to; simplify code for testing whether to apply defaults.
2003-11-21COMMENT ON casts, conversions, languages, operator classes, andTom Lane
large objects. Dump all these in pg_dump; also add code to pg_dump user-defined conversions. Make psql's large object code rely on the backend for inserting/deleting LOB comments, instead of trying to hack pg_description directly. Documentation and regression tests added. Christopher Kings-Lynne, code reviewed by Tom
2003-11-12Cross-data-type comparisons are now indexable by btrees, pursuant to myTom Lane
pghackers proposal of 8-Nov. All the existing cross-type comparison operators (int2/int4/int8 and float4/float8) have appropriate support. The original proposal of storing the right-hand-side datatype as part of the primary key for pg_amop and pg_amproc got modified a bit in the event; it is easier to store zero as the 'default' case and only store a nonzero when the operator is actually cross-type. Along the way, remove the long-since-defunct bigbox_ops operator class.
2003-11-09Add operator strategy and comparison-value datatype fields to ScanKey.Tom Lane
Remove the 'strategy map' code, which was a large amount of mechanism that no longer had any use except reverse-mapping from procedure OID to strategy number. Passing the strategy number to the index AM in the first place is simpler and faster. This is a preliminary step in planned support for cross-datatype index operations. I'm committing it now since the ScanKeyEntryInitialize() API change touches quite a lot of files, and I want to commit those changes before the tree drifts under me.
2003-11-06Implement isolation levels read uncommitted and repeatable read as actingPeter Eisentraut
like the next higher one.
2003-11-05Fix for this problem:Tom Lane
regression=# select 1 from tenk1 ta cross join tenk1 tb for update; ERROR: no relation entry for relid 3 7.3 said "SELECT FOR UPDATE cannot be applied to a join", which was better but still wrong, considering that 7.2 took the query just fine. Fix by making transformForUpdate() ignore JOIN and other special RTE types, rather than trying to mark them FOR UPDATE. The actual error message now only appears if you explicitly name the join in FOR UPDATE.
2003-10-20Improve error reporting in parseTypeString(), motivated by confusingTom Lane
behavior reported by Martin Marques.
2003-10-09Make sure that -- comments extend to the end of the line. This fixes thePeter Eisentraut
misscanning of this construct: SELECT ''hello world'' -- SELECT ''goodbye world'' ::text;
2003-10-06Fix binary_oper_exact() so that the heuristic 'an unknown literal onTom Lane
one side of a binary operator is probably supposed to be the same type as the other operand' will be applied for domain types. This worked in 7.3 but was broken in 7.4 due to code rearrangements. Mea culpa.
2003-10-02Change some notices to warnings and vice versa according to criteriaPeter Eisentraut
developed on -hackers.
2003-10-02Remove NOTICE about foreign key creating implicit triggers, because it noPeter Eisentraut
longer conveys useful information.
2003-09-29More message editing, some suggested by Alvaro HerreraPeter Eisentraut
2003-09-26Various message fixes, among those fixes for the previous round of fixesPeter Eisentraut
2003-09-25Fix grammatical error introduced into error message.Tom Lane
2003-09-25Message editing: remove gratuitous variations in message wording, standardizePeter Eisentraut
terms, add some clarifications, fix some untranslatable attempts at dynamic message building.
2003-09-23Tweak generic_type_consistency routines to avoid loss of functionalityTom Lane
since 7.3: 'select array_dims(histogram_bounds) from pg_stats' used to work and still should. Problem was that code wouldn't take input of declared type anyarray as matching an anyarray argument. Allow this case as long as we don't need to determine an element type (which in practice means as long as anyelement isn't used in the function signature).
2003-09-15Improve a couple of error messages per suggestions from Alvaro Herrera.Tom Lane
2003-09-09Some "feature not supported" errors are better syntax errors, because thePeter Eisentraut
feature they complain about isn't a feature or cannot be implemented without definitional changes.
2003-09-06Make all valid uses of the COLLATE clause yield the same result: a syntaxPeter Eisentraut
error. There is no point in providing some kind of forward compatibility now, because no one can tell what a future implementation will look like.