Postgres automatically inserts chr(13) whenever chr(10) is inserted

Started by Dragan Maticabout 20 years ago3 messagesgeneral
Jump to latest
#1Dragan Matic
mlists@panforma.co.yu

create table sample(column_sample varchar(500))

insert into sample(column_sample) values('this is first row of text' ||
chr(10) || 'this is second row of text')

Now, instead of just inserting chr(10), postgres inserts chr(13) +
chr(10). Is there a way to avoid this? Database is on a linux server
with SQL_ASCII encoding, clients are winXP communicating thru ODBC.

Tnx in advance

DRagan Matic

#2Michael Fuhr
mike@fuhr.org
In reply to: Dragan Matic (#1)
Re: Postgres automatically inserts chr(13) whenever chr(10) is inserted

On Fri, Mar 03, 2006 at 08:47:00AM +0100, Dragan Matic wrote:

create table sample(column_sample varchar(500))

insert into sample(column_sample) values('this is first row of text' ||
chr(10) || 'this is second row of text')

Now, instead of just inserting chr(10), postgres inserts chr(13) +
chr(10). Is there a way to avoid this? Database is on a linux server
with SQL_ASCII encoding, clients are winXP communicating thru ODBC.

How did you determine what characters are being inserted? What's
the output of the following example?

INSERT INTO sample VALUES ('a' || chr(10) || 'b');
SELECT length(column_sample), decode(column_sample, 'escape') FROM sample;

--
Michael Fuhr

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dragan Matic (#1)
Re: Postgres automatically inserts chr(13) whenever chr(10) is inserted

Dragan Matic <mlists@panforma.co.yu> writes:

create table sample(column_sample varchar(500))
insert into sample(column_sample) values('this is first row of text' ||
chr(10) || 'this is second row of text')

Now, instead of just inserting chr(10), postgres inserts chr(13) +
chr(10).

Postgres most certainly does not do that, as even a moment's
experimentation (eg, with length()) will prove to you. Take a closer
look at your client-side software to find out where the newline
conversion is happening.

regards, tom lane