1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Fix assorted compiler warnings seen in the buildfarm.

Failure to use DatumGetFoo/FooGetDatum macros correctly, or at all,
causes some warnings about sign conversion.  This is just cosmetic
at the moment but in principle it's a type violation, so clean up
the instances I could find.

autoprewarm.c and sharedfileset.c contained code that unportably
assumed that pid_t is the same size as int.  We've variously dealt
with this by casting pid_t to int or to unsigned long for printing
purposes; I went with the latter.

Fix uninitialized-variable warning in RestoreGUCState.  This is
a live bug in some sense, but of no great significance given that
nobody is very likely to care what "line number" is associated with
a GUC that hasn't got a source file recorded.
This commit is contained in:
Tom Lane
2018-05-02 15:52:54 -04:00
parent 447dbf7aa7
commit fbb2e9a030
8 changed files with 54 additions and 36 deletions

View File

@ -214,9 +214,9 @@ SharedFileSetPath(char *path, SharedFileSet *fileset, Oid tablespace)
char tempdirpath[MAXPGPATH];
TempTablespacePath(tempdirpath, tablespace);
snprintf(path, MAXPGPATH, "%s/%s%d.%u.sharedfileset",
snprintf(path, MAXPGPATH, "%s/%s%lu.%u.sharedfileset",
tempdirpath, PG_TEMP_FILE_PREFIX,
fileset->creator_pid, fileset->number);
(unsigned long) fileset->creator_pid, fileset->number);
}
/*

View File

@ -343,6 +343,7 @@ jsonb_in_scalar(void *pstate, char *token, JsonTokenType tokentype)
{
JsonbInState *_state = (JsonbInState *) pstate;
JsonbValue v;
Datum numd;
switch (tokentype)
{
@ -361,18 +362,19 @@ jsonb_in_scalar(void *pstate, char *token, JsonTokenType tokentype)
*/
Assert(token != NULL);
v.type = jbvNumeric;
v.val.numeric = DatumGetNumeric(DirectFunctionCall3(numeric_in, CStringGetDatum(token), 0, -1));
numd = DirectFunctionCall3(numeric_in,
CStringGetDatum(token),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
v.val.numeric = DatumGetNumeric(numd);
break;
case JSON_TOKEN_TRUE:
v.type = jbvBool;
v.val.boolean = true;
break;
case JSON_TOKEN_FALSE:
v.type = jbvBool;
v.val.boolean = false;
break;
case JSON_TOKEN_NULL:
v.type = jbvNull;
@ -772,9 +774,14 @@ datum_to_jsonb(Datum val, bool is_null, JsonbInState *result,
strchr(outputstr, 'n') != NULL);
if (!numeric_error)
{
jb.type = jbvNumeric;
jb.val.numeric = DatumGetNumeric(DirectFunctionCall3(numeric_in, CStringGetDatum(outputstr), 0, -1));
Datum numd;
jb.type = jbvNumeric;
numd = DirectFunctionCall3(numeric_in,
CStringGetDatum(outputstr),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
jb.val.numeric = DatumGetNumeric(numd);
pfree(outputstr);
}
else

View File

@ -3818,8 +3818,8 @@ numeric_avg_deserialize(PG_FUNCTION_ARGS)
/* sumX */
temp = DirectFunctionCall3(numeric_recv,
PointerGetDatum(&buf),
InvalidOid,
-1);
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
init_var_from_num(DatumGetNumeric(temp), &tmp_var);
accum_sum_add(&(result->sumX), &tmp_var);
@ -3941,16 +3941,16 @@ numeric_deserialize(PG_FUNCTION_ARGS)
/* sumX */
temp = DirectFunctionCall3(numeric_recv,
PointerGetDatum(&buf),
InvalidOid,
-1);
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
init_var_from_num(DatumGetNumeric(temp), &sumX_var);
accum_sum_add(&(result->sumX), &sumX_var);
/* sumX2 */
temp = DirectFunctionCall3(numeric_recv,
PointerGetDatum(&buf),
InvalidOid,
-1);
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
init_var_from_num(DatumGetNumeric(temp), &sumX2_var);
accum_sum_add(&(result->sumX2), &sumX2_var);
@ -4340,14 +4340,14 @@ numeric_poly_deserialize(PG_FUNCTION_ARGS)
/* sumX */
sumX = DirectFunctionCall3(numeric_recv,
PointerGetDatum(&buf),
InvalidOid,
-1);
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
/* sumX2 */
sumX2 = DirectFunctionCall3(numeric_recv,
PointerGetDatum(&buf),
InvalidOid,
-1);
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
init_var_from_num(DatumGetNumeric(sumX), &sumX_var);
#ifdef HAVE_INT128
@ -4550,8 +4550,8 @@ int8_avg_deserialize(PG_FUNCTION_ARGS)
/* sumX */
temp = DirectFunctionCall3(numeric_recv,
PointerGetDatum(&buf),
InvalidOid,
-1);
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
init_var_from_num(DatumGetNumeric(temp), &num);
#ifdef HAVE_INT128
numericvar_to_int128(&num, &result->sumX);

View File

@ -813,7 +813,7 @@ pg_stat_get_activity(PG_FUNCTION_ARGS)
*/
nulls[12] = true;
nulls[13] = true;
values[14] = DatumGetInt32(-1);
values[14] = Int32GetDatum(-1);
}
else
{

View File

@ -9610,6 +9610,8 @@ RestoreGUCState(void *gucstate)
if (varsourcefile[0])
read_gucstate_binary(&srcptr, srcend,
&varsourceline, sizeof(varsourceline));
else
varsourceline = 0;
read_gucstate_binary(&srcptr, srcend,
&varsource, sizeof(varsource));
read_gucstate_binary(&srcptr, srcend,