Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7d5ec0a

Browse files
author
Nikita Glukhov
committed
Don't decompress whole JEntrys of arrays
1 parent61e8839 commit7d5ec0a

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

‎contrib/jsonb_toaster/jsonb_toaster.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1800,11 +1800,11 @@ JsonbzArrayIteratorInit(JsonbzArrayIterator *it, CompressedJsonb *cjb)
18001800
JsonbDatum*jb= (JsonbDatum*)cjb->iter->buf->buf;
18011801
constJsonbContainerHeader*jbc= (constJsonbContainerHeader*)((char*)jb+cjb->offset);
18021802

1803-
jsonxzDecompressTo(cjb,cjb->offset+ ((char*)&jbc->children- (char*)jbc));
1803+
//jsonxzDecompressTo(cjb, cjb->offset + ((char *) &jbc->children - (char *) jbc));
18041804

18051805
it->count= (cjb->header&JBC_CMASK);
18061806

1807-
jsonxzDecompressTo(cjb,cjb->offset+ ((char*)&jbc->children[it->count]- (char*)jbc));
1807+
//jsonxzDecompressTo(cjb, cjb->offset + ((char *) &jbc->children[it->count] - (char *) jbc));
18081808

18091809
it->cjb=cjb;
18101810
it->container=jbc;
@@ -1816,9 +1816,14 @@ JsonbzArrayIteratorInit(JsonbzArrayIterator *it, CompressedJsonb *cjb)
18161816
staticbool
18171817
JsonbzArrayIteratorNext(JsonbzArrayIterator*it,JsonValue*result)
18181818
{
1819+
constvoid*jb=it->cjb->iter->buf->buf;
1820+
constJsonbContainer*jbc= (constJsonbContainer*)((char*)jb+it->cjb->offset);
1821+
18191822
if (it->index >=it->count)
18201823
return false;
18211824

1825+
jsonxzDecompressTo(it->cjb, (char*)&jbc->children[it->count]- (char*)jb);
1826+
18221827
fillCompressedJsonbValue(it->cjb,it->container,it->index,it->base_addr,
18231828
it->offset,result);
18241829

@@ -1831,9 +1836,14 @@ JsonbzArrayIteratorNext(JsonbzArrayIterator *it, JsonValue *result)
18311836
staticJsonValue*
18321837
JsonbzArrayIteratorGetIth(JsonbzArrayIterator*it,uint32index)
18331838
{
1839+
constvoid*jb=it->cjb->iter->buf->buf;
1840+
constJsonbContainer*jbc= (constJsonbContainer*)((char*)jb+it->cjb->offset);
1841+
18341842
if (index >=it->count)
18351843
returnNULL;
18361844

1845+
jsonxzDecompressTo(it->cjb, (char*)&jbc->children[index+1]- (char*)jb);
1846+
18371847
returnfillCompressedJsonbValue(it->cjb,it->container,index,
18381848
it->base_addr,
18391849
getJsonbOffset(it->container,index),

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp