summaryrefslogtreecommitdiff
path: root/src/backend/parser/parser.c
AgeCommit message (Collapse)Author
2003-11-29$Header: -> $PostgreSQL Changes ...PostgreSQL Daemon
2003-08-04Update copyrights to 2003.Bruce Momjian
2003-05-05Not sure why parser() was still doing clearerr(stdin) ... but it'sTom Lane
*got* to be pointless.
2003-04-29Infrastructure for deducing Param types from context, in the same wayTom Lane
that the types of untyped string-literal constants are deduced (ie, when coerce_type is applied to 'em, that's what the type must be). Remove the ancient hack of storing the input Param-types array as a global variable, and put the info into ParseState instead. This touches a lot of files because of adjustment of routine parameter lists, but it's really not a large patch. Note: PREPARE statement still insists on exact specification of parameter types, but that could easily be relaxed now, if we wanted to do so.
2003-04-27Put back encoding-conversion step in processing of incoming queries;Tom Lane
I had inadvertently omitted it while rearranging things to support length-counted incoming messages. Also, change the parser's API back to accepting a 'char *' query string instead of 'StringInfo', as the latter wasn't buying us anything except overhead. (I think when I put it in I had some notion of making the parser API 8-bit-clean, but seeing that flex depends on null-terminated input, that's not really ever gonna happen.)
2002-09-04pgindent run.Bruce Momjian
2002-08-27PREPARE/EXECUTE statements. Patch by Neil Conway, some kibitzingTom Lane
from Tom Lane.
2002-06-20Update copyright to 2002.Bruce Momjian
2002-04-20Scanner performance improvementsPeter Eisentraut
Use flex flags -CF. Pass the to-be-scanned string around as StringInfo type, to avoid querying the length repeatedly. Clean up some code and remove lex-compatibility cruft. Escape backslash sequences inline. Use flex-provided yy_scan_buffer() function to set up input, rather than using myinput().
2001-11-05New pgindent run with fixes suggested by Tom. Patch manually reviewed,Bruce Momjian
initdb/regression tests pass.
2001-10-25pgindent run on all C files. Java run to follow. initdb/regressionBruce Momjian
tests pass.
2001-03-22pgindent run. Make it all clean.Bruce Momjian
2001-01-24Change Copyright from PostgreSQL, Inc to PostgreSQL Global Development Group.Bruce Momjian
2000-10-07Arrange that no database accesses are attempted during parser() --- thisTom Lane
took some rejiggering of typename and ACL parsing, as well as moving parse_analyze call out of parser(). Restructure postgres.c processing so that parse analysis and rewrite are skipped when in abort-transaction state. Only COMMIT and ABORT statements will be processed beyond the raw parser() phase. This addresses problem of parser failing with database access errors while in aborted state (see pghackers discussions around 7/28/00). Also fix some bugs with COMMIT/ABORT statements appearing in the middle of a single query input string. Function, operator, and aggregate arguments/results can now use full TypeName production, in particular foo[] for array types. DROP OPERATOR and COMMENT ON OPERATOR were broken for unary operators. Allow CREATE AGGREGATE to accept unquoted numeric constants for initcond.
2000-09-12First cut at full support for OUTER JOINs. There are still a few looseTom Lane
ends to clean up (see my message of same date to pghackers), but mostly it works. INITDB REQUIRED!
2000-04-12Ye-old pgindent run. Same 4-space tabs.Bruce Momjian
2000-03-17Add safety check on expression nesting depth. Default value is set byTom Lane
a config.h #define, and the runtime value can be controlled via SET.
2000-01-26Add:Bruce Momjian
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc to all files copyright Regents of Berkeley. Man, that's a lot of files.
1999-07-17 Move some system includes into c.h, and remove duplicates.Bruce Momjian
1999-07-16Final cleanup.Bruce Momjian
1999-07-15Remove unused #includes in *.c files.Bruce Momjian
1999-05-25pgindent run over code.Bruce Momjian
1999-05-13Rip out QueryTreeList structure, root and branch. QuerytreeTom Lane
lists are now plain old garden-variety Lists, allocated with palloc, rather than specialized expansible-array data allocated with malloc. This substantially simplifies their handling and eliminates several sources of memory leakage. Several basic types of erroneous queries (syntax error, attempt to insert a duplicate key into a unique index) now demonstrably leak zero bytes per query.
1999-02-13Change my-function-name-- to my_function_name, and optimizer renames.Bruce Momjian
1998-09-01OK, folks, here is the pgindent output.Bruce Momjian
1998-09-01Renaming cleanup, no pgindent yet.Bruce Momjian
1998-06-15Remove un-needed braces around single statements.Bruce Momjian
1998-02-26pgindent run before 6.3 release, with Thomas' requested changes.Bruce Momjian
1998-01-19Create SubLink nodes in parser for Vadim.Bruce Momjian
1997-12-22Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2).Bruce Momjian
1997-11-26Cleanup up include files.Bruce Momjian
1997-11-25Break parser functions into smaller files, group together.Bruce Momjian
1997-11-20Remove all time travel stuff. Small parser cleanup.Bruce Momjian
1997-11-17Remove 16 char limit on system table/index names. Rename system indexes.Bruce Momjian
1997-09-12heapattr functions now return a Datum, not char *.Bruce Momjian
1997-09-08Used modified version of indent that understands over 100 typedefs.Bruce Momjian
1997-09-08Another PGINDENT run that changes variable indenting and case label ↵Bruce Momjian
indenting. Also static variable indenting.
1997-09-07Massive commit to run PGINDENT on all *.c and *.h files.Bruce Momjian
1997-08-22We store Cash/money as int of size 4, so make it an int rather than a long.Bruce Momjian
1997-08-22Allow functions and operators on internally-identical types to succeed.Bruce Momjian
1997-08-03Comment out code that makes no sense, and Purify complains about.Bruce Momjian
1997-07-24Various compile errors concerning overflow due to shifts, unsigned, and bad ↵Bruce Momjian
prototypes, from Solaris, from Diab Jerius
1997-02-14Remove WIN32 defines. They never worked.Bruce Momjian
1997-01-22Cast constants to the type of the other binary operand.Bruce Momjian
Invalidate vacuum relation cache to use new row counts from vacuum.
1996-12-26I have this annoying habit (among others) of puttingBruce Momjian
%ud in a printf format strings instead of just %u. There were three occurances of this in catalog_utils.c, two in parser.c and one in rewriteSupport.c in the oid patch that I submitted and was applied. They won't crash anything, but the error messages will have a 'd' after the Oid. Annoying, but none are db-threatening. Sorry about that folks...I'll be more careful in the future... Darren King
1996-12-07Remove Dan's fix of SELECT NULL to fix INSERT NULL.Bruce Momjian
1996-11-30This patch changes quite a few instances of references of Oid'sBruce Momjian
as ints and longs. Touches on quite a few function args as well. Most other files look ok as far as Oids go...still checking though... Since Oids are type'd as unsigned ints, they should prolly be used with the %ud format string in elog and sprintf messages. Not sure what kind of strangeness that could produce. Darren King
1996-11-30As someone asked for this feature - patch for 1.09 follows.Bruce Momjian
Now You can do queries like select sum(some_func(x)) from ... select min(table1.x + table2.y) from table1, table2 where ... and so on. Vadim
1996-11-25Prevent empty queries from crashing server.Bruce Momjian
1996-11-13Commit of a *MAJOR* patch from Dan McGuirk <djm@indirect.com>Marc G. Fournier
Changes: * Unique index capability works using the syntax 'create unique index'. * Duplicate OID's in the system tables are removed. I put little scripts called 'duplicate_oids' and 'find_oid' in include/catalog that help to find and remove duplicate OID's. I also moved 'unused_oids' from backend/catalog to include/catalog, since it has to be in the same directory as the include files in order to work. * The backend tries converting the name of a function or aggregate to all lowercase if the original name given doesn't work (mostly for compatibility with ODBC). * You can 'SELECT NULL' to your heart's content. * I put my _bt_updateitem fix in instead, which uses _bt_insertonpg so that even if the new key is so big that the page has to be split, everything still works. * All literal references to system catalog OID's have been replaced with references to define'd constants from the catalog header files. * I added a couple of node copy functions. I think this was a preliminary attempt to get rules to work.