[COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-level subtree

2016-12-11 Thread Tom Lane
Prevent crash when ts_rewrite() replaces a non-top-level subtree with null.

When ts_rewrite()'s replacement argument is an empty tsquery, it's supposed
to simplify any operator nodes whose operand(s) become NULL; but it failed
to do that reliably, because dropvoidsubtree() only examined the top level
of the result tree.  Rather than make a second recursive pass, let's just
give the responsibility to dofindsubquery() to simplify while it's doing
the main replacement pass.  Per report from Andreas Seltenreich.

Artur Zakirov, with some cosmetic changes by me.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_3_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/79e1a9efa808d2e15ea41d06d7696a6daab05467

Modified Files
--
src/backend/utils/adt/tsquery_rewrite.c | 58 -
src/test/regress/expected/tsearch.out   | 15 +
src/test/regress/sql/tsearch.sql|  3 ++
3 files changed, 47 insertions(+), 29 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-level subtree

2016-12-11 Thread Tom Lane
Prevent crash when ts_rewrite() replaces a non-top-level subtree with null.

When ts_rewrite()'s replacement argument is an empty tsquery, it's supposed
to simplify any operator nodes whose operand(s) become NULL; but it failed
to do that reliably, because dropvoidsubtree() only examined the top level
of the result tree.  Rather than make a second recursive pass, let's just
give the responsibility to dofindsubquery() to simplify while it's doing
the main replacement pass.  Per report from Andreas Seltenreich.

Artur Zakirov, with some cosmetic changes by me.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_6_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/c8bfe055be9c688d7084546245c59f7f12a7c606

Modified Files
--
src/backend/utils/adt/tsquery_rewrite.c | 58 -
src/test/regress/expected/tsearch.out   | 15 +
src/test/regress/sql/tsearch.sql|  3 ++
3 files changed, 47 insertions(+), 29 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-level subtree

2016-12-11 Thread Tom Lane
Prevent crash when ts_rewrite() replaces a non-top-level subtree with null.

When ts_rewrite()'s replacement argument is an empty tsquery, it's supposed
to simplify any operator nodes whose operand(s) become NULL; but it failed
to do that reliably, because dropvoidsubtree() only examined the top level
of the result tree.  Rather than make a second recursive pass, let's just
give the responsibility to dofindsubquery() to simplify while it's doing
the main replacement pass.  Per report from Andreas Seltenreich.

Artur Zakirov, with some cosmetic changes by me.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/[email protected]

Branch
--
master

Details
---
http://git.postgresql.org/pg/commitdiff/0eaaaf00e296c2048b868b7c1d3c12c0eae6dd12

Modified Files
--
src/backend/utils/adt/tsquery_rewrite.c | 58 -
src/test/regress/expected/tsearch.out   | 15 +
src/test/regress/sql/tsearch.sql|  3 ++
3 files changed, 47 insertions(+), 29 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-level subtree

2016-12-11 Thread Tom Lane
Prevent crash when ts_rewrite() replaces a non-top-level subtree with null.

When ts_rewrite()'s replacement argument is an empty tsquery, it's supposed
to simplify any operator nodes whose operand(s) become NULL; but it failed
to do that reliably, because dropvoidsubtree() only examined the top level
of the result tree.  Rather than make a second recursive pass, let's just
give the responsibility to dofindsubquery() to simplify while it's doing
the main replacement pass.  Per report from Andreas Seltenreich.

Artur Zakirov, with some cosmetic changes by me.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_5_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/c6caa520008761b2ce9c88f46e537d3044cf7c96

Modified Files
--
src/backend/utils/adt/tsquery_rewrite.c | 58 -
src/test/regress/expected/tsearch.out   | 15 +
src/test/regress/sql/tsearch.sql|  3 ++
3 files changed, 47 insertions(+), 29 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-level subtree

2016-12-11 Thread Tom Lane
Prevent crash when ts_rewrite() replaces a non-top-level subtree with null.

When ts_rewrite()'s replacement argument is an empty tsquery, it's supposed
to simplify any operator nodes whose operand(s) become NULL; but it failed
to do that reliably, because dropvoidsubtree() only examined the top level
of the result tree.  Rather than make a second recursive pass, let's just
give the responsibility to dofindsubquery() to simplify while it's doing
the main replacement pass.  Per report from Andreas Seltenreich.

Artur Zakirov, with some cosmetic changes by me.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_4_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/6f5cb982e7df8f277505fd2028be83211d586769

Modified Files
--
src/backend/utils/adt/tsquery_rewrite.c | 58 -
src/test/regress/expected/tsearch.out   | 15 +
src/test/regress/sql/tsearch.sql|  3 ++
3 files changed, 47 insertions(+), 29 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Prevent crash when ts_rewrite() replaces a non-top-level subtree

2016-12-11 Thread Tom Lane
Prevent crash when ts_rewrite() replaces a non-top-level subtree with null.

When ts_rewrite()'s replacement argument is an empty tsquery, it's supposed
to simplify any operator nodes whose operand(s) become NULL; but it failed
to do that reliably, because dropvoidsubtree() only examined the top level
of the result tree.  Rather than make a second recursive pass, let's just
give the responsibility to dofindsubquery() to simplify while it's doing
the main replacement pass.  Per report from Andreas Seltenreich.

Artur Zakirov, with some cosmetic changes by me.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_2_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/f4ccee408d7fc9d52adf9a9153130f1298e3acb1

Modified Files
--
src/backend/utils/adt/tsquery_rewrite.c | 58 -
src/test/regress/expected/tsearch.out   | 15 +
src/test/regress/sql/tsearch.sql|  3 ++
3 files changed, 47 insertions(+), 29 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Use "%option prefix" to set API names in ecpg's lexer.

2016-12-11 Thread Tom Lane
Use "%option prefix" to set API names in ecpg's lexer.

Clean up some technical debt left behind by commit 72b1e3a21: instead of
quickly hacking the name of base_yylex() with a #define, set it properly
with "%option prefix".  This causes the names of pgc.l's other exported
symbols to change as well, so run around and modify the outside references
to them as needed.  Similarly, make pgc.l's external references to
base_yylval use that variable's true name instead of a macro.

The reason for doing this now is that the quick-hack solution will fail
with future versions of flex, as reported by Дилян Палаузов.
Hence, back-patch into 9.6 where the previous commit appeared, since
it's likely people will build 9.6 with newer flex versions during
its lifetime.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_6_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/89d1dfa49aaff7c0b90de2c91dbb314e1a57eb62

Modified Files
--
src/interfaces/ecpg/preproc/descriptor.c | 28 +++---
src/interfaces/ecpg/preproc/ecpg.addons  | 30 +++
src/interfaces/ecpg/preproc/ecpg.c   | 40 +--
src/interfaces/ecpg/preproc/ecpg.header  | 12 +++---
src/interfaces/ecpg/preproc/ecpg.trailer | 18 -
src/interfaces/ecpg/preproc/extern.h | 10 ++---
src/interfaces/ecpg/preproc/output.c | 66 
src/interfaces/ecpg/preproc/parser.c | 10 ++---
src/interfaces/ecpg/preproc/pgc.l| 66 ++--
src/interfaces/ecpg/preproc/variable.c   |  2 +-
10 files changed, 138 insertions(+), 144 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Use "%option prefix" to set API names in ecpg's lexer.

2016-12-11 Thread Tom Lane
Use "%option prefix" to set API names in ecpg's lexer.

Clean up some technical debt left behind by commit 72b1e3a21: instead of
quickly hacking the name of base_yylex() with a #define, set it properly
with "%option prefix".  This causes the names of pgc.l's other exported
symbols to change as well, so run around and modify the outside references
to them as needed.  Similarly, make pgc.l's external references to
base_yylval use that variable's true name instead of a macro.

The reason for doing this now is that the quick-hack solution will fail
with future versions of flex, as reported by Дилян Палаузов.
Hence, back-patch into 9.6 where the previous commit appeared, since
it's likely people will build 9.6 with newer flex versions during
its lifetime.

Discussion: https://postgr.es/m/[email protected]

Branch
--
master

Details
---
http://git.postgresql.org/pg/commitdiff/92fb649837e36944bd0e9eed6c90b4b01b7deb18

Modified Files
--
src/interfaces/ecpg/preproc/descriptor.c | 28 +++---
src/interfaces/ecpg/preproc/ecpg.addons  | 30 +++
src/interfaces/ecpg/preproc/ecpg.c   | 40 +--
src/interfaces/ecpg/preproc/ecpg.header  | 12 +++---
src/interfaces/ecpg/preproc/ecpg.trailer | 18 -
src/interfaces/ecpg/preproc/extern.h | 10 ++---
src/interfaces/ecpg/preproc/output.c | 66 
src/interfaces/ecpg/preproc/parser.c | 10 ++---
src/interfaces/ecpg/preproc/pgc.l| 66 ++--
src/interfaces/ecpg/preproc/variable.c   |  2 +-
10 files changed, 138 insertions(+), 144 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l st

2016-12-11 Thread Tom Lane
Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l standalone.

Back-patch commit 72b1e3a21 into the pre-9.6 branches.

As noted in the original commit, this has some extra benefits: 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.

However, the real reason for doing this now is that it avoids symbol-
redefinition warnings (or worse) with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_4_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/7192865bdc48ded15caaba63fef313ff9e84eb71

Modified Files
--
src/backend/parser/Makefile  |  9 +++--
src/backend/parser/gram.y| 10 --
src/backend/parser/scan.l|  9 +
src/interfaces/ecpg/preproc/Makefile |  7 ++-
src/interfaces/ecpg/preproc/ecpg.trailer |  8 
src/interfaces/ecpg/preproc/pgc.l| 14 +-
6 files changed, 23 insertions(+), 34 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Use "%option prefix" to set API names in ecpg's lexer.

2016-12-11 Thread Tom Lane
Use "%option prefix" to set API names in ecpg's lexer.

Back-patch commit 92fb64983 into the pre-9.6 branches.

Without this, ecpg fails to build with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_3_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/2bdee07abefee3e59db9f89da635d7ecf9716a7b

Modified Files
--
src/interfaces/ecpg/preproc/descriptor.c | 31 ---
src/interfaces/ecpg/preproc/ecpg.addons  | 30 +++---
src/interfaces/ecpg/preproc/ecpg.c   | 40 +--
src/interfaces/ecpg/preproc/ecpg.header  | 12 +++---
src/interfaces/ecpg/preproc/ecpg.trailer | 18 -
src/interfaces/ecpg/preproc/extern.h | 10 ++---
src/interfaces/ecpg/preproc/output.c | 66 +++
src/interfaces/ecpg/preproc/pgc.l| 68 ++--
src/interfaces/ecpg/preproc/variable.c   |  2 +-
9 files changed, 136 insertions(+), 141 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Use "%option prefix" to set API names in ecpg's lexer.

2016-12-11 Thread Tom Lane
Use "%option prefix" to set API names in ecpg's lexer.

Back-patch commit 92fb64983 into the pre-9.6 branches.

Without this, ecpg fails to build with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_4_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/fb12471ebec11417d49e705e8cb77baaa53f0473

Modified Files
--
src/interfaces/ecpg/preproc/descriptor.c | 31 ---
src/interfaces/ecpg/preproc/ecpg.addons  | 30 +++---
src/interfaces/ecpg/preproc/ecpg.c   | 40 +--
src/interfaces/ecpg/preproc/ecpg.header  | 12 +++---
src/interfaces/ecpg/preproc/ecpg.trailer | 18 -
src/interfaces/ecpg/preproc/extern.h | 10 ++---
src/interfaces/ecpg/preproc/output.c | 66 +++
src/interfaces/ecpg/preproc/pgc.l| 68 ++--
src/interfaces/ecpg/preproc/variable.c   |  2 +-
9 files changed, 136 insertions(+), 141 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l st

2016-12-11 Thread Tom Lane
Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l standalone.

Back-patch commit 72b1e3a21 into the pre-9.6 branches.

As noted in the original commit, this has some extra benefits: 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.

However, the real reason for doing this now is that it avoids symbol-
redefinition warnings (or worse) with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_2_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/329361cfa3209f65f44808535b2e9b7708781d89

Modified Files
--
src/backend/parser/Makefile  |  9 +++--
src/backend/parser/gram.y| 10 --
src/backend/parser/scan.l|  9 +
src/interfaces/ecpg/preproc/Makefile |  7 ++-
src/interfaces/ecpg/preproc/ecpg.trailer |  8 
src/interfaces/ecpg/preproc/pgc.l| 14 +-
6 files changed, 23 insertions(+), 34 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l st

2016-12-11 Thread Tom Lane
Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l standalone.

Back-patch commit 72b1e3a21 into the pre-9.6 branches.

As noted in the original commit, this has some extra benefits: 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.

However, the real reason for doing this now is that it avoids symbol-
redefinition warnings (or worse) with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_5_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/4262c5b1eecc63f12f86daa293428009eee54b5c

Modified Files
--
src/backend/parser/Makefile  |  9 +++--
src/backend/parser/gram.y| 10 --
src/backend/parser/scan.l|  9 +
src/interfaces/ecpg/preproc/Makefile |  7 ++-
src/interfaces/ecpg/preproc/ecpg.trailer |  8 
src/interfaces/ecpg/preproc/pgc.l| 14 +-
6 files changed, 23 insertions(+), 34 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l st

2016-12-11 Thread Tom Lane
Build backend/parser/scan.l and interfaces/ecpg/preproc/pgc.l standalone.

Back-patch commit 72b1e3a21 into the pre-9.6 branches.

As noted in the original commit, this has some extra benefits: 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.

However, the real reason for doing this now is that it avoids symbol-
redefinition warnings (or worse) with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_3_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/73ae395d84198ff14792522c79471975936ee76a

Modified Files
--
src/backend/parser/Makefile  |  9 +++--
src/backend/parser/gram.y| 10 --
src/backend/parser/scan.l|  9 +
src/interfaces/ecpg/preproc/Makefile |  7 ++-
src/interfaces/ecpg/preproc/ecpg.trailer |  8 
src/interfaces/ecpg/preproc/pgc.l| 14 +-
6 files changed, 23 insertions(+), 34 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Use "%option prefix" to set API names in ecpg's lexer.

2016-12-11 Thread Tom Lane
Use "%option prefix" to set API names in ecpg's lexer.

Back-patch commit 92fb64983 into the pre-9.6 branches.

Without this, ecpg fails to build with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_5_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/15b3722700ca043494804dfd1fe7556c50d4f9e9

Modified Files
--
src/interfaces/ecpg/preproc/descriptor.c | 31 ---
src/interfaces/ecpg/preproc/ecpg.addons  | 30 +++
src/interfaces/ecpg/preproc/ecpg.c   | 40 +--
src/interfaces/ecpg/preproc/ecpg.header  | 12 +++---
src/interfaces/ecpg/preproc/ecpg.trailer | 18 -
src/interfaces/ecpg/preproc/extern.h | 10 ++---
src/interfaces/ecpg/preproc/output.c | 66 
src/interfaces/ecpg/preproc/parser.c | 10 ++---
src/interfaces/ecpg/preproc/pgc.l| 66 ++--
src/interfaces/ecpg/preproc/variable.c   |  2 +-
10 files changed, 140 insertions(+), 145 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Use "%option prefix" to set API names in ecpg's lexer.

2016-12-11 Thread Tom Lane
Use "%option prefix" to set API names in ecpg's lexer.

Back-patch commit 92fb64983 into the pre-9.6 branches.

Without this, ecpg fails to build with the latest version of flex.
It's not unreasonable that people would want to compile our old branches
with recent tools.  Per report from Дилян Палаузов.

Discussion: https://postgr.es/m/[email protected]

Branch
--
REL9_2_STABLE

Details
---
http://git.postgresql.org/pg/commitdiff/2d48131ed1442f87e196dfe99e4904a69f1daed3

Modified Files
--
src/interfaces/ecpg/preproc/descriptor.c | 31 ---
src/interfaces/ecpg/preproc/ecpg.addons  | 30 +++---
src/interfaces/ecpg/preproc/ecpg.c   | 40 +--
src/interfaces/ecpg/preproc/ecpg.header  | 12 +++---
src/interfaces/ecpg/preproc/ecpg.trailer | 18 -
src/interfaces/ecpg/preproc/extern.h | 10 ++---
src/interfaces/ecpg/preproc/output.c | 66 +++
src/interfaces/ecpg/preproc/pgc.l| 68 ++--
src/interfaces/ecpg/preproc/variable.c   |  2 +-
9 files changed, 136 insertions(+), 141 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers


[COMMITTERS] pgsql: Fix broken autoconf test for random number source.

2016-12-11 Thread Heikki Linnakangas
Fix broken autoconf test for random number source.

Hopefully this fixes buildfarm member jacana.

Discussion: 
https://www.postgresql.org/message-id/[email protected]

Branch
--
master

Details
---
http://git.postgresql.org/pg/commitdiff/ad365b2f91dc57ed1f18839f9f59a2799d276c8d

Modified Files
--
configure| 2 +-
configure.in | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)


-- 
Sent via pgsql-committers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers