2016-08-25 4 views
0

저는 Postgres-XL에 새로 입문했으며, 방금 postgres-xl-9.5r1.3을 실행하는 테스트 클러스터를 만들었습니다.이름이 숫자로 시작하는 Postgres-XL 데이터베이스를 삭제하려면 어떻게해야합니까?

3 개의 노드, 하나의 노드 GTM 및 코디네이터와 데이터 노드가 각각 2 개인 노드 2 개로 설정되었습니다.

이 두 노드 간의로드 균형 조정을 계획하고 있지만 현재는 첫 번째 코디네이터에서 SQL 쿼리를 연결하고 실행하고 있습니다.

몇 가지 기본 명령을 테스트하는 동안 몇 가지 테스트 데이터베이스를 만들었는데 그 중 하나에는 완전한 숫자 이름 "213"이 있고 하나에는 숫자 "123test"로 시작하는 이름이 있습니다. 편지가 잘 작동로 시작하는 이름을 가진 데이터베이스를 삭제

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에 문제가 있습니까?

+1

이 포스트 그레스-XL에 문제가있는 것 같다 있기 때문에이 문제없이 작동하는 "일반"포스트 그레스와 함께 –

답변

0

저는 버그 리포트 메일 링리스트를 통해 Postgres-XL 팀에 연락했습니다. 이것은 원격 노드에 명령을 보내는 동안 데이터베이스 이름을 인용하는 방법과 관련된 버그 인 것 같습니다.

다음 패치는 포스트 그레스-XL 팀에 의해 공급되는,이 문제를 해결해야합니다

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); 
       } 
관련 문제