Обсуждение: Database name with semicolon
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.
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.
CREATE DATABASE
postgres=# \q
[pavel@nemesis ~]$ psql 'bad name ;;;;'
psql (11beta1)
Type "help" for help.
bad name ;;;;=#
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: @NCCGroupplcThis 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.
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: @NCCGroupplcThis 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.
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: @NCCGroupplcThis 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: @NCCGroupplcThis 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.
Himodern Postgresql has not any problems with special chars
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
> 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
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.
> 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
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.Pavel Stehule wrote2018-06-28 12:10 GMT+02:00 please, can you try '"db; name"' .. double quotes nested in apostrophes
Sent from the PostgreSQL - general mailing list archive at Nabble.com.
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'