pgpool2.git / summary / log / commit / refs
commit 52626a47bc8b65482d8f63f76d0001c38cb59e47
Author: Tatsuo Ishii <ishii at sraoss.co.jp>
Date: Wed Oct 21 14:41:10 2009 +0000
Do not execute CREATE/DROP TABLE SPACE inside a transaction block.
Teach do_command() that S (parameter status) should be ignored
until receiving command complete.
pool_process_query.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/pool_process_query.c b/pool_process_query.c
index d2b59b2cd..4b79944b0 100644
--- a/pool_process_query.c
+++ b/pool_process_query.c
@@ -2639,9 +2639,9 @@ static POOL_STATUS do_command(POOL_CONNECTION *frontend, POOL_CONNECTION *backen
}
len = ntohl(len) - 4;
- if (kind != 'N' && kind != 'E' && kind != 'C')
+ if (kind != 'N' && kind != 'E' && kind != 'S' && kind != 'C')
{
- pool_error("do_command: error, kind is not N, E or C(%02x)", kind);
+ pool_error("do_command: error, kind is not N, E, S or C(%02x)", kind);
return POOL_END;
}
string = pool_read2(backend, len);
@@ -4205,8 +4205,10 @@ static bool is_internal_transaction_needed(Node *node)
T_ExecuteStmt,
T_DeallocateStmt,
T_DeclareCursorStmt,
- T_CreateTableSpaceStmt,
+/*
+ T_CreateTableSpaceStmt, CREATE/DROP TABLE SPACE cannot execute inside a transaction block
T_DropTableSpaceStmt,
+*/
T_AlterObjectSchemaStmt,
T_AlterOwnerStmt,
T_DropOwnedStmt,
[parent: 1d54ab33edf1]