Re: jsonb failed assertions

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Peter Geoghegan <pg(at)heroku(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>, Andrew Dunstan <andrew(at)dunslane(dot)net>
Subject: Re: jsonb failed assertions
Date: 2014-05-20 20:17:29
Message-ID: CAFj8pRBV-==ycDsYiB08wbhm4pkt5A8837mkpWnY11TVVgA=Gg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2014-05-20 21:45 GMT+02:00 Peter Geoghegan <pg(at)heroku(dot)com>:

> On Tue, May 20, 2014 at 12:38 PM, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
> wrote:
> > NOTICE: a:>> {"type": "Feature", "geometry": null, "properties":
> {"TO_ST":
> > null, "BLKLOT": "1245063", "STREET": null, "FROM_ST": null, "LOT_NUM":
> > "063", "ST_TYPE": null, "ODD_EVEN": null, "BLOCK_NUM": "1245",
> "MAPBLKLOT":
> > "1245061"}}<<<
> > NOTICE: b:>> {"type": "Feature", "geometry": {"type": "Polygon",
> > "coordinates": [[[-122.476849622729347, 37.784637268897804, 0.0],
> > [-122.47693599079787, 37.784633351359254, 0.0], [-122.477005086381169,
> > 37.784630217263818, 0.0], [-122.477010255706205, 37.784701504178585,
> 0.0],
> > [-122.476590928382066, 37.784720524837788, 0.0], [-122.476585758323125,
> > 37.784649237923851, 0.0], [-122.476849622729347, 37.784637268897804,
> > 0.0]]]}, "properties": {"TO_ST": null, "BLKLOT": "1377060", "STREET":
> null,
> > "FROM_ST": null, "LOT_NUM": "060", "ST_TYPE": null, "ODD_EVEN": null,
> > "BLOCK_NUM": "1377", "MAPBLKLOT": "1377060"}}<<<
>
> I cannot immediately reproduce the problem.
>
> Is this the original JSON? Can you show the psql output from a query
> with a predicate that returns both jsonb datums?
>

This json is printed by JsonToCString

Datum
jsonb_cmp(PG_FUNCTION_ARGS)
{
Jsonb *jba = PG_GETARG_JSONB(0);
Jsonb *jbb = PG_GETARG_JSONB(1);
int res;

char *jba_str = JsonbToCString(NULL, &jba->root, VARSIZE(jba));
char *jbb_str = JsonbToCString(NULL, &jbb->root, VARSIZE(jbb));

elog(NOTICE, "a:>> %s<<<", jba_str);
elog(NOTICE, "b:>> %s<<<", jbb_str);

pfree(jba_str);
pfree(jbb_str);

res = compareJsonbContainers(&jba->root, &jbb->root);

PG_FREE_IF_COPY(jba, 0);
PG_FREE_IF_COPY(jbb, 1);
PG_RETURN_INT32(res);
}

postgres=# select * from t3 where data->'properties'->>'MAPBLKLOT' =
'1377060' and data->'properties'->>'LOT_NUM' = '060';;

data
-------------------------------------------------------------------------------------------------------------------------------------
{ "type": "Feature", "properties": { "MAPBLKLOT": "1377060", "BLKLOT":
"1377060", "BLOCK_NUM": "1377", "LOT_NUM": "060", "FROM_ST":.
. null, "TO_ST": null, "STREET": null, "ST_TYPE": null, "ODD_EVEN": null },
"geometry": { "type": "Polygon", "coordinates": [ [ [ -1.
.22.476849622729347, 37.784637268897804, 0.0 ], [ -122.47693599079787,
37.784633351359254, 0.0 ], [ -122.477005086381169, 37.7846302.
.17263818, 0.0 ], [ -122.477010255706205, 37.784701504178585, 0.0 ], [
-122.476590928382066, 37.784720524837788, 0.0 ], [ -122.47658.
.5758323125, 37.784649237923851, 0.0 ], [ -122.476849622729347,
37.784637268897804, 0.0 ] ] ] } }
(1 row)

postgres=# select * from t3 where data->'properties'->>'MAPBLKLOT' =
'1245061' and data->'properties'->>'LOT_NUM' = '063';;

data
-------------------------------------------------------------------------------------------------------------------------------------
{ "type": "Feature", "properties": { "MAPBLKLOT": "1245061", "BLKLOT":
"1245063", "BLOCK_NUM": "1245", "LOT_NUM": "063", "FROM_ST":.
. null, "TO_ST": null, "STREET": null, "ST_TYPE": null, "ODD_EVEN": null },
"geometry": null }
(1 row)

table dump is downloadable from http://pgsql.cz/data/data.dump.gz

Regards

Pavel

>
> Thanks
> --
> Peter Geoghegan
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2014-05-20 20:22:23 Re: pg_upgrade fails: Mismatch of relation OID in database 8.4 -> 9.3
Previous Message Andrew Dunstan 2014-05-20 20:15:34 Re: buildfarm animals and 'snapshot too old'