| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we know about the %top{} trick, we can revert to building flex
lexers as separate .o files. This is worth doing for a couple of reasons
besides sheer cleanliness. We can narrow the scope of the -Wno-error flag
that's forced on scan.c. Also, since these grammar and lexer files are
so large, splitting them into separate build targets should have some
advantages in build speed, particularly in parallel or ccache'd builds.
We have quite a few other .l files that could be changed likewise, but the
above arguments don't apply to them, so the benefit of fixing them seems
pretty minimal. Leave the rest for some other day.
|
| |
|
|
|
|
|
|
|
|
| |
This provides a mechanism for specifying conversions between SQL data
types and procedural languages. As examples, there are transforms
for hstore and ltree for PL/Perl and PL/Python.
reviews by Pavel Stěhule and Andres Freund
|
| |
|
|
|
|
| |
Patch by Böszörményi Zoltán <zb@cybertec.at>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
variables is varchar. This fixes this test case:
int main(void)
{
exec sql begin declare section;
varchar a[50], b[50];
exec sql end declare section;
return 0;
}
Since varchars are internally turned into custom structs and
the type name is emitted for these variable declarations,
the preprocessed code previously had:
struct varchar_1 { ... } a _,_ struct varchar_2 { ... } b ;
The comma in the generated C file was a syntax error.
There are no regression test changes since it's not exercised.
Patch by Boszormenyi Zoltan <zb@cybertec.at>
|
|
|
|
| |
The last fix used the wrong non-terminal to define valid types.
|
|
|
|
| |
When parsing C variable definitions ecpg should allow sizeof() operators as array dimensions.
|
|
|
|
|
| |
This allows decorating mmfatal() with noreturn compiler hints, leading
to better diagnostics.
|
|
|
|
|
| |
mm_strdup() is provided to check errors from strdup(), but some places
were failing to use it.
|
|
|
|
| |
Josh Kupershmidt
|
|
|
|
| |
With a unique counter being added anyway, there is no need anymore to have the variable name listed, too.
|
|
|
|
| |
These are not touched by pgindent, so clean them up a bit manually.
|
|
|
|
| |
We have a SCM, so we don't need to keep old versions of files around.
|
|
|
|
| |
Andy Colson <andy@squeakycode.net>.
|
|
|
|
| |
them.
|
|
|
|
| |
array dimension.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
ecpg also does not regard cursor names as case-sensitive.
Thanks to Zoltan Boszormenyi for the patch.
|
|
|
|
| |
'AC_TYPE_LONG_LONG_INT' macro call.
|
|
|
|
| |
used to cover the equally long "long long" type. This patch closes bug #5464.
|
|
|
|
| |
ecpg.
|
|
|
|
|
|
|
|
| |
command.
Informix allows variables as argument to the embedded SQL command FREE. Given
that we only allow freeing cursors via FREE for compatibility reasons only we
should do the same.
|
|
|
|
| |
declare section.
|
|
|
|
| |
these definitions unique, too. It used to use the linenumber but in the rare case of two definitions in one line this was not unique.
|
|
|
|
|
|
|
|
| |
order
so regression testing is possible,
by Zoltan Boszormenyi
|
|
|
|
| |
cursor support to native mode.
|
|
|
|
| |
[OUTPUT] statement to ecpg.
|
|
|
|
| |
ecpg in both native and compatiblity mode.
|
|
|
|
| |
Boszormenyi Zoltan, with only a minor tweak or two from me.
|
|
|
|
|
|
|
|
|
|
|
| |
list, minus a few specific words that have to be treated specially. This
replaces a hard-wired list of keywords that would have needed manual
maintenance, and was not getting it. The 8.4 coding was already missing
these words, causing ecpg to incorrectly treat them as reserved words:
CALLED, CATALOG, DEFINER, ENUM, FOLLOWING, INVOKER, OPTIONS, PARTITION,
PRECEDING, RANGE, SECURITY, SERVER, UNBOUNDED, WRAPPER. In HEAD we were
additionally missing COMMENTS, FUNCTIONS, SEQUENCES, TABLES.
Per gripe from Bosco Rama.
|
|
|
|
|
|
|
| |
This is a preparatory patch for allowing a dynamic cursor name be used in the
ECPG grammar.
Author: Zoltan Boszormenyi
|
|
|
|
|
|
|
|
| |
it works just as well to have them be ordinary identifiers, and this gets rid
of a number of ugly special cases. Plus we aren't interfering with non-rule
usage of these names.
catversion bump because the names change internally in stored rules.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to create a function for it.
Procedural languages now have an additional entry point, namely a function
to execute an inline code block. This seemed a better design than trying
to hide the transient-ness of the code from the PL. As of this patch, only
plpgsql has an inline handler, but probably people will soon write handlers
for the other standard PLs.
In passing, remove the long-dead LANCOMPILER option of CREATE LANGUAGE.
Petr Jelinek
|
|
|
|
| |
Böszörményi Zoltán <zb@cybertec.at>.
|
|
|
|
| |
based on a patch send in by Böszörményi Zoltán <zb@cybertec.at>.
|
| |
|
|
|
|
|
|
| |
__attribute__() marker so that gcc can validate the format string against
the actual arguments, get rid of overcomplicated and unsafe usage in
base_yyerror().
|
|
|
|
| |
LC_COLLATE and LC_CTYPE, per discussion on pgsql-hackers.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|