mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Parameter toast_tuple_target controls TOAST for new rows
Specifies the point at which we try to move long column values into TOAST tables. No effect on existing rows. Discussion: https://postgr.es/m/CANP8+jKsVmw6CX6YP9z7zqkTzcKV1+Uzr3XjKcZW=2Ya00OyQQ@mail.gmail.com Author: Simon Riggs <simon@2ndQudrant.com> Reviewed-by: Andrew Dunstan <andrew.dunstan@2ndQuadrant.com>
This commit is contained in:
@ -23,6 +23,7 @@
|
||||
#include "access/nbtree.h"
|
||||
#include "access/reloptions.h"
|
||||
#include "access/spgist.h"
|
||||
#include "access/tuptoaster.h"
|
||||
#include "catalog/pg_type.h"
|
||||
#include "commands/defrem.h"
|
||||
#include "commands/tablespace.h"
|
||||
@ -290,6 +291,15 @@ static relopt_int intRelOpts[] =
|
||||
},
|
||||
-1, -1, INT_MAX
|
||||
},
|
||||
{
|
||||
{
|
||||
"toast_tuple_target",
|
||||
"Sets the target tuple length at which external columns will be toasted",
|
||||
RELOPT_KIND_HEAP,
|
||||
ShareUpdateExclusiveLock
|
||||
},
|
||||
TOAST_TUPLE_TARGET, 128, TOAST_TUPLE_TARGET_MAIN
|
||||
},
|
||||
{
|
||||
{
|
||||
"pages_per_range",
|
||||
@ -1344,6 +1354,8 @@ default_reloptions(Datum reloptions, bool validate, relopt_kind kind)
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, multixact_freeze_table_age)},
|
||||
{"log_autovacuum_min_duration", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, log_min_duration)},
|
||||
{"toast_tuple_target", RELOPT_TYPE_INT,
|
||||
offsetof(StdRdOptions, toast_tuple_target)},
|
||||
{"autovacuum_vacuum_scale_factor", RELOPT_TYPE_REAL,
|
||||
offsetof(StdRdOptions, autovacuum) + offsetof(AutoVacOpts, vacuum_scale_factor)},
|
||||
{"autovacuum_analyze_scale_factor", RELOPT_TYPE_REAL,
|
||||
|
@ -727,7 +727,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup,
|
||||
hoff += sizeof(Oid);
|
||||
hoff = MAXALIGN(hoff);
|
||||
/* now convert to a limit on the tuple data size */
|
||||
maxDataLen = TOAST_TUPLE_TARGET - hoff;
|
||||
maxDataLen = RelationGetToastTupleTarget(rel, TOAST_TUPLE_TARGET) - hoff;
|
||||
|
||||
/*
|
||||
* Look for attributes with attstorage 'x' to compress. Also find large
|
||||
|
Reference in New Issue
Block a user