On 02/10/2013 04:23 PM, Andreas Kretschmer wrote:
> Guenther Boelter <gboelter@gmail.com> wrote:
>
>> Moin,
>>
>> ich habe mal wieder ein kleineres Problem im Rahmen der Umstellung von
>> MySQL auf PostgreSQL:
>>
>> Welchen 'data type' nehme ich sinnvollerweise fuer
>>
>> A:) PDF-Dateien (ca. 25 KB gross)
>>
>> B:) XML-Dateien (ca. 10-20 KB gross)
>>
>> Die PDF-Dateien habe ich zunaechst mal als BYTEA gespeichert, die
>> XML-Dateien als TEXT.
>
> Dass sollte okay sein. Es gibt auch einen speziellen XML-Datentyp:
> http://www.postgresql.org/docs/current/interactive/datatype-xml.html
>
> Ob dieser besser als TEXT ist mußt Du entscheiden, der XML-Datentyp hat
> halt noch z.B. Konsistenzprüfungen und so.
>
>
>>
>> Bei den PDF-Dateien konnte ich es bisher noch nicht pruefen, aber bei
>> den XML-Dateien scheint PostgreSQL die enthaltenen '\n' in '\012'
>> unzuwandeln. Letzt sich Letzeres irgendwie verhindern?
>
> Unwahrscheinlich. PostgreSQL vergreift sich nicht an den Daten.
> Im übrigen ist '\n' oktal '\012'. Evtl. ist was bei Konvertierungen
> zwischen Windows / Linux kapott gegangen.
>
>
> Andreas


Moin Andreas,

kurzes Feedback zu dem Problem mit dem  '\n' bzw. '\012':

Es ist tatsaechlich ein Fehler in der Library den MySQL einfach ignoriert hat. PostgreSQL dagegen gibt folgende Warnung aus:

WARNING:  nonstandard use of \\ in a string literal
LINE 1: EXECUTE qpsqlpstmt_1 ('<?xml version="1.0" encoding="UTF-8"?...
                              ^
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.

Dafuer musste ich allerdings auch erst den Debugger anwerfen.

Gruss

Guenther

--
DavaoSOFT, the home of ERPel
ERPel, das deutsche Warenwirtschaftssystem fuer LINUX
http://www.davaosoft.com