~ubuntu-branches/ubuntu/trusty/postgresql-9.3/trusty-proposed

« back to all changes in this revision

Viewing changes to src/backend/nodes/outfuncs.c

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2014-07-24 16:13:59 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20140724161359-uk325qfv03euxuuh
Tags: 9.3.5-0ubuntu0.14.04.1
* New upstream bug fix release: (LP: #1348176)
  - pg_upgrade: Users who upgraded to version 9.3 using pg_upgrade may have
    an issue with transaction information which causes VACUUM to eventually
    fail. These users should run the script provided in the release notes to
    determine if their installation is affected, and then take the remedy
    steps outlined there.
  - Various data integrity and other bug fixes.
  - Secure Unix-domain sockets of temporary postmasters started during make
    check.
    Any local user able to access the socket file could connect as the
    server's bootstrap superuser, then proceed to execute arbitrary code as
    the operating-system user running the test, as we previously noted in
    CVE-2014-0067. This change defends against that risk by placing the
    server's socket in a temporary, mode 0700 subdirectory of /tmp.
  - See release notes for details:
    http://www.postgresql.org/about/news/1534/
* Remove pg_regress patches to support --host=/path, obsolete with above
  upstream changes and not applicable any more.
* Drop tcl8.6 patch, applied upstream.
* Add missing logrotate test dependency.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 * NOTES
14
14
 *        Every node type that can appear in stored rules' parsetrees *must*
15
15
 *        have an output function defined here (as well as an input function
16
 
 *        in readfuncs.c).      For use in debugging, we also provide output
 
16
 *        in readfuncs.c).  For use in debugging, we also provide output
17
17
 *        functions for nodes that appear in raw parsetrees, path, and plan trees.
18
18
 *        These nodes however need not have input functions.
19
19
 *
30
30
 
31
31
 
32
32
/*
33
 
 * Macros to simplify output of different kinds of fields.      Use these
34
 
 * wherever possible to reduce the chance for silly typos.      Note that these
 
33
 * Macros to simplify output of different kinds of fields.  Use these
 
34
 * wherever possible to reduce the chance for silly typos.  Note that these
35
35
 * hard-wire conventions about the names of the local variables in an Out
36
36
 * routine.
37
37
 */
2469
2469
                        appendStringInfoString(str, value->val.str);
2470
2470
                        break;
2471
2471
                case T_String:
 
2472
 
 
2473
                        /*
 
2474
                         * We use _outToken to provide escaping of the string's content,
 
2475
                         * but we don't want it to do anything with an empty string.
 
2476
                         */
2472
2477
                        appendStringInfoChar(str, '"');
2473
 
                        _outToken(str, value->val.str);
 
2478
                        if (value->val.str[0] != '\0')
 
2479
                                _outToken(str, value->val.str);
2474
2480
                        appendStringInfoChar(str, '"');
2475
2481
                        break;
2476
2482
                case T_BitString: