Re: bytea vs. pg_dump - Mailing list pgsql-hackers
From | Tom Lane |
---|---|
Subject | Re: bytea vs. pg_dump |
Date | |
Msg-id | 7722.1249404459@sss.pgh.pa.us Whole thread Raw |
In response to | Re: bytea vs. pg_dump (Tom Lane <tgl@sss.pgh.pa.us>) |
List | pgsql-hackers |
I wrote: > While I've been poking at the pg_dump issues, it's occurred to me that > changing the default would be a great forcing function for finding out > any lurking problems. What I'm inclined to do now is to commit it > *with* the change of default, and let it be that way at least for a > few alpha-test releases. We can vote on whether to switch the default > back before 8.5 final. For the archives, attached is a patch to switch the default and then make pg_dump force use of hex mode. This is just so we won't forget what needs changing if we decide to switch the default back ... regards, tom lane *** doc/src/sgml/config.sgml.orig Tue Aug 4 12:08:35 2009 --- doc/src/sgml/config.sgml Tue Aug 4 12:40:34 2009 *************** *** 4068,4078 **** <listitem> <para> Sets the output format for values of type <type>bytea</type>. ! Valid values are <literal>hex</literal> (the default) and <literal>escape</literal> (the traditional PostgreSQL format). See <xref linkend="datatype-binary"> for more information. The <type>bytea</type> type always accepts both formats on input, regardless of this setting. </para> </listitem> </varlistentry> --- 4068,4079 ---- <listitem> <para> Sets the output format for values of type <type>bytea</type>. ! Valid values are <literal>hex</literal> and <literal>escape</literal> (the traditional PostgreSQL format). See <xref linkend="datatype-binary"> for more information. The <type>bytea</type> type always accepts both formats on input, regardless of this setting. + The default is <literal>escape</literal>. </para> </listitem> </varlistentry> *** doc/src/sgml/datatype.sgml.orig Tue Aug 4 12:08:35 2009 --- doc/src/sgml/datatype.sgml Tue Aug 4 12:41:03 2009 *************** *** 1196,1202 **** <quote>escape</quote> format, and <quote>hex</quote> format. Both of these are always accepted on input. The output format depends on the configuration parameter <xref linkend="guc-bytea-output">; ! the default is hex. (Note that the hex format was introduced in <productname>PostgreSQL</productname> 8.5; earlier versions and some tools don't understand it.) </para> --- 1196,1202 ---- <quote>escape</quote> format, and <quote>hex</quote> format. Both of these are always accepted on input. The output format depends on the configuration parameter <xref linkend="guc-bytea-output">; ! the default is escape. (Note that the hex format was introduced in <productname>PostgreSQL</productname> 8.5; earlier versions and some tools don't understand it.) </para> *** src/backend/utils/adt/varlena.c.orig Tue Aug 4 12:08:36 2009 --- src/backend/utils/adt/varlena.c Tue Aug 4 12:42:36 2009 *************** *** 30,36 **** /* GUC variable */ ! int bytea_output = BYTEA_OUTPUT_HEX; typedef struct varlena unknown; --- 30,36 ---- /* GUC variable */ ! int bytea_output = BYTEA_OUTPUT_ESCAPE; typedef struct varlena unknown; *** src/backend/utils/misc/guc.c.orig Tue Aug 4 12:08:36 2009 --- src/backend/utils/misc/guc.c Tue Aug 4 12:42:04 2009 *************** *** 2553,2559 **** NULL }, &bytea_output, ! BYTEA_OUTPUT_HEX, bytea_output_options, NULL, NULL }, { --- 2553,2559 ---- NULL }, &bytea_output, ! BYTEA_OUTPUT_ESCAPE, bytea_output_options, NULL, NULL }, { *** src/backend/utils/misc/postgresql.conf.sample.orig Mon Aug 3 15:59:39 2009 --- src/backend/utils/misc/postgresql.conf.sample Tue Aug 4 12:42:15 2009 *************** *** 424,430 **** #statement_timeout = 0 # in milliseconds, 0 is disabled #vacuum_freeze_min_age = 50000000 #vacuum_freeze_table_age = 150000000 ! #bytea_output = 'hex' # hex, escape #xmlbinary = 'base64' #xmloption = 'content' --- 424,430 ---- #statement_timeout = 0 # in milliseconds, 0 is disabled #vacuum_freeze_min_age = 50000000 #vacuum_freeze_table_age = 150000000 ! #bytea_output = 'escape' # hex, escape #xmlbinary = 'base64' #xmloption = 'content' *** src/bin/pg_dump/pg_dump.c.orig Tue Aug 4 12:08:36 2009 --- src/bin/pg_dump/pg_dump.c Tue Aug 4 12:39:39 2009 *************** *** 599,604 **** --- 599,610 ---- do_sql_command(g_conn, "SET extra_float_digits TO 2"); /* + * If supported, select hex format for bytea, for speed reasons. + */ + if (g_fout->remoteVersion >= 80500) + do_sql_command(g_conn, "SET bytea_output TO hex"); + + /* * If synchronized scanning is supported, disable it, to prevent * unpredictable changes in row ordering across a dump and reload. */
pgsql-hackers by date: