fixups.patch
application/octet-stream
Filename: fixups.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| doc/src/sgml/ddl.sgml | 0 | 3 |
| doc/src/sgml/ref/create_table.sgml | 11 | 4 |
| src/backend/access/common/detoast.c | 2 | 3 |
| src/backend/access/compression/compress_lz4.c | 5 | 5 |
| src/include/nodes/execnodes.h | 2 | 2 |
diff --git a/doc/src/sgml/ddl.sgml b/doc/src/sgml/ddl.sgml
index 4d7ed698b9..1e9a4625cc 100644
--- a/doc/src/sgml/ddl.sgml
+++ b/doc/src/sgml/ddl.sgml
@@ -3762,9 +3762,6 @@ CREATE TABLE measurement (
<productname>PostgreSQL</productname>
tables (or, possibly, foreign tables). It is possible to specify a
tablespace and storage parameters for each partition separately.
- By default, each column in a partition inherits the compression method
- from parent table's column, however a different compression method can be
- set for each partition.
</para>
<para>
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
index 51a7a977a5..a4b297340f 100644
--- a/doc/src/sgml/ref/create_table.sgml
+++ b/doc/src/sgml/ref/create_table.sgml
@@ -997,10 +997,17 @@ WITH ( MODULUS <replaceable class="parameter">numeric_literal</replaceable>, REM
<term><literal>COMPRESSION <replaceable class="parameter">compression_method</replaceable></literal></term>
<listitem>
<para>
- This sets the compression method for a column. The supported compression
- methods are <literal>pglz</literal> and <literal>lz4</literal>.
- <literal>lz4</literal> is available only if <literal>--with-lz4</literal>
- was used when building <productname>PostgreSQL</productname>. The default
+ The <literal>COMPRESSION</literal> clause sets the compression method
+ for a column. Compression is supported only for variable-width data
+ types, and is used only for columns whose storage type is main or
+ extended. (See <xref linkend="sql-altertable"/> for information on
+ column storage types.) Setting this property for a partitioned table
+ has no direct effect, because such tables have no storage of their own,
+ but the configured value is inherited by newly-created partitions.
+ The supported compression methods are <literal>pglz</literal> and
+ <literal>lz4</literal>. <literal>lz4</literal> is available only if
+ <literal>--with-lz4</literal> was used when building
+ <productname>PostgreSQL</productname>. The default
is <literal>pglz</literal>.
</para>
</listitem>
diff --git a/src/backend/access/common/detoast.c b/src/backend/access/common/detoast.c
index b78d49167b..95d5b1c12a 100644
--- a/src/backend/access/common/detoast.c
+++ b/src/backend/access/common/detoast.c
@@ -477,8 +477,8 @@ toast_get_compression_oid(struct varlena *attr)
return InvalidOid;
/*
- * Just fetch the toast compress header to know the compression method
- * in the compressed data.
+ * Fetch just enough of the value to examine the compression header,
+ * so that we can find out the compression method.
*/
attr = toast_fetch_datum_slice(attr, 0, VARHDRSZ_COMPRESS);
}
@@ -503,7 +503,6 @@ toast_get_compression_handler(struct varlena *attr)
cmid = TOAST_COMPRESS_METHOD(attr);
- /* Get the handler routines for the compression method */
switch (cmid)
{
case PGLZ_COMPRESSION_ID:
diff --git a/src/backend/access/compression/compress_lz4.c b/src/backend/access/compression/compress_lz4.c
index 1856cf7df7..3079eff7eb 100644
--- a/src/backend/access/compression/compress_lz4.c
+++ b/src/backend/access/compression/compress_lz4.c
@@ -23,7 +23,7 @@
/*
* lz4_cmcompress - compression routine for lz4 compression method
*
- * Compresses source into dest using the default strategy. Returns the
+ * Compresses source into dest using the LZ4 defaults. Returns the
* compressed varlena, or NULL if compression fails.
*/
static struct varlena *
@@ -42,8 +42,8 @@ lz4_cmcompress(const struct varlena *value)
valsize = VARSIZE_ANY_EXHDR(value);
/*
- * Get maximum size of the compressed data that lz4 compression may output
- * and allocate the memory for holding the compressed data and the header.
+ * Figure out the maximum possible size of the LZ4 output, add the bytes
+ * that will be needed for varlena overhead, and allocate that amount.
*/
max_size = LZ4_compressBound(valsize);
tmp = (struct varlena *) palloc(max_size + VARHDRSZ_COMPRESS);
@@ -83,10 +83,10 @@ lz4_cmdecompress(const struct varlena *value)
int32 rawsize;
struct varlena *result;
- /* allocate memory for holding the uncompressed data */
+ /* allocate memory for the uncompressed data */
result = (struct varlena *) palloc(VARRAWSIZE_4B_C(value) + VARHDRSZ);
- /* decompress data using lz4 routine */
+ /* decompress the data */
rawsize = LZ4_decompress_safe((char *) value + VARHDRSZ_COMPRESS,
VARDATA(result),
VARSIZE(value) - VARHDRSZ_COMPRESS,
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 18e8ecfd90..d8483c36b3 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -1183,8 +1183,8 @@ typedef struct ModifyTableState
TupleTableSlot *mt_root_tuple_slot;
/*
- * Slot for storing the modified tuple, incase the target attribute's
- * compression method doesn't match with the source table.
+ * Slot for storing the modified tuple, in case the target attribute's
+ * compression method doesn't match that of the source table.
*/
TupleTableSlot *mt_decompress_tuple_slot;