summaryrefslogtreecommitdiff
path: root/src/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol')
-rw-r--r--src/protocol/child.c5
-rw-r--r--src/protocol/pool_process_query.c3
-rw-r--r--src/protocol/pool_proto_modules.c8
3 files changed, 11 insertions, 5 deletions
diff --git a/src/protocol/child.c b/src/protocol/child.c
index cf2161806..87de2caac 100644
--- a/src/protocol/child.c
+++ b/src/protocol/child.c
@@ -772,8 +772,11 @@ read_startup_packet(POOL_CONNECTION *cp)
}
/* The database defaults to their user name. */
- if (sp->database == NULL || sp->database[0] == '\0')
+ if (sp->database == NULL)
+ sp->database = pstrdup(sp->user);
+ else if (sp->database[0] == '\0')
{
+ pfree(sp->database);
sp->database = pstrdup(sp->user);
}
diff --git a/src/protocol/pool_process_query.c b/src/protocol/pool_process_query.c
index b69cb3d52..9a23f86f0 100644
--- a/src/protocol/pool_process_query.c
+++ b/src/protocol/pool_process_query.c
@@ -5296,6 +5296,7 @@ pool_push_pending_data(POOL_CONNECTION *backend)
{
pool_push(backend, buf, len);
pfree(buf);
+ buf = NULL;
}
data_pushed = true;
if (kind == 'E')
@@ -5304,6 +5305,8 @@ pool_push_pending_data(POOL_CONNECTION *backend)
ereport(DEBUG1,
(errmsg("pool_push_pending_data: ERROR response found")));
pool_set_ignore_till_sync();
+ if (buf)
+ pfree(buf);
break;
}
num_pushed_messages++;
diff --git a/src/protocol/pool_proto_modules.c b/src/protocol/pool_proto_modules.c
index 6fad3353c..11befe979 100644
--- a/src/protocol/pool_proto_modules.c
+++ b/src/protocol/pool_proto_modules.c
@@ -3829,9 +3829,9 @@ pi_set(int node_id)
ProcessInfo *pi = pool_get_my_process_info();
if (node_id < BITS_PER_TYPE(uint64))
- pi->node_ids[0] |= (1 << node_id);
+ pi->node_ids[0] |= ((uint64) 1 << node_id);
else
- pi->node_ids[1] |= (1 << (node_id - BITS_PER_TYPE(uint64)));
+ pi->node_ids[1] |= ((uint64) 1 << (node_id - BITS_PER_TYPE(uint64)));
}
/*
@@ -3843,9 +3843,9 @@ is_pi_set(uint64 *node_ids, int node_id)
int set;
if (node_id < BITS_PER_TYPE(uint64))
- set = node_ids[0] & (1 << node_id);
+ set = node_ids[0] & ((uint64) 1 << node_id);
else
- set = node_ids[1] & (1 << (node_id - BITS_PER_TYPE(uint64)));
+ set = node_ids[1] & ((uint64) 1 << (node_id - BITS_PER_TYPE(uint64)));
return set != 0;
}