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

Commit5005a96

Browse files
author
Nikita Glukhov
committed
Don't pass DetoastIterator to toast_decompress_iterate()
1 parent89e6e7a commit5005a96

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

‎src/backend/access/common/toast_compression.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,9 @@ lz4_decompress_datum_slice(const struct varlena *value, int32 slicelength)
249249

250250
void
251251
toast_decompress_iterate(ToastBuffer*source,ToastBuffer*dest,
252-
DetoastIteratoriter,constchar*destend)
252+
ToastCompressionIdcompression_method,
253+
void**decompression_state,
254+
constchar*destend)
253255
{
254256
constchar*sp;
255257
constchar*srcend;
@@ -278,13 +280,13 @@ toast_decompress_iterate(ToastBuffer *source, ToastBuffer *dest,
278280
/*
279281
* Decompress the data using the appropriate decompression routine.
280282
*/
281-
switch (iter->compression_method)
283+
switch (compression_method)
282284
{
283285
caseTOAST_PGLZ_COMPRESSION_ID:
284286
dlen=pglz_decompress_state(sp,&slen,dp,destend-dp,
285287
last_source_chunk&&destend==dest->capacity,
286288
last_source_chunk,
287-
&iter->decompression_state);
289+
decompression_state);
288290
break;
289291
caseTOAST_LZ4_COMPRESSION_ID:
290292
if (source->limit<source->capacity)
@@ -310,7 +312,7 @@ toast_decompress_iterate(ToastBuffer *source, ToastBuffer *dest,
310312
}
311313
break;
312314
default:
313-
elog(ERROR,"invalid compression method id %d",iter->compression_method);
315+
elog(ERROR,"invalid compression method id %d",compression_method);
314316
return;/* keep compiler quiet */
315317
}
316318

‎src/include/access/detoast.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,9 @@ extern void fetch_datum_iterate(FetchDatumIterator iter);
112112
externToastBuffer*create_toast_buffer(int32size,boolcompressed);
113113
externvoidfree_toast_buffer(ToastBuffer*buf);
114114
externvoidtoast_decompress_iterate(ToastBuffer*source,ToastBuffer*dest,
115-
DetoastIteratoriter,constchar*destend);
115+
ToastCompressionIdcompression_method,
116+
void**decompression_state,
117+
constchar*destend);
116118
externvoidpglz_decompress_iterate(ToastBuffer*source,ToastBuffer*dest,
117119
DetoastIteratoriter,char*destend);
118120

@@ -166,7 +168,10 @@ detoast_iterate(DetoastIterator detoast_iter, const char *destend)
166168
fetch_datum_iterate(fetch_iter);
167169

168170
if (detoast_iter->compressed)
169-
toast_decompress_iterate(fetch_iter->buf,detoast_iter->buf,detoast_iter,destend);
171+
toast_decompress_iterate(fetch_iter->buf,detoast_iter->buf,
172+
detoast_iter->compression_method,
173+
&detoast_iter->decompression_state,
174+
destend);
170175

171176
if (detoast_iter->buf->limit==detoast_iter->buf->capacity)
172177
detoast_iter->done= true;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp