<p>Try a single table dump then feed through perl and output to a file.  Now attempt the pgrestore to find which table is choking. I&#39;m starting to think the problem is the restore not the perl. <br>
I&#39;ve never had to do a character translation like this before on a database. My pg stuff always goes to files as an intermediate step unless it&#39;s an emergency replication.<br>
Need to do a search for the offending character in the pgdump.</p>
<div class="gmail_quote">On Apr 1, 2011 7:45 AM, &quot;Geoffrey Myers&quot; &lt;<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt; wrote:<br type="attribution">&gt; Jim Kinney wrote:<br>&gt;&gt; I was searching for a clue and saw the post on the pg list :-) Got all <br>
&gt;&gt; excited thinking I had found a solution to point to you to! Then I <br>&gt;&gt; realized, &quot;Hey! This looks REALLY similar...&quot;<br>&gt;&gt; <br>&gt;&gt; Maybe a single run then a grep for non-ascii characters?<br>
&gt; <br>&gt; Not sure what you&#39;re suggesting.  The perl code is pulling the data out <br>&gt; of the database, cleaning it, putting it back in.  Are you suggesting <br>&gt; pulling the data out and piping to grep?  Are you thinking there&#39;s a bug <br>
&gt; in the perl code?<br>&gt; <br>&gt;&gt; <br>&gt;&gt; On Thu, Mar 31, 2011 at 4:11 PM, Geoffrey Myers <br>&gt;&gt; &lt;<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a> &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt;&gt; wrote:<br>
&gt;&gt; <br>&gt;&gt;     Jim Kinney wrote:<br>&gt;&gt;      &gt; The &quot;g&quot; _should_ do it. Quite puzzling.<br>&gt;&gt;      &gt; Can you do a run and find an example of when it fails? Is it<br>&gt;&gt;     always 0xbd?<br>
&gt;&gt; <br>&gt;&gt;     The sad thing is, all it tells me is which table in the database has the<br>&gt;&gt;     error.  It does not identify the field.  I&#39;ve posted to the Postgres<br>&gt;&gt;     list to see if there&#39;s any way to narrow down the culprit, there is not.<br>
&gt;&gt; <br>&gt;&gt;     Once it fails, it stops loading that table, so I never get pass this<br>&gt;&gt;     error.<br>&gt;&gt; <br>&gt;&gt;     When I first caught this error, I was simply trying to load an SQL_ASCII<br>
&gt;&gt;     database dump into a UTF8 database.  That&#39;s when I wrote my<br>&gt;&gt;     <a href="http://cleandata.pl">cleandata.pl</a> &lt;<a href="http://cleandata.pl">http://cleandata.pl</a>&gt;<br>&gt;&gt;     code.  The code cleans 62750 records.  I just don&#39;t understand why it<br>
&gt;&gt;     doesn&#39;t fix this one.<br>&gt;&gt; <br>&gt;&gt;      &gt; Maybe someone in Tibet doesn&#39;t like your code :-)  (It&#39;s a Tibetan<br>&gt;&gt;      &gt; character code in utf8)<br>&gt;&gt; <br>&gt;&gt;     But what is it in SQL_ASCII?  What happened is, some enterprising users<br>
&gt;&gt;     figured out how to enter special characters from the keyboard, say, like<br>&gt;&gt;     a degrees symbol.  That goes in to the SQL_ASCII database fine, but when<br>&gt;&gt;     you try to load that into the UTF8 encoded database, it pukes.<br>
&gt;&gt; <br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt; On Thu, Mar 31, 2011 at 2:59 PM, Geoffrey Myers<br>&gt;&gt;      &gt; &lt;<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a> &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt;<br>
&gt;&gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a><br>&gt;&gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt;&gt;&gt; wrote:<br>
&gt;&gt;      &gt;<br>&gt;&gt;      &gt;     Jim Kinney wrote:<br>&gt;&gt;      &gt;      &gt; should it be replaced with nothing or with a NULL? Does<br>&gt;&gt;     the perl<br>&gt;&gt;      &gt;     pointer<br>&gt;&gt;      &gt;      &gt; jump to the next character automatically when a match is<br>
&gt;&gt;     made thus<br>&gt;&gt;      &gt;      &gt; skipping a character in your replace? Does a double run<br>&gt;&gt;     fix it?<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;     Missed the first question.  It should be removed, not<br>
&gt;&gt;     replaced with an<br>&gt;&gt;      &gt;     null.  For example I have:<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;     This is my &lt;UGLY CHARACTER&gt;data<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;     Should then be:<br>
&gt;&gt;      &gt;<br>&gt;&gt;      &gt;     This is my data<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt; On Thu, Mar 31, 2011 at 12:04 PM, Geoffrey Myers<br>&gt;&gt;      &gt;      &gt; &lt;<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a><br>
&gt;&gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt;<br>&gt;&gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a><br>&gt;&gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt;&gt;<br>
&gt;&gt;      &gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a><br>&gt;&gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt;<br>
&gt;&gt;      &gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a><br>&gt;&gt;     &lt;mailto:<a href="mailto:lists@serioustechnology.com">lists@serioustechnology.com</a>&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     So, we are trying to convert a number of postgresql<br>&gt;&gt;     databases<br>&gt;&gt;      &gt;     that were<br>&gt;&gt;      &gt;      &gt;     created with SQL_ASCII encoding to UTF8 encoding.  As<br>
&gt;&gt;     such, I<br>&gt;&gt;      &gt;     need to<br>&gt;&gt;      &gt;      &gt;     strip certain characters out of the data before<br>&gt;&gt;     dumping and<br>&gt;&gt;      &gt;     reloading<br>&gt;&gt;      &gt;      &gt;     the new databases.  I&#39;m using the following:<br>
&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     data =~ s/(.)/((ord($1) &gt;= 0) &amp;&amp; (ord($1) &lt;= 8))<br>&gt;&gt;      &gt;      &gt;                     || (ord($1) == 11)<br>&gt;&gt;      &gt;      &gt;                     || ((ord($1) &gt;= 13) &amp;&amp; (ord($1) &lt;= 31))<br>
&gt;&gt;      &gt;      &gt;                     || ((ord($1) &gt;= 127)) ?&quot;&quot;: $1/egs;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     Yet I&#39;m getting the following error, which indicates a<br>
&gt;&gt;      &gt;     character that<br>&gt;&gt;      &gt;      &gt;     should be handled by the above code is still in the data:<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     pg_restore: [archiver (db)] COPY failed: ERROR:<br>
&gt;&gt;      invalid byte<br>&gt;&gt;      &gt;     sequence<br>&gt;&gt;      &gt;      &gt;     for encoding &quot;UTF8&quot;: 0xbd<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     Certainly, the above code should replace the 0xbd with<br>
&gt;&gt;     nothing?<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     Any perl/postgres gurus out there?<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     --<br>&gt;&gt;      &gt;      &gt;     Until later, Geoffrey<br>
&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;     &quot;I predict future happiness for America if they can<br>&gt;&gt;     prevent<br>&gt;&gt;      &gt;      &gt;     the government from wasting the labors of the people under<br>
&gt;&gt;      &gt;      &gt;     the pretense of taking care of them.&quot;<br>&gt;&gt;      &gt;      &gt;     - Thomas Jefferson<br>&gt;&gt;      &gt;      &gt;     _______________________________________________<br>&gt;&gt;      &gt;      &gt;     Ale mailing list<br>
&gt;&gt;      &gt;      &gt;     <a href="mailto:Ale@ale.org">Ale@ale.org</a> &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt; &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>&gt;&gt;     &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt;&gt; &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a> &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt;<br>
&gt;&gt;      &gt;     &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a> &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt;&gt;&gt;<br>&gt;&gt;      &gt;      &gt;     <a href="http://mail.ale.org/mailman/listinfo/ale">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt;&gt;      &gt;      &gt;     See JOBS, ANNOUNCE and SCHOOLS lists at<br>&gt;&gt;      &gt;      &gt;     <a href="http://mail.ale.org/mailman/listinfo">http://mail.ale.org/mailman/listinfo</a><br>&gt;&gt;      &gt;      &gt;<br>
&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt; --<br>&gt;&gt;      &gt;      &gt; --<br>&gt;&gt;      &gt;      &gt; James P. Kinney III<br>&gt;&gt;      &gt;      &gt; I would rather stumble along in freedom than walk<br>
&gt;&gt;     effortlessly in<br>&gt;&gt;      &gt;     chains.<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;    <br>&gt;&gt;     ------------------------------------------------------------------------<br>
&gt;&gt;      &gt;      &gt;<br>&gt;&gt;      &gt;      &gt; _______________________________________________<br>&gt;&gt;      &gt;      &gt; Ale mailing list<br>&gt;&gt;      &gt;      &gt; <a href="mailto:Ale@ale.org">Ale@ale.org</a> &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt; &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
&gt;&gt;     &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt;&gt;<br>&gt;&gt;      &gt;      &gt; <a href="http://mail.ale.org/mailman/listinfo/ale">http://mail.ale.org/mailman/listinfo/ale</a><br>&gt;&gt;      &gt;      &gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt;&gt;      &gt;      &gt; <a href="http://mail.ale.org/mailman/listinfo">http://mail.ale.org/mailman/listinfo</a><br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;     --<br>&gt;&gt;      &gt;     Until later, Geoffrey<br>
&gt;&gt;      &gt;<br>&gt;&gt;      &gt;     &quot;I predict future happiness for America if they can prevent<br>&gt;&gt;      &gt;     the government from wasting the labors of the people under<br>&gt;&gt;      &gt;     the pretense of taking care of them.&quot;<br>
&gt;&gt;      &gt;     - Thomas Jefferson<br>&gt;&gt;      &gt;     _______________________________________________<br>&gt;&gt;      &gt;     Ale mailing list<br>&gt;&gt;      &gt;     <a href="mailto:Ale@ale.org">Ale@ale.org</a> &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt; &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
&gt;&gt;     &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt;&gt;<br>&gt;&gt;      &gt;     <a href="http://mail.ale.org/mailman/listinfo/ale">http://mail.ale.org/mailman/listinfo/ale</a><br>&gt;&gt;      &gt;     See JOBS, ANNOUNCE and SCHOOLS lists at<br>
&gt;&gt;      &gt;     <a href="http://mail.ale.org/mailman/listinfo">http://mail.ale.org/mailman/listinfo</a><br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt; --<br>
&gt;&gt;      &gt; --<br>&gt;&gt;      &gt; James P. Kinney III<br>&gt;&gt;      &gt; I would rather stumble along in freedom than walk effortlessly in<br>&gt;&gt;     chains.<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt;<br>
&gt;&gt;      &gt;<br>&gt;&gt;      &gt;<br>&gt;&gt;     ------------------------------------------------------------------------<br>&gt;&gt;      &gt;<br>&gt;&gt;      &gt; _______________________________________________<br>
&gt;&gt;      &gt; Ale mailing list<br>&gt;&gt;      &gt; <a href="mailto:Ale@ale.org">Ale@ale.org</a> &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt;<br>&gt;&gt;      &gt; <a href="http://mail.ale.org/mailman/listinfo/ale">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt;&gt;      &gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>&gt;&gt;      &gt; <a href="http://mail.ale.org/mailman/listinfo">http://mail.ale.org/mailman/listinfo</a><br>&gt;&gt; <br>&gt;&gt; <br>&gt;&gt;     --<br>&gt;&gt;     Until later, Geoffrey<br>
&gt;&gt; <br>&gt;&gt;     &quot;I predict future happiness for America if they can prevent<br>&gt;&gt;     the government from wasting the labors of the people under<br>&gt;&gt;     the pretense of taking care of them.&quot;<br>
&gt;&gt;     - Thomas Jefferson<br>&gt;&gt;     _______________________________________________<br>&gt;&gt;     Ale mailing list<br>&gt;&gt;     <a href="mailto:Ale@ale.org">Ale@ale.org</a> &lt;mailto:<a href="mailto:Ale@ale.org">Ale@ale.org</a>&gt;<br>
&gt;&gt;     <a href="http://mail.ale.org/mailman/listinfo/ale">http://mail.ale.org/mailman/listinfo/ale</a><br>&gt;&gt;     See JOBS, ANNOUNCE and SCHOOLS lists at<br>&gt;&gt;     <a href="http://mail.ale.org/mailman/listinfo">http://mail.ale.org/mailman/listinfo</a><br>
&gt;&gt; <br>&gt;&gt; <br>&gt;&gt; <br>&gt;&gt; <br>&gt;&gt; -- <br>&gt;&gt; -- <br>&gt;&gt; James P. Kinney III<br>&gt;&gt; I would rather stumble along in freedom than walk effortlessly in chains.<br>&gt;&gt; <br>&gt;&gt; <br>
&gt;&gt; <br>&gt;&gt; ------------------------------------------------------------------------<br>&gt;&gt; <br>&gt;&gt; _______________________________________________<br>&gt;&gt; Ale mailing list<br>&gt;&gt; <a href="mailto:Ale@ale.org">Ale@ale.org</a><br>
&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo/ale">http://mail.ale.org/mailman/listinfo/ale</a><br>&gt;&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>&gt;&gt; <a href="http://mail.ale.org/mailman/listinfo">http://mail.ale.org/mailman/listinfo</a><br>
&gt; <br>&gt; <br>&gt; -- <br>&gt; Until later, Geoffrey<br>&gt; <br>&gt; &quot;I predict future happiness for America if they can prevent<br>&gt; the government from wasting the labors of the people under<br>&gt; the pretense of taking care of them.&quot;<br>
&gt; - Thomas Jefferson<br>&gt; _______________________________________________<br>&gt; Ale mailing list<br>&gt; <a href="mailto:Ale@ale.org">Ale@ale.org</a><br>&gt; <a href="http://mail.ale.org/mailman/listinfo/ale">http://mail.ale.org/mailman/listinfo/ale</a><br>
&gt; See JOBS, ANNOUNCE and SCHOOLS lists at<br>&gt; <a href="http://mail.ale.org/mailman/listinfo">http://mail.ale.org/mailman/listinfo</a><br></div>