summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier2012-08-15 06:36:15 +0000
committerMichael Paquier2012-08-15 06:36:15 +0000
commit0c6ee90d69c9e34caf1829af090010508e0cf6c6 (patch)
treed718cc5b47288aa7b6f9ae617a97ee4ad379cb90
parentfe9985c168d85738e5d88ed9407b840449f31b75 (diff)
Fix some warnings in code for compilation O2
Most of the warnings present in code are fixed, most of them being uninitialized variables. The remaining warnings need some deeper clean-up.
-rw-r--r--src/backend/access/transam/varsup.c7
-rw-r--r--src/backend/access/transam/xact.c2
-rw-r--r--src/backend/access/transam/xlog.c4
-rw-r--r--src/backend/commands/sequence.c2
-rw-r--r--src/backend/nodes/makefuncs.c1
-rw-r--r--src/backend/optimizer/plan/createplan.c2
-rw-r--r--src/backend/pgxc/locator/locator.c2
-rw-r--r--src/backend/pgxc/locator/redistrib.c2
-rw-r--r--src/backend/pgxc/nodemgr/nodemgr.c3
-rw-r--r--src/backend/pgxc/plan/planner.c5
-rw-r--r--src/backend/pgxc/pool/execRemote.c4
-rw-r--r--src/backend/utils/adt/dbsize.c2
-rw-r--r--src/gtm/client/fe-connect.c4
-rw-r--r--src/gtm/common/gtm_lock.c4
-rw-r--r--src/gtm/main/gtm_standby.c2
-rw-r--r--src/gtm/proxy/proxy_main.c3
-rw-r--r--src/include/gtm/pqexpbuffer.h8
-rw-r--r--src/include/gtm/stringinfo.h4
-rw-r--r--src/test/regress/pg_regress.c8
19 files changed, 45 insertions, 24 deletions
diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c
index 4831820f31..e9fb733bfb 100644
--- a/src/backend/access/transam/varsup.c
+++ b/src/backend/access/transam/varsup.c
@@ -112,7 +112,10 @@ GetNewTransactionId(bool isSubXact)
elog(ERROR, "cannot assign TransactionIds during recovery");
#ifdef PGXC
- if (IS_PGXC_COORDINATOR && !IsConnFromCoord() || IsPGXCNodeXactDatanodeDirect())
+ /* Initialize transaction ID */
+ xid = InvalidTransactionId;
+
+ if ((IS_PGXC_COORDINATOR && !IsConnFromCoord()) || IsPGXCNodeXactDatanodeDirect())
{
/*
* Get XID from GTM before acquiring the lock.
@@ -134,7 +137,7 @@ GetNewTransactionId(bool isSubXact)
#ifdef PGXC
/* Only remote Coordinator or a Datanode accessed directly by an application can get a GXID */
- if (IS_PGXC_COORDINATOR && !IsConnFromCoord() || IsPGXCNodeXactDatanodeDirect())
+ if ((IS_PGXC_COORDINATOR && !IsConnFromCoord()) || IsPGXCNodeXactDatanodeDirect())
{
if (TransactionIdIsValid(xid))
{
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 4b0b5cebfc..9b5a86cfd4 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -2533,7 +2533,7 @@ PrepareTransaction(void)
TimestampTz prepared_at;
#ifdef PGXC
bool isImplicit = !(s->blockState == TBLOCK_PREPARE);
- char *nodestring;
+ char *nodestring = NULL;
#endif
ShowTransactionState("PrepareTransaction");
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 16522b98c5..829cf81a1a 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -5672,7 +5672,7 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis)
bool stopsHere;
#ifdef PGXC
bool stopsAtThisBarrier = false;
- char *recordBarrierId;
+ char *recordBarrierId = NULL;
#endif
uint8 record_info;
TimestampTz recordXtime;
@@ -5726,7 +5726,7 @@ recoveryStopsHere(XLogRecord *record, bool *includeThis)
(errmsg("processing barrier xlog record for %s", recordBarrierId)));
}
}
-#endif
+#endif
else if (record->xl_rmid == RM_XLOG_ID && record_info == XLOG_RESTORE_POINT)
{
xl_restore_point *recordRestorePointData;
diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c
index 99d7352d37..90ef06b162 100644
--- a/src/backend/commands/sequence.c
+++ b/src/backend/commands/sequence.c
@@ -304,7 +304,7 @@ DefineSequence(CreateSeqStmt *seq)
if (CreateSequenceGTM(seqname,
increment,
min_value,
- max_value,
+ max_value,
start_value, cycle) < 0)
{
ereport(ERROR,
diff --git a/src/backend/nodes/makefuncs.c b/src/backend/nodes/makefuncs.c
index 396a16dc8b..10db8721a7 100644
--- a/src/backend/nodes/makefuncs.c
+++ b/src/backend/nodes/makefuncs.c
@@ -186,6 +186,7 @@ makeWholeRowVar(RangeTblEntry *rte,
break;
#ifdef PGXC
case RTE_REMOTE_DUMMY:
+ result = NULL;
elog(ERROR, "Invalid RTE found");
break;
#endif /* PGXC */
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index 925a81cc1d..35d530b2fb 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -6654,7 +6654,7 @@ static List *
pgxc_add_node_to_grouping_tlist(List *remote_tlist, Node *expr, Index ressortgroupref)
{
TargetEntry *remote_tle;
- Oid saved_aggtype;
+ Oid saved_aggtype = InvalidOid;
/*
* When we add an aggregate to the remote targetlist the aggtype of such
diff --git a/src/backend/pgxc/locator/locator.c b/src/backend/pgxc/locator/locator.c
index b5b920a443..577023c96b 100644
--- a/src/backend/pgxc/locator/locator.c
+++ b/src/backend/pgxc/locator/locator.c
@@ -777,7 +777,7 @@ GetRelationNodesByQuals(Oid reloid, Index varno, Node *quals,
char
ConvertToLocatorType(int disttype)
{
- char loctype;
+ char loctype = LOCATOR_TYPE_NONE;
switch (disttype)
{
diff --git a/src/backend/pgxc/locator/redistrib.c b/src/backend/pgxc/locator/redistrib.c
index 264f01b1d1..29467f42c6 100644
--- a/src/backend/pgxc/locator/redistrib.c
+++ b/src/backend/pgxc/locator/redistrib.c
@@ -701,7 +701,7 @@ distrib_delete_hash(RedistribState *distribState, ExecNodes *exec_nodes)
foreach(item, exec_nodes->nodeList)
{
StringInfo buf2;
- char *hashfuncname, *colname;
+ char *hashfuncname, *colname = NULL;
Oid hashtype;
RelationLocInfo *locinfo = RelationGetLocInfo(rel);
int nodenum = lfirst_int(item);
diff --git a/src/backend/pgxc/nodemgr/nodemgr.c b/src/backend/pgxc/nodemgr/nodemgr.c
index 68b3e91500..1d1b5fb1a1 100644
--- a/src/backend/pgxc/nodemgr/nodemgr.c
+++ b/src/backend/pgxc/nodemgr/nodemgr.c
@@ -335,9 +335,8 @@ PgxcNodeListAndCount(void)
node = &coDefs[(*shmemNumCoords)++];
break;
case PGXC_NODE_DATANODE:
- node = &dnDefs[(*shmemNumDataNodes)++];
- break;
default:
+ node = &dnDefs[(*shmemNumDataNodes)++];
break;
}
diff --git a/src/backend/pgxc/plan/planner.c b/src/backend/pgxc/plan/planner.c
index 93ef939b75..fcb0fec6c9 100644
--- a/src/backend/pgxc/plan/planner.c
+++ b/src/backend/pgxc/plan/planner.c
@@ -102,7 +102,7 @@ make_ctid_col_ref(Query *qry)
ListCell *lc1, *lc2;
RangeTblEntry *rte1, *rte2;
int tableRTEs, firstTableRTENumber;
- RangeTblEntry *rte_in_query;
+ RangeTblEntry *rte_in_query = NULL;
AttrNumber attnum;
Oid vartypeid;
int32 type_mod;
@@ -165,6 +165,7 @@ make_ctid_col_ref(Query *qry)
}
attnum = specialAttNum("ctid");
+ Assert(rte_in_query);
get_rte_attribute_type(rte_in_query, attnum, &vartypeid, &type_mod, &varcollid);
return makeVar(firstTableRTENumber, attnum, vartypeid, type_mod, varcollid, 0);
}
@@ -1325,7 +1326,7 @@ pgxc_FQS_get_relation_nodes(RangeTblEntry *rte, Index varno, Query *query)
CmdType command_type = query->commandType;
bool for_update = query->rowMarks ? true : false;
ExecNodes *rel_exec_nodes;
- RelationAccessType rel_access;
+ RelationAccessType rel_access = RELATION_ACCESS_READ;
RelationLocInfo *rel_loc_info;
Assert(rte == rt_fetch(varno, (query->rtable)));
diff --git a/src/backend/pgxc/pool/execRemote.c b/src/backend/pgxc/pool/execRemote.c
index f77ca29de8..5836670d03 100644
--- a/src/backend/pgxc/pool/execRemote.c
+++ b/src/backend/pgxc/pool/execRemote.c
@@ -2925,8 +2925,8 @@ do_query(RemoteQueryState *node)
PGXCNodeHandle **connections = NULL;
PGXCNodeHandle *primaryconnection = NULL;
int i;
- int regular_conn_count;
- int total_conn_count;
+ int regular_conn_count = 0;
+ int total_conn_count = 0;
bool need_tran_block;
PGXCNodeAllHandles *pgxc_connections;
diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c
index 126750a2de..78fc657207 100644
--- a/src/backend/utils/adt/dbsize.c
+++ b/src/backend/utils/adt/dbsize.c
@@ -1051,7 +1051,7 @@ pgxc_exec_sizefunc(Oid relOid, char *funcname, char *extra_arg)
{
int numnodes;
Oid *nodelist;
- char *relname;
+ char *relname = NULL;
StringInfoData buf;
Relation rel;
diff --git a/src/gtm/client/fe-connect.c b/src/gtm/client/fe-connect.c
index 157baa61b7..a3add0e1f4 100644
--- a/src/gtm/client/fe-connect.c
+++ b/src/gtm/client/fe-connect.c
@@ -249,7 +249,7 @@ connectFailureMessage(GTM_Conn *conn, int errorno)
static int
connectGTMStart(GTM_Conn *conn)
{
- int portnum;
+ int portnum = 0;
char portstr[128];
struct addrinfo *addrs = NULL;
struct addrinfo hint;
@@ -1006,7 +1006,7 @@ GTMPQconninfoParse(const char *conninfo, char **errmsg)
if (errmsg)
*errmsg = NULL; /* default */
initGTMPQExpBuffer(&errorBuf);
- if (PQExpBufferBroken(&errorBuf))
+ if (PQExpBufferDataBroken(errorBuf))
return NULL; /* out of memory already :-( */
connOptions = conninfo_parse(conninfo, &errorBuf, false);
if (connOptions == NULL && errmsg)
diff --git a/src/gtm/common/gtm_lock.c b/src/gtm/common/gtm_lock.c
index a3e0b88f6a..9cc368aafd 100644
--- a/src/gtm/common/gtm_lock.c
+++ b/src/gtm/common/gtm_lock.c
@@ -28,7 +28,7 @@
bool
GTM_RWLockAcquire(GTM_RWLock *lock, GTM_LockMode mode)
{
- int status;
+ int status = EINVAL;
switch (mode)
{
@@ -86,7 +86,7 @@ GTM_RWLockDestroy(GTM_RWLock *lock)
bool
GTM_RWLockConditionalAcquire(GTM_RWLock *lock, GTM_LockMode mode)
{
- int status;
+ int status = EINVAL;
switch (mode)
{
diff --git a/src/gtm/main/gtm_standby.c b/src/gtm/main/gtm_standby.c
index 5c2c8f0a4d..f99b70cf90 100644
--- a/src/gtm/main/gtm_standby.c
+++ b/src/gtm/main/gtm_standby.c
@@ -410,7 +410,7 @@ gtm_standby_disconnect_from_standby(GTM_Conn *conn)
GTM_Conn *
gtm_standby_reconnect_to_standby(GTM_Conn *old_conn, int retry_max)
{
- GTM_Conn *newconn;
+ GTM_Conn *newconn = NULL;
int report;
int i;
diff --git a/src/gtm/proxy/proxy_main.c b/src/gtm/proxy/proxy_main.c
index 9de9d0c7a2..4d57a2c143 100644
--- a/src/gtm/proxy/proxy_main.c
+++ b/src/gtm/proxy/proxy_main.c
@@ -3150,8 +3150,7 @@ RegisterProxy(bool is_reconnect)
GTM_Result *res = NULL;
char proxyname[] = "";
time_t finish_time;
-
- MemoryContext old_mcxt;
+ MemoryContext old_mcxt = NULL;
if (is_reconnect)
{
diff --git a/src/include/gtm/pqexpbuffer.h b/src/include/gtm/pqexpbuffer.h
index 189293815f..9007f78c4d 100644
--- a/src/include/gtm/pqexpbuffer.h
+++ b/src/include/gtm/pqexpbuffer.h
@@ -61,6 +61,14 @@ typedef PQExpBufferData *PQExpBuffer;
((str) == NULL || (str)->maxlen == 0)
/*------------------------
+ * Same, but for use when using a static or local PQExpBufferData struct.
+ * For that, a null-pointer test is useless and may draw compiler warnings.
+ *------------------------
+ */
+#define PQExpBufferDataBroken(buf) \
+ ((buf).maxlen == 0)
+
+/*------------------------
* Initial size of the data buffer in a PQExpBuffer.
* NB: this must be large enough to hold error messages that might
* be returned by PQrequestCancel().
diff --git a/src/include/gtm/stringinfo.h b/src/include/gtm/stringinfo.h
index 4666fefc7e..27f2bd8cea 100644
--- a/src/include/gtm/stringinfo.h
+++ b/src/include/gtm/stringinfo.h
@@ -106,7 +106,9 @@ __attribute__((format(printf, 2, 3)));
* without modifying str. Typically the caller would enlarge str and retry
* on false return --- see appendStringInfo for standard usage pattern.
*/
-extern bool appendStringInfoVA(StringInfo str, const char *fmt, va_list args);
+extern bool
+appendStringInfoVA(StringInfo str, const char *fmt, va_list args)
+__attribute__((format(printf, 2, 0)));
/*------------------------
* appendStringInfoString
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index ce0b09ab86..22cf7898db 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -197,6 +197,14 @@ psql_command(const char *database, const char *query,...)
the supplied arguments. */
__attribute__((format(PG_PRINTF_ATTRIBUTE, 2, 3)));
+#ifdef PGXC
+static void
+psql_command_node(const char *database, PGXCNodeTypeNum node, const char *query,...)
+/* This extension allows gcc to check the format string for consistency with
+ the supplied arguments. */
+__attribute__((format(PG_PRINTF_ATTRIBUTE, 3, 4)));
+#endif
+
#ifdef WIN32
typedef BOOL (WINAPI * __CreateRestrictedToken) (HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE);