summaryrefslogtreecommitdiff
path: root/src/interfaces/ecpg/preproc
AgeCommit message (Collapse)Author
2013-04-20Clean up references to SQL92Peter Eisentraut
In most cases, these were just references to the SQL standard in general. In a few cases, a contrast was made between SQL92 and later standards -- those have been kept unchanged.
2013-02-27Add support for piping COPY to/from an external program.Heikki Linnakangas
This includes backend "COPY TO/FROM PROGRAM '...'" syntax, and corresponding psql \copy syntax. Like with reading/writing files, the backend version is superuser-only, and in the psql version, the program is run in the client. In the passing, the psql \copy STDIN/STDOUT syntax is subtly changed: if you the stdin/stdout is quoted, it's now interpreted as a filename. For example, "\copy foo from 'stdin'" now reads from a file called 'stdin', not from standard input. Before this, there was no way to specify a filename called stdin, stdout, pstdin or pstdout. This creates a new function in pgport, wait_result_to_str(), which can be used to convert the exit status of a process, as returned by wait(3), to a human-readable string. Etsuro Fujita, reviewed by Amit Kapila.
2013-02-26Remove the check for COPY TO STDIN and COPY FROM STDOUT from ecpg.Heikki Linnakangas
The backend grammar treats STDIN and STDOUT completely interchangeable, so that the above accepted. Arguably that was a mistake the backend grammar, but it's not ecpg's business to second guess that.
2013-01-01Update copyrights for 2013Bruce Momjian
Fully update git head, and update back branches in ./COPYRIGHT and legal.sgml files.
2012-11-29When processing nested structure pointer variables ecpg always expected anMichael Meskes
array datatype which of course is wrong. Applied patch by Muhammad Usama <m.usama@gmail.com> to fix this.
2012-11-28Suppress parallel build in interfaces/ecpg/preproc/.Tom Lane
This is to see if it will stop intermittent build failures on buildfarm member okapi. We know that gmake 3.82 has some problems with sometimes not honoring dependencies in parallel builds, and it seems likely that this is more of the same. Since the vast bulk of the work in the preproc directory is associated with creating preproc.c and then preproc.o, parallelism buys us hardly anything here anyway. Also, make both this .NOTPARALLEL and the one previously added in interfaces/ecpg/Makefile be conditional on "ifeq ($(MAKE_VERSION),3.82)". The known bug in gmake is fixed upstream and should not be present in 3.83 and up, and there's no reason to think it affects older releases.
2012-11-23Applied patch by Chen Huajun <chenhj@cn.fujitsu.com> to make ecpg able to copeMichael Meskes
with very long structs.
2012-10-12In our source code, make a copy of getopt's 'optarg' string arguments,Bruce Momjian
rather than just storing a pointer.
2012-10-11Refactor flex and bison make rulesPeter Eisentraut
Numerous flex and bison make rules have appeared in the source tree over time, and they are all virtually identical, so we can replace them by pattern rules with some variables for customization. Users of pgxs will also be able to benefit from this.
2012-08-07Implement SQL-standard LATERAL subqueries.Tom Lane
This patch implements the standard syntax of LATERAL attached to a sub-SELECT in FROM, and also allows LATERAL attached to a function in FROM, since set-returning function calls are expected to be one of the principal use-cases. The main change here is a rewrite of the mechanism for keeping track of which relations are visible for column references while the FROM clause is being scanned. The parser "namespace" lists are no longer lists of bare RTEs, but are lists of ParseNamespaceItem structs, which carry an RTE pointer as well as some visibility-controlling flags. Aside from supporting LATERAL correctly, this lets us get rid of the ancient hacks that required rechecking subqueries and JOIN/ON and function-in-FROM expressions for invalid references after they were initially parsed. Invalid column references are now always correctly detected on sight. In passing, remove assorted parser error checks that are now dead code by virtue of our having gotten rid of add_missing_from, as well as some comments that are obsolete for the same reason. (It was mainly add_missing_from that caused so much fudging here in the first place.) The planner support for this feature is very minimal, and will be improved in future patches. It works well enough for testing purposes, though. catversion bump forced due to new field in RangeTblEntry.
2012-07-04Run newly-configured perltidy script on Perl files.Bruce Momjian
Run on HEAD and 9.2.
2012-06-18Make documentation of --help and --version options more consistentPeter Eisentraut
Before, some places didn't document the short options (-? and -V), some documented both, some documented nothing, and they were listed in various orders. Now this is hopefully more consistent and complete.
2012-06-13Stamp library minor versions for 9.3.Tom Lane
This includes fixing the MSVC copy of ecpg/preproc's version info, which seems to have been overlooked repeatedly. Can't we fix that so there are not two copies??
2012-06-10Run pgindent on 9.2 source tree in preparation for first 9.3Bruce Momjian
commit-fest.
2012-04-23Lots of doc corrections.Robert Haas
Josh Kupershmidt
2012-04-07Stamp libraries versions for 9.2 (better late than never).Bruce Momjian
2012-03-31Rename frontend keyword arrays to avoid conflict with backend.Tom Lane
ecpg and pg_dump each contain keyword arrays with structure similar to the backend's keyword array. Up to now, we actually named those arrays the same as the backend's and relied on parser/keywords.h to declare them. This seems a tad too cute, though, and it breaks now that we need to PGDLLIMPORT-decorate the backend symbols. Rename to avoid the problem. Per buildfarm. (It strikes me that maybe we should get rid of the separate keywords.c files altogether, and just define these arrays in the modules that use them, but that's a rather more invasive change.)
2012-03-02ecpg: Clean up some const usagePeter Eisentraut
2012-02-13Do not use the variable name when defining a varchar structure in ecpg.Michael Meskes
With a unique counter being added anyway, there is no need anymore to have the variable name listed, too.
2012-01-04Made code in ecpg better readable.Michael Meskes
2012-01-01Update copyright notices for year 2012.Bruce Momjian
2011-12-27Standardize treatment of strcmp() return valuePeter Eisentraut
Always compare the return value to 0, don't use cute tricks like if (!strcmp(...)).
2011-12-18In ecpg removed old leftover check for given connection name.Michael Meskes
Ever since we introduced real prepared statements this should work for different connections. The old solution just emulating prepared statements, though, wasn't able to handle this. Closes: #6309
2011-11-01Clean up whitespace and indentation in parser and scanner filesPeter Eisentraut
These are not touched by pgindent, so clean them up a bit manually.
2011-08-25Add "%option warn" to all flex input files that lacked it.Tom Lane
This is recommended in the flex manual, and there seems no good reason not to use it everywhere.
2011-06-27Add the possibility to pass --flag arguments to xgettext callsPeter Eisentraut
The --flag argument can be used to tell xgettext the arguments of which functions should be flagged with c-format in the PO files, instead of guessing based on the presence of format specifiers, which fails if no format specifiers are present but the translation accidentally introduces one. Appropriate flag settings have been added for each message catalog. based on a patch by Christoph Berg for bug #6066
2011-06-26Make _ be automatically included in GETTEXT_TRIGGERSPeter Eisentraut
Since it's globally defined in c.h, it should be treated as a gettext trigger everywhere.
2011-06-26Replace := by = in nls.mk filesPeter Eisentraut
It currently doesn't make a difference, but it's inconsistent with most other usage, and it might interfere with a future patch, so I'll change it all in a separate commit. Also, replace tabs with spaces for alignment.
2011-06-15Rework parsing of ConstraintAttributeSpec to improve NOT VALID handling.Tom Lane
The initial commit of the ALTER TABLE ADD FOREIGN KEY NOT VALID feature failed to support labeling such constraints as deferrable. The best fix for this seems to be to fold NOT VALID into ConstraintAttributeSpec. That's a bit more general than the documented syntax, but it allows better-targeted syntax error messages. In addition, do some mostly-but-not-entirely-cosmetic code review for the whole NOT VALID patch.
2011-06-14Move parse2.pl to parse.plPeter Eisentraut
We have a SCM, so we don't need to keep old versions of files around.
2011-06-09Translation updates for 9.1beta2Peter Eisentraut
2011-04-28Use a macro variable PG_PRINTF_ATTRIBUTE for the style used for checking ↵Andrew Dunstan
printf type functions. The style is set to "printf" for backwards compatibility everywhere except on Windows, where it is set to "gnu_printf", which eliminates hundreds of false error messages from modern versions of gcc arising from %m and %ll{d,u} formats.
2011-04-10pgindent run before PG 9.1 beta 1.Bruce Momjian
2011-03-11In ecpg preprocessor, don't try to look up constants in the test forHeikki Linnakangas
variable hiding. A constant is not a variable. It worked in most cases by accident, because we add constants to the global list of variables (why?), but float constants like 1.23 were interpreted as struct field references, and not found. Backpatch to 9.0, where the test for variable hiding was added.
2011-03-08Added new version of ecpg's parser test script which was written by Andy ↵Michael Meskes
Colson <andy@squeakycode.net>.
2011-03-03Added new version of ecpg's parser generator script. This one was written byMichael Meskes
Andy Colson <andy@squeakycode.net>.
2011-02-18Applied a patch by Zoltán Böszörményi that makes ecpg's parser accept ↵Michael Meskes
dynamic cursornames even in WHERE CURRENT OF clauses.
2011-01-09There is no need to have to identical functions in ecpg thus removing one of ↵Michael Meskes
them.
2011-01-08In ecpg's parser removed a fixed length limit for constants defining an ↵Michael Meskes
array dimension.
2011-01-01Stamp copyrights for year 2011.Bruce Momjian
2010-12-23Added rule to ecpg lexer to accept "Unicode surrogate pair in extended quotedMichael Meskes
string". This is not really needed because the string gets copied to the output untranslated anyway, but by adding this rule the lexer stays in sync with the backend lexer.
2010-11-23Remove useless whitespace at end of linesPeter Eisentraut
2010-11-14Cleanup various comparisons with the constant "true".Robert Haas
Itagaki Takahiro, with slight modifications.
2010-11-12Improved parallel make supportPeter Eisentraut
Replace for loops in makefiles with proper dependencies. Parallel make can now span across directories. Also, make -k and make -q work properly. GNU make 3.80 or newer is now required.
2010-11-02Some cleanup in ecpg code:Michael Meskes
Use bool as type for booleans instead of int. Do not implicitely cast size_t to int. Make the compiler stop complaining about unused variables by adding an empty statement.
2010-09-22Convert cvsignore to gitignore, and add .gitignore for build targets.Magnus Hagander
2010-09-20Remove cvs keywords from all files.Magnus Hagander
2010-09-19Fix several broken $PostgreSQL$ keywords. Noted while experimentingTom Lane
with Magnus's script to remove these.
2010-09-10Cursor names in the backend are not case-sensitve. This change makes sure thatMichael Meskes
ecpg also does not regard cursor names as case-sensitive. Thanks to Zoltan Boszormenyi for the patch.
2010-08-19Remove extra newlines at end and beginning of files, add missing newlinesPeter Eisentraut
at end of files.