postgresql/src
Tom Lane 53c2bb78db Fix ecpg bugs caused by missing semicolons in the backend grammar.
The Bison documentation clearly states that a semicolon is required
after every grammar rule, and our scripts that generate ecpg's
grammar from the backend's implicitly assumed this is true.  But it
turns out that only ancient versions of Bison actually enforce that.
There have been a couple of rules without trailing semicolons in
gram.y for some time, and as a consequence, ecpg's grammar was faulty
and produced wrong output for the affected statements.

To fix, add the missing semis, and add some cross-checks to ecpg's
scripts so that they'll bleat if we mess this up again.

The cases that were broken were:
* "SET variable = DEFAULT" (but not "SET variable TO DEFAULT"),
  as well as allied syntaxes such as ALTER SYSTEM SET ... DEFAULT.
  These produced syntactically invalid output that the server
  would reject.
* Multiple type names in DROP TYPE/DOMAIN commands.  Only the
  first type name would be listed in the emitted command.

Per report from Daisuke Higuchi.  Back-patch to all supported versions.

Discussion: https://postgr.es/m/1803D792815FC24D871C00D17AE95905DB51CE@g01jpexmbkw24
2019-02-24 12:51:51 -05:00
..
backend Fix ecpg bugs caused by missing semicolons in the backend grammar. 2019-02-24 12:51:51 -05:00
bin Tolerate EINVAL when calling fsync() on a directory. 2019-02-25 00:02:56 +13:00
common Fix portability failure introduced in commits d2b0b60e7 et al. 2018-12-26 15:30:40 -05:00
include Stamp 9.4.21. 2019-02-11 16:24:38 -05:00
interfaces Fix ecpg bugs caused by missing semicolons in the backend grammar. 2019-02-24 12:51:51 -05:00
makefiles Add PG_CFLAGS, PG_CXXFLAGS, and PG_LDFLAGS variables to PGXS 2019-02-03 17:49:04 +09:00
pl Fix misc typos in comments. 2019-01-23 13:47:05 +02:00
port Stamp 9.4.21. 2019-02-11 16:24:38 -05:00
template Yet further rethinking of build changes for macOS Mojave. 2018-11-02 18:54:00 -04:00
test Fix plan created for inherited UPDATE/DELETE with all tables excluded. 2019-02-22 12:23:00 -05:00
timezone Update time zone data files to tzdata release 2018i. 2019-02-05 10:59:38 -05:00
tools Unify searchpath and do file logic in MSVC build scripts. 2019-02-06 07:55:22 -05:00
tutorial pgindent run for 9.4 2014-05-06 12:12:18 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Install TAP test infrastructure so it's available for extension testing. 2016-09-23 15:50:00 -04:00
Makefile.global.in fix typo 2019-01-13 16:44:31 -05:00
Makefile.shlib Ensure static libraries have correct mod time even if ranlib messes it up. 2018-11-29 15:53:44 -05:00
nls-global.mk nls-global.mk: search build dir for source files, too 2016-06-07 18:55:18 -04:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00