首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除名称以数字开头的Postgres-XL数据库?

如何删除名称以数字开头的Postgres-XL数据库?
EN

Stack Overflow用户
提问于 2016-08-25 19:20:12
回答 1查看 204关注 0票数 0

我是Postgres-XL的新手,我刚刚创建了一个测试集群,运行postgres-xl-9.5r1.3。

它设置在三个节点上,一个节点GTM,两个节点上都有一个协调器和一个Datanode。

我计划在这两个节点之间实现负载平衡,但目前我只是在第一个协调器上连接并运行SQL查询。

在测试一些基本命令时,我创建了几个测试数据库,其中一个具有全数字名称"213",另一个具有以数字开头的名称"123test“。当尝试删除其中任何一个时,我得到一个语法错误:

代码语言:javascript
复制
postgres=# DROP DATABASE "213";
ERROR:  syntax error at or near "213"

postgres=# drop database 123test;
ERROR:  syntax error at or near "123"
LINE 1: drop database 123test;

postgres=# drop database "123test";
ERROR:  syntax error at or near "123"

删除一个名称以字母开头的数据库就可以了。

有人知道如何删除这些数据库吗?是我做错了什么,还是Postgres-XL有问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-01 17:30:35

我已经通过Postgres-XL团队的bug报告邮件列表联系到了他们,这似乎是一个与向远程节点发送命令时如何引用数据库名称有关的bug。

Postgres-XL团队提供的以下修补程序应该可以修复此问题:

代码语言:javascript
复制
diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c
index cc8e06e..b73be0a 100644
--- a/src/backend/tcop/utility.c
+++ b/src/backend/tcop/utility.c
@@ -807,7 +807,8 @@ standard_ProcessUtility(Node *parsetree,
                    DropDBCleanConnection(stmt->dbname);

                    /* Clean also remote Coordinators */
-                   sprintf(query, "CLEAN CONNECTION TO ALL FOR DATABASE %s;", stmt->dbname);
+                   sprintf(query, "CLEAN CONNECTION TO ALL FOR DATABASE %s;",
+                           quote_identifier(stmt->dbname));

                    ExecUtilityStmtOnNodes(query, NULL, sentToRemote, true, EXEC_ON_ALL_NODES, false);
                }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39143887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档