Обсуждение: Database name with semicolon

Поиск
Список
Период
Сортировка

Database name with semicolon

От
Joby John
Дата:

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
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc

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.

Re: Database name with semicolon

От
Pavel Stehule
Дата:
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
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc

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.


RE: EXTERNAL: Re: Database name with semicolon

От
Joby John
Дата:

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>:

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
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc


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
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc

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.

Re: EXTERNAL: Re: Database name with semicolon

От
Pavel Stehule
Дата:
Hi

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

Hi Pavel,

 

Thanks for coming back to me.



 

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


but probably you read these pages

Maybe some combination of quotes is necessary


you can try

dbname = '"ssss; sss"'



 

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
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc


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
Mobile:
Website: www.nccgroup.trust
Twitter: @NCCGroupplc

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.


Re: Database name with semicolon

От
Vick Khera
Дата:
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.

Re: Database name with semicolon

От
Adrian Klaver
Дата:
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>
> Twitter: @NCCGroupplc <https://twitter.com/NCCGroupplc>
>     <http://www.nccgroup.trust/>
> 
> ------------------------------------------------------------------------
> 
> 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


Re: Database name with semicolon

От
"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.

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


Re: Database name with semicolon

От
Thiemo Kellner
Дата:
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.



Re: Database name with semicolon

От
Pavel Stehule
Дата:


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



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


Re: Database name with semicolon

От
"joby.john@nccgroup.trust"
Дата:
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 at Nabble.com.

Re: Database name with semicolon

От
Gavin Flower
Дата:
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> 
> at Nabble.com.

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