Get rid of scribbling on a const variable in psql's print.c.

Commit a2dabf0e1d had the bright idea that it could modify a "const"
global variable if it merely casted away const from a pointer.  This does
not work on platforms where the compiler puts "const" variables into
read-only storage.  Depressingly, we evidently have no such platforms in
our buildfarm ... an oversight I have now remedied.  (The one platform
that is known to catch this is recent OS X with -fno-common.)

Per report from Chris Ruprecht.  Back-patch to 9.5 where the bogus
code was introduced.
This commit is contained in:
Tom Lane 2016-03-12 18:16:24 -05:00
parent 23a27b039d
commit fc7a9dfddb
2 changed files with 3 additions and 3 deletions

View File

@ -98,7 +98,7 @@ const printTextFormat pg_asciiformat_old =
};
/* Default unicode linestyle format */
const printTextFormat pg_utf8format;
printTextFormat pg_utf8format;
typedef struct unicodeStyleRowFormat
{
@ -3412,7 +3412,7 @@ get_line_style(const printTableOpt *opt)
void
refresh_utf8format(const printTableOpt *opt)
{
printTextFormat *popt = (printTextFormat *) &pg_utf8format;
printTextFormat *popt = &pg_utf8format;
const unicodeStyleBorderFormat *border;
const unicodeStyleRowFormat *header;

View File

@ -163,7 +163,7 @@ typedef struct printQueryOpt
extern const printTextFormat pg_asciiformat;
extern const printTextFormat pg_asciiformat_old;
extern const printTextFormat pg_utf8format;
extern printTextFormat pg_utf8format; /* ideally would be const, but... */
extern void disable_sigpipe_trap(void);