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

@ -1462,10 +1462,14 @@ hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
HSTORE_VALLEN(entries, i));
if (IsValidJsonNumber(tmp.data, tmp.len))
{
Datum numd;
val.type = jbvNumeric;
val.val.numeric = DatumGetNumeric(
DirectFunctionCall3(numeric_in,
CStringGetDatum(tmp.data), 0, -1));
numd = DirectFunctionCall3(numeric_in,
CStringGetDatum(tmp.data),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
val.val.numeric = DatumGetNumeric(numd);
}
else
{

View File

@ -325,8 +325,13 @@ PLyNumber_ToJsonbValue(PyObject *obj, JsonbValue *jbvNum)
PG_TRY();
{
num = DatumGetNumeric(DirectFunctionCall3(numeric_in,
CStringGetDatum(str), 0, -1));
Datum numd;
numd = DirectFunctionCall3(numeric_in,
CStringGetDatum(str),
ObjectIdGetDatum(InvalidOid),
Int32GetDatum(-1));
num = DatumGetNumeric(numd);
}
PG_CATCH();
{

View File

@ -180,8 +180,8 @@ autoprewarm_main(Datum main_arg)
{
LWLockRelease(&apw_state->lock);
ereport(LOG,
(errmsg("autoprewarm worker is already running under PID %d",
apw_state->bgworker_pid)));
(errmsg("autoprewarm worker is already running under PID %lu",
(unsigned long) apw_state->bgworker_pid)));
return;
}
apw_state->bgworker_pid = MyProcPid;
@ -290,8 +290,8 @@ apw_load_buffers(void)
{
LWLockRelease(&apw_state->lock);
ereport(LOG,
(errmsg("skipping prewarm because block dump file is being written by PID %d",
apw_state->pid_using_dumpfile)));
(errmsg("skipping prewarm because block dump file is being written by PID %lu",
(unsigned long) apw_state->pid_using_dumpfile)));
return;
}
LWLockRelease(&apw_state->lock);
@ -580,12 +580,12 @@ apw_dump_now(bool is_bgworker, bool dump_unlogged)
{
if (!is_bgworker)
ereport(ERROR,
(errmsg("could not perform block dump because dump file is being used by PID %d",
apw_state->pid_using_dumpfile)));
(errmsg("could not perform block dump because dump file is being used by PID %lu",
(unsigned long) apw_state->pid_using_dumpfile)));
ereport(LOG,
(errmsg("skipping block dump because it is already being performed by PID %d",
apw_state->pid_using_dumpfile)));
(errmsg("skipping block dump because it is already being performed by PID %lu",
(unsigned long) apw_state->pid_using_dumpfile)));
return 0;
}
@ -717,8 +717,8 @@ autoprewarm_start_worker(PG_FUNCTION_ARGS)
if (pid != InvalidPid)
ereport(ERROR,
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("autoprewarm worker is already running under PID %d",
pid)));
errmsg("autoprewarm worker is already running under PID %lu",
(unsigned long) pid)));
apw_start_master_worker();