storing windows path strings

Started by Scott Frankelabout 16 years ago3 messagesgeneral
Jump to latest
#1Scott Frankel
leknarf@pacbell.net

Hi all,

What's the proper way to store directory path strings in a table,
especially ones with backslashes like windows?

I'm currently using a prepared statement with bind value. Do I need
to pre-parse all user entries to identify any backslash characters
before passing the string to my insert statement?

Searches through the documentation turned up references to
escape_string_warning (boolean) and standard_conforming_strings
(boolean). I'm not sure I'll have access to server side config.

Thanks in advance!
Scott

eg:

CREATE TABLE foo (
foo_id SERIAL PRIMARY KEY,
name VARCHAR(32) UNIQUE NOT NULL,
dirpath text DEFAULT NULL);

INSERT INTO foo (name, dirpath) VALUES ('bar', 'c:\windows\path\to
\bar');
--> WARNING: nonstandard use of \\ in a string literal

#2Cédric Villemain
cedric.villemain.debian@gmail.com
In reply to: Scott Frankel (#1)
Re: storing windows path strings

2010/1/29 Scott Frankel <leknarf@pacbell.net>:

Hi all,
What's the proper way to store directory path strings in a table, especially
ones with backslashes like windows?
I'm currently using a prepared statement with bind value.  Do I need to
pre-parse all user entries to identify any backslash characters before
passing the string to my insert statement?
Searches through the documentation turned up references
to escape_string_warning (boolean) and standard_conforming_strings
(boolean).  I'm not sure I'll have access to server side config.
Thanks in advance!
Scott

eg:
CREATE TABLE foo (
foo_id SERIAL PRIMARY KEY,
name VARCHAR(32) UNIQUE NOT NULL,
dirpath text DEFAULT NULL);

INSERT INTO foo (name, dirpath) VALUES ('bar', 'c:\windows\path\to\bar');
--> WARNING:  nonstandard use of \\ in a string literal

explicetely set ON the standard_conforming_string in the postgresql.conf
*but* take care it don't break your application.
INSERT INTO foo (name, dirpath) VALUES ('bar', 'c:\windows\path\to\bar');

--
Cédric Villemain

#3Scott Frankel
leknarf@pacbell.net
In reply to: Cédric Villemain (#2)
Re: storing windows path strings

Excellent! Mild testing so far, but it seems to work. Thanks!
Scott

On Jan 29, 2010, at 3:00 PM, Cédric Villemain wrote:

Show quoted text

2010/1/29 Scott Frankel <leknarf@pacbell.net>:

Hi all,
What's the proper way to store directory path strings in a table,
especially
ones with backslashes like windows?
I'm currently using a prepared statement with bind value. Do I
need to
pre-parse all user entries to identify any backslash characters
before
passing the string to my insert statement?
Searches through the documentation turned up references
to escape_string_warning (boolean) and standard_conforming_strings
(boolean). I'm not sure I'll have access to server side config.
Thanks in advance!
Scott

eg:
CREATE TABLE foo (
foo_id SERIAL PRIMARY KEY,
name VARCHAR(32) UNIQUE NOT NULL,
dirpath text DEFAULT NULL);

INSERT INTO foo (name, dirpath) VALUES ('bar', 'c:\windows\path\to
\bar');
--> WARNING: nonstandard use of \\ in a string literal

explicetely set ON the standard_conforming_string in the
postgresql.conf
*but* take care it don't break your application.
INSERT INTO foo (name, dirpath) VALUES ('bar', 'c:\windows\path\to
\bar');

--
Cédric Villemain