Unused variables in hstore_to_jsonb

Started by Michael Paquieralmost 11 years ago5 messages
#1Michael Paquier
michael.paquier@gmail.com
1 attachment(s)

Hi all,

Coverity pointed out that hstore_to_jsonb in hstore_io.c does not use
a couple of return values from pushJsonbValue.
Attached is a patch to fix that.
Regards,
--
Michael

Attachments:

20150113_hstore_unused_vars.patchtext/x-diff; charset=US-ASCII; name=20150113_hstore_unused_vars.patchDownload
*** a/contrib/hstore/hstore_io.c
--- b/contrib/hstore/hstore_io.c
***************
*** 1338,1344 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  	JsonbParseState *state = NULL;
  	JsonbValue *res;
  
! 	res = pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
--- 1338,1344 ----
  	JsonbParseState *state = NULL;
  	JsonbValue *res;
  
! 	pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
***************
*** 1349,1355 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		res = pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
--- 1349,1355 ----
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
***************
*** 1361,1367 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  			val.val.string.len = HS_VALLEN(entries, i);
  			val.val.string.val = HS_VAL(entries, base, i);
  		}
! 		res = pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
--- 1361,1367 ----
  			val.val.string.len = HS_VALLEN(entries, i);
  			val.val.string.val = HS_VAL(entries, base, i);
  		}
! 		pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
#2Michael Paquier
michael.paquier@gmail.com
In reply to: Michael Paquier (#1)
1 attachment(s)
Re: Unused variables in hstore_to_jsonb

On Tue, Jan 13, 2015 at 4:34 PM, Michael Paquier
<michael.paquier@gmail.com> wrote:

Attached is a patch to fix that.

Oh, actually that's as well the case of hstore_to_jsonb_loose. Updated
patch is attached.
--
Michael

Attachments:

20150113_hstore_unused_vars_v2.patchtext/x-diff; charset=US-ASCII; name=20150113_hstore_unused_vars_v2.patchDownload
*** a/contrib/hstore/hstore_io.c
--- b/contrib/hstore/hstore_io.c
***************
*** 1338,1344 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  	JsonbParseState *state = NULL;
  	JsonbValue *res;
  
! 	res = pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
--- 1338,1344 ----
  	JsonbParseState *state = NULL;
  	JsonbValue *res;
  
! 	pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
***************
*** 1349,1355 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		res = pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
--- 1349,1355 ----
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
***************
*** 1361,1367 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  			val.val.string.len = HS_VALLEN(entries, i);
  			val.val.string.val = HS_VAL(entries, base, i);
  		}
! 		res = pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
--- 1361,1367 ----
  			val.val.string.len = HS_VALLEN(entries, i);
  			val.val.string.val = HS_VAL(entries, base, i);
  		}
! 		pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
***************
*** 1385,1391 **** hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
  
  	initStringInfo(&tmp);
  
! 	res = pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
--- 1385,1391 ----
  
  	initStringInfo(&tmp);
  
! 	pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
***************
*** 1396,1402 **** hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		res = pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
--- 1396,1402 ----
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
***************
*** 1471,1477 **** hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
  				val.val.string.val = HS_VAL(entries, base, i);
  			}
  		}
! 		res = pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
--- 1471,1477 ----
  				val.val.string.val = HS_VAL(entries, base, i);
  			}
  		}
! 		pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
#3Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Michael Paquier (#2)
Re: Unused variables in hstore_to_jsonb

On 01/13/2015 09:39 AM, Michael Paquier wrote:

On Tue, Jan 13, 2015 at 4:34 PM, Michael Paquier
<michael.paquier@gmail.com> wrote:

Attached is a patch to fix that.

Oh, actually that's as well the case of hstore_to_jsonb_loose. Updated
patch is attached.

You'll need to use "(void) pushJsonbValue(...)", otherwise you'll just
get a different warning. See commit c8315930.

- Heikki

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#4Michael Paquier
michael.paquier@gmail.com
In reply to: Heikki Linnakangas (#3)
1 attachment(s)
Re: Unused variables in hstore_to_jsonb

On Tue, Jan 13, 2015 at 5:36 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

You'll need to use "(void) pushJsonbValue(...)", otherwise you'll just get a
different warning. See commit c8315930.

Oh, I see. So this portion in contrib/ has been visibly missing.
Attached is a new patch.
--
Michael

Attachments:

20150113_hstore_unused_vars_v3.patchtext/x-patch; charset=US-ASCII; name=20150113_hstore_unused_vars_v3.patchDownload
*** a/contrib/hstore/hstore_io.c
--- b/contrib/hstore/hstore_io.c
***************
*** 1338,1344 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  	JsonbParseState *state = NULL;
  	JsonbValue *res;
  
! 	res = pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
--- 1338,1344 ----
  	JsonbParseState *state = NULL;
  	JsonbValue *res;
  
! 	(void) pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
***************
*** 1349,1355 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		res = pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
--- 1349,1355 ----
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		(void) pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
***************
*** 1361,1367 **** hstore_to_jsonb(PG_FUNCTION_ARGS)
  			val.val.string.len = HS_VALLEN(entries, i);
  			val.val.string.val = HS_VAL(entries, base, i);
  		}
! 		res = pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
--- 1361,1367 ----
  			val.val.string.len = HS_VALLEN(entries, i);
  			val.val.string.val = HS_VAL(entries, base, i);
  		}
! 		(void) pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
***************
*** 1385,1391 **** hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
  
  	initStringInfo(&tmp);
  
! 	res = pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
--- 1385,1391 ----
  
  	initStringInfo(&tmp);
  
! 	(void) pushJsonbValue(&state, WJB_BEGIN_OBJECT, NULL);
  
  	for (i = 0; i < count; i++)
  	{
***************
*** 1396,1402 **** hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		res = pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
--- 1396,1402 ----
  		key.val.string.len = HS_KEYLEN(entries, i);
  		key.val.string.val = HS_KEY(entries, base, i);
  
! 		(void) pushJsonbValue(&state, WJB_KEY, &key);
  
  		if (HS_VALISNULL(entries, i))
  		{
***************
*** 1471,1477 **** hstore_to_jsonb_loose(PG_FUNCTION_ARGS)
  				val.val.string.val = HS_VAL(entries, base, i);
  			}
  		}
! 		res = pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
--- 1471,1477 ----
  				val.val.string.val = HS_VAL(entries, base, i);
  			}
  		}
! 		(void) pushJsonbValue(&state, WJB_VALUE, &val);
  	}
  
  	res = pushJsonbValue(&state, WJB_END_OBJECT, NULL);
#5Heikki Linnakangas
hlinnakangas@vmware.com
In reply to: Michael Paquier (#4)
Re: Unused variables in hstore_to_jsonb

On 01/13/2015 01:09 PM, Michael Paquier wrote:

On Tue, Jan 13, 2015 at 5:36 PM, Heikki Linnakangas
<hlinnakangas@vmware.com> wrote:

You'll need to use "(void) pushJsonbValue(...)", otherwise you'll just get a
different warning. See commit c8315930.

Oh, I see. So this portion in contrib/ has been visibly missing.
Attached is a new patch.

Thanks, committed.

- Heikki

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers