Обсуждение: minor issue in createdb 8.0.0beta4
Hi !
I discovered this particular feature in "createdb" tool 8.0.0beta4
running on Win32 Platform:
-------------------- Cut And Paste ---------------------------
c:\windows> createdb testdb;
CREATE DATABASE
c:\windows> psql testdb
psql: FATAL: database "testdb" does not exist
c:\windows> psql testdb;
Welcome to psql 8.0.0beta4, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
Warning: Console codepage (850) differs from windows codepage (1252)
8-bit characters will not work correctly. See PostgreSQL
documentation "Installation on Windows" for details.
testdb;=# \l
List of databases
Name | Owner | Encoding
-----------+----------+-----------
template0 | postgres | SQL_ASCII
template1 | postgres | SQL_ASCII
testdb; | silvio | SQL_ASCII
(4 rows)
testdb;=#
-------------------- Cut And Paste ---------------------------
As you can see, createddb doesn't skip the semicolon after the
database's name, so you have a db name ending with semicolon. This is
not a problem really, but this happens only in this version/platform.
Thanks you all guys.
Regards,
Silvio Scarpati
> Hi ! >=20 > I discovered this particular feature in "createdb" tool=20 > 8.0.0beta4 running on Win32 Platform: > c:\windows> createdb testdb; > CREATE DATABASE <snip> > testdb;=3D# \l > List of databases > Name | Owner | Encoding > -----------+----------+----------- > template0 | postgres | SQL_ASCII > template1 | postgres | SQL_ASCII > testdb; | silvio | SQL_ASCII > (4 rows) >=20 > testdb;=3D# >=20 > -------------------- Cut And Paste --------------------------- >=20 > As you can see, createddb doesn't skip the semicolon after=20 > the database's name, so you have a db name ending with=20 > semicolon. This is not a problem really, but this happens=20 > only in this version/platform. I don't think this is a postgresql issue, really. It's a shell issue. sh/bash or whatever you're running on a unix platform has ; as a command separator. The win32 command prompt does not. (For example, run "echo foo; echo bar" and notice the differences between bash and cmd). If you run the command under a bash interpreter (or other shell that uses semicolon as command separator) on win32, you will se the unix like behaviour. Not sure if we want to add a workaround for that? It'd be needed for every single command, so I personally don't think it's a good idea. //Magnus
Hi Magnus,
thanks for the answer.
On Mon, 1 Nov 2004 12:24:07 +0100, you wrote:
>
>Not sure if we want to add a workaround for that? It'd be needed for
>every single command, so I personally don't think it's a good idea.
>
Maybe discarding semicolons in database's names passing the command to
the backend should a good idea.
Regards,
Silvio