Contents

(hint-list)=

Hint list

The available hints are listed below.

| Group | Format | Description | |:——|:—––|:————| | Scan method | SeqScan(table)| Forces sequential scan on the table. | | | TidScan(table) | Forces TID scan on the table. | | | IndexScan(table[ index...]) | Forces index scan on the table. Restricts to specified indexes if any. | | | IndexOnlyScan(table[ index...]) | Forces index-only scan on the table. Restricts to specified indexes if any. Index scan may be used if index-only scan is not available. | | | BitmapScan(table[ index...])| Forces bitmap scan on the table. Restricts to specified indexes if any. | | | IndexScanRegexp(table[ POSIX Regexp...])IndexOnlyScanRegexp(table[ POSIX Regexp...])BitmapScanRegexp(table[ POSIX Regexp...]) | Forces index scan, index-only scan (For PostgreSQL 9.2 and later) or bitmap scan on the table. Restricts to indexes that matches the specified POSIX regular expression pattern. | | | NoSeqScan(table)| Forces to not do sequential scan on the table. | | | NoTidScan(table)| Forces to not do TID scan on the table.| | | NoIndexScan(table)| Forces to not do index scan and index-only scan on the table. | | | NoIndexOnlyScan(table)| Forces to not do index only scan on the table. | | | NoBitmapScan(table) | Forces to not do bitmap scan on the table. | | Join method| NestLoop(table table[ table...]) | Forces nested loop for the joins on the tables specified. | | | HashJoin(table table[ table...])| Forces hash join for the joins on the tables specified. | | | MergeJoin(table table[ table...]) | Forces merge join for the joins on the tables specified. | | | NoNestLoop(table table[ table...])| Forces to not do nested loop for the joins on the tables specified. | | | NoHashJoin(table table[ table...])| Forces to not do hash join for the joins on the tables specified. | | | NoMergeJoin(table table[ table...]) | Forces to not do merge join for the joins on the tables specified. | | Join order | Leading(table table[ table...]) | Forces join order as specified. | | | Leading(<join pair>)| Forces join order and directions as specified. A join pair is a pair of tables and/or other join pairs enclosed by parentheses, which can make a nested structure. | | Behavior control on Join | Memoize(table table[ table...]) | Allows the topmost join of a join among the specified tables to Memoize the inner result. Not enforced. | | | NoMemoize(table table[ table...]) | Inhibits the topmost join of a join among the specified tables from Memoizing the inner result. | | Row number correction | Rows(table table[ table...] correction) | Corrects row number of a result of the joins on the tables specified. The available correction methods are absolute (#), addition (+), subtract (-) and multiplication (*). should be a string that strtod() can understand. | | Parallel query configuration | Parallel(table <# of workers> [soft\|hard]) | Enforces or inhibits parallel execution of the specified table. <# of workers> is the desired number of parallel workers, where zero means inhibiting parallel execution. If the third parameter is soft (default), it just changes max_parallel_workers_per_gather and leaves everything else to the planner. Hard enforces the specified number of workers. | | GUC | Set(GUC-param value) | Sets GUC parameter to the value defined while planner is running. |