mirror of
https://github.com/postgres/postgres.git
synced 2026-10-23 13:29:09 +03:00
isSimpleNode() and related code treated every XmlExpr as self-delimiting. Most of them are, because they look like function calls with some extra decoration. But "x IS DOCUMENT" is not: it is a postfix test, like IS NULL. Printed as the operand of another operator, or as the operand of a postfix test, it was therefore not parenthesized and could not be parsed back, or was parsed as something unintended. Under-parenthesization occurred even in non-pretty-print cases, so that this could break dump/restore workflows. To fix, treat IS DOCUMENT as neither simple nor function-like, and give it the same treatment as other postfix tests. Also pass the single argument of IS DOCUMENT, not the argument list, to get_rule_expr_paren(). This avoids unnecessary parenthesization of the argument. Author: Henson Choi <assam258@gmail.com> Reviewed-by: Prashant Chinnam <crprashant@hotmail.com> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/CAAAe_zDuPSkc8ihCctV67Lxbqock+S4wqCHHo8xxZ1t4teXo0g@mail.gmail.com Backpatch-through: 14
PostgreSQL tests ================ This directory contains a variety of test infrastructure as well as some of the tests in PostgreSQL. Not all tests are here -- in particular, there are more in individual contrib/ modules and in src/bin. Not all these tests get run by "make check". Check src/test/Makefile to see which tests get run automatically. authentication/ Tests for authentication (but see also below) examples/ Demonstration programs for libpq that double as regression tests via "make check" isolation/ Tests for concurrent behavior at the SQL level kerberos/ Tests for Kerberos/GSSAPI authentication and encryption ldap/ Tests for LDAP-based authentication locale/ Sanity checks for locale data, encodings, etc mb/ Tests for multibyte encoding (UTF-8) support modules/ Extensions used only or mainly for test purposes, generally not suitable for installing in production databases perl/ Infrastructure for Perl-based TAP tests recovery/ Test suite for recovery and replication regress/ PostgreSQL's main regression test suite, pg_regress ssl/ Tests to exercise and verify SSL certificate handling subscription/ Tests for logical replication