Database name with semicolon

Started by joby.john@nccgroup.trustalmost 8 years ago11 messagesgeneral
Jump to latest
#1joby.john@nccgroup.trust
Joby.John@nccgroup.trust

Hi,

We have a windows application which communicate to Postgres database via PostgreSQL ODBC drivers for windows.
One of our customers has a database with semicolon in its name (e.g.: "db; name") and our application is failing to establish connection to that database saying like it could not find the database.
We tried all known possibilities by enclosing the DB name under quotes, curly brackets etc. but none solved the problem.

I wonder whether there is any possible way to achieve connection to such database. If not, probably it's better not to support semicolons within the database name.
Not sure whether I need to submit this query as a bug or not. Any help is much appreciated.

Thanks and Regards,
Joby John
________________________________
Joby John
Software Developer
NCC Group
Kings Court, Kingston Road, Leatherhead, KT22 7SL

Telephone: +44 1372 383 800<tel:+44%201372%20383%20800>
Mobile: <tel:>
Website: www.nccgroup.trust<http://www.nccgroup.trust&gt;
Twitter: @NCCGroupplc<https://twitter.com/NCCGroupplc&gt;
[https://www.nccgroup.trust/static/img/emaillogo/ncc-group-logo.png] <http://www.nccgroup.trust/&gt;
________________________________

This email is sent for and on behalf of NCC Group. NCC Group is the trading name of NCC Services Limited (Registered in England CRN: 2802141). The ultimate holding company is NCC Group plc (Registered in England CRN: 4627044). This email may be confidential and/or legally privileged.

#2Pavel Stehule
pavel.stehule@gmail.com
In reply to: joby.john@nccgroup.trust (#1)
Re: Database name with semicolon

Hi

2018-06-27 15:22 GMT+02:00 Joby John <Joby.John@nccgroup.trust>:

Hi,

We have a windows application which communicate to Postgres database via
PostgreSQL ODBC drivers for windows.

One of our customers has a database with semicolon in its name (e.g.: “db;
name”) and our application is failing to establish connection to that
database saying like it could not find the database.

We tried all known possibilities by enclosing the DB name under quotes,
curly brackets etc. but none solved the problem.

I wonder whether there is any possible way to achieve connection to such
database. If not, probably it’s better not to support semicolons within the
database name.

Not sure whether I need to submit this query as a bug or not. Any help is
much appreciated.

modern Postgresql has not any problems with special chars

postgres=# create database "bad name ;;;;";
CREATE DATABASE
postgres=# \q
[pavel@nemesis ~]$ psql 'bad name ;;;;'
psql (11beta1)
Type "help" for help.

bad name ;;;;=#

What is version of Postgres?

Did you try double quotes?

Regards

Pavel

Show quoted text

Thanks and Regards,

Joby John
------------------------------
Joby John
Software Developer
NCC Group
Kings Court, Kingston Road, Leatherhead, KT22 7SL

Telephone: +44 1372 383 800 <+44%201372%20383%20800>
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc <https://twitter.com/NCCGroupplc&gt;
<http://www.nccgroup.trust/&gt;
------------------------------

This email is sent for and on behalf of NCC Group. NCC Group is the
trading name of NCC Services Limited (Registered in England CRN: 2802141).
The ultimate holding company is NCC Group plc (Registered in England CRN:
4627044). This email may be confidential and/or legally privileged.

#3joby.john@nccgroup.trust
Joby.John@nccgroup.trust
In reply to: Pavel Stehule (#2)
RE: EXTERNAL: Re: Database name with semicolon

Hi Pavel,

Thanks for coming back to me.

The version of the Postgres server where I am trying is: 9.5.3
Yes, I tried putting the database name in double quotes with no luck.
Please note we are using PostgreSQL Unicode ODBC driver (version 10.2) to communicate with the server.

Regards,
Joby John

From: Pavel Stehule [mailto:pavel.stehule@gmail.com]
Sent: 27 June 2018 15:26
To: Joby John <Joby.John@nccgroup.trust>
Cc: pgsql-general@postgresql.org
Subject: EXTERNAL: Re: Database name with semicolon

Hi

2018-06-27 15:22 GMT+02:00 Joby John <Joby.John@nccgroup.trust<mailto:Joby.John@nccgroup.trust>>:
Hi,

We have a windows application which communicate to Postgres database via PostgreSQL ODBC drivers for windows.
One of our customers has a database with semicolon in its name (e.g.: “db; name”) and our application is failing to establish connection to that database saying like it could not find the database.
We tried all known possibilities by enclosing the DB name under quotes, curly brackets etc. but none solved the problem.

I wonder whether there is any possible way to achieve connection to such database. If not, probably it’s better not to support semicolons within the database name.
Not sure whether I need to submit this query as a bug or not. Any help is much appreciated.

modern Postgresql has not any problems with special chars

postgres=# create database "bad name ;;;;";
CREATE DATABASE
postgres=# \q
[pavel@nemesis ~]$ psql 'bad name ;;;;'
psql (11beta1)
Type "help" for help.

bad name ;;;;=#

What is version of Postgres?

Did you try double quotes?

Regards

Pavel

Thanks and Regards,
Joby John
________________________________
Joby John
Software Developer
NCC Group
Kings Court, Kingston Road, Leatherhead, KT22 7SL

Telephone: +44 1372 383 800<tel:+44%201372%20383%20800>
Mobile:
Website: www.nccgroup.trust<http://www.nccgroup.trust&gt;
Twitter: @NCCGroupplc<https://twitter.com/NCCGroupplc&gt;

[https://www.nccgroup.trust/static/img/emaillogo/ncc-group-logo.png]&lt;http://www.nccgroup.trust/&gt;

________________________________

This email is sent for and on behalf of NCC Group. NCC Group is the trading name of NCC Services Limited (Registered in England CRN: 2802141). The ultimate holding company is NCC Group plc (Registered in England CRN: 4627044). This email may be confidential and/or legally privileged.

________________________________
Joby John
Software Developer
NCC Group
Kings Court, Kingston Road, Leatherhead, KT22 7SL

Telephone: +44 1372 383 800<tel:+44%201372%20383%20800>
Mobile: <tel:>
Website: www.nccgroup.trust<http://www.nccgroup.trust&gt;
Twitter: @NCCGroupplc<https://twitter.com/NCCGroupplc&gt;
[https://www.nccgroup.trust/static/img/emaillogo/ncc-group-logo.png] <http://www.nccgroup.trust/&gt;
________________________________

This email is sent for and on behalf of NCC Group. NCC Group is the trading name of NCC Services Limited (Registered in England CRN: 2802141). The ultimate holding company is NCC Group plc (Registered in England CRN: 4627044). This email may be confidential and/or legally privileged.

#4Pavel Stehule
pavel.stehule@gmail.com
In reply to: joby.john@nccgroup.trust (#3)
Re: EXTERNAL: Re: Database name with semicolon

Hi

2018-06-27 16:39 GMT+02:00 Joby John <Joby.John@nccgroup.trust>:

Hi Pavel,

Thanks for coming back to me.

please, don't top post
https://en.wikipedia.org/wiki/Posting_style#Top-posting

The version of the Postgres server where I am trying is: 9.5.3

9.5 is modern Postgres. There should not be problems with names.

Yes, I tried putting the database name in double quotes with no luck.

Please note we are using PostgreSQL Unicode ODBC driver (version 10.2) to
communicate with the server.

looks like ODBC issue - semicolon has some semantic there

https://stackoverflow.com/questions/22398212/escape-semicolon-in-odbc-connection-string-in-app-config-file

but probably you read these pages

Maybe some combination of quotes is necessary

https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms722656(v=vs.85)

you can try

dbname = '"ssss; sss"'

Show quoted text

Regards,

Joby John

*From:* Pavel Stehule [mailto:pavel.stehule@gmail.com]
*Sent:* 27 June 2018 15:26
*To:* Joby John <Joby.John@nccgroup.trust>
*Cc:* pgsql-general@postgresql.org
*Subject:* EXTERNAL: Re: Database name with semicolon

Hi

2018-06-27 15:22 GMT+02:00 Joby John <Joby.John@nccgroup.trust>:

Hi,

We have a windows application which communicate to Postgres database via
PostgreSQL ODBC drivers for windows.

One of our customers has a database with semicolon in its name (e.g.: “db;
name”) and our application is failing to establish connection to that
database saying like it could not find the database.

We tried all known possibilities by enclosing the DB name under quotes,
curly brackets etc. but none solved the problem.

I wonder whether there is any possible way to achieve connection to such
database. If not, probably it’s better not to support semicolons within the
database name.

Not sure whether I need to submit this query as a bug or not. Any help is
much appreciated.

modern Postgresql has not any problems with special chars

postgres=# create database "bad name ;;;;";
CREATE DATABASE
postgres=# \q
[pavel@nemesis ~]$ psql 'bad name ;;;;'
psql (11beta1)
Type "help" for help.

bad name ;;;;=#

What is version of Postgres?

Did you try double quotes?

Regards

Pavel

Thanks and Regards,

Joby John
------------------------------

Joby John
Software Developer
NCC Group
Kings Court, Kingston Road, Leatherhead, KT22 7SL

Telephone: +44 1372 383 800 <+44%201372%20383%20800>
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc <https://twitter.com/NCCGroupplc&gt;

<http://www.nccgroup.trust/&gt;
------------------------------

This email is sent for and on behalf of NCC Group. NCC Group is the
trading name of NCC Services Limited (Registered in England CRN: 2802141).
The ultimate holding company is NCC Group plc (Registered in England CRN:
4627044). This email may be confidential and/or legally privileged.

------------------------------
Joby John
Software Developer
NCC Group
Kings Court, Kingston Road, Leatherhead, KT22 7SL

Telephone: +44 1372 383 800 <+44%201372%20383%20800>
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc <https://twitter.com/NCCGroupplc&gt;
<http://www.nccgroup.trust/&gt;
------------------------------

This email is sent for and on behalf of NCC Group. NCC Group is the
trading name of NCC Services Limited (Registered in England CRN: 2802141).
The ultimate holding company is NCC Group plc (Registered in England CRN:
4627044). This email may be confidential and/or legally privileged.

#5Vick Khera
vivek@khera.org
In reply to: Pavel Stehule (#2)
Re: Database name with semicolon

On Wed, Jun 27, 2018 at 10:25 AM, Pavel Stehule <pavel.stehule@gmail.com>
wrote:

Hi

modern Postgresql has not any problems with special chars

I think the issue is that he cannot create a proper connection string to
pass to the ODBC driver, since semi-colon is used as a delimiter for the
fields.

#6Adrian Klaver
adrian.klaver@aklaver.com
In reply to: joby.john@nccgroup.trust (#1)
Re: Database name with semicolon

On 06/27/2018 06:22 AM, Joby John wrote:

Hi,

We have a windows application which communicate to Postgres database via
PostgreSQL ODBC drivers for windows.

One of our customers has a database with semicolon in its name (e.g.:
�db; name�) and our application is failing to establish connection to
that database saying like it could not find the database.

We tried all known possibilities by enclosing the DB name under quotes,
curly brackets etc. but none solved the problem.

I wonder whether there is any possible way to achieve connection to such
database. If not, probably it�s better not to support semicolons within
the database name.

https://msdn.microsoft.com/en-us/library/system.data.odbc.odbcconnection.connectionstring(v=vs.110).aspx

"
...

Applications do not have to add braces around the attribute value after
the Driver keyword unless the attribute contains a semicolon (;), in
which case the braces are required. If the attribute value that the
driver receives includes braces, the driver should not remove them but
they should be part of the returned connection string.

...

"

See if something like below works:

{db; name}

Not sure whether I need to submit this query as a bug or not. Any help
is much appreciated.

Thanks and Regards,

Joby John

------------------------------------------------------------------------
Joby John
Software Developer
NCC Group
Kings Court, Kingston Road, Leatherhead, KT22 7SL

Telephone: +44 1372 383 800 <tel:+44 1372 383 800>
Mobile: <tel:>
Website: www.nccgroup.trust <http://www.nccgroup.trust&gt;
Twitter: @NCCGroupplc <https://twitter.com/NCCGroupplc&gt;
<http://www.nccgroup.trust/&gt;

------------------------------------------------------------------------

This email is sent for and on behalf of NCC Group. NCC Group is the
trading name of NCC Services Limited (Registered in England CRN:
2802141). The ultimate holding company is NCC Group plc (Registered in
England CRN: 4627044). This email may be confidential and/or legally
privileged.

--
Adrian Klaver
adrian.klaver@aklaver.com

#7joby.john@nccgroup.trust
Joby.John@nccgroup.trust
In reply to: Adrian Klaver (#6)
Re: Database name with semicolon

See if something like below works:
{db; name}

Hi,

Thanks for the responses.

I tried putting curly brackets around the value of database like you
mentioned.
{db; name}
But the server was treating the brackets as part of the database name and so
did not work.
I tried double quotes like
"db; name" which also didn't work.

Not sure what else I can try or whether the ODBC driver supports database
name with a semicolon at all.
I know that in the case of password we can put the string enclosed within
curly brackets to escape special characters but not appears to be working
for the database.

Regards,
Joby

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html

#8Thiemo Kellner
thiemo@gelassene-pferde.biz
In reply to: joby.john@nccgroup.trust (#7)
Re: Database name with semicolon

Zitat von "joby.john@nccgroup.trust" <Joby.John@nccgroup.trust>:

Not sure what else I can try or whether the ODBC driver supports database
name with a semicolon at all.

Not knowing much about ODBC, how about single quotes?

And if you pass the entire URL, would it be possible to pass instead
values to Kind of function?

Kind regards Thiemo

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

#9Pavel Stehule
pavel.stehule@gmail.com
In reply to: joby.john@nccgroup.trust (#7)
Re: Database name with semicolon

2018-06-28 12:10 GMT+02:00 joby.john@nccgroup.trust <
Joby.John@nccgroup.trust>:

See if something like below works:
{db; name}

Hi,

Thanks for the responses.

I tried putting curly brackets around the value of database like you
mentioned.
{db; name}
But the server was treating the brackets as part of the database name and
so
did not work.
I tried double quotes like
"db; name" which also didn't work.

please, can you try

'"db; name"' .. double quotes nested in apostrophes

Show quoted text

Not sure what else I can try or whether the ODBC driver supports database
name with a semicolon at all.
I know that in the case of password we can put the string enclosed within
curly brackets to escape special characters but not appears to be working
for the database.

Regards,
Joby

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-general-
f1843780.html

#10joby.john@nccgroup.trust
Joby.John@nccgroup.trust
In reply to: Pavel Stehule (#9)
Re: Database name with semicolon

Pavel Stehule wrote

2018-06-28 12:10 GMT+02:00 please, can you try'"db; name"' .. double
quotes nested in apostrophes

I tried this with no luck. Also tried the other way, apostrophe nested in
double quotes with same results.Looks like an issue in ODBC driver as it's
not handling semicolon within database name. Probably needs to go back to
the client asking to rename the database.

--
Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html

#11Gavin Flower
GavinFlower@archidevsys.co.nz
In reply to: joby.john@nccgroup.trust (#10)
Re: Database name with semicolon

On 29/06/18 04:22, joby.john@nccgroup.trust wrote:

Pavel Stehule wrote
2018-06-28 12:10 GMT+02:00 please, can you try '"db; name"' ..
double quotes nested in apostrophes

I tried this with no luck. Also tried the other way, apostrophe nested
in double quotes with same results. Looks like an issue in ODBC driver
as it's not handling semicolon within database name. Probably needs to
go back to the client asking to rename the database.
------------------------------------------------------------------------
Sent from the PostgreSQL - general mailing list archive
<http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html&gt;
at Nabble.com.

Reminds me of:
��� https://xkcd.com/327/
'Little Bobby Tables'