From 2e9890270c0d1c74d9750a330b770e54c17b6baf Mon Sep 17 00:00:00 2001 From: Yoshiyuki Asaba Date: Mon, 12 Feb 2007 06:19:37 +0000 Subject: [PATCH] Fixed to hang up in PREPARE TRANSACTION and EXECUTE command. --- pool_process_query.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/pool_process_query.c b/pool_process_query.c index c487a85..f25e54e 100644 --- a/pool_process_query.c +++ b/pool_process_query.c @@ -645,13 +645,12 @@ static POOL_STATUS Query(POOL_CONNECTION *frontend, PreparedStatement *stmt; stmt = get_prepared_command_portal_and_statement(string); - /* could not get info. probably wrong SQL command */ - if (stmt == NULL) + + if (stmt != NULL) { - return POOL_CONTINUE; + pending_function = add_prepared_list; + pending_prepared_stmt = stmt; } - pending_function = add_prepared_list; - pending_prepared_stmt = stmt; } else if (frontend && strncasecmp("deallocate", string, 10) == 0) @@ -695,19 +694,20 @@ static POOL_STATUS Query(POOL_CONNECTION *frontend, char *portal_name = get_execute_command_portal_name(string); PreparedStatement *stmt; - /* could not get portal name. probably wrong SQL command */ - if (portal_name == NULL) + if (portal_name != NULL) { - return POOL_CONTINUE; - } - - stmt = lookup_prepared_statement_by_statement(&prepared_list, - portal_name); + stmt = lookup_prepared_statement_by_statement(&prepared_list, + portal_name); - if (!stmt) - string1 = string; + if (!stmt) + string1 = string; + else + string1 = stmt->prepared_string; + } else - string1 = stmt->prepared_string; + { + string1 = string; + } } else { @@ -3429,7 +3429,7 @@ static PreparedStatement *get_prepared_command_portal_and_statement(char *query) if (token == NULL) { - pool_error("get_prepared_command_portal_and_statement: could not get portal name"); + pool_debug("get_prepared_command_portal_and_statement: could not get portal name"); return NULL; } @@ -3455,7 +3455,7 @@ static PreparedStatement *get_prepared_command_portal_and_statement(char *query) if (!*query) { - pool_error("get_prepared_command_portal_and_statement: could not get statement"); + pool_debug("get_prepared_command_portal_and_statement: could not get statement"); return NULL; } -- 2.39.5