↑↓ select ↵ open ⌫ change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Plan Nodes / Scan

Sample Scan

SampleScan

Reads a relation using the selected table-sampling method.

Reading PostgreSQL 18.6.

Description

Reads a relation using the selected table-sampling method.

Core node tag
T_SampleScan
Structured EXPLAIN Node Type
Sample Scan
Inputs
A relation and sampling method
Output
Sampled tuples
Executor initializer
ExecInitSampleScan
Memory mechanism
unclassified

EXPLAIN names and attributes

Structured formats use the Node Type above. Text-format spellings can also include operation, strategy, join type, scan direction or aggregation-stage attributes.

Text names recorded by this source: Sample Scan.

Parallel-aware and parallel-safe are different plan properties. A node running inside a parallel worker is not necessarily a parallel-aware node.

Memory and temporary storage

This extraction does not assign a universal memory limit or spill policy to this node. Inspect the same-build implementation and its expressions or provider.

Parallel execution and instrumentation

The source callbacks below can coordinate execution or collect worker instrumentation. Their presence is not a blanket claim that this node supports a shared parallel scan or shared state.

Callbacks in this build: none extracted from this node implementation.

Executor implementation notes

nodeSamplescan.c Support routines for sample scans of relations (table sampling).

SampleRecheck -- access method routine to recheck a tuple in EvalPlanQual

No need to recheck for SampleScan, since like SeqScan we don't pass any checkable keys to heap_beginscan.

Scans the relation using the sampling method and returns the next qualifying tuple. We call the ExecScan() routine and pass it the appropriate access method functions.

If we don't have a REPEATABLE clause, select a random seed. We want to do this just once, since the seed shouldn't change over rescans.

EXPLAIN identity in core source

case T_SampleScan:
			pname = sname = "Sample Scan";
			break;

EXPLAIN labels in this source build

Text-format labelStructured node identity
Sample ScanSample Scan

Related entries

Documentation and source

Source build
Version
18.6
Build
PostgreSQL 18.6 source archive
Source fingerprint
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

Compare versions

PostgreSQL 17 → 18: unchanged.

Compares recorded interfaces and attributes. Source fingerprints and build metadata are excluded; an absent sample is not proof of the introduction or removal release.

Related entries

Export JSON · Back to Plan Nodes · Recorded in PostgreSQL 10 through 20; the first sample is not necessarily its introduction.