[SQL] how to preserve \n in select statement

2003-12-19 Thread Matt Van Mater
I have a table that has a few text value types, and I enter a bunch of text 
with '\n' representing a newline.  When I select the records from that 
table, postgresql 7.3 represents those \n as newlines and actually outputs 
the a newline rather than as a \n as entered.  I want to be able to get my 
\n text out of the select statement in the exact same manner it was 
inserted.

I found a workaround where I can use the copy to command to copy a table to 
a text file, and the command preserves the \n characters.  The problem with 
that is the copy to command overwrites the output file every time it is 
written to.  That stinks because then I can't run multiple queries and 
direct the output to a file all at once.  (I would prefer to set the output 
file as  \o '/path/to/oufile.txt' and have all queries dump their results 
there)

Is there a way to make the select statement not interpret newline escape 
characters?

Matt Van Mater

_
Have fun customizing MSN Messenger — learn how here!  
http://www.msnmessenger-download.com/tracking/reach_customize

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


[SQL] testing for null value in integer field?

2003-12-19 Thread Geoffrey
How does one check for an unset value in an integer field?

I've tried such things as:

select . where intnumber = ''
select .. where intnumber =  ?
select .  where intnumber = NULL
Thanks.

--
Until later, Geoffrey   [EMAIL PROTECTED]
Building secure systems inspite of Microsoft

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [SQL] testing for null value in integer field?

2003-12-19 Thread Wei Weng
Geoffrey wrote:

How does one check for an unset value in an integer field?

I've tried such things as:

select . where intnumber = ''
select .. where intnumber =  ?
select .  where intnumber = NULL
Thanks.

It is actually WHERE intnumber IS NULL. You don't use operator = to 
compare with NULLs, you use IS.

HTH.

Wei

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: [SQL] testing for null value in integer field?

2003-12-19 Thread Guy Fraser
select .  where intnumber IS NULL

Geoffrey wrote:

How does one check for an unset value in an integer field?

I've tried such things as:

select . where intnumber = ''
select .. where intnumber =  ?
select .  where intnumber = NULL
Thanks.



---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [SQL] testing for null value in integer field?

2003-12-19 Thread Geoffrey
Wei Weng wrote:
Geoffrey wrote:

How does one check for an unset value in an integer field?

I've tried such things as:

select . where intnumber = ''
select .. where intnumber =  ?
select .  where intnumber = NULL
Thanks.

It is actually WHERE intnumber IS NULL. You don't use operator = to 
compare with NULLs, you use IS.
Thank you muchly

--
Until later, Geoffrey   [EMAIL PROTECTED]
Building secure systems inspite of Microsoft

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
 joining column's datatypes do not match


Re: [SQL] how to preserve \n in select statement

2003-12-19 Thread Matt Van Mater
I have been entering the data by having a command file that inserts the rows 
one by one. (yes I know a copy command would probably be faster for 
importing bulk data, but I prefer to insert each line individually)

IE: psql -U myusername mydatabase -f '/path/to/commandfile'

Inside the commandfile I have lines like:
INSERT INTO tablename (col1, col2, col3) VALUES ($val1, $val2, $val3);
How do I escape the data from a select statement?  Something like: SELECT \* 
FROM tablename;  ?









Original Message Follows
From: Guy Fraser <[EMAIL PROTECTED]>
To: Matt Van Mater <[EMAIL PROTECTED]>
Subject: Re: [SQL] how to preserve \n in select statement
Date: Fri, 19 Dec 2003 08:43:59 -0700
What are you using to enter and retrieve the data?

Either escape the data before you put it in the database or when you retieve 
it, whichever gives you the results you are looking for.

Matt Van Mater wrote:

I have a table that has a few text value types, and I enter a bunch of text 
with '\n' representing a newline.  When I select the records from that 
table, postgresql 7.3 represents those \n as newlines and actually outputs 
the a newline rather than as a \n as entered.  I want to be able to get my 
\n text out of the select statement in the exact same manner it was 
inserted.

I found a workaround where I can use the copy to command to copy a table to 
a text file, and the command preserves the \n characters.  The problem with 
that is the copy to command overwrites the output file every time it is 
written to.  That stinks because then I can't run multiple queries and 
direct the output to a file all at once.  (I would prefer to set the output 
file as  \o '/path/to/oufile.txt' and have all queries dump their results 
there)

Is there a way to make the select statement not interpret newline escape 
characters?

Matt Van Mater
_
Check your PC for viruses with the FREE McAfee online computer scan.  
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


Re: [SQL] how to preserve \n in select statement

2003-12-19 Thread Bruno Wolff III
On Fri, Dec 19, 2003 at 10:06:28 -0500,
  Matt Van Mater <[EMAIL PROTECTED]> wrote:
> I have a table that has a few text value types, and I enter a bunch of text 
> with '\n' representing a newline.  When I select the records from that 
> table, postgresql 7.3 represents those \n as newlines and actually outputs 
> the a newline rather than as a \n as entered.  I want to be able to get my 
> \n text out of the select statement in the exact same manner it was 
> inserted.

If you really want to store \n so that something else will interpret \n
as a newline, then use '\\n' in the string constant.

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])


Re: [SQL] how to preserve \n in select statement

2003-12-19 Thread Matt Van Mater
I just don't see why pgsql can't return my data exactly as I entered it.  It 
wouldn't be hard for me to manipulate it before entry and add another escape 
character, but that's not really the point.  The point is why is postgresql 
changing the data I insert into a field, and not giving me away to get it 
back in its original form?  I wouldn't have a problem if I was notified 
during an insert that my escape characters would be modified, or even if I 
was given an error message and the insert failed.

One complaint about MYSQL is that it often does 'the next best thing' and 
doesn't notify the user that their command or input has been altered in some 
way.  It seems like this is the same scenario with pgsql.  I think this 
behavior stems from a security problem psql had a while back where escape 
characters were being interpreted, and this may be another instance of that 
functionality.





Original Message Follows
From: Bruno Wolff III <[EMAIL PROTECTED]>
To: Matt Van Mater <[EMAIL PROTECTED]>
CC: [EMAIL PROTECTED]
Subject: Re: [SQL] how to preserve \n in select statement
Date: Fri, 19 Dec 2003 15:26:07 -0600
On Fri, Dec 19, 2003 at 10:06:28 -0500,
  Matt Van Mater <[EMAIL PROTECTED]> wrote:
> I have a table that has a few text value types, and I enter a bunch of 
text
> with '\n' representing a newline.  When I select the records from that
> table, postgresql 7.3 represents those \n as newlines and actually 
outputs
> the a newline rather than as a \n as entered.  I want to be able to get 
my
> \n text out of the select statement in the exact same manner it was
> inserted.

If you really want to store \n so that something else will interpret \n
as a newline, then use '\\n' in the string constant.
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])
_
Tired of slow downloads? Compare online deals from your local high-speed 
providers now.  https://broadband.msn.com

---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: [SQL] how to preserve \n in select statement

2003-12-19 Thread Tom Lane
"Matt Van Mater" <[EMAIL PROTECTED]> writes:
> I just don't see why pgsql can't return my data exactly as I entered
> it.

Because you are using an input syntax that requires that quotes and
backslashes be escaped.  There are other input methods available that
don't require this, but they have disadvantages of their own.  In
particular, you have to separate data from SQL command if you want a
no-escape-processing behavior for data.

> I think this behavior stems from a security problem psql had a while
> back where escape characters were being interpreted, and this may be
> another instance of that functionality.

Matt, you have no idea what you are talking about.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org