/src/postgres/src/include/access/tableam.h
Line | Count | Source |
1 | | /*------------------------------------------------------------------------- |
2 | | * |
3 | | * tableam.h |
4 | | * POSTGRES table access method definitions. |
5 | | * |
6 | | * |
7 | | * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group |
8 | | * Portions Copyright (c) 1994, Regents of the University of California |
9 | | * |
10 | | * src/include/access/tableam.h |
11 | | * |
12 | | * NOTES |
13 | | * See tableam.sgml for higher level documentation. |
14 | | * |
15 | | *------------------------------------------------------------------------- |
16 | | */ |
17 | | #ifndef TABLEAM_H |
18 | | #define TABLEAM_H |
19 | | |
20 | | #include "access/relscan.h" |
21 | | #include "access/sdir.h" |
22 | | #include "access/xact.h" |
23 | | #include "executor/tuptable.h" |
24 | | #include "storage/read_stream.h" |
25 | | #include "utils/rel.h" |
26 | | #include "utils/snapshot.h" |
27 | | |
28 | | |
29 | | #define DEFAULT_TABLE_ACCESS_METHOD "heap" |
30 | | |
31 | | /* GUCs */ |
32 | | extern PGDLLIMPORT char *default_table_access_method; |
33 | | extern PGDLLIMPORT bool synchronize_seqscans; |
34 | | |
35 | | |
36 | | /* forward references in this file */ |
37 | | typedef struct BulkInsertStateData BulkInsertStateData; |
38 | | typedef struct IndexInfo IndexInfo; |
39 | | typedef struct SampleScanState SampleScanState; |
40 | | typedef struct ScanKeyData ScanKeyData; |
41 | | typedef struct ValidateIndexState ValidateIndexState; |
42 | | typedef struct VacuumParams VacuumParams; |
43 | | |
44 | | /* |
45 | | * Bitmask values for the flags argument to the scan_begin callback. |
46 | | */ |
47 | | typedef enum ScanOptions |
48 | | { |
49 | | SO_NONE = 0, |
50 | | |
51 | | /* one of SO_TYPE_* may be specified */ |
52 | | SO_TYPE_SEQSCAN = 1 << 0, |
53 | | SO_TYPE_BITMAPSCAN = 1 << 1, |
54 | | SO_TYPE_SAMPLESCAN = 1 << 2, |
55 | | SO_TYPE_TIDSCAN = 1 << 3, |
56 | | SO_TYPE_TIDRANGESCAN = 1 << 4, |
57 | | SO_TYPE_ANALYZE = 1 << 5, |
58 | | |
59 | | /* several of SO_ALLOW_* may be specified */ |
60 | | /* allow or disallow use of access strategy */ |
61 | | SO_ALLOW_STRAT = 1 << 6, |
62 | | /* report location to syncscan logic? */ |
63 | | SO_ALLOW_SYNC = 1 << 7, |
64 | | /* verify visibility page-at-a-time? */ |
65 | | SO_ALLOW_PAGEMODE = 1 << 8, |
66 | | |
67 | | /* unregister snapshot at scan end? */ |
68 | | SO_TEMP_SNAPSHOT = 1 << 9, |
69 | | |
70 | | /* set if the query doesn't modify the relation */ |
71 | | SO_HINT_REL_READ_ONLY = 1 << 10, |
72 | | |
73 | | /* collect scan instrumentation */ |
74 | | SO_SCAN_INSTRUMENT = 1 << 11, |
75 | | } ScanOptions; |
76 | | |
77 | | /* |
78 | | * Mask of flags that are set internally by the table scan functions and |
79 | | * shouldn't be passed by callers. Some of these are effectively set by callers |
80 | | * through parameters to table scan functions (e.g. SO_ALLOW_STRAT/allow_strat), |
81 | | * however, for now, retain tight control over them and don't allow users to |
82 | | * pass these themselves to table scan functions. |
83 | | */ |
84 | | #define SO_INTERNAL_FLAGS \ |
85 | | (SO_TYPE_SEQSCAN | SO_TYPE_BITMAPSCAN | SO_TYPE_SAMPLESCAN | \ |
86 | | SO_TYPE_TIDSCAN | SO_TYPE_TIDRANGESCAN | SO_TYPE_ANALYZE | \ |
87 | | SO_ALLOW_STRAT | SO_ALLOW_SYNC | SO_ALLOW_PAGEMODE | \ |
88 | | SO_TEMP_SNAPSHOT) |
89 | | |
90 | | /* |
91 | | * Result codes for table_{update,delete,lock_tuple}, and for visibility |
92 | | * routines inside table AMs. |
93 | | */ |
94 | | typedef enum TM_Result |
95 | | { |
96 | | /* |
97 | | * Signals that the action succeeded (i.e. update/delete performed, lock |
98 | | * was acquired) |
99 | | */ |
100 | | TM_Ok, |
101 | | |
102 | | /* The affected tuple wasn't visible to the relevant snapshot */ |
103 | | TM_Invisible, |
104 | | |
105 | | /* The affected tuple was already modified by the calling backend */ |
106 | | TM_SelfModified, |
107 | | |
108 | | /* |
109 | | * The affected tuple was updated by another transaction. This includes |
110 | | * the case where tuple was moved to another partition. |
111 | | */ |
112 | | TM_Updated, |
113 | | |
114 | | /* The affected tuple was deleted by another transaction */ |
115 | | TM_Deleted, |
116 | | |
117 | | /* |
118 | | * The affected tuple is currently being modified by another session. This |
119 | | * will only be returned if table_(update/delete/lock_tuple) are |
120 | | * instructed not to wait. |
121 | | */ |
122 | | TM_BeingModified, |
123 | | |
124 | | /* lock couldn't be acquired, action skipped. Only used by lock_tuple */ |
125 | | TM_WouldBlock, |
126 | | } TM_Result; |
127 | | |
128 | | /* |
129 | | * Result codes for table_update(..., update_indexes*..). |
130 | | * Used to determine which indexes to update. |
131 | | */ |
132 | | typedef enum TU_UpdateIndexes |
133 | | { |
134 | | /* No indexed columns were updated (incl. TID addressing of tuple) */ |
135 | | TU_None, |
136 | | |
137 | | /* A non-summarizing indexed column was updated, or the TID has changed */ |
138 | | TU_All, |
139 | | |
140 | | /* Only summarized columns were updated, TID is unchanged */ |
141 | | TU_Summarizing, |
142 | | } TU_UpdateIndexes; |
143 | | |
144 | | /* |
145 | | * When table_tuple_update, table_tuple_delete, or table_tuple_lock fail |
146 | | * because the target tuple is already outdated, they fill in this struct to |
147 | | * provide information to the caller about what happened. When those functions |
148 | | * succeed, the contents of this struct should not be relied upon, except for |
149 | | * `traversed`, which may be set in both success and failure cases. |
150 | | * |
151 | | * ctid is the target's ctid link: it is the same as the target's TID if the |
152 | | * target was deleted, or the location of the replacement tuple if the target |
153 | | * was updated. |
154 | | * |
155 | | * xmax is the outdating transaction's XID. If the caller wants to visit the |
156 | | * replacement tuple, it must check that this matches before believing the |
157 | | * replacement is really a match. This is InvalidTransactionId if the target |
158 | | * was !LP_NORMAL (expected only for a TID retrieved from syscache). |
159 | | * |
160 | | * cmax is the outdating command's CID, but only when the failure code is |
161 | | * TM_SelfModified (i.e., something in the current transaction outdated the |
162 | | * tuple); otherwise cmax is zero. (We make this restriction because |
163 | | * HeapTupleHeaderGetCmax doesn't work for tuples outdated in other |
164 | | * transactions.) |
165 | | * |
166 | | * traversed indicates if an update chain was followed in order to try to lock |
167 | | * the target tuple. (This may be set in both success and failure cases.) |
168 | | */ |
169 | | typedef struct TM_FailureData |
170 | | { |
171 | | ItemPointerData ctid; |
172 | | TransactionId xmax; |
173 | | CommandId cmax; |
174 | | bool traversed; |
175 | | } TM_FailureData; |
176 | | |
177 | | /* |
178 | | * State used when calling table_index_delete_tuples(). |
179 | | * |
180 | | * Represents the status of table tuples, referenced by table TID and taken by |
181 | | * index AM from index tuples. State consists of high level parameters of the |
182 | | * deletion operation, plus two mutable palloc()'d arrays for information |
183 | | * about the status of individual table tuples. These are conceptually one |
184 | | * single array. Using two arrays keeps the TM_IndexDelete struct small, |
185 | | * which makes sorting the first array (the deltids array) fast. |
186 | | * |
187 | | * Some index AM callers perform simple index tuple deletion (by specifying |
188 | | * bottomup = false), and include only known-dead deltids. These known-dead |
189 | | * entries are all marked knowndeletable = true directly (typically these are |
190 | | * TIDs from LP_DEAD-marked index tuples), but that isn't strictly required. |
191 | | * |
192 | | * Callers that specify bottomup = true are "bottom-up index deletion" |
193 | | * callers. The considerations for the tableam are more subtle with these |
194 | | * callers because they ask the tableam to perform highly speculative work, |
195 | | * and might only expect the tableam to check a small fraction of all entries. |
196 | | * Caller is not allowed to specify knowndeletable = true for any entry |
197 | | * because everything is highly speculative. Bottom-up caller provides |
198 | | * context and hints to tableam -- see comments below for details on how index |
199 | | * AMs and tableams should coordinate during bottom-up index deletion. |
200 | | * |
201 | | * Simple index deletion callers may ask the tableam to perform speculative |
202 | | * work, too. This is a little like bottom-up deletion, but not too much. |
203 | | * The tableam will only perform speculative work when it's practically free |
204 | | * to do so in passing for simple deletion caller (while always performing |
205 | | * whatever work is needed to enable knowndeletable/LP_DEAD index tuples to |
206 | | * be deleted within index AM). This is the real reason why it's possible for |
207 | | * simple index deletion caller to specify knowndeletable = false up front |
208 | | * (this means "check if it's possible for me to delete corresponding index |
209 | | * tuple when it's cheap to do so in passing"). The index AM should only |
210 | | * include "extra" entries for index tuples whose TIDs point to a table block |
211 | | * that tableam is expected to have to visit anyway (in the event of a block |
212 | | * orientated tableam). The tableam isn't strictly obligated to check these |
213 | | * "extra" TIDs, but a block-based AM should always manage to do so in |
214 | | * practice. |
215 | | * |
216 | | * The final contents of the deltids/status arrays are interesting to callers |
217 | | * that ask tableam to perform speculative work (i.e. when _any_ items have |
218 | | * knowndeletable set to false up front). These index AM callers will |
219 | | * naturally need to consult final state to determine which index tuples are |
220 | | * in fact deletable. |
221 | | * |
222 | | * The index AM can keep track of which index tuple relates to which deltid by |
223 | | * setting idxoffnum (and/or relying on each entry being uniquely identifiable |
224 | | * using tid), which is important when the final contents of the array will |
225 | | * need to be interpreted -- the array can shrink from initial size after |
226 | | * tableam processing and/or have entries in a new order (tableam may sort |
227 | | * deltids array for its own reasons). Bottom-up callers may find that final |
228 | | * ndeltids is 0 on return from call to tableam, in which case no index tuple |
229 | | * deletions are possible. Simple deletion callers can rely on any entries |
230 | | * they know to be deletable appearing in the final array as deletable. |
231 | | */ |
232 | | typedef struct TM_IndexDelete |
233 | | { |
234 | | ItemPointerData tid; /* table TID from index tuple */ |
235 | | int16 id; /* Offset into TM_IndexStatus array */ |
236 | | } TM_IndexDelete; |
237 | | |
238 | | typedef struct TM_IndexStatus |
239 | | { |
240 | | OffsetNumber idxoffnum; /* Index am page offset number */ |
241 | | bool knowndeletable; /* Currently known to be deletable? */ |
242 | | |
243 | | /* Bottom-up index deletion specific fields follow */ |
244 | | bool promising; /* Promising (duplicate) index tuple? */ |
245 | | int16 freespace; /* Space freed in index if deleted */ |
246 | | } TM_IndexStatus; |
247 | | |
248 | | /* |
249 | | * Index AM/tableam coordination is central to the design of bottom-up index |
250 | | * deletion. The index AM provides hints about where to look to the tableam |
251 | | * by marking some entries as "promising". Index AM does this with duplicate |
252 | | * index tuples that are strongly suspected to be old versions left behind by |
253 | | * UPDATEs that did not logically modify indexed values. Index AM may find it |
254 | | * helpful to only mark entries as promising when they're thought to have been |
255 | | * affected by such an UPDATE in the recent past. |
256 | | * |
257 | | * Bottom-up index deletion casts a wide net at first, usually by including |
258 | | * all TIDs on a target index page. It is up to the tableam to worry about |
259 | | * the cost of checking transaction status information. The tableam is in |
260 | | * control, but needs careful guidance from the index AM. Index AM requests |
261 | | * that bottomupfreespace target be met, while tableam measures progress |
262 | | * towards that goal by tallying the per-entry freespace value for known |
263 | | * deletable entries. (All !bottomup callers can just set these space related |
264 | | * fields to zero.) |
265 | | */ |
266 | | typedef struct TM_IndexDeleteOp |
267 | | { |
268 | | Relation irel; /* Target index relation */ |
269 | | BlockNumber iblknum; /* Index block number (for error reports) */ |
270 | | bool bottomup; /* Bottom-up (not simple) deletion? */ |
271 | | int bottomupfreespace; /* Bottom-up space target */ |
272 | | |
273 | | /* Mutable per-TID information follows (index AM initializes entries) */ |
274 | | int ndeltids; /* Current # of deltids/status elements */ |
275 | | TM_IndexDelete *deltids; |
276 | | TM_IndexStatus *status; |
277 | | } TM_IndexDeleteOp; |
278 | | |
279 | | /* |
280 | | * "options" flag bits for table_tuple_insert. Access methods may define |
281 | | * their own bits for internal use, as long as they don't collide with these. |
282 | | */ |
283 | | /* TABLE_INSERT_SKIP_WAL was 0x0001; RelationNeedsWAL() now governs */ |
284 | 0 | #define TABLE_INSERT_SKIP_FSM 0x0002 |
285 | 0 | #define TABLE_INSERT_FROZEN 0x0004 |
286 | 0 | #define TABLE_INSERT_NO_LOGICAL 0x0008 |
287 | | |
288 | | /* "options" flag bits for table_tuple_delete */ |
289 | 0 | #define TABLE_DELETE_CHANGING_PARTITION (1 << 0) |
290 | 0 | #define TABLE_DELETE_NO_LOGICAL (1 << 1) |
291 | | |
292 | | /* "options" flag bits for table_tuple_update */ |
293 | 0 | #define TABLE_UPDATE_NO_LOGICAL (1 << 0) |
294 | | |
295 | | /* flag bits for table_tuple_lock */ |
296 | | /* Follow tuples whose update is in progress if lock modes don't conflict */ |
297 | 0 | #define TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS (1 << 0) |
298 | | /* Follow update chain and lock latest version of tuple */ |
299 | 0 | #define TUPLE_LOCK_FLAG_FIND_LAST_VERSION (1 << 1) |
300 | | |
301 | | |
302 | | /* Typedef for callback function for table_index_build_scan */ |
303 | | typedef void (*IndexBuildCallback) (Relation index, |
304 | | ItemPointer tid, |
305 | | Datum *values, |
306 | | bool *isnull, |
307 | | bool tupleIsAlive, |
308 | | void *state); |
309 | | |
310 | | /* |
311 | | * API struct for a table AM. Note this must be allocated in a |
312 | | * server-lifetime manner, typically as a static const struct, which then gets |
313 | | * returned by FormData_pg_am.amhandler. |
314 | | * |
315 | | * In most cases it's not appropriate to call the callbacks directly, use the |
316 | | * table_* wrapper functions instead. |
317 | | * |
318 | | * GetTableAmRoutine() asserts that required callbacks are filled in, remember |
319 | | * to update when adding a callback. |
320 | | */ |
321 | | typedef struct TableAmRoutine |
322 | | { |
323 | | /* this must be set to T_TableAmRoutine */ |
324 | | NodeTag type; |
325 | | |
326 | | |
327 | | /* ------------------------------------------------------------------------ |
328 | | * Slot related callbacks. |
329 | | * ------------------------------------------------------------------------ |
330 | | */ |
331 | | |
332 | | /* |
333 | | * Return slot implementation suitable for storing a tuple of this AM. |
334 | | */ |
335 | | const TupleTableSlotOps *(*slot_callbacks) (Relation rel); |
336 | | |
337 | | |
338 | | /* ------------------------------------------------------------------------ |
339 | | * Table scan callbacks. |
340 | | * ------------------------------------------------------------------------ |
341 | | */ |
342 | | |
343 | | /* |
344 | | * Start a scan of `rel`. The callback has to return a TableScanDesc, |
345 | | * which will typically be embedded in a larger, AM specific, struct. |
346 | | * |
347 | | * If nkeys != 0, the results need to be filtered by those scan keys. |
348 | | * |
349 | | * pscan, if not NULL, will have already been initialized with |
350 | | * parallelscan_initialize(), and has to be for the same relation. Will |
351 | | * only be set coming from table_beginscan_parallel(). |
352 | | * |
353 | | * `flags` is a bitmask indicating the type of scan (ScanOptions's |
354 | | * SO_TYPE_*, currently only one may be specified), options controlling |
355 | | * the scan's behaviour (ScanOptions's SO_ALLOW_*, several may be |
356 | | * specified, an AM may ignore unsupported ones), whether the snapshot |
357 | | * needs to be deallocated at scan_end (ScanOptions's SO_TEMP_SNAPSHOT), |
358 | | * and any number of the other ScanOptions values. |
359 | | */ |
360 | | TableScanDesc (*scan_begin) (Relation rel, |
361 | | Snapshot snapshot, |
362 | | int nkeys, ScanKeyData *key, |
363 | | ParallelTableScanDesc pscan, |
364 | | uint32 flags); |
365 | | |
366 | | /* |
367 | | * Release resources and deallocate scan. If TableScanDesc.temp_snap, |
368 | | * TableScanDesc.rs_snapshot needs to be unregistered. |
369 | | */ |
370 | | void (*scan_end) (TableScanDesc scan); |
371 | | |
372 | | /* |
373 | | * Restart relation scan. If set_params is set to true, allow_{strat, |
374 | | * sync, pagemode} (see scan_begin) changes should be taken into account. |
375 | | */ |
376 | | void (*scan_rescan) (TableScanDesc scan, ScanKeyData *key, |
377 | | bool set_params, bool allow_strat, |
378 | | bool allow_sync, bool allow_pagemode); |
379 | | |
380 | | /* |
381 | | * Return next tuple from `scan`, store in slot. |
382 | | */ |
383 | | bool (*scan_getnextslot) (TableScanDesc scan, |
384 | | ScanDirection direction, |
385 | | TupleTableSlot *slot); |
386 | | |
387 | | /*----------- |
388 | | * Optional functions to provide scanning for ranges of ItemPointers. |
389 | | * Implementations must either provide both of these functions, or neither |
390 | | * of them. |
391 | | * |
392 | | * Implementations of scan_set_tidrange must themselves handle |
393 | | * ItemPointers of any value. i.e, they must handle each of the following: |
394 | | * |
395 | | * 1) mintid or maxtid is beyond the end of the table; and |
396 | | * 2) mintid is above maxtid; and |
397 | | * 3) item offset for mintid or maxtid is beyond the maximum offset |
398 | | * allowed by the AM. |
399 | | * |
400 | | * Implementations can assume that scan_set_tidrange is always called |
401 | | * before scan_getnextslot_tidrange or after scan_rescan and before any |
402 | | * further calls to scan_getnextslot_tidrange. |
403 | | */ |
404 | | void (*scan_set_tidrange) (TableScanDesc scan, |
405 | | ItemPointer mintid, |
406 | | ItemPointer maxtid); |
407 | | |
408 | | /* |
409 | | * Return next tuple from `scan` that's in the range of TIDs defined by |
410 | | * scan_set_tidrange. |
411 | | */ |
412 | | bool (*scan_getnextslot_tidrange) (TableScanDesc scan, |
413 | | ScanDirection direction, |
414 | | TupleTableSlot *slot); |
415 | | |
416 | | /* ------------------------------------------------------------------------ |
417 | | * Parallel table scan related functions. |
418 | | * ------------------------------------------------------------------------ |
419 | | */ |
420 | | |
421 | | /* |
422 | | * Estimate the size of shared memory needed for a parallel scan of this |
423 | | * relation. The snapshot does not need to be accounted for. |
424 | | */ |
425 | | Size (*parallelscan_estimate) (Relation rel); |
426 | | |
427 | | /* |
428 | | * Initialize ParallelTableScanDesc for a parallel scan of this relation. |
429 | | * `pscan` will be sized according to parallelscan_estimate() for the same |
430 | | * relation. |
431 | | */ |
432 | | Size (*parallelscan_initialize) (Relation rel, |
433 | | ParallelTableScanDesc pscan); |
434 | | |
435 | | /* |
436 | | * Reinitialize `pscan` for a new scan. `rel` will be the same relation as |
437 | | * when `pscan` was initialized by parallelscan_initialize. |
438 | | */ |
439 | | void (*parallelscan_reinitialize) (Relation rel, |
440 | | ParallelTableScanDesc pscan); |
441 | | |
442 | | |
443 | | /* ------------------------------------------------------------------------ |
444 | | * Index Scan Callbacks |
445 | | * ------------------------------------------------------------------------ |
446 | | */ |
447 | | |
448 | | /* |
449 | | * Prepare to fetch tuples from the relation, as needed when fetching |
450 | | * tuples for an index scan. The callback has to return an |
451 | | * IndexFetchTableData, which the AM will typically embed in a larger |
452 | | * structure with additional information. |
453 | | * |
454 | | * flags is a bitmask of ScanOptions affecting underlying table scan |
455 | | * behavior. See scan_begin() for more information on passing these. |
456 | | * |
457 | | * Tuples for an index scan can then be fetched via index_fetch_tuple. |
458 | | */ |
459 | | struct IndexFetchTableData *(*index_fetch_begin) (Relation rel, uint32 flags); |
460 | | |
461 | | /* |
462 | | * Reset index fetch. Typically this will release cross index fetch |
463 | | * resources held in IndexFetchTableData. |
464 | | */ |
465 | | void (*index_fetch_reset) (struct IndexFetchTableData *data); |
466 | | |
467 | | /* |
468 | | * Release resources and deallocate index fetch. |
469 | | */ |
470 | | void (*index_fetch_end) (struct IndexFetchTableData *data); |
471 | | |
472 | | /* |
473 | | * Fetch tuple at `tid` into `slot`, after doing a visibility test |
474 | | * according to `snapshot`. If a tuple was found and passed the visibility |
475 | | * test, return true, false otherwise. |
476 | | * |
477 | | * Note that AMs that do not necessarily update indexes when indexed |
478 | | * columns do not change, need to return the current/correct version of |
479 | | * the tuple that is visible to the snapshot, even if the tid points to an |
480 | | * older version of the tuple. |
481 | | * |
482 | | * *call_again is false on the first call to index_fetch_tuple for a tid. |
483 | | * If there potentially is another tuple matching the tid, *call_again |
484 | | * needs to be set to true by index_fetch_tuple, signaling to the caller |
485 | | * that index_fetch_tuple should be called again for the same tid. |
486 | | * |
487 | | * *all_dead, if all_dead is not NULL, should be set to true by |
488 | | * index_fetch_tuple iff it is guaranteed that no backend needs to see |
489 | | * that tuple. Index AMs can use that to avoid returning that tid in |
490 | | * future searches. |
491 | | */ |
492 | | bool (*index_fetch_tuple) (struct IndexFetchTableData *scan, |
493 | | ItemPointer tid, |
494 | | Snapshot snapshot, |
495 | | TupleTableSlot *slot, |
496 | | bool *call_again, bool *all_dead); |
497 | | |
498 | | |
499 | | /* ------------------------------------------------------------------------ |
500 | | * Callbacks for non-modifying operations on individual tuples |
501 | | * ------------------------------------------------------------------------ |
502 | | */ |
503 | | |
504 | | /* |
505 | | * Fetch tuple at `tid` into `slot`, after doing a visibility test |
506 | | * according to `snapshot`. If a tuple was found and passed the visibility |
507 | | * test, returns true, false otherwise. |
508 | | */ |
509 | | bool (*tuple_fetch_row_version) (Relation rel, |
510 | | ItemPointer tid, |
511 | | Snapshot snapshot, |
512 | | TupleTableSlot *slot); |
513 | | |
514 | | /* |
515 | | * Is tid valid for a scan of this relation. |
516 | | */ |
517 | | bool (*tuple_tid_valid) (TableScanDesc scan, |
518 | | ItemPointer tid); |
519 | | |
520 | | /* |
521 | | * Return the latest version of the tuple at `tid`, by updating `tid` to |
522 | | * point at the newest version. |
523 | | */ |
524 | | void (*tuple_get_latest_tid) (TableScanDesc scan, |
525 | | ItemPointer tid); |
526 | | |
527 | | /* |
528 | | * Does the tuple in `slot` satisfy `snapshot`? The slot needs to be of |
529 | | * the appropriate type for the AM. |
530 | | */ |
531 | | bool (*tuple_satisfies_snapshot) (Relation rel, |
532 | | TupleTableSlot *slot, |
533 | | Snapshot snapshot); |
534 | | |
535 | | /* see table_index_delete_tuples() */ |
536 | | TransactionId (*index_delete_tuples) (Relation rel, |
537 | | TM_IndexDeleteOp *delstate); |
538 | | |
539 | | |
540 | | /* ------------------------------------------------------------------------ |
541 | | * Manipulations of physical tuples. |
542 | | * ------------------------------------------------------------------------ |
543 | | */ |
544 | | |
545 | | /* see table_tuple_insert() for reference about parameters */ |
546 | | void (*tuple_insert) (Relation rel, TupleTableSlot *slot, |
547 | | CommandId cid, uint32 options, |
548 | | BulkInsertStateData *bistate); |
549 | | |
550 | | /* see table_tuple_insert_speculative() for reference about parameters */ |
551 | | void (*tuple_insert_speculative) (Relation rel, |
552 | | TupleTableSlot *slot, |
553 | | CommandId cid, |
554 | | uint32 options, |
555 | | BulkInsertStateData *bistate, |
556 | | uint32 specToken); |
557 | | |
558 | | /* see table_tuple_complete_speculative() for reference about parameters */ |
559 | | void (*tuple_complete_speculative) (Relation rel, |
560 | | TupleTableSlot *slot, |
561 | | uint32 specToken, |
562 | | bool succeeded); |
563 | | |
564 | | /* see table_multi_insert() for reference about parameters */ |
565 | | void (*multi_insert) (Relation rel, TupleTableSlot **slots, int nslots, |
566 | | CommandId cid, uint32 options, BulkInsertStateData *bistate); |
567 | | |
568 | | /* see table_tuple_delete() for reference about parameters */ |
569 | | TM_Result (*tuple_delete) (Relation rel, |
570 | | ItemPointer tid, |
571 | | CommandId cid, |
572 | | uint32 options, |
573 | | Snapshot snapshot, |
574 | | Snapshot crosscheck, |
575 | | bool wait, |
576 | | TM_FailureData *tmfd); |
577 | | |
578 | | /* see table_tuple_update() for reference about parameters */ |
579 | | TM_Result (*tuple_update) (Relation rel, |
580 | | ItemPointer otid, |
581 | | TupleTableSlot *slot, |
582 | | CommandId cid, |
583 | | uint32 options, |
584 | | Snapshot snapshot, |
585 | | Snapshot crosscheck, |
586 | | bool wait, |
587 | | TM_FailureData *tmfd, |
588 | | LockTupleMode *lockmode, |
589 | | TU_UpdateIndexes *update_indexes); |
590 | | |
591 | | /* see table_tuple_lock() for reference about parameters */ |
592 | | TM_Result (*tuple_lock) (Relation rel, |
593 | | ItemPointer tid, |
594 | | Snapshot snapshot, |
595 | | TupleTableSlot *slot, |
596 | | CommandId cid, |
597 | | LockTupleMode mode, |
598 | | LockWaitPolicy wait_policy, |
599 | | uint8 flags, |
600 | | TM_FailureData *tmfd); |
601 | | |
602 | | /* |
603 | | * Perform operations necessary to complete insertions made via |
604 | | * tuple_insert and multi_insert with a BulkInsertState specified. In-tree |
605 | | * access methods ceased to use this. |
606 | | * |
607 | | * Typically callers of tuple_insert and multi_insert will just pass all |
608 | | * the flags that apply to them, and each AM has to decide which of them |
609 | | * make sense for it, and then only take actions in finish_bulk_insert for |
610 | | * those flags, and ignore others. |
611 | | * |
612 | | * Optional callback. |
613 | | */ |
614 | | void (*finish_bulk_insert) (Relation rel, uint32 options); |
615 | | |
616 | | |
617 | | /* ------------------------------------------------------------------------ |
618 | | * DDL related functionality. |
619 | | * ------------------------------------------------------------------------ |
620 | | */ |
621 | | |
622 | | /* |
623 | | * This callback needs to create new relation storage for `rel`, with |
624 | | * appropriate durability behaviour for `persistence`. |
625 | | * |
626 | | * Note that only the subset of the relcache filled by |
627 | | * RelationBuildLocalRelation() can be relied upon and that the relation's |
628 | | * catalog entries will either not yet exist (new relation), or will still |
629 | | * reference the old relfilelocator. |
630 | | * |
631 | | * As output *freezeXid, *minmulti must be set to the values appropriate |
632 | | * for pg_class.{relfrozenxid, relminmxid}. For AMs that don't need those |
633 | | * fields to be filled they can be set to InvalidTransactionId and |
634 | | * InvalidMultiXactId, respectively. |
635 | | * |
636 | | * See also table_relation_set_new_filelocator(). |
637 | | */ |
638 | | void (*relation_set_new_filelocator) (Relation rel, |
639 | | const RelFileLocator *newrlocator, |
640 | | char persistence, |
641 | | TransactionId *freezeXid, |
642 | | MultiXactId *minmulti); |
643 | | |
644 | | /* |
645 | | * This callback needs to remove all contents from `rel`'s current |
646 | | * relfilelocator. No provisions for transactional behaviour need to be |
647 | | * made. Often this can be implemented by truncating the underlying |
648 | | * storage to its minimal size. |
649 | | * |
650 | | * See also table_relation_nontransactional_truncate(). |
651 | | */ |
652 | | void (*relation_nontransactional_truncate) (Relation rel); |
653 | | |
654 | | /* |
655 | | * See table_relation_copy_data(). |
656 | | * |
657 | | * This can typically be implemented by directly copying the underlying |
658 | | * storage, unless it contains references to the tablespace internally. |
659 | | */ |
660 | | void (*relation_copy_data) (Relation rel, |
661 | | const RelFileLocator *newrlocator); |
662 | | |
663 | | /* See table_relation_copy_for_cluster() */ |
664 | | void (*relation_copy_for_cluster) (Relation OldTable, |
665 | | Relation NewTable, |
666 | | Relation OldIndex, |
667 | | bool use_sort, |
668 | | TransactionId OldestXmin, |
669 | | Snapshot snapshot, |
670 | | TransactionId *xid_cutoff, |
671 | | MultiXactId *multi_cutoff, |
672 | | double *num_tuples, |
673 | | double *tups_vacuumed, |
674 | | double *tups_recently_dead); |
675 | | |
676 | | /* |
677 | | * React to VACUUM command on the relation. The VACUUM can be triggered by |
678 | | * a user or by autovacuum. The specific actions performed by the AM will |
679 | | * depend heavily on the individual AM. |
680 | | * |
681 | | * On entry a transaction is already established, and the relation is |
682 | | * locked with a ShareUpdateExclusive lock. |
683 | | * |
684 | | * Note that neither VACUUM FULL (and CLUSTER), nor ANALYZE go through |
685 | | * this routine, even if (for ANALYZE) it is part of the same VACUUM |
686 | | * command. |
687 | | * |
688 | | * There probably, in the future, needs to be a separate callback to |
689 | | * integrate with autovacuum's scheduling. |
690 | | */ |
691 | | void (*relation_vacuum) (Relation rel, |
692 | | const VacuumParams *params, |
693 | | BufferAccessStrategy bstrategy); |
694 | | |
695 | | /* |
696 | | * Prepare to analyze block `blockno` of `scan`. The scan has been started |
697 | | * with table_beginscan_analyze(). See also |
698 | | * table_scan_analyze_next_block(). |
699 | | * |
700 | | * The callback may acquire resources like locks that are held until |
701 | | * table_scan_analyze_next_tuple() returns false. It e.g. can make sense |
702 | | * to hold a lock until all tuples on a block have been analyzed by |
703 | | * scan_analyze_next_tuple. |
704 | | * |
705 | | * The callback can return false if the block is not suitable for |
706 | | * sampling, e.g. because it's a metapage that could never contain tuples. |
707 | | * |
708 | | * XXX: This obviously is primarily suited for block-based AMs. It's not |
709 | | * clear what a good interface for non block based AMs would be, so there |
710 | | * isn't one yet. |
711 | | */ |
712 | | bool (*scan_analyze_next_block) (TableScanDesc scan, |
713 | | ReadStream *stream); |
714 | | |
715 | | /* |
716 | | * See table_scan_analyze_next_tuple(). |
717 | | * |
718 | | * Not every AM might have a meaningful concept of dead rows, in which |
719 | | * case it's OK to not increment *deadrows - but note that that may |
720 | | * influence autovacuum scheduling (see comment for relation_vacuum |
721 | | * callback). |
722 | | */ |
723 | | bool (*scan_analyze_next_tuple) (TableScanDesc scan, |
724 | | double *liverows, |
725 | | double *deadrows, |
726 | | TupleTableSlot *slot); |
727 | | |
728 | | /* see table_index_build_range_scan for reference about parameters */ |
729 | | double (*index_build_range_scan) (Relation table_rel, |
730 | | Relation index_rel, |
731 | | IndexInfo *index_info, |
732 | | bool allow_sync, |
733 | | bool anyvisible, |
734 | | bool progress, |
735 | | BlockNumber start_blockno, |
736 | | BlockNumber numblocks, |
737 | | IndexBuildCallback callback, |
738 | | void *callback_state, |
739 | | TableScanDesc scan); |
740 | | |
741 | | /* see table_index_validate_scan for reference about parameters */ |
742 | | void (*index_validate_scan) (Relation table_rel, |
743 | | Relation index_rel, |
744 | | IndexInfo *index_info, |
745 | | Snapshot snapshot, |
746 | | ValidateIndexState *state); |
747 | | |
748 | | |
749 | | /* ------------------------------------------------------------------------ |
750 | | * Miscellaneous functions. |
751 | | * ------------------------------------------------------------------------ |
752 | | */ |
753 | | |
754 | | /* |
755 | | * See table_relation_size(). |
756 | | * |
757 | | * Note that currently a few callers use the MAIN_FORKNUM size to figure |
758 | | * out the range of potentially interesting blocks (brin, analyze). It's |
759 | | * probable that we'll need to revise the interface for those at some |
760 | | * point. |
761 | | */ |
762 | | uint64 (*relation_size) (Relation rel, ForkNumber forkNumber); |
763 | | |
764 | | |
765 | | /* |
766 | | * This callback should return true if the relation requires a TOAST table |
767 | | * and false if it does not. It may wish to examine the relation's tuple |
768 | | * descriptor before making a decision, but if it uses some other method |
769 | | * of storing large values (or if it does not support them) it can simply |
770 | | * return false. |
771 | | */ |
772 | | bool (*relation_needs_toast_table) (Relation rel); |
773 | | |
774 | | /* |
775 | | * This callback should return the OID of the table AM that implements |
776 | | * TOAST tables for this AM. If the relation_needs_toast_table callback |
777 | | * always returns false, this callback is not required. |
778 | | */ |
779 | | Oid (*relation_toast_am) (Relation rel); |
780 | | |
781 | | /* |
782 | | * This callback is invoked when detoasting a value stored in a toast |
783 | | * table implemented by this AM. See table_relation_fetch_toast_slice() |
784 | | * for more details. |
785 | | */ |
786 | | void (*relation_fetch_toast_slice) (Relation toastrel, Oid valueid, |
787 | | int32 attrsize, |
788 | | int32 sliceoffset, |
789 | | int32 slicelength, |
790 | | varlena *result); |
791 | | |
792 | | |
793 | | /* ------------------------------------------------------------------------ |
794 | | * Planner related functions. |
795 | | * ------------------------------------------------------------------------ |
796 | | */ |
797 | | |
798 | | /* |
799 | | * See table_relation_estimate_size(). |
800 | | * |
801 | | * While block oriented, it shouldn't be too hard for an AM that doesn't |
802 | | * internally use blocks to convert into a usable representation. |
803 | | * |
804 | | * This differs from the relation_size callback by returning size |
805 | | * estimates (both relation size and tuple count) for planning purposes, |
806 | | * rather than returning a currently correct estimate. |
807 | | */ |
808 | | void (*relation_estimate_size) (Relation rel, int32 *attr_widths, |
809 | | BlockNumber *pages, double *tuples, |
810 | | double *allvisfrac); |
811 | | |
812 | | |
813 | | /* ------------------------------------------------------------------------ |
814 | | * Executor related functions. |
815 | | * ------------------------------------------------------------------------ |
816 | | */ |
817 | | |
818 | | /* |
819 | | * Fetch the next tuple of a bitmap table scan into `slot` and return true |
820 | | * if a visible tuple was found, false otherwise. |
821 | | * |
822 | | * `lossy_pages` is incremented if the bitmap is lossy for the selected |
823 | | * page; otherwise, `exact_pages` is incremented. These are tracked for |
824 | | * display in EXPLAIN ANALYZE output. |
825 | | * |
826 | | * Prefetching additional data from the bitmap is left to the table AM. |
827 | | * |
828 | | * This is an optional callback. |
829 | | */ |
830 | | bool (*scan_bitmap_next_tuple) (TableScanDesc scan, |
831 | | TupleTableSlot *slot, |
832 | | bool *recheck, |
833 | | uint64 *lossy_pages, |
834 | | uint64 *exact_pages); |
835 | | |
836 | | /* |
837 | | * Prepare to fetch tuples from the next block in a sample scan. Return |
838 | | * false if the sample scan is finished, true otherwise. `scan` was |
839 | | * started via table_beginscan_sampling(). |
840 | | * |
841 | | * Typically this will first determine the target block by calling the |
842 | | * TsmRoutine's NextSampleBlock() callback if not NULL, or alternatively |
843 | | * perform a sequential scan over all blocks. The determined block is |
844 | | * then typically read and pinned. |
845 | | * |
846 | | * As the TsmRoutine interface is block based, a block needs to be passed |
847 | | * to NextSampleBlock(). If that's not appropriate for an AM, it |
848 | | * internally needs to perform mapping between the internal and a block |
849 | | * based representation. |
850 | | * |
851 | | * Note that it's not acceptable to hold deadlock prone resources such as |
852 | | * lwlocks until scan_sample_next_tuple() has exhausted the tuples on the |
853 | | * block - the tuple is likely to be returned to an upper query node, and |
854 | | * the next call could be off a long while. Holding buffer pins and such |
855 | | * is obviously OK. |
856 | | * |
857 | | * Currently it is required to implement this interface, as there's no |
858 | | * alternative way (contrary e.g. to bitmap scans) to implement sample |
859 | | * scans. If infeasible to implement, the AM may raise an error. |
860 | | */ |
861 | | bool (*scan_sample_next_block) (TableScanDesc scan, |
862 | | SampleScanState *scanstate); |
863 | | |
864 | | /* |
865 | | * This callback, only called after scan_sample_next_block has returned |
866 | | * true, should determine the next tuple to be returned from the selected |
867 | | * block using the TsmRoutine's NextSampleTuple() callback. |
868 | | * |
869 | | * The callback needs to perform visibility checks, and only return |
870 | | * visible tuples. That obviously can mean calling NextSampleTuple() |
871 | | * multiple times. |
872 | | * |
873 | | * The TsmRoutine interface assumes that there's a maximum offset on a |
874 | | * given page, so if that doesn't apply to an AM, it needs to emulate that |
875 | | * assumption somehow. |
876 | | */ |
877 | | bool (*scan_sample_next_tuple) (TableScanDesc scan, |
878 | | SampleScanState *scanstate, |
879 | | TupleTableSlot *slot); |
880 | | |
881 | | } TableAmRoutine; |
882 | | |
883 | | |
884 | | /* ---------------------------------------------------------------------------- |
885 | | * Slot functions. |
886 | | * ---------------------------------------------------------------------------- |
887 | | */ |
888 | | |
889 | | /* |
890 | | * Returns slot callbacks suitable for holding tuples of the appropriate type |
891 | | * for the relation. Works for tables, views, foreign tables and partitioned |
892 | | * tables. |
893 | | */ |
894 | | extern const TupleTableSlotOps *table_slot_callbacks(Relation relation); |
895 | | |
896 | | /* |
897 | | * Returns slot using the callbacks returned by table_slot_callbacks(), and |
898 | | * registers it on *reglist. |
899 | | */ |
900 | | extern TupleTableSlot *table_slot_create(Relation relation, List **reglist); |
901 | | |
902 | | |
903 | | /* ---------------------------------------------------------------------------- |
904 | | * Table scan functions. |
905 | | * ---------------------------------------------------------------------------- |
906 | | */ |
907 | | |
908 | | /* |
909 | | * A wrapper around the Table Access Method scan_begin callback, to centralize |
910 | | * error checking. All calls to ->scan_begin() should go through this |
911 | | * function. |
912 | | * |
913 | | * The caller-provided user_flags are validated against SO_INTERNAL_FLAGS to |
914 | | * catch callers that accidentally pass scan-type or other internal flags. |
915 | | */ |
916 | | static TableScanDesc |
917 | | table_beginscan_common(Relation rel, Snapshot snapshot, int nkeys, |
918 | | ScanKeyData *key, ParallelTableScanDesc pscan, |
919 | | uint32 flags, uint32 user_flags) |
920 | 0 | { |
921 | 0 | Assert((user_flags & SO_INTERNAL_FLAGS) == 0); |
922 | 0 | Assert((flags & ~SO_INTERNAL_FLAGS) == 0); |
923 | 0 | flags |= user_flags; |
924 | | |
925 | | /* |
926 | | * We don't allow scans to be started while CheckXidAlive is set, except |
927 | | * via systable_beginscan() et al. See detailed comments in xact.c where |
928 | | * these variables are declared. |
929 | | */ |
930 | 0 | if (unlikely(TransactionIdIsValid(CheckXidAlive) && !bsysscan)) |
931 | 0 | elog(ERROR, "scan started during logical decoding"); |
932 | | |
933 | 0 | return rel->rd_tableam->scan_begin(rel, snapshot, nkeys, key, pscan, flags); |
934 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan_common Unexecuted instantiation: brin.c:table_beginscan_common Unexecuted instantiation: detoast.c:table_beginscan_common Unexecuted instantiation: toast_internals.c:table_beginscan_common Unexecuted instantiation: gininsert.c:table_beginscan_common Unexecuted instantiation: gistbuild.c:table_beginscan_common Unexecuted instantiation: hash.c:table_beginscan_common Unexecuted instantiation: heapam.c:table_beginscan_common Unexecuted instantiation: heapam_handler.c:table_beginscan_common Unexecuted instantiation: heapam_indexscan.c:table_beginscan_common Unexecuted instantiation: heapam_visibility.c:table_beginscan_common Unexecuted instantiation: heapam_xlog.c:table_beginscan_common Unexecuted instantiation: heaptoast.c:table_beginscan_common Unexecuted instantiation: hio.c:table_beginscan_common Unexecuted instantiation: pruneheap.c:table_beginscan_common Unexecuted instantiation: rewriteheap.c:table_beginscan_common Unexecuted instantiation: vacuumlazy.c:table_beginscan_common Unexecuted instantiation: genam.c:table_beginscan_common Unexecuted instantiation: indexam.c:table_beginscan_common Unexecuted instantiation: nbtdedup.c:table_beginscan_common Unexecuted instantiation: nbtinsert.c:table_beginscan_common Unexecuted instantiation: nbtpage.c:table_beginscan_common Unexecuted instantiation: nbtsort.c:table_beginscan_common Unexecuted instantiation: nbtsplitloc.c:table_beginscan_common Unexecuted instantiation: spginsert.c:table_beginscan_common Unexecuted instantiation: tableam.c:table_beginscan_common Unexecuted instantiation: tableamapi.c:table_beginscan_common Unexecuted instantiation: xact.c:table_beginscan_common Unexecuted instantiation: bootstrap.c:table_beginscan_common Unexecuted instantiation: aclchk.c:table_beginscan_common Unexecuted instantiation: dependency.c:table_beginscan_common Unexecuted instantiation: heap.c:table_beginscan_common Unexecuted instantiation: index.c:table_beginscan_common Unexecuted instantiation: indexing.c:table_beginscan_common Unexecuted instantiation: objectaddress.c:table_beginscan_common Unexecuted instantiation: pg_db_role_setting.c:table_beginscan_common Unexecuted instantiation: pg_publication.c:table_beginscan_common Unexecuted instantiation: pg_subscription.c:table_beginscan_common Unexecuted instantiation: toasting.c:table_beginscan_common Unexecuted instantiation: gram.c:table_beginscan_common Unexecuted instantiation: alter.c:table_beginscan_common Unexecuted instantiation: analyze.c:table_beginscan_common Unexecuted instantiation: constraint.c:table_beginscan_common Unexecuted instantiation: copyfrom.c:table_beginscan_common Unexecuted instantiation: copyfromparse.c:table_beginscan_common Unexecuted instantiation: copyto.c:table_beginscan_common Unexecuted instantiation: createas.c:table_beginscan_common Unexecuted instantiation: dbcommands.c:table_beginscan_common Unexecuted instantiation: event_trigger.c:table_beginscan_common Unexecuted instantiation: indexcmds.c:table_beginscan_common Unexecuted instantiation: matview.c:table_beginscan_common Unexecuted instantiation: repack.c:table_beginscan_common Unexecuted instantiation: tablecmds.c:table_beginscan_common Unexecuted instantiation: tablespace.c:table_beginscan_common Unexecuted instantiation: trigger.c:table_beginscan_common Unexecuted instantiation: typecmds.c:table_beginscan_common Unexecuted instantiation: vacuum.c:table_beginscan_common Unexecuted instantiation: execIndexing.c:table_beginscan_common Unexecuted instantiation: execMain.c:table_beginscan_common Unexecuted instantiation: execPartition.c:table_beginscan_common Unexecuted instantiation: execReplication.c:table_beginscan_common Unexecuted instantiation: execUtils.c:table_beginscan_common Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan_common Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan_common Unexecuted instantiation: nodeIndexscan.c:table_beginscan_common Unexecuted instantiation: nodeLockRows.c:table_beginscan_common Unexecuted instantiation: nodeModifyTable.c:table_beginscan_common Unexecuted instantiation: nodeSamplescan.c:table_beginscan_common Unexecuted instantiation: nodeSeqscan.c:table_beginscan_common Unexecuted instantiation: nodeTidrangescan.c:table_beginscan_common Unexecuted instantiation: nodeTidscan.c:table_beginscan_common Unexecuted instantiation: spi.c:table_beginscan_common Unexecuted instantiation: copyfuncs.c:table_beginscan_common Unexecuted instantiation: equalfuncs.c:table_beginscan_common Unexecuted instantiation: outfuncs.c:table_beginscan_common Unexecuted instantiation: queryjumblefuncs.c:table_beginscan_common Unexecuted instantiation: readfuncs.c:table_beginscan_common Unexecuted instantiation: plancat.c:table_beginscan_common Unexecuted instantiation: partbounds.c:table_beginscan_common Unexecuted instantiation: autovacuum.c:table_beginscan_common Unexecuted instantiation: datachecksum_state.c:table_beginscan_common Unexecuted instantiation: conflict.c:table_beginscan_common Unexecuted instantiation: launcher.c:table_beginscan_common Unexecuted instantiation: reorderbuffer.c:table_beginscan_common Unexecuted instantiation: worker.c:table_beginscan_common Unexecuted instantiation: rewriteHandler.c:table_beginscan_common Unexecuted instantiation: attribute_stats.c:table_beginscan_common Unexecuted instantiation: extended_stats_funcs.c:table_beginscan_common Unexecuted instantiation: relation_stats.c:table_beginscan_common Unexecuted instantiation: bufmgr.c:table_beginscan_common Unexecuted instantiation: utility.c:table_beginscan_common Unexecuted instantiation: ri_triggers.c:table_beginscan_common Unexecuted instantiation: ruleutils.c:table_beginscan_common Unexecuted instantiation: selfuncs.c:table_beginscan_common Unexecuted instantiation: tid.c:table_beginscan_common Unexecuted instantiation: trigfuncs.c:table_beginscan_common Unexecuted instantiation: tsquery_rewrite.c:table_beginscan_common Unexecuted instantiation: tsvector_op.c:table_beginscan_common Unexecuted instantiation: xml.c:table_beginscan_common Unexecuted instantiation: evtcache.c:table_beginscan_common Unexecuted instantiation: funccache.c:table_beginscan_common Unexecuted instantiation: relcache.c:table_beginscan_common Unexecuted instantiation: postinit.c:table_beginscan_common Unexecuted instantiation: guc_tables.c:table_beginscan_common Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan_common |
935 | | |
936 | | /* |
937 | | * Start a scan of `rel`. Returned tuples pass a visibility test of |
938 | | * `snapshot`, and if nkeys != 0, the results are filtered by those scan keys. |
939 | | * |
940 | | * flags is a bitmask of ScanOptions. No SO_INTERNAL_FLAGS are permitted. |
941 | | */ |
942 | | static inline TableScanDesc |
943 | | table_beginscan(Relation rel, Snapshot snapshot, |
944 | | int nkeys, ScanKeyData *key, uint32 flags) |
945 | 0 | { |
946 | 0 | uint32 internal_flags = SO_TYPE_SEQSCAN | |
947 | 0 | SO_ALLOW_STRAT | SO_ALLOW_SYNC | SO_ALLOW_PAGEMODE; |
948 | |
|
949 | 0 | return table_beginscan_common(rel, snapshot, nkeys, key, NULL, |
950 | 0 | internal_flags, flags); |
951 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan Unexecuted instantiation: brin.c:table_beginscan Unexecuted instantiation: detoast.c:table_beginscan Unexecuted instantiation: toast_internals.c:table_beginscan Unexecuted instantiation: gininsert.c:table_beginscan Unexecuted instantiation: gistbuild.c:table_beginscan Unexecuted instantiation: hash.c:table_beginscan Unexecuted instantiation: heapam.c:table_beginscan Unexecuted instantiation: heapam_handler.c:table_beginscan Unexecuted instantiation: heapam_indexscan.c:table_beginscan Unexecuted instantiation: heapam_visibility.c:table_beginscan Unexecuted instantiation: heapam_xlog.c:table_beginscan Unexecuted instantiation: heaptoast.c:table_beginscan Unexecuted instantiation: hio.c:table_beginscan Unexecuted instantiation: pruneheap.c:table_beginscan Unexecuted instantiation: rewriteheap.c:table_beginscan Unexecuted instantiation: vacuumlazy.c:table_beginscan Unexecuted instantiation: genam.c:table_beginscan Unexecuted instantiation: indexam.c:table_beginscan Unexecuted instantiation: nbtdedup.c:table_beginscan Unexecuted instantiation: nbtinsert.c:table_beginscan Unexecuted instantiation: nbtpage.c:table_beginscan Unexecuted instantiation: nbtsort.c:table_beginscan Unexecuted instantiation: nbtsplitloc.c:table_beginscan Unexecuted instantiation: spginsert.c:table_beginscan Unexecuted instantiation: tableam.c:table_beginscan Unexecuted instantiation: tableamapi.c:table_beginscan Unexecuted instantiation: xact.c:table_beginscan Unexecuted instantiation: bootstrap.c:table_beginscan Unexecuted instantiation: aclchk.c:table_beginscan Unexecuted instantiation: dependency.c:table_beginscan Unexecuted instantiation: heap.c:table_beginscan Unexecuted instantiation: index.c:table_beginscan Unexecuted instantiation: indexing.c:table_beginscan Unexecuted instantiation: objectaddress.c:table_beginscan Unexecuted instantiation: pg_db_role_setting.c:table_beginscan Unexecuted instantiation: pg_publication.c:table_beginscan Unexecuted instantiation: pg_subscription.c:table_beginscan Unexecuted instantiation: toasting.c:table_beginscan Unexecuted instantiation: gram.c:table_beginscan Unexecuted instantiation: alter.c:table_beginscan Unexecuted instantiation: analyze.c:table_beginscan Unexecuted instantiation: constraint.c:table_beginscan Unexecuted instantiation: copyfrom.c:table_beginscan Unexecuted instantiation: copyfromparse.c:table_beginscan Unexecuted instantiation: copyto.c:table_beginscan Unexecuted instantiation: createas.c:table_beginscan Unexecuted instantiation: dbcommands.c:table_beginscan Unexecuted instantiation: event_trigger.c:table_beginscan Unexecuted instantiation: indexcmds.c:table_beginscan Unexecuted instantiation: matview.c:table_beginscan Unexecuted instantiation: repack.c:table_beginscan Unexecuted instantiation: tablecmds.c:table_beginscan Unexecuted instantiation: tablespace.c:table_beginscan Unexecuted instantiation: trigger.c:table_beginscan Unexecuted instantiation: typecmds.c:table_beginscan Unexecuted instantiation: vacuum.c:table_beginscan Unexecuted instantiation: execIndexing.c:table_beginscan Unexecuted instantiation: execMain.c:table_beginscan Unexecuted instantiation: execPartition.c:table_beginscan Unexecuted instantiation: execReplication.c:table_beginscan Unexecuted instantiation: execUtils.c:table_beginscan Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan Unexecuted instantiation: nodeIndexscan.c:table_beginscan Unexecuted instantiation: nodeLockRows.c:table_beginscan Unexecuted instantiation: nodeModifyTable.c:table_beginscan Unexecuted instantiation: nodeSamplescan.c:table_beginscan Unexecuted instantiation: nodeSeqscan.c:table_beginscan Unexecuted instantiation: nodeTidrangescan.c:table_beginscan Unexecuted instantiation: nodeTidscan.c:table_beginscan Unexecuted instantiation: spi.c:table_beginscan Unexecuted instantiation: copyfuncs.c:table_beginscan Unexecuted instantiation: equalfuncs.c:table_beginscan Unexecuted instantiation: outfuncs.c:table_beginscan Unexecuted instantiation: queryjumblefuncs.c:table_beginscan Unexecuted instantiation: readfuncs.c:table_beginscan Unexecuted instantiation: plancat.c:table_beginscan Unexecuted instantiation: partbounds.c:table_beginscan Unexecuted instantiation: autovacuum.c:table_beginscan Unexecuted instantiation: datachecksum_state.c:table_beginscan Unexecuted instantiation: conflict.c:table_beginscan Unexecuted instantiation: launcher.c:table_beginscan Unexecuted instantiation: reorderbuffer.c:table_beginscan Unexecuted instantiation: worker.c:table_beginscan Unexecuted instantiation: rewriteHandler.c:table_beginscan Unexecuted instantiation: attribute_stats.c:table_beginscan Unexecuted instantiation: extended_stats_funcs.c:table_beginscan Unexecuted instantiation: relation_stats.c:table_beginscan Unexecuted instantiation: bufmgr.c:table_beginscan Unexecuted instantiation: utility.c:table_beginscan Unexecuted instantiation: ri_triggers.c:table_beginscan Unexecuted instantiation: ruleutils.c:table_beginscan Unexecuted instantiation: selfuncs.c:table_beginscan Unexecuted instantiation: tid.c:table_beginscan Unexecuted instantiation: trigfuncs.c:table_beginscan Unexecuted instantiation: tsquery_rewrite.c:table_beginscan Unexecuted instantiation: tsvector_op.c:table_beginscan Unexecuted instantiation: xml.c:table_beginscan Unexecuted instantiation: evtcache.c:table_beginscan Unexecuted instantiation: funccache.c:table_beginscan Unexecuted instantiation: relcache.c:table_beginscan Unexecuted instantiation: postinit.c:table_beginscan Unexecuted instantiation: guc_tables.c:table_beginscan Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan |
952 | | |
953 | | /* |
954 | | * Like table_beginscan(), but for scanning catalog. It'll automatically use a |
955 | | * snapshot appropriate for scanning catalog relations. |
956 | | */ |
957 | | extern TableScanDesc table_beginscan_catalog(Relation relation, int nkeys, |
958 | | ScanKeyData *key); |
959 | | |
960 | | /* |
961 | | * Like table_beginscan(), but table_beginscan_strat() offers an extended API |
962 | | * that lets the caller control whether a nondefault buffer access strategy |
963 | | * can be used, and whether syncscan can be chosen (possibly resulting in the |
964 | | * scan not starting from block zero). Both of these default to true with |
965 | | * plain table_beginscan. |
966 | | */ |
967 | | static inline TableScanDesc |
968 | | table_beginscan_strat(Relation rel, Snapshot snapshot, |
969 | | int nkeys, ScanKeyData *key, |
970 | | bool allow_strat, bool allow_sync) |
971 | 0 | { |
972 | 0 | uint32 flags = SO_TYPE_SEQSCAN | SO_ALLOW_PAGEMODE; |
973 | |
|
974 | 0 | if (allow_strat) |
975 | 0 | flags |= SO_ALLOW_STRAT; |
976 | 0 | if (allow_sync) |
977 | 0 | flags |= SO_ALLOW_SYNC; |
978 | |
|
979 | 0 | return table_beginscan_common(rel, snapshot, nkeys, key, NULL, |
980 | 0 | flags, SO_NONE); |
981 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan_strat Unexecuted instantiation: brin.c:table_beginscan_strat Unexecuted instantiation: detoast.c:table_beginscan_strat Unexecuted instantiation: toast_internals.c:table_beginscan_strat Unexecuted instantiation: gininsert.c:table_beginscan_strat Unexecuted instantiation: gistbuild.c:table_beginscan_strat Unexecuted instantiation: hash.c:table_beginscan_strat Unexecuted instantiation: heapam.c:table_beginscan_strat Unexecuted instantiation: heapam_handler.c:table_beginscan_strat Unexecuted instantiation: heapam_indexscan.c:table_beginscan_strat Unexecuted instantiation: heapam_visibility.c:table_beginscan_strat Unexecuted instantiation: heapam_xlog.c:table_beginscan_strat Unexecuted instantiation: heaptoast.c:table_beginscan_strat Unexecuted instantiation: hio.c:table_beginscan_strat Unexecuted instantiation: pruneheap.c:table_beginscan_strat Unexecuted instantiation: rewriteheap.c:table_beginscan_strat Unexecuted instantiation: vacuumlazy.c:table_beginscan_strat Unexecuted instantiation: genam.c:table_beginscan_strat Unexecuted instantiation: indexam.c:table_beginscan_strat Unexecuted instantiation: nbtdedup.c:table_beginscan_strat Unexecuted instantiation: nbtinsert.c:table_beginscan_strat Unexecuted instantiation: nbtpage.c:table_beginscan_strat Unexecuted instantiation: nbtsort.c:table_beginscan_strat Unexecuted instantiation: nbtsplitloc.c:table_beginscan_strat Unexecuted instantiation: spginsert.c:table_beginscan_strat Unexecuted instantiation: tableam.c:table_beginscan_strat Unexecuted instantiation: tableamapi.c:table_beginscan_strat Unexecuted instantiation: xact.c:table_beginscan_strat Unexecuted instantiation: bootstrap.c:table_beginscan_strat Unexecuted instantiation: aclchk.c:table_beginscan_strat Unexecuted instantiation: dependency.c:table_beginscan_strat Unexecuted instantiation: heap.c:table_beginscan_strat Unexecuted instantiation: index.c:table_beginscan_strat Unexecuted instantiation: indexing.c:table_beginscan_strat Unexecuted instantiation: objectaddress.c:table_beginscan_strat Unexecuted instantiation: pg_db_role_setting.c:table_beginscan_strat Unexecuted instantiation: pg_publication.c:table_beginscan_strat Unexecuted instantiation: pg_subscription.c:table_beginscan_strat Unexecuted instantiation: toasting.c:table_beginscan_strat Unexecuted instantiation: gram.c:table_beginscan_strat Unexecuted instantiation: alter.c:table_beginscan_strat Unexecuted instantiation: analyze.c:table_beginscan_strat Unexecuted instantiation: constraint.c:table_beginscan_strat Unexecuted instantiation: copyfrom.c:table_beginscan_strat Unexecuted instantiation: copyfromparse.c:table_beginscan_strat Unexecuted instantiation: copyto.c:table_beginscan_strat Unexecuted instantiation: createas.c:table_beginscan_strat Unexecuted instantiation: dbcommands.c:table_beginscan_strat Unexecuted instantiation: event_trigger.c:table_beginscan_strat Unexecuted instantiation: indexcmds.c:table_beginscan_strat Unexecuted instantiation: matview.c:table_beginscan_strat Unexecuted instantiation: repack.c:table_beginscan_strat Unexecuted instantiation: tablecmds.c:table_beginscan_strat Unexecuted instantiation: tablespace.c:table_beginscan_strat Unexecuted instantiation: trigger.c:table_beginscan_strat Unexecuted instantiation: typecmds.c:table_beginscan_strat Unexecuted instantiation: vacuum.c:table_beginscan_strat Unexecuted instantiation: execIndexing.c:table_beginscan_strat Unexecuted instantiation: execMain.c:table_beginscan_strat Unexecuted instantiation: execPartition.c:table_beginscan_strat Unexecuted instantiation: execReplication.c:table_beginscan_strat Unexecuted instantiation: execUtils.c:table_beginscan_strat Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan_strat Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan_strat Unexecuted instantiation: nodeIndexscan.c:table_beginscan_strat Unexecuted instantiation: nodeLockRows.c:table_beginscan_strat Unexecuted instantiation: nodeModifyTable.c:table_beginscan_strat Unexecuted instantiation: nodeSamplescan.c:table_beginscan_strat Unexecuted instantiation: nodeSeqscan.c:table_beginscan_strat Unexecuted instantiation: nodeTidrangescan.c:table_beginscan_strat Unexecuted instantiation: nodeTidscan.c:table_beginscan_strat Unexecuted instantiation: spi.c:table_beginscan_strat Unexecuted instantiation: copyfuncs.c:table_beginscan_strat Unexecuted instantiation: equalfuncs.c:table_beginscan_strat Unexecuted instantiation: outfuncs.c:table_beginscan_strat Unexecuted instantiation: queryjumblefuncs.c:table_beginscan_strat Unexecuted instantiation: readfuncs.c:table_beginscan_strat Unexecuted instantiation: plancat.c:table_beginscan_strat Unexecuted instantiation: partbounds.c:table_beginscan_strat Unexecuted instantiation: autovacuum.c:table_beginscan_strat Unexecuted instantiation: datachecksum_state.c:table_beginscan_strat Unexecuted instantiation: conflict.c:table_beginscan_strat Unexecuted instantiation: launcher.c:table_beginscan_strat Unexecuted instantiation: reorderbuffer.c:table_beginscan_strat Unexecuted instantiation: worker.c:table_beginscan_strat Unexecuted instantiation: rewriteHandler.c:table_beginscan_strat Unexecuted instantiation: attribute_stats.c:table_beginscan_strat Unexecuted instantiation: extended_stats_funcs.c:table_beginscan_strat Unexecuted instantiation: relation_stats.c:table_beginscan_strat Unexecuted instantiation: bufmgr.c:table_beginscan_strat Unexecuted instantiation: utility.c:table_beginscan_strat Unexecuted instantiation: ri_triggers.c:table_beginscan_strat Unexecuted instantiation: ruleutils.c:table_beginscan_strat Unexecuted instantiation: selfuncs.c:table_beginscan_strat Unexecuted instantiation: tid.c:table_beginscan_strat Unexecuted instantiation: trigfuncs.c:table_beginscan_strat Unexecuted instantiation: tsquery_rewrite.c:table_beginscan_strat Unexecuted instantiation: tsvector_op.c:table_beginscan_strat Unexecuted instantiation: xml.c:table_beginscan_strat Unexecuted instantiation: evtcache.c:table_beginscan_strat Unexecuted instantiation: funccache.c:table_beginscan_strat Unexecuted instantiation: relcache.c:table_beginscan_strat Unexecuted instantiation: postinit.c:table_beginscan_strat Unexecuted instantiation: guc_tables.c:table_beginscan_strat Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan_strat |
982 | | |
983 | | /* |
984 | | * table_beginscan_bm is an alternative entry point for setting up a |
985 | | * TableScanDesc for a bitmap heap scan. Although that scan technology is |
986 | | * really quite unlike a standard seqscan, there is just enough commonality to |
987 | | * make it worth using the same data structure. |
988 | | * |
989 | | * flags is a bitmask of ScanOptions. No SO_INTERNAL_FLAGS are permitted. |
990 | | */ |
991 | | static inline TableScanDesc |
992 | | table_beginscan_bm(Relation rel, Snapshot snapshot, |
993 | | int nkeys, ScanKeyData *key, uint32 flags) |
994 | 0 | { |
995 | 0 | uint32 internal_flags = SO_TYPE_BITMAPSCAN | SO_ALLOW_PAGEMODE; |
996 | |
|
997 | 0 | return table_beginscan_common(rel, snapshot, nkeys, key, NULL, |
998 | 0 | internal_flags, flags); |
999 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan_bm Unexecuted instantiation: brin.c:table_beginscan_bm Unexecuted instantiation: detoast.c:table_beginscan_bm Unexecuted instantiation: toast_internals.c:table_beginscan_bm Unexecuted instantiation: gininsert.c:table_beginscan_bm Unexecuted instantiation: gistbuild.c:table_beginscan_bm Unexecuted instantiation: hash.c:table_beginscan_bm Unexecuted instantiation: heapam.c:table_beginscan_bm Unexecuted instantiation: heapam_handler.c:table_beginscan_bm Unexecuted instantiation: heapam_indexscan.c:table_beginscan_bm Unexecuted instantiation: heapam_visibility.c:table_beginscan_bm Unexecuted instantiation: heapam_xlog.c:table_beginscan_bm Unexecuted instantiation: heaptoast.c:table_beginscan_bm Unexecuted instantiation: hio.c:table_beginscan_bm Unexecuted instantiation: pruneheap.c:table_beginscan_bm Unexecuted instantiation: rewriteheap.c:table_beginscan_bm Unexecuted instantiation: vacuumlazy.c:table_beginscan_bm Unexecuted instantiation: genam.c:table_beginscan_bm Unexecuted instantiation: indexam.c:table_beginscan_bm Unexecuted instantiation: nbtdedup.c:table_beginscan_bm Unexecuted instantiation: nbtinsert.c:table_beginscan_bm Unexecuted instantiation: nbtpage.c:table_beginscan_bm Unexecuted instantiation: nbtsort.c:table_beginscan_bm Unexecuted instantiation: nbtsplitloc.c:table_beginscan_bm Unexecuted instantiation: spginsert.c:table_beginscan_bm Unexecuted instantiation: tableam.c:table_beginscan_bm Unexecuted instantiation: tableamapi.c:table_beginscan_bm Unexecuted instantiation: xact.c:table_beginscan_bm Unexecuted instantiation: bootstrap.c:table_beginscan_bm Unexecuted instantiation: aclchk.c:table_beginscan_bm Unexecuted instantiation: dependency.c:table_beginscan_bm Unexecuted instantiation: heap.c:table_beginscan_bm Unexecuted instantiation: index.c:table_beginscan_bm Unexecuted instantiation: indexing.c:table_beginscan_bm Unexecuted instantiation: objectaddress.c:table_beginscan_bm Unexecuted instantiation: pg_db_role_setting.c:table_beginscan_bm Unexecuted instantiation: pg_publication.c:table_beginscan_bm Unexecuted instantiation: pg_subscription.c:table_beginscan_bm Unexecuted instantiation: toasting.c:table_beginscan_bm Unexecuted instantiation: gram.c:table_beginscan_bm Unexecuted instantiation: alter.c:table_beginscan_bm Unexecuted instantiation: analyze.c:table_beginscan_bm Unexecuted instantiation: constraint.c:table_beginscan_bm Unexecuted instantiation: copyfrom.c:table_beginscan_bm Unexecuted instantiation: copyfromparse.c:table_beginscan_bm Unexecuted instantiation: copyto.c:table_beginscan_bm Unexecuted instantiation: createas.c:table_beginscan_bm Unexecuted instantiation: dbcommands.c:table_beginscan_bm Unexecuted instantiation: event_trigger.c:table_beginscan_bm Unexecuted instantiation: indexcmds.c:table_beginscan_bm Unexecuted instantiation: matview.c:table_beginscan_bm Unexecuted instantiation: repack.c:table_beginscan_bm Unexecuted instantiation: tablecmds.c:table_beginscan_bm Unexecuted instantiation: tablespace.c:table_beginscan_bm Unexecuted instantiation: trigger.c:table_beginscan_bm Unexecuted instantiation: typecmds.c:table_beginscan_bm Unexecuted instantiation: vacuum.c:table_beginscan_bm Unexecuted instantiation: execIndexing.c:table_beginscan_bm Unexecuted instantiation: execMain.c:table_beginscan_bm Unexecuted instantiation: execPartition.c:table_beginscan_bm Unexecuted instantiation: execReplication.c:table_beginscan_bm Unexecuted instantiation: execUtils.c:table_beginscan_bm Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan_bm Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan_bm Unexecuted instantiation: nodeIndexscan.c:table_beginscan_bm Unexecuted instantiation: nodeLockRows.c:table_beginscan_bm Unexecuted instantiation: nodeModifyTable.c:table_beginscan_bm Unexecuted instantiation: nodeSamplescan.c:table_beginscan_bm Unexecuted instantiation: nodeSeqscan.c:table_beginscan_bm Unexecuted instantiation: nodeTidrangescan.c:table_beginscan_bm Unexecuted instantiation: nodeTidscan.c:table_beginscan_bm Unexecuted instantiation: spi.c:table_beginscan_bm Unexecuted instantiation: copyfuncs.c:table_beginscan_bm Unexecuted instantiation: equalfuncs.c:table_beginscan_bm Unexecuted instantiation: outfuncs.c:table_beginscan_bm Unexecuted instantiation: queryjumblefuncs.c:table_beginscan_bm Unexecuted instantiation: readfuncs.c:table_beginscan_bm Unexecuted instantiation: plancat.c:table_beginscan_bm Unexecuted instantiation: partbounds.c:table_beginscan_bm Unexecuted instantiation: autovacuum.c:table_beginscan_bm Unexecuted instantiation: datachecksum_state.c:table_beginscan_bm Unexecuted instantiation: conflict.c:table_beginscan_bm Unexecuted instantiation: launcher.c:table_beginscan_bm Unexecuted instantiation: reorderbuffer.c:table_beginscan_bm Unexecuted instantiation: worker.c:table_beginscan_bm Unexecuted instantiation: rewriteHandler.c:table_beginscan_bm Unexecuted instantiation: attribute_stats.c:table_beginscan_bm Unexecuted instantiation: extended_stats_funcs.c:table_beginscan_bm Unexecuted instantiation: relation_stats.c:table_beginscan_bm Unexecuted instantiation: bufmgr.c:table_beginscan_bm Unexecuted instantiation: utility.c:table_beginscan_bm Unexecuted instantiation: ri_triggers.c:table_beginscan_bm Unexecuted instantiation: ruleutils.c:table_beginscan_bm Unexecuted instantiation: selfuncs.c:table_beginscan_bm Unexecuted instantiation: tid.c:table_beginscan_bm Unexecuted instantiation: trigfuncs.c:table_beginscan_bm Unexecuted instantiation: tsquery_rewrite.c:table_beginscan_bm Unexecuted instantiation: tsvector_op.c:table_beginscan_bm Unexecuted instantiation: xml.c:table_beginscan_bm Unexecuted instantiation: evtcache.c:table_beginscan_bm Unexecuted instantiation: funccache.c:table_beginscan_bm Unexecuted instantiation: relcache.c:table_beginscan_bm Unexecuted instantiation: postinit.c:table_beginscan_bm Unexecuted instantiation: guc_tables.c:table_beginscan_bm Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan_bm |
1000 | | |
1001 | | /* |
1002 | | * table_beginscan_sampling is an alternative entry point for setting up a |
1003 | | * TableScanDesc for a TABLESAMPLE scan. As with bitmap scans, it's worth |
1004 | | * using the same data structure although the behavior is rather different. |
1005 | | * In addition to the options offered by table_beginscan_strat, this call |
1006 | | * also allows control of whether page-mode visibility checking is used. |
1007 | | * |
1008 | | * flags is a bitmask of ScanOptions. No SO_INTERNAL_FLAGS are permitted. |
1009 | | */ |
1010 | | static inline TableScanDesc |
1011 | | table_beginscan_sampling(Relation rel, Snapshot snapshot, |
1012 | | int nkeys, ScanKeyData *key, |
1013 | | bool allow_strat, bool allow_sync, |
1014 | | bool allow_pagemode, uint32 flags) |
1015 | 0 | { |
1016 | 0 | uint32 internal_flags = SO_TYPE_SAMPLESCAN; |
1017 | |
|
1018 | 0 | if (allow_strat) |
1019 | 0 | internal_flags |= SO_ALLOW_STRAT; |
1020 | 0 | if (allow_sync) |
1021 | 0 | internal_flags |= SO_ALLOW_SYNC; |
1022 | 0 | if (allow_pagemode) |
1023 | 0 | internal_flags |= SO_ALLOW_PAGEMODE; |
1024 | |
|
1025 | 0 | return table_beginscan_common(rel, snapshot, nkeys, key, NULL, |
1026 | 0 | internal_flags, flags); |
1027 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan_sampling Unexecuted instantiation: brin.c:table_beginscan_sampling Unexecuted instantiation: detoast.c:table_beginscan_sampling Unexecuted instantiation: toast_internals.c:table_beginscan_sampling Unexecuted instantiation: gininsert.c:table_beginscan_sampling Unexecuted instantiation: gistbuild.c:table_beginscan_sampling Unexecuted instantiation: hash.c:table_beginscan_sampling Unexecuted instantiation: heapam.c:table_beginscan_sampling Unexecuted instantiation: heapam_handler.c:table_beginscan_sampling Unexecuted instantiation: heapam_indexscan.c:table_beginscan_sampling Unexecuted instantiation: heapam_visibility.c:table_beginscan_sampling Unexecuted instantiation: heapam_xlog.c:table_beginscan_sampling Unexecuted instantiation: heaptoast.c:table_beginscan_sampling Unexecuted instantiation: hio.c:table_beginscan_sampling Unexecuted instantiation: pruneheap.c:table_beginscan_sampling Unexecuted instantiation: rewriteheap.c:table_beginscan_sampling Unexecuted instantiation: vacuumlazy.c:table_beginscan_sampling Unexecuted instantiation: genam.c:table_beginscan_sampling Unexecuted instantiation: indexam.c:table_beginscan_sampling Unexecuted instantiation: nbtdedup.c:table_beginscan_sampling Unexecuted instantiation: nbtinsert.c:table_beginscan_sampling Unexecuted instantiation: nbtpage.c:table_beginscan_sampling Unexecuted instantiation: nbtsort.c:table_beginscan_sampling Unexecuted instantiation: nbtsplitloc.c:table_beginscan_sampling Unexecuted instantiation: spginsert.c:table_beginscan_sampling Unexecuted instantiation: tableam.c:table_beginscan_sampling Unexecuted instantiation: tableamapi.c:table_beginscan_sampling Unexecuted instantiation: xact.c:table_beginscan_sampling Unexecuted instantiation: bootstrap.c:table_beginscan_sampling Unexecuted instantiation: aclchk.c:table_beginscan_sampling Unexecuted instantiation: dependency.c:table_beginscan_sampling Unexecuted instantiation: heap.c:table_beginscan_sampling Unexecuted instantiation: index.c:table_beginscan_sampling Unexecuted instantiation: indexing.c:table_beginscan_sampling Unexecuted instantiation: objectaddress.c:table_beginscan_sampling Unexecuted instantiation: pg_db_role_setting.c:table_beginscan_sampling Unexecuted instantiation: pg_publication.c:table_beginscan_sampling Unexecuted instantiation: pg_subscription.c:table_beginscan_sampling Unexecuted instantiation: toasting.c:table_beginscan_sampling Unexecuted instantiation: gram.c:table_beginscan_sampling Unexecuted instantiation: alter.c:table_beginscan_sampling Unexecuted instantiation: analyze.c:table_beginscan_sampling Unexecuted instantiation: constraint.c:table_beginscan_sampling Unexecuted instantiation: copyfrom.c:table_beginscan_sampling Unexecuted instantiation: copyfromparse.c:table_beginscan_sampling Unexecuted instantiation: copyto.c:table_beginscan_sampling Unexecuted instantiation: createas.c:table_beginscan_sampling Unexecuted instantiation: dbcommands.c:table_beginscan_sampling Unexecuted instantiation: event_trigger.c:table_beginscan_sampling Unexecuted instantiation: indexcmds.c:table_beginscan_sampling Unexecuted instantiation: matview.c:table_beginscan_sampling Unexecuted instantiation: repack.c:table_beginscan_sampling Unexecuted instantiation: tablecmds.c:table_beginscan_sampling Unexecuted instantiation: tablespace.c:table_beginscan_sampling Unexecuted instantiation: trigger.c:table_beginscan_sampling Unexecuted instantiation: typecmds.c:table_beginscan_sampling Unexecuted instantiation: vacuum.c:table_beginscan_sampling Unexecuted instantiation: execIndexing.c:table_beginscan_sampling Unexecuted instantiation: execMain.c:table_beginscan_sampling Unexecuted instantiation: execPartition.c:table_beginscan_sampling Unexecuted instantiation: execReplication.c:table_beginscan_sampling Unexecuted instantiation: execUtils.c:table_beginscan_sampling Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan_sampling Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan_sampling Unexecuted instantiation: nodeIndexscan.c:table_beginscan_sampling Unexecuted instantiation: nodeLockRows.c:table_beginscan_sampling Unexecuted instantiation: nodeModifyTable.c:table_beginscan_sampling Unexecuted instantiation: nodeSamplescan.c:table_beginscan_sampling Unexecuted instantiation: nodeSeqscan.c:table_beginscan_sampling Unexecuted instantiation: nodeTidrangescan.c:table_beginscan_sampling Unexecuted instantiation: nodeTidscan.c:table_beginscan_sampling Unexecuted instantiation: spi.c:table_beginscan_sampling Unexecuted instantiation: copyfuncs.c:table_beginscan_sampling Unexecuted instantiation: equalfuncs.c:table_beginscan_sampling Unexecuted instantiation: outfuncs.c:table_beginscan_sampling Unexecuted instantiation: queryjumblefuncs.c:table_beginscan_sampling Unexecuted instantiation: readfuncs.c:table_beginscan_sampling Unexecuted instantiation: plancat.c:table_beginscan_sampling Unexecuted instantiation: partbounds.c:table_beginscan_sampling Unexecuted instantiation: autovacuum.c:table_beginscan_sampling Unexecuted instantiation: datachecksum_state.c:table_beginscan_sampling Unexecuted instantiation: conflict.c:table_beginscan_sampling Unexecuted instantiation: launcher.c:table_beginscan_sampling Unexecuted instantiation: reorderbuffer.c:table_beginscan_sampling Unexecuted instantiation: worker.c:table_beginscan_sampling Unexecuted instantiation: rewriteHandler.c:table_beginscan_sampling Unexecuted instantiation: attribute_stats.c:table_beginscan_sampling Unexecuted instantiation: extended_stats_funcs.c:table_beginscan_sampling Unexecuted instantiation: relation_stats.c:table_beginscan_sampling Unexecuted instantiation: bufmgr.c:table_beginscan_sampling Unexecuted instantiation: utility.c:table_beginscan_sampling Unexecuted instantiation: ri_triggers.c:table_beginscan_sampling Unexecuted instantiation: ruleutils.c:table_beginscan_sampling Unexecuted instantiation: selfuncs.c:table_beginscan_sampling Unexecuted instantiation: tid.c:table_beginscan_sampling Unexecuted instantiation: trigfuncs.c:table_beginscan_sampling Unexecuted instantiation: tsquery_rewrite.c:table_beginscan_sampling Unexecuted instantiation: tsvector_op.c:table_beginscan_sampling Unexecuted instantiation: xml.c:table_beginscan_sampling Unexecuted instantiation: evtcache.c:table_beginscan_sampling Unexecuted instantiation: funccache.c:table_beginscan_sampling Unexecuted instantiation: relcache.c:table_beginscan_sampling Unexecuted instantiation: postinit.c:table_beginscan_sampling Unexecuted instantiation: guc_tables.c:table_beginscan_sampling Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan_sampling |
1028 | | |
1029 | | /* |
1030 | | * table_beginscan_tid is an alternative entry point for setting up a |
1031 | | * TableScanDesc for a Tid scan. As with bitmap scans, it's worth using |
1032 | | * the same data structure although the behavior is rather different. |
1033 | | */ |
1034 | | static inline TableScanDesc |
1035 | | table_beginscan_tid(Relation rel, Snapshot snapshot) |
1036 | 0 | { |
1037 | 0 | uint32 flags = SO_TYPE_TIDSCAN; |
1038 | |
|
1039 | 0 | return table_beginscan_common(rel, snapshot, 0, NULL, NULL, |
1040 | 0 | flags, SO_NONE); |
1041 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan_tid Unexecuted instantiation: brin.c:table_beginscan_tid Unexecuted instantiation: detoast.c:table_beginscan_tid Unexecuted instantiation: toast_internals.c:table_beginscan_tid Unexecuted instantiation: gininsert.c:table_beginscan_tid Unexecuted instantiation: gistbuild.c:table_beginscan_tid Unexecuted instantiation: hash.c:table_beginscan_tid Unexecuted instantiation: heapam.c:table_beginscan_tid Unexecuted instantiation: heapam_handler.c:table_beginscan_tid Unexecuted instantiation: heapam_indexscan.c:table_beginscan_tid Unexecuted instantiation: heapam_visibility.c:table_beginscan_tid Unexecuted instantiation: heapam_xlog.c:table_beginscan_tid Unexecuted instantiation: heaptoast.c:table_beginscan_tid Unexecuted instantiation: hio.c:table_beginscan_tid Unexecuted instantiation: pruneheap.c:table_beginscan_tid Unexecuted instantiation: rewriteheap.c:table_beginscan_tid Unexecuted instantiation: vacuumlazy.c:table_beginscan_tid Unexecuted instantiation: genam.c:table_beginscan_tid Unexecuted instantiation: indexam.c:table_beginscan_tid Unexecuted instantiation: nbtdedup.c:table_beginscan_tid Unexecuted instantiation: nbtinsert.c:table_beginscan_tid Unexecuted instantiation: nbtpage.c:table_beginscan_tid Unexecuted instantiation: nbtsort.c:table_beginscan_tid Unexecuted instantiation: nbtsplitloc.c:table_beginscan_tid Unexecuted instantiation: spginsert.c:table_beginscan_tid Unexecuted instantiation: tableam.c:table_beginscan_tid Unexecuted instantiation: tableamapi.c:table_beginscan_tid Unexecuted instantiation: xact.c:table_beginscan_tid Unexecuted instantiation: bootstrap.c:table_beginscan_tid Unexecuted instantiation: aclchk.c:table_beginscan_tid Unexecuted instantiation: dependency.c:table_beginscan_tid Unexecuted instantiation: heap.c:table_beginscan_tid Unexecuted instantiation: index.c:table_beginscan_tid Unexecuted instantiation: indexing.c:table_beginscan_tid Unexecuted instantiation: objectaddress.c:table_beginscan_tid Unexecuted instantiation: pg_db_role_setting.c:table_beginscan_tid Unexecuted instantiation: pg_publication.c:table_beginscan_tid Unexecuted instantiation: pg_subscription.c:table_beginscan_tid Unexecuted instantiation: toasting.c:table_beginscan_tid Unexecuted instantiation: gram.c:table_beginscan_tid Unexecuted instantiation: alter.c:table_beginscan_tid Unexecuted instantiation: analyze.c:table_beginscan_tid Unexecuted instantiation: constraint.c:table_beginscan_tid Unexecuted instantiation: copyfrom.c:table_beginscan_tid Unexecuted instantiation: copyfromparse.c:table_beginscan_tid Unexecuted instantiation: copyto.c:table_beginscan_tid Unexecuted instantiation: createas.c:table_beginscan_tid Unexecuted instantiation: dbcommands.c:table_beginscan_tid Unexecuted instantiation: event_trigger.c:table_beginscan_tid Unexecuted instantiation: indexcmds.c:table_beginscan_tid Unexecuted instantiation: matview.c:table_beginscan_tid Unexecuted instantiation: repack.c:table_beginscan_tid Unexecuted instantiation: tablecmds.c:table_beginscan_tid Unexecuted instantiation: tablespace.c:table_beginscan_tid Unexecuted instantiation: trigger.c:table_beginscan_tid Unexecuted instantiation: typecmds.c:table_beginscan_tid Unexecuted instantiation: vacuum.c:table_beginscan_tid Unexecuted instantiation: execIndexing.c:table_beginscan_tid Unexecuted instantiation: execMain.c:table_beginscan_tid Unexecuted instantiation: execPartition.c:table_beginscan_tid Unexecuted instantiation: execReplication.c:table_beginscan_tid Unexecuted instantiation: execUtils.c:table_beginscan_tid Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan_tid Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan_tid Unexecuted instantiation: nodeIndexscan.c:table_beginscan_tid Unexecuted instantiation: nodeLockRows.c:table_beginscan_tid Unexecuted instantiation: nodeModifyTable.c:table_beginscan_tid Unexecuted instantiation: nodeSamplescan.c:table_beginscan_tid Unexecuted instantiation: nodeSeqscan.c:table_beginscan_tid Unexecuted instantiation: nodeTidrangescan.c:table_beginscan_tid Unexecuted instantiation: nodeTidscan.c:table_beginscan_tid Unexecuted instantiation: spi.c:table_beginscan_tid Unexecuted instantiation: copyfuncs.c:table_beginscan_tid Unexecuted instantiation: equalfuncs.c:table_beginscan_tid Unexecuted instantiation: outfuncs.c:table_beginscan_tid Unexecuted instantiation: queryjumblefuncs.c:table_beginscan_tid Unexecuted instantiation: readfuncs.c:table_beginscan_tid Unexecuted instantiation: plancat.c:table_beginscan_tid Unexecuted instantiation: partbounds.c:table_beginscan_tid Unexecuted instantiation: autovacuum.c:table_beginscan_tid Unexecuted instantiation: datachecksum_state.c:table_beginscan_tid Unexecuted instantiation: conflict.c:table_beginscan_tid Unexecuted instantiation: launcher.c:table_beginscan_tid Unexecuted instantiation: reorderbuffer.c:table_beginscan_tid Unexecuted instantiation: worker.c:table_beginscan_tid Unexecuted instantiation: rewriteHandler.c:table_beginscan_tid Unexecuted instantiation: attribute_stats.c:table_beginscan_tid Unexecuted instantiation: extended_stats_funcs.c:table_beginscan_tid Unexecuted instantiation: relation_stats.c:table_beginscan_tid Unexecuted instantiation: bufmgr.c:table_beginscan_tid Unexecuted instantiation: utility.c:table_beginscan_tid Unexecuted instantiation: ri_triggers.c:table_beginscan_tid Unexecuted instantiation: ruleutils.c:table_beginscan_tid Unexecuted instantiation: selfuncs.c:table_beginscan_tid Unexecuted instantiation: tid.c:table_beginscan_tid Unexecuted instantiation: trigfuncs.c:table_beginscan_tid Unexecuted instantiation: tsquery_rewrite.c:table_beginscan_tid Unexecuted instantiation: tsvector_op.c:table_beginscan_tid Unexecuted instantiation: xml.c:table_beginscan_tid Unexecuted instantiation: evtcache.c:table_beginscan_tid Unexecuted instantiation: funccache.c:table_beginscan_tid Unexecuted instantiation: relcache.c:table_beginscan_tid Unexecuted instantiation: postinit.c:table_beginscan_tid Unexecuted instantiation: guc_tables.c:table_beginscan_tid Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan_tid |
1042 | | |
1043 | | /* |
1044 | | * table_beginscan_analyze is an alternative entry point for setting up a |
1045 | | * TableScanDesc for an ANALYZE scan. As with bitmap scans, it's worth using |
1046 | | * the same data structure although the behavior is rather different. |
1047 | | */ |
1048 | | static inline TableScanDesc |
1049 | | table_beginscan_analyze(Relation rel) |
1050 | 0 | { |
1051 | 0 | uint32 flags = SO_TYPE_ANALYZE; |
1052 | |
|
1053 | 0 | return table_beginscan_common(rel, NULL, 0, NULL, NULL, |
1054 | 0 | flags, SO_NONE); |
1055 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan_analyze Unexecuted instantiation: brin.c:table_beginscan_analyze Unexecuted instantiation: detoast.c:table_beginscan_analyze Unexecuted instantiation: toast_internals.c:table_beginscan_analyze Unexecuted instantiation: gininsert.c:table_beginscan_analyze Unexecuted instantiation: gistbuild.c:table_beginscan_analyze Unexecuted instantiation: hash.c:table_beginscan_analyze Unexecuted instantiation: heapam.c:table_beginscan_analyze Unexecuted instantiation: heapam_handler.c:table_beginscan_analyze Unexecuted instantiation: heapam_indexscan.c:table_beginscan_analyze Unexecuted instantiation: heapam_visibility.c:table_beginscan_analyze Unexecuted instantiation: heapam_xlog.c:table_beginscan_analyze Unexecuted instantiation: heaptoast.c:table_beginscan_analyze Unexecuted instantiation: hio.c:table_beginscan_analyze Unexecuted instantiation: pruneheap.c:table_beginscan_analyze Unexecuted instantiation: rewriteheap.c:table_beginscan_analyze Unexecuted instantiation: vacuumlazy.c:table_beginscan_analyze Unexecuted instantiation: genam.c:table_beginscan_analyze Unexecuted instantiation: indexam.c:table_beginscan_analyze Unexecuted instantiation: nbtdedup.c:table_beginscan_analyze Unexecuted instantiation: nbtinsert.c:table_beginscan_analyze Unexecuted instantiation: nbtpage.c:table_beginscan_analyze Unexecuted instantiation: nbtsort.c:table_beginscan_analyze Unexecuted instantiation: nbtsplitloc.c:table_beginscan_analyze Unexecuted instantiation: spginsert.c:table_beginscan_analyze Unexecuted instantiation: tableam.c:table_beginscan_analyze Unexecuted instantiation: tableamapi.c:table_beginscan_analyze Unexecuted instantiation: xact.c:table_beginscan_analyze Unexecuted instantiation: bootstrap.c:table_beginscan_analyze Unexecuted instantiation: aclchk.c:table_beginscan_analyze Unexecuted instantiation: dependency.c:table_beginscan_analyze Unexecuted instantiation: heap.c:table_beginscan_analyze Unexecuted instantiation: index.c:table_beginscan_analyze Unexecuted instantiation: indexing.c:table_beginscan_analyze Unexecuted instantiation: objectaddress.c:table_beginscan_analyze Unexecuted instantiation: pg_db_role_setting.c:table_beginscan_analyze Unexecuted instantiation: pg_publication.c:table_beginscan_analyze Unexecuted instantiation: pg_subscription.c:table_beginscan_analyze Unexecuted instantiation: toasting.c:table_beginscan_analyze Unexecuted instantiation: gram.c:table_beginscan_analyze Unexecuted instantiation: alter.c:table_beginscan_analyze Unexecuted instantiation: analyze.c:table_beginscan_analyze Unexecuted instantiation: constraint.c:table_beginscan_analyze Unexecuted instantiation: copyfrom.c:table_beginscan_analyze Unexecuted instantiation: copyfromparse.c:table_beginscan_analyze Unexecuted instantiation: copyto.c:table_beginscan_analyze Unexecuted instantiation: createas.c:table_beginscan_analyze Unexecuted instantiation: dbcommands.c:table_beginscan_analyze Unexecuted instantiation: event_trigger.c:table_beginscan_analyze Unexecuted instantiation: indexcmds.c:table_beginscan_analyze Unexecuted instantiation: matview.c:table_beginscan_analyze Unexecuted instantiation: repack.c:table_beginscan_analyze Unexecuted instantiation: tablecmds.c:table_beginscan_analyze Unexecuted instantiation: tablespace.c:table_beginscan_analyze Unexecuted instantiation: trigger.c:table_beginscan_analyze Unexecuted instantiation: typecmds.c:table_beginscan_analyze Unexecuted instantiation: vacuum.c:table_beginscan_analyze Unexecuted instantiation: execIndexing.c:table_beginscan_analyze Unexecuted instantiation: execMain.c:table_beginscan_analyze Unexecuted instantiation: execPartition.c:table_beginscan_analyze Unexecuted instantiation: execReplication.c:table_beginscan_analyze Unexecuted instantiation: execUtils.c:table_beginscan_analyze Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan_analyze Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan_analyze Unexecuted instantiation: nodeIndexscan.c:table_beginscan_analyze Unexecuted instantiation: nodeLockRows.c:table_beginscan_analyze Unexecuted instantiation: nodeModifyTable.c:table_beginscan_analyze Unexecuted instantiation: nodeSamplescan.c:table_beginscan_analyze Unexecuted instantiation: nodeSeqscan.c:table_beginscan_analyze Unexecuted instantiation: nodeTidrangescan.c:table_beginscan_analyze Unexecuted instantiation: nodeTidscan.c:table_beginscan_analyze Unexecuted instantiation: spi.c:table_beginscan_analyze Unexecuted instantiation: copyfuncs.c:table_beginscan_analyze Unexecuted instantiation: equalfuncs.c:table_beginscan_analyze Unexecuted instantiation: outfuncs.c:table_beginscan_analyze Unexecuted instantiation: queryjumblefuncs.c:table_beginscan_analyze Unexecuted instantiation: readfuncs.c:table_beginscan_analyze Unexecuted instantiation: plancat.c:table_beginscan_analyze Unexecuted instantiation: partbounds.c:table_beginscan_analyze Unexecuted instantiation: autovacuum.c:table_beginscan_analyze Unexecuted instantiation: datachecksum_state.c:table_beginscan_analyze Unexecuted instantiation: conflict.c:table_beginscan_analyze Unexecuted instantiation: launcher.c:table_beginscan_analyze Unexecuted instantiation: reorderbuffer.c:table_beginscan_analyze Unexecuted instantiation: worker.c:table_beginscan_analyze Unexecuted instantiation: rewriteHandler.c:table_beginscan_analyze Unexecuted instantiation: attribute_stats.c:table_beginscan_analyze Unexecuted instantiation: extended_stats_funcs.c:table_beginscan_analyze Unexecuted instantiation: relation_stats.c:table_beginscan_analyze Unexecuted instantiation: bufmgr.c:table_beginscan_analyze Unexecuted instantiation: utility.c:table_beginscan_analyze Unexecuted instantiation: ri_triggers.c:table_beginscan_analyze Unexecuted instantiation: ruleutils.c:table_beginscan_analyze Unexecuted instantiation: selfuncs.c:table_beginscan_analyze Unexecuted instantiation: tid.c:table_beginscan_analyze Unexecuted instantiation: trigfuncs.c:table_beginscan_analyze Unexecuted instantiation: tsquery_rewrite.c:table_beginscan_analyze Unexecuted instantiation: tsvector_op.c:table_beginscan_analyze Unexecuted instantiation: xml.c:table_beginscan_analyze Unexecuted instantiation: evtcache.c:table_beginscan_analyze Unexecuted instantiation: funccache.c:table_beginscan_analyze Unexecuted instantiation: relcache.c:table_beginscan_analyze Unexecuted instantiation: postinit.c:table_beginscan_analyze Unexecuted instantiation: guc_tables.c:table_beginscan_analyze Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan_analyze |
1056 | | |
1057 | | /* |
1058 | | * End relation scan. |
1059 | | */ |
1060 | | static inline void |
1061 | | table_endscan(TableScanDesc scan) |
1062 | 0 | { |
1063 | 0 | scan->rs_rd->rd_tableam->scan_end(scan); |
1064 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_endscan Unexecuted instantiation: brin.c:table_endscan Unexecuted instantiation: detoast.c:table_endscan Unexecuted instantiation: toast_internals.c:table_endscan Unexecuted instantiation: gininsert.c:table_endscan Unexecuted instantiation: gistbuild.c:table_endscan Unexecuted instantiation: hash.c:table_endscan Unexecuted instantiation: heapam.c:table_endscan Unexecuted instantiation: heapam_handler.c:table_endscan Unexecuted instantiation: heapam_indexscan.c:table_endscan Unexecuted instantiation: heapam_visibility.c:table_endscan Unexecuted instantiation: heapam_xlog.c:table_endscan Unexecuted instantiation: heaptoast.c:table_endscan Unexecuted instantiation: hio.c:table_endscan Unexecuted instantiation: pruneheap.c:table_endscan Unexecuted instantiation: rewriteheap.c:table_endscan Unexecuted instantiation: vacuumlazy.c:table_endscan Unexecuted instantiation: genam.c:table_endscan Unexecuted instantiation: indexam.c:table_endscan Unexecuted instantiation: nbtdedup.c:table_endscan Unexecuted instantiation: nbtinsert.c:table_endscan Unexecuted instantiation: nbtpage.c:table_endscan Unexecuted instantiation: nbtsort.c:table_endscan Unexecuted instantiation: nbtsplitloc.c:table_endscan Unexecuted instantiation: spginsert.c:table_endscan Unexecuted instantiation: tableam.c:table_endscan Unexecuted instantiation: tableamapi.c:table_endscan Unexecuted instantiation: xact.c:table_endscan Unexecuted instantiation: bootstrap.c:table_endscan Unexecuted instantiation: aclchk.c:table_endscan Unexecuted instantiation: dependency.c:table_endscan Unexecuted instantiation: heap.c:table_endscan Unexecuted instantiation: index.c:table_endscan Unexecuted instantiation: indexing.c:table_endscan Unexecuted instantiation: objectaddress.c:table_endscan Unexecuted instantiation: pg_db_role_setting.c:table_endscan Unexecuted instantiation: pg_publication.c:table_endscan Unexecuted instantiation: pg_subscription.c:table_endscan Unexecuted instantiation: toasting.c:table_endscan Unexecuted instantiation: gram.c:table_endscan Unexecuted instantiation: alter.c:table_endscan Unexecuted instantiation: analyze.c:table_endscan Unexecuted instantiation: constraint.c:table_endscan Unexecuted instantiation: copyfrom.c:table_endscan Unexecuted instantiation: copyfromparse.c:table_endscan Unexecuted instantiation: copyto.c:table_endscan Unexecuted instantiation: createas.c:table_endscan Unexecuted instantiation: dbcommands.c:table_endscan Unexecuted instantiation: event_trigger.c:table_endscan Unexecuted instantiation: indexcmds.c:table_endscan Unexecuted instantiation: matview.c:table_endscan Unexecuted instantiation: repack.c:table_endscan Unexecuted instantiation: tablecmds.c:table_endscan Unexecuted instantiation: tablespace.c:table_endscan Unexecuted instantiation: trigger.c:table_endscan Unexecuted instantiation: typecmds.c:table_endscan Unexecuted instantiation: vacuum.c:table_endscan Unexecuted instantiation: execIndexing.c:table_endscan Unexecuted instantiation: execMain.c:table_endscan Unexecuted instantiation: execPartition.c:table_endscan Unexecuted instantiation: execReplication.c:table_endscan Unexecuted instantiation: execUtils.c:table_endscan Unexecuted instantiation: nodeBitmapHeapscan.c:table_endscan Unexecuted instantiation: nodeIndexonlyscan.c:table_endscan Unexecuted instantiation: nodeIndexscan.c:table_endscan Unexecuted instantiation: nodeLockRows.c:table_endscan Unexecuted instantiation: nodeModifyTable.c:table_endscan Unexecuted instantiation: nodeSamplescan.c:table_endscan Unexecuted instantiation: nodeSeqscan.c:table_endscan Unexecuted instantiation: nodeTidrangescan.c:table_endscan Unexecuted instantiation: nodeTidscan.c:table_endscan Unexecuted instantiation: spi.c:table_endscan Unexecuted instantiation: copyfuncs.c:table_endscan Unexecuted instantiation: equalfuncs.c:table_endscan Unexecuted instantiation: outfuncs.c:table_endscan Unexecuted instantiation: queryjumblefuncs.c:table_endscan Unexecuted instantiation: readfuncs.c:table_endscan Unexecuted instantiation: plancat.c:table_endscan Unexecuted instantiation: partbounds.c:table_endscan Unexecuted instantiation: autovacuum.c:table_endscan Unexecuted instantiation: datachecksum_state.c:table_endscan Unexecuted instantiation: conflict.c:table_endscan Unexecuted instantiation: launcher.c:table_endscan Unexecuted instantiation: reorderbuffer.c:table_endscan Unexecuted instantiation: worker.c:table_endscan Unexecuted instantiation: rewriteHandler.c:table_endscan Unexecuted instantiation: attribute_stats.c:table_endscan Unexecuted instantiation: extended_stats_funcs.c:table_endscan Unexecuted instantiation: relation_stats.c:table_endscan Unexecuted instantiation: bufmgr.c:table_endscan Unexecuted instantiation: utility.c:table_endscan Unexecuted instantiation: ri_triggers.c:table_endscan Unexecuted instantiation: ruleutils.c:table_endscan Unexecuted instantiation: selfuncs.c:table_endscan Unexecuted instantiation: tid.c:table_endscan Unexecuted instantiation: trigfuncs.c:table_endscan Unexecuted instantiation: tsquery_rewrite.c:table_endscan Unexecuted instantiation: tsvector_op.c:table_endscan Unexecuted instantiation: xml.c:table_endscan Unexecuted instantiation: evtcache.c:table_endscan Unexecuted instantiation: funccache.c:table_endscan Unexecuted instantiation: relcache.c:table_endscan Unexecuted instantiation: postinit.c:table_endscan Unexecuted instantiation: guc_tables.c:table_endscan Unexecuted instantiation: simple_query_fuzzer.c:table_endscan |
1065 | | |
1066 | | /* |
1067 | | * Restart a relation scan. |
1068 | | */ |
1069 | | static inline void |
1070 | | table_rescan(TableScanDesc scan, ScanKeyData *key) |
1071 | 0 | { |
1072 | 0 | scan->rs_rd->rd_tableam->scan_rescan(scan, key, false, false, false, false); |
1073 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_rescan Unexecuted instantiation: brin.c:table_rescan Unexecuted instantiation: detoast.c:table_rescan Unexecuted instantiation: toast_internals.c:table_rescan Unexecuted instantiation: gininsert.c:table_rescan Unexecuted instantiation: gistbuild.c:table_rescan Unexecuted instantiation: hash.c:table_rescan Unexecuted instantiation: heapam.c:table_rescan Unexecuted instantiation: heapam_handler.c:table_rescan Unexecuted instantiation: heapam_indexscan.c:table_rescan Unexecuted instantiation: heapam_visibility.c:table_rescan Unexecuted instantiation: heapam_xlog.c:table_rescan Unexecuted instantiation: heaptoast.c:table_rescan Unexecuted instantiation: hio.c:table_rescan Unexecuted instantiation: pruneheap.c:table_rescan Unexecuted instantiation: rewriteheap.c:table_rescan Unexecuted instantiation: vacuumlazy.c:table_rescan Unexecuted instantiation: genam.c:table_rescan Unexecuted instantiation: indexam.c:table_rescan Unexecuted instantiation: nbtdedup.c:table_rescan Unexecuted instantiation: nbtinsert.c:table_rescan Unexecuted instantiation: nbtpage.c:table_rescan Unexecuted instantiation: nbtsort.c:table_rescan Unexecuted instantiation: nbtsplitloc.c:table_rescan Unexecuted instantiation: spginsert.c:table_rescan Unexecuted instantiation: tableam.c:table_rescan Unexecuted instantiation: tableamapi.c:table_rescan Unexecuted instantiation: xact.c:table_rescan Unexecuted instantiation: bootstrap.c:table_rescan Unexecuted instantiation: aclchk.c:table_rescan Unexecuted instantiation: dependency.c:table_rescan Unexecuted instantiation: heap.c:table_rescan Unexecuted instantiation: index.c:table_rescan Unexecuted instantiation: indexing.c:table_rescan Unexecuted instantiation: objectaddress.c:table_rescan Unexecuted instantiation: pg_db_role_setting.c:table_rescan Unexecuted instantiation: pg_publication.c:table_rescan Unexecuted instantiation: pg_subscription.c:table_rescan Unexecuted instantiation: toasting.c:table_rescan Unexecuted instantiation: gram.c:table_rescan Unexecuted instantiation: alter.c:table_rescan Unexecuted instantiation: analyze.c:table_rescan Unexecuted instantiation: constraint.c:table_rescan Unexecuted instantiation: copyfrom.c:table_rescan Unexecuted instantiation: copyfromparse.c:table_rescan Unexecuted instantiation: copyto.c:table_rescan Unexecuted instantiation: createas.c:table_rescan Unexecuted instantiation: dbcommands.c:table_rescan Unexecuted instantiation: event_trigger.c:table_rescan Unexecuted instantiation: indexcmds.c:table_rescan Unexecuted instantiation: matview.c:table_rescan Unexecuted instantiation: repack.c:table_rescan Unexecuted instantiation: tablecmds.c:table_rescan Unexecuted instantiation: tablespace.c:table_rescan Unexecuted instantiation: trigger.c:table_rescan Unexecuted instantiation: typecmds.c:table_rescan Unexecuted instantiation: vacuum.c:table_rescan Unexecuted instantiation: execIndexing.c:table_rescan Unexecuted instantiation: execMain.c:table_rescan Unexecuted instantiation: execPartition.c:table_rescan Unexecuted instantiation: execReplication.c:table_rescan Unexecuted instantiation: execUtils.c:table_rescan Unexecuted instantiation: nodeBitmapHeapscan.c:table_rescan Unexecuted instantiation: nodeIndexonlyscan.c:table_rescan Unexecuted instantiation: nodeIndexscan.c:table_rescan Unexecuted instantiation: nodeLockRows.c:table_rescan Unexecuted instantiation: nodeModifyTable.c:table_rescan Unexecuted instantiation: nodeSamplescan.c:table_rescan Unexecuted instantiation: nodeSeqscan.c:table_rescan Unexecuted instantiation: nodeTidrangescan.c:table_rescan Unexecuted instantiation: nodeTidscan.c:table_rescan Unexecuted instantiation: spi.c:table_rescan Unexecuted instantiation: copyfuncs.c:table_rescan Unexecuted instantiation: equalfuncs.c:table_rescan Unexecuted instantiation: outfuncs.c:table_rescan Unexecuted instantiation: queryjumblefuncs.c:table_rescan Unexecuted instantiation: readfuncs.c:table_rescan Unexecuted instantiation: plancat.c:table_rescan Unexecuted instantiation: partbounds.c:table_rescan Unexecuted instantiation: autovacuum.c:table_rescan Unexecuted instantiation: datachecksum_state.c:table_rescan Unexecuted instantiation: conflict.c:table_rescan Unexecuted instantiation: launcher.c:table_rescan Unexecuted instantiation: reorderbuffer.c:table_rescan Unexecuted instantiation: worker.c:table_rescan Unexecuted instantiation: rewriteHandler.c:table_rescan Unexecuted instantiation: attribute_stats.c:table_rescan Unexecuted instantiation: extended_stats_funcs.c:table_rescan Unexecuted instantiation: relation_stats.c:table_rescan Unexecuted instantiation: bufmgr.c:table_rescan Unexecuted instantiation: utility.c:table_rescan Unexecuted instantiation: ri_triggers.c:table_rescan Unexecuted instantiation: ruleutils.c:table_rescan Unexecuted instantiation: selfuncs.c:table_rescan Unexecuted instantiation: tid.c:table_rescan Unexecuted instantiation: trigfuncs.c:table_rescan Unexecuted instantiation: tsquery_rewrite.c:table_rescan Unexecuted instantiation: tsvector_op.c:table_rescan Unexecuted instantiation: xml.c:table_rescan Unexecuted instantiation: evtcache.c:table_rescan Unexecuted instantiation: funccache.c:table_rescan Unexecuted instantiation: relcache.c:table_rescan Unexecuted instantiation: postinit.c:table_rescan Unexecuted instantiation: guc_tables.c:table_rescan Unexecuted instantiation: simple_query_fuzzer.c:table_rescan |
1074 | | |
1075 | | /* |
1076 | | * Restart a relation scan after changing params. |
1077 | | * |
1078 | | * This call allows changing the buffer strategy, syncscan, and pagemode |
1079 | | * options before starting a fresh scan. Note that although the actual use of |
1080 | | * syncscan might change (effectively, enabling or disabling reporting), the |
1081 | | * previously selected startblock will be kept. |
1082 | | */ |
1083 | | static inline void |
1084 | | table_rescan_set_params(TableScanDesc scan, ScanKeyData *key, |
1085 | | bool allow_strat, bool allow_sync, bool allow_pagemode) |
1086 | 0 | { |
1087 | 0 | scan->rs_rd->rd_tableam->scan_rescan(scan, key, true, |
1088 | 0 | allow_strat, allow_sync, |
1089 | 0 | allow_pagemode); |
1090 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_rescan_set_params Unexecuted instantiation: brin.c:table_rescan_set_params Unexecuted instantiation: detoast.c:table_rescan_set_params Unexecuted instantiation: toast_internals.c:table_rescan_set_params Unexecuted instantiation: gininsert.c:table_rescan_set_params Unexecuted instantiation: gistbuild.c:table_rescan_set_params Unexecuted instantiation: hash.c:table_rescan_set_params Unexecuted instantiation: heapam.c:table_rescan_set_params Unexecuted instantiation: heapam_handler.c:table_rescan_set_params Unexecuted instantiation: heapam_indexscan.c:table_rescan_set_params Unexecuted instantiation: heapam_visibility.c:table_rescan_set_params Unexecuted instantiation: heapam_xlog.c:table_rescan_set_params Unexecuted instantiation: heaptoast.c:table_rescan_set_params Unexecuted instantiation: hio.c:table_rescan_set_params Unexecuted instantiation: pruneheap.c:table_rescan_set_params Unexecuted instantiation: rewriteheap.c:table_rescan_set_params Unexecuted instantiation: vacuumlazy.c:table_rescan_set_params Unexecuted instantiation: genam.c:table_rescan_set_params Unexecuted instantiation: indexam.c:table_rescan_set_params Unexecuted instantiation: nbtdedup.c:table_rescan_set_params Unexecuted instantiation: nbtinsert.c:table_rescan_set_params Unexecuted instantiation: nbtpage.c:table_rescan_set_params Unexecuted instantiation: nbtsort.c:table_rescan_set_params Unexecuted instantiation: nbtsplitloc.c:table_rescan_set_params Unexecuted instantiation: spginsert.c:table_rescan_set_params Unexecuted instantiation: tableam.c:table_rescan_set_params Unexecuted instantiation: tableamapi.c:table_rescan_set_params Unexecuted instantiation: xact.c:table_rescan_set_params Unexecuted instantiation: bootstrap.c:table_rescan_set_params Unexecuted instantiation: aclchk.c:table_rescan_set_params Unexecuted instantiation: dependency.c:table_rescan_set_params Unexecuted instantiation: heap.c:table_rescan_set_params Unexecuted instantiation: index.c:table_rescan_set_params Unexecuted instantiation: indexing.c:table_rescan_set_params Unexecuted instantiation: objectaddress.c:table_rescan_set_params Unexecuted instantiation: pg_db_role_setting.c:table_rescan_set_params Unexecuted instantiation: pg_publication.c:table_rescan_set_params Unexecuted instantiation: pg_subscription.c:table_rescan_set_params Unexecuted instantiation: toasting.c:table_rescan_set_params Unexecuted instantiation: gram.c:table_rescan_set_params Unexecuted instantiation: alter.c:table_rescan_set_params Unexecuted instantiation: analyze.c:table_rescan_set_params Unexecuted instantiation: constraint.c:table_rescan_set_params Unexecuted instantiation: copyfrom.c:table_rescan_set_params Unexecuted instantiation: copyfromparse.c:table_rescan_set_params Unexecuted instantiation: copyto.c:table_rescan_set_params Unexecuted instantiation: createas.c:table_rescan_set_params Unexecuted instantiation: dbcommands.c:table_rescan_set_params Unexecuted instantiation: event_trigger.c:table_rescan_set_params Unexecuted instantiation: indexcmds.c:table_rescan_set_params Unexecuted instantiation: matview.c:table_rescan_set_params Unexecuted instantiation: repack.c:table_rescan_set_params Unexecuted instantiation: tablecmds.c:table_rescan_set_params Unexecuted instantiation: tablespace.c:table_rescan_set_params Unexecuted instantiation: trigger.c:table_rescan_set_params Unexecuted instantiation: typecmds.c:table_rescan_set_params Unexecuted instantiation: vacuum.c:table_rescan_set_params Unexecuted instantiation: execIndexing.c:table_rescan_set_params Unexecuted instantiation: execMain.c:table_rescan_set_params Unexecuted instantiation: execPartition.c:table_rescan_set_params Unexecuted instantiation: execReplication.c:table_rescan_set_params Unexecuted instantiation: execUtils.c:table_rescan_set_params Unexecuted instantiation: nodeBitmapHeapscan.c:table_rescan_set_params Unexecuted instantiation: nodeIndexonlyscan.c:table_rescan_set_params Unexecuted instantiation: nodeIndexscan.c:table_rescan_set_params Unexecuted instantiation: nodeLockRows.c:table_rescan_set_params Unexecuted instantiation: nodeModifyTable.c:table_rescan_set_params Unexecuted instantiation: nodeSamplescan.c:table_rescan_set_params Unexecuted instantiation: nodeSeqscan.c:table_rescan_set_params Unexecuted instantiation: nodeTidrangescan.c:table_rescan_set_params Unexecuted instantiation: nodeTidscan.c:table_rescan_set_params Unexecuted instantiation: spi.c:table_rescan_set_params Unexecuted instantiation: copyfuncs.c:table_rescan_set_params Unexecuted instantiation: equalfuncs.c:table_rescan_set_params Unexecuted instantiation: outfuncs.c:table_rescan_set_params Unexecuted instantiation: queryjumblefuncs.c:table_rescan_set_params Unexecuted instantiation: readfuncs.c:table_rescan_set_params Unexecuted instantiation: plancat.c:table_rescan_set_params Unexecuted instantiation: partbounds.c:table_rescan_set_params Unexecuted instantiation: autovacuum.c:table_rescan_set_params Unexecuted instantiation: datachecksum_state.c:table_rescan_set_params Unexecuted instantiation: conflict.c:table_rescan_set_params Unexecuted instantiation: launcher.c:table_rescan_set_params Unexecuted instantiation: reorderbuffer.c:table_rescan_set_params Unexecuted instantiation: worker.c:table_rescan_set_params Unexecuted instantiation: rewriteHandler.c:table_rescan_set_params Unexecuted instantiation: attribute_stats.c:table_rescan_set_params Unexecuted instantiation: extended_stats_funcs.c:table_rescan_set_params Unexecuted instantiation: relation_stats.c:table_rescan_set_params Unexecuted instantiation: bufmgr.c:table_rescan_set_params Unexecuted instantiation: utility.c:table_rescan_set_params Unexecuted instantiation: ri_triggers.c:table_rescan_set_params Unexecuted instantiation: ruleutils.c:table_rescan_set_params Unexecuted instantiation: selfuncs.c:table_rescan_set_params Unexecuted instantiation: tid.c:table_rescan_set_params Unexecuted instantiation: trigfuncs.c:table_rescan_set_params Unexecuted instantiation: tsquery_rewrite.c:table_rescan_set_params Unexecuted instantiation: tsvector_op.c:table_rescan_set_params Unexecuted instantiation: xml.c:table_rescan_set_params Unexecuted instantiation: evtcache.c:table_rescan_set_params Unexecuted instantiation: funccache.c:table_rescan_set_params Unexecuted instantiation: relcache.c:table_rescan_set_params Unexecuted instantiation: postinit.c:table_rescan_set_params Unexecuted instantiation: guc_tables.c:table_rescan_set_params Unexecuted instantiation: simple_query_fuzzer.c:table_rescan_set_params |
1091 | | |
1092 | | /* |
1093 | | * Return next tuple from `scan`, store in slot. |
1094 | | */ |
1095 | | static inline bool |
1096 | | table_scan_getnextslot(TableScanDesc sscan, ScanDirection direction, TupleTableSlot *slot) |
1097 | 0 | { |
1098 | 0 | slot->tts_tableOid = RelationGetRelid(sscan->rs_rd); |
1099 | | |
1100 | | /* We don't expect actual scans using NoMovementScanDirection */ |
1101 | 0 | Assert(direction == ForwardScanDirection || |
1102 | 0 | direction == BackwardScanDirection); |
1103 | |
|
1104 | 0 | return sscan->rs_rd->rd_tableam->scan_getnextslot(sscan, direction, slot); |
1105 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_scan_getnextslot Unexecuted instantiation: brin.c:table_scan_getnextslot Unexecuted instantiation: detoast.c:table_scan_getnextslot Unexecuted instantiation: toast_internals.c:table_scan_getnextslot Unexecuted instantiation: gininsert.c:table_scan_getnextslot Unexecuted instantiation: gistbuild.c:table_scan_getnextslot Unexecuted instantiation: hash.c:table_scan_getnextslot Unexecuted instantiation: heapam.c:table_scan_getnextslot Unexecuted instantiation: heapam_handler.c:table_scan_getnextslot Unexecuted instantiation: heapam_indexscan.c:table_scan_getnextslot Unexecuted instantiation: heapam_visibility.c:table_scan_getnextslot Unexecuted instantiation: heapam_xlog.c:table_scan_getnextslot Unexecuted instantiation: heaptoast.c:table_scan_getnextslot Unexecuted instantiation: hio.c:table_scan_getnextslot Unexecuted instantiation: pruneheap.c:table_scan_getnextslot Unexecuted instantiation: rewriteheap.c:table_scan_getnextslot Unexecuted instantiation: vacuumlazy.c:table_scan_getnextslot Unexecuted instantiation: genam.c:table_scan_getnextslot Unexecuted instantiation: indexam.c:table_scan_getnextslot Unexecuted instantiation: nbtdedup.c:table_scan_getnextslot Unexecuted instantiation: nbtinsert.c:table_scan_getnextslot Unexecuted instantiation: nbtpage.c:table_scan_getnextslot Unexecuted instantiation: nbtsort.c:table_scan_getnextslot Unexecuted instantiation: nbtsplitloc.c:table_scan_getnextslot Unexecuted instantiation: spginsert.c:table_scan_getnextslot Unexecuted instantiation: tableam.c:table_scan_getnextslot Unexecuted instantiation: tableamapi.c:table_scan_getnextslot Unexecuted instantiation: xact.c:table_scan_getnextslot Unexecuted instantiation: bootstrap.c:table_scan_getnextslot Unexecuted instantiation: aclchk.c:table_scan_getnextslot Unexecuted instantiation: dependency.c:table_scan_getnextslot Unexecuted instantiation: heap.c:table_scan_getnextslot Unexecuted instantiation: index.c:table_scan_getnextslot Unexecuted instantiation: indexing.c:table_scan_getnextslot Unexecuted instantiation: objectaddress.c:table_scan_getnextslot Unexecuted instantiation: pg_db_role_setting.c:table_scan_getnextslot Unexecuted instantiation: pg_publication.c:table_scan_getnextslot Unexecuted instantiation: pg_subscription.c:table_scan_getnextslot Unexecuted instantiation: toasting.c:table_scan_getnextslot Unexecuted instantiation: gram.c:table_scan_getnextslot Unexecuted instantiation: alter.c:table_scan_getnextslot Unexecuted instantiation: analyze.c:table_scan_getnextslot Unexecuted instantiation: constraint.c:table_scan_getnextslot Unexecuted instantiation: copyfrom.c:table_scan_getnextslot Unexecuted instantiation: copyfromparse.c:table_scan_getnextslot Unexecuted instantiation: copyto.c:table_scan_getnextslot Unexecuted instantiation: createas.c:table_scan_getnextslot Unexecuted instantiation: dbcommands.c:table_scan_getnextslot Unexecuted instantiation: event_trigger.c:table_scan_getnextslot Unexecuted instantiation: indexcmds.c:table_scan_getnextslot Unexecuted instantiation: matview.c:table_scan_getnextslot Unexecuted instantiation: repack.c:table_scan_getnextslot Unexecuted instantiation: tablecmds.c:table_scan_getnextslot Unexecuted instantiation: tablespace.c:table_scan_getnextslot Unexecuted instantiation: trigger.c:table_scan_getnextslot Unexecuted instantiation: typecmds.c:table_scan_getnextslot Unexecuted instantiation: vacuum.c:table_scan_getnextslot Unexecuted instantiation: execIndexing.c:table_scan_getnextslot Unexecuted instantiation: execMain.c:table_scan_getnextslot Unexecuted instantiation: execPartition.c:table_scan_getnextslot Unexecuted instantiation: execReplication.c:table_scan_getnextslot Unexecuted instantiation: execUtils.c:table_scan_getnextslot Unexecuted instantiation: nodeBitmapHeapscan.c:table_scan_getnextslot Unexecuted instantiation: nodeIndexonlyscan.c:table_scan_getnextslot Unexecuted instantiation: nodeIndexscan.c:table_scan_getnextslot Unexecuted instantiation: nodeLockRows.c:table_scan_getnextslot Unexecuted instantiation: nodeModifyTable.c:table_scan_getnextslot Unexecuted instantiation: nodeSamplescan.c:table_scan_getnextslot Unexecuted instantiation: nodeSeqscan.c:table_scan_getnextslot Unexecuted instantiation: nodeTidrangescan.c:table_scan_getnextslot Unexecuted instantiation: nodeTidscan.c:table_scan_getnextslot Unexecuted instantiation: spi.c:table_scan_getnextslot Unexecuted instantiation: copyfuncs.c:table_scan_getnextslot Unexecuted instantiation: equalfuncs.c:table_scan_getnextslot Unexecuted instantiation: outfuncs.c:table_scan_getnextslot Unexecuted instantiation: queryjumblefuncs.c:table_scan_getnextslot Unexecuted instantiation: readfuncs.c:table_scan_getnextslot Unexecuted instantiation: plancat.c:table_scan_getnextslot Unexecuted instantiation: partbounds.c:table_scan_getnextslot Unexecuted instantiation: autovacuum.c:table_scan_getnextslot Unexecuted instantiation: datachecksum_state.c:table_scan_getnextslot Unexecuted instantiation: conflict.c:table_scan_getnextslot Unexecuted instantiation: launcher.c:table_scan_getnextslot Unexecuted instantiation: reorderbuffer.c:table_scan_getnextslot Unexecuted instantiation: worker.c:table_scan_getnextslot Unexecuted instantiation: rewriteHandler.c:table_scan_getnextslot Unexecuted instantiation: attribute_stats.c:table_scan_getnextslot Unexecuted instantiation: extended_stats_funcs.c:table_scan_getnextslot Unexecuted instantiation: relation_stats.c:table_scan_getnextslot Unexecuted instantiation: bufmgr.c:table_scan_getnextslot Unexecuted instantiation: utility.c:table_scan_getnextslot Unexecuted instantiation: ri_triggers.c:table_scan_getnextslot Unexecuted instantiation: ruleutils.c:table_scan_getnextslot Unexecuted instantiation: selfuncs.c:table_scan_getnextslot Unexecuted instantiation: tid.c:table_scan_getnextslot Unexecuted instantiation: trigfuncs.c:table_scan_getnextslot Unexecuted instantiation: tsquery_rewrite.c:table_scan_getnextslot Unexecuted instantiation: tsvector_op.c:table_scan_getnextslot Unexecuted instantiation: xml.c:table_scan_getnextslot Unexecuted instantiation: evtcache.c:table_scan_getnextslot Unexecuted instantiation: funccache.c:table_scan_getnextslot Unexecuted instantiation: relcache.c:table_scan_getnextslot Unexecuted instantiation: postinit.c:table_scan_getnextslot Unexecuted instantiation: guc_tables.c:table_scan_getnextslot Unexecuted instantiation: simple_query_fuzzer.c:table_scan_getnextslot |
1106 | | |
1107 | | /* ---------------------------------------------------------------------------- |
1108 | | * TID Range scanning related functions. |
1109 | | * ---------------------------------------------------------------------------- |
1110 | | */ |
1111 | | |
1112 | | /* |
1113 | | * table_beginscan_tidrange is the entry point for setting up a TableScanDesc |
1114 | | * for a TID range scan. |
1115 | | * |
1116 | | * flags is a bitmask of ScanOptions. No SO_INTERNAL_FLAGS are permitted. |
1117 | | */ |
1118 | | static inline TableScanDesc |
1119 | | table_beginscan_tidrange(Relation rel, Snapshot snapshot, |
1120 | | ItemPointer mintid, |
1121 | | ItemPointer maxtid, uint32 flags) |
1122 | 0 | { |
1123 | 0 | TableScanDesc sscan; |
1124 | 0 | uint32 internal_flags = SO_TYPE_TIDRANGESCAN | SO_ALLOW_PAGEMODE; |
1125 | |
|
1126 | 0 | sscan = table_beginscan_common(rel, snapshot, 0, NULL, NULL, |
1127 | 0 | internal_flags, flags); |
1128 | | |
1129 | | /* Set the range of TIDs to scan */ |
1130 | 0 | sscan->rs_rd->rd_tableam->scan_set_tidrange(sscan, mintid, maxtid); |
1131 | |
|
1132 | 0 | return sscan; |
1133 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_beginscan_tidrange Unexecuted instantiation: brin.c:table_beginscan_tidrange Unexecuted instantiation: detoast.c:table_beginscan_tidrange Unexecuted instantiation: toast_internals.c:table_beginscan_tidrange Unexecuted instantiation: gininsert.c:table_beginscan_tidrange Unexecuted instantiation: gistbuild.c:table_beginscan_tidrange Unexecuted instantiation: hash.c:table_beginscan_tidrange Unexecuted instantiation: heapam.c:table_beginscan_tidrange Unexecuted instantiation: heapam_handler.c:table_beginscan_tidrange Unexecuted instantiation: heapam_indexscan.c:table_beginscan_tidrange Unexecuted instantiation: heapam_visibility.c:table_beginscan_tidrange Unexecuted instantiation: heapam_xlog.c:table_beginscan_tidrange Unexecuted instantiation: heaptoast.c:table_beginscan_tidrange Unexecuted instantiation: hio.c:table_beginscan_tidrange Unexecuted instantiation: pruneheap.c:table_beginscan_tidrange Unexecuted instantiation: rewriteheap.c:table_beginscan_tidrange Unexecuted instantiation: vacuumlazy.c:table_beginscan_tidrange Unexecuted instantiation: genam.c:table_beginscan_tidrange Unexecuted instantiation: indexam.c:table_beginscan_tidrange Unexecuted instantiation: nbtdedup.c:table_beginscan_tidrange Unexecuted instantiation: nbtinsert.c:table_beginscan_tidrange Unexecuted instantiation: nbtpage.c:table_beginscan_tidrange Unexecuted instantiation: nbtsort.c:table_beginscan_tidrange Unexecuted instantiation: nbtsplitloc.c:table_beginscan_tidrange Unexecuted instantiation: spginsert.c:table_beginscan_tidrange Unexecuted instantiation: tableam.c:table_beginscan_tidrange Unexecuted instantiation: tableamapi.c:table_beginscan_tidrange Unexecuted instantiation: xact.c:table_beginscan_tidrange Unexecuted instantiation: bootstrap.c:table_beginscan_tidrange Unexecuted instantiation: aclchk.c:table_beginscan_tidrange Unexecuted instantiation: dependency.c:table_beginscan_tidrange Unexecuted instantiation: heap.c:table_beginscan_tidrange Unexecuted instantiation: index.c:table_beginscan_tidrange Unexecuted instantiation: indexing.c:table_beginscan_tidrange Unexecuted instantiation: objectaddress.c:table_beginscan_tidrange Unexecuted instantiation: pg_db_role_setting.c:table_beginscan_tidrange Unexecuted instantiation: pg_publication.c:table_beginscan_tidrange Unexecuted instantiation: pg_subscription.c:table_beginscan_tidrange Unexecuted instantiation: toasting.c:table_beginscan_tidrange Unexecuted instantiation: gram.c:table_beginscan_tidrange Unexecuted instantiation: alter.c:table_beginscan_tidrange Unexecuted instantiation: analyze.c:table_beginscan_tidrange Unexecuted instantiation: constraint.c:table_beginscan_tidrange Unexecuted instantiation: copyfrom.c:table_beginscan_tidrange Unexecuted instantiation: copyfromparse.c:table_beginscan_tidrange Unexecuted instantiation: copyto.c:table_beginscan_tidrange Unexecuted instantiation: createas.c:table_beginscan_tidrange Unexecuted instantiation: dbcommands.c:table_beginscan_tidrange Unexecuted instantiation: event_trigger.c:table_beginscan_tidrange Unexecuted instantiation: indexcmds.c:table_beginscan_tidrange Unexecuted instantiation: matview.c:table_beginscan_tidrange Unexecuted instantiation: repack.c:table_beginscan_tidrange Unexecuted instantiation: tablecmds.c:table_beginscan_tidrange Unexecuted instantiation: tablespace.c:table_beginscan_tidrange Unexecuted instantiation: trigger.c:table_beginscan_tidrange Unexecuted instantiation: typecmds.c:table_beginscan_tidrange Unexecuted instantiation: vacuum.c:table_beginscan_tidrange Unexecuted instantiation: execIndexing.c:table_beginscan_tidrange Unexecuted instantiation: execMain.c:table_beginscan_tidrange Unexecuted instantiation: execPartition.c:table_beginscan_tidrange Unexecuted instantiation: execReplication.c:table_beginscan_tidrange Unexecuted instantiation: execUtils.c:table_beginscan_tidrange Unexecuted instantiation: nodeBitmapHeapscan.c:table_beginscan_tidrange Unexecuted instantiation: nodeIndexonlyscan.c:table_beginscan_tidrange Unexecuted instantiation: nodeIndexscan.c:table_beginscan_tidrange Unexecuted instantiation: nodeLockRows.c:table_beginscan_tidrange Unexecuted instantiation: nodeModifyTable.c:table_beginscan_tidrange Unexecuted instantiation: nodeSamplescan.c:table_beginscan_tidrange Unexecuted instantiation: nodeSeqscan.c:table_beginscan_tidrange Unexecuted instantiation: nodeTidrangescan.c:table_beginscan_tidrange Unexecuted instantiation: nodeTidscan.c:table_beginscan_tidrange Unexecuted instantiation: spi.c:table_beginscan_tidrange Unexecuted instantiation: copyfuncs.c:table_beginscan_tidrange Unexecuted instantiation: equalfuncs.c:table_beginscan_tidrange Unexecuted instantiation: outfuncs.c:table_beginscan_tidrange Unexecuted instantiation: queryjumblefuncs.c:table_beginscan_tidrange Unexecuted instantiation: readfuncs.c:table_beginscan_tidrange Unexecuted instantiation: plancat.c:table_beginscan_tidrange Unexecuted instantiation: partbounds.c:table_beginscan_tidrange Unexecuted instantiation: autovacuum.c:table_beginscan_tidrange Unexecuted instantiation: datachecksum_state.c:table_beginscan_tidrange Unexecuted instantiation: conflict.c:table_beginscan_tidrange Unexecuted instantiation: launcher.c:table_beginscan_tidrange Unexecuted instantiation: reorderbuffer.c:table_beginscan_tidrange Unexecuted instantiation: worker.c:table_beginscan_tidrange Unexecuted instantiation: rewriteHandler.c:table_beginscan_tidrange Unexecuted instantiation: attribute_stats.c:table_beginscan_tidrange Unexecuted instantiation: extended_stats_funcs.c:table_beginscan_tidrange Unexecuted instantiation: relation_stats.c:table_beginscan_tidrange Unexecuted instantiation: bufmgr.c:table_beginscan_tidrange Unexecuted instantiation: utility.c:table_beginscan_tidrange Unexecuted instantiation: ri_triggers.c:table_beginscan_tidrange Unexecuted instantiation: ruleutils.c:table_beginscan_tidrange Unexecuted instantiation: selfuncs.c:table_beginscan_tidrange Unexecuted instantiation: tid.c:table_beginscan_tidrange Unexecuted instantiation: trigfuncs.c:table_beginscan_tidrange Unexecuted instantiation: tsquery_rewrite.c:table_beginscan_tidrange Unexecuted instantiation: tsvector_op.c:table_beginscan_tidrange Unexecuted instantiation: xml.c:table_beginscan_tidrange Unexecuted instantiation: evtcache.c:table_beginscan_tidrange Unexecuted instantiation: funccache.c:table_beginscan_tidrange Unexecuted instantiation: relcache.c:table_beginscan_tidrange Unexecuted instantiation: postinit.c:table_beginscan_tidrange Unexecuted instantiation: guc_tables.c:table_beginscan_tidrange Unexecuted instantiation: simple_query_fuzzer.c:table_beginscan_tidrange |
1134 | | |
1135 | | /* |
1136 | | * table_rescan_tidrange resets the scan position and sets the minimum and |
1137 | | * maximum TID range to scan for a TableScanDesc created by |
1138 | | * table_beginscan_tidrange. |
1139 | | */ |
1140 | | static inline void |
1141 | | table_rescan_tidrange(TableScanDesc sscan, ItemPointer mintid, |
1142 | | ItemPointer maxtid) |
1143 | 0 | { |
1144 | | /* Ensure table_beginscan_tidrange() was used. */ |
1145 | 0 | Assert((sscan->rs_flags & SO_TYPE_TIDRANGESCAN) != 0); |
1146 | |
|
1147 | 0 | sscan->rs_rd->rd_tableam->scan_rescan(sscan, NULL, false, false, false, false); |
1148 | 0 | sscan->rs_rd->rd_tableam->scan_set_tidrange(sscan, mintid, maxtid); |
1149 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_rescan_tidrange Unexecuted instantiation: brin.c:table_rescan_tidrange Unexecuted instantiation: detoast.c:table_rescan_tidrange Unexecuted instantiation: toast_internals.c:table_rescan_tidrange Unexecuted instantiation: gininsert.c:table_rescan_tidrange Unexecuted instantiation: gistbuild.c:table_rescan_tidrange Unexecuted instantiation: hash.c:table_rescan_tidrange Unexecuted instantiation: heapam.c:table_rescan_tidrange Unexecuted instantiation: heapam_handler.c:table_rescan_tidrange Unexecuted instantiation: heapam_indexscan.c:table_rescan_tidrange Unexecuted instantiation: heapam_visibility.c:table_rescan_tidrange Unexecuted instantiation: heapam_xlog.c:table_rescan_tidrange Unexecuted instantiation: heaptoast.c:table_rescan_tidrange Unexecuted instantiation: hio.c:table_rescan_tidrange Unexecuted instantiation: pruneheap.c:table_rescan_tidrange Unexecuted instantiation: rewriteheap.c:table_rescan_tidrange Unexecuted instantiation: vacuumlazy.c:table_rescan_tidrange Unexecuted instantiation: genam.c:table_rescan_tidrange Unexecuted instantiation: indexam.c:table_rescan_tidrange Unexecuted instantiation: nbtdedup.c:table_rescan_tidrange Unexecuted instantiation: nbtinsert.c:table_rescan_tidrange Unexecuted instantiation: nbtpage.c:table_rescan_tidrange Unexecuted instantiation: nbtsort.c:table_rescan_tidrange Unexecuted instantiation: nbtsplitloc.c:table_rescan_tidrange Unexecuted instantiation: spginsert.c:table_rescan_tidrange Unexecuted instantiation: tableam.c:table_rescan_tidrange Unexecuted instantiation: tableamapi.c:table_rescan_tidrange Unexecuted instantiation: xact.c:table_rescan_tidrange Unexecuted instantiation: bootstrap.c:table_rescan_tidrange Unexecuted instantiation: aclchk.c:table_rescan_tidrange Unexecuted instantiation: dependency.c:table_rescan_tidrange Unexecuted instantiation: heap.c:table_rescan_tidrange Unexecuted instantiation: index.c:table_rescan_tidrange Unexecuted instantiation: indexing.c:table_rescan_tidrange Unexecuted instantiation: objectaddress.c:table_rescan_tidrange Unexecuted instantiation: pg_db_role_setting.c:table_rescan_tidrange Unexecuted instantiation: pg_publication.c:table_rescan_tidrange Unexecuted instantiation: pg_subscription.c:table_rescan_tidrange Unexecuted instantiation: toasting.c:table_rescan_tidrange Unexecuted instantiation: gram.c:table_rescan_tidrange Unexecuted instantiation: alter.c:table_rescan_tidrange Unexecuted instantiation: analyze.c:table_rescan_tidrange Unexecuted instantiation: constraint.c:table_rescan_tidrange Unexecuted instantiation: copyfrom.c:table_rescan_tidrange Unexecuted instantiation: copyfromparse.c:table_rescan_tidrange Unexecuted instantiation: copyto.c:table_rescan_tidrange Unexecuted instantiation: createas.c:table_rescan_tidrange Unexecuted instantiation: dbcommands.c:table_rescan_tidrange Unexecuted instantiation: event_trigger.c:table_rescan_tidrange Unexecuted instantiation: indexcmds.c:table_rescan_tidrange Unexecuted instantiation: matview.c:table_rescan_tidrange Unexecuted instantiation: repack.c:table_rescan_tidrange Unexecuted instantiation: tablecmds.c:table_rescan_tidrange Unexecuted instantiation: tablespace.c:table_rescan_tidrange Unexecuted instantiation: trigger.c:table_rescan_tidrange Unexecuted instantiation: typecmds.c:table_rescan_tidrange Unexecuted instantiation: vacuum.c:table_rescan_tidrange Unexecuted instantiation: execIndexing.c:table_rescan_tidrange Unexecuted instantiation: execMain.c:table_rescan_tidrange Unexecuted instantiation: execPartition.c:table_rescan_tidrange Unexecuted instantiation: execReplication.c:table_rescan_tidrange Unexecuted instantiation: execUtils.c:table_rescan_tidrange Unexecuted instantiation: nodeBitmapHeapscan.c:table_rescan_tidrange Unexecuted instantiation: nodeIndexonlyscan.c:table_rescan_tidrange Unexecuted instantiation: nodeIndexscan.c:table_rescan_tidrange Unexecuted instantiation: nodeLockRows.c:table_rescan_tidrange Unexecuted instantiation: nodeModifyTable.c:table_rescan_tidrange Unexecuted instantiation: nodeSamplescan.c:table_rescan_tidrange Unexecuted instantiation: nodeSeqscan.c:table_rescan_tidrange Unexecuted instantiation: nodeTidrangescan.c:table_rescan_tidrange Unexecuted instantiation: nodeTidscan.c:table_rescan_tidrange Unexecuted instantiation: spi.c:table_rescan_tidrange Unexecuted instantiation: copyfuncs.c:table_rescan_tidrange Unexecuted instantiation: equalfuncs.c:table_rescan_tidrange Unexecuted instantiation: outfuncs.c:table_rescan_tidrange Unexecuted instantiation: queryjumblefuncs.c:table_rescan_tidrange Unexecuted instantiation: readfuncs.c:table_rescan_tidrange Unexecuted instantiation: plancat.c:table_rescan_tidrange Unexecuted instantiation: partbounds.c:table_rescan_tidrange Unexecuted instantiation: autovacuum.c:table_rescan_tidrange Unexecuted instantiation: datachecksum_state.c:table_rescan_tidrange Unexecuted instantiation: conflict.c:table_rescan_tidrange Unexecuted instantiation: launcher.c:table_rescan_tidrange Unexecuted instantiation: reorderbuffer.c:table_rescan_tidrange Unexecuted instantiation: worker.c:table_rescan_tidrange Unexecuted instantiation: rewriteHandler.c:table_rescan_tidrange Unexecuted instantiation: attribute_stats.c:table_rescan_tidrange Unexecuted instantiation: extended_stats_funcs.c:table_rescan_tidrange Unexecuted instantiation: relation_stats.c:table_rescan_tidrange Unexecuted instantiation: bufmgr.c:table_rescan_tidrange Unexecuted instantiation: utility.c:table_rescan_tidrange Unexecuted instantiation: ri_triggers.c:table_rescan_tidrange Unexecuted instantiation: ruleutils.c:table_rescan_tidrange Unexecuted instantiation: selfuncs.c:table_rescan_tidrange Unexecuted instantiation: tid.c:table_rescan_tidrange Unexecuted instantiation: trigfuncs.c:table_rescan_tidrange Unexecuted instantiation: tsquery_rewrite.c:table_rescan_tidrange Unexecuted instantiation: tsvector_op.c:table_rescan_tidrange Unexecuted instantiation: xml.c:table_rescan_tidrange Unexecuted instantiation: evtcache.c:table_rescan_tidrange Unexecuted instantiation: funccache.c:table_rescan_tidrange Unexecuted instantiation: relcache.c:table_rescan_tidrange Unexecuted instantiation: postinit.c:table_rescan_tidrange Unexecuted instantiation: guc_tables.c:table_rescan_tidrange Unexecuted instantiation: simple_query_fuzzer.c:table_rescan_tidrange |
1150 | | |
1151 | | /* |
1152 | | * Fetch the next tuple from `sscan` for a TID range scan created by |
1153 | | * table_beginscan_tidrange(). Stores the tuple in `slot` and returns true, |
1154 | | * or returns false if no more tuples exist in the range. |
1155 | | */ |
1156 | | static inline bool |
1157 | | table_scan_getnextslot_tidrange(TableScanDesc sscan, ScanDirection direction, |
1158 | | TupleTableSlot *slot) |
1159 | 0 | { |
1160 | | /* Ensure table_beginscan_tidrange() was used. */ |
1161 | 0 | Assert((sscan->rs_flags & SO_TYPE_TIDRANGESCAN) != 0); |
1162 | | |
1163 | | /* We don't expect actual scans using NoMovementScanDirection */ |
1164 | 0 | Assert(direction == ForwardScanDirection || |
1165 | 0 | direction == BackwardScanDirection); |
1166 | |
|
1167 | 0 | return sscan->rs_rd->rd_tableam->scan_getnextslot_tidrange(sscan, |
1168 | 0 | direction, |
1169 | 0 | slot); |
1170 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_scan_getnextslot_tidrange Unexecuted instantiation: brin.c:table_scan_getnextslot_tidrange Unexecuted instantiation: detoast.c:table_scan_getnextslot_tidrange Unexecuted instantiation: toast_internals.c:table_scan_getnextslot_tidrange Unexecuted instantiation: gininsert.c:table_scan_getnextslot_tidrange Unexecuted instantiation: gistbuild.c:table_scan_getnextslot_tidrange Unexecuted instantiation: hash.c:table_scan_getnextslot_tidrange Unexecuted instantiation: heapam.c:table_scan_getnextslot_tidrange Unexecuted instantiation: heapam_handler.c:table_scan_getnextslot_tidrange Unexecuted instantiation: heapam_indexscan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: heapam_visibility.c:table_scan_getnextslot_tidrange Unexecuted instantiation: heapam_xlog.c:table_scan_getnextslot_tidrange Unexecuted instantiation: heaptoast.c:table_scan_getnextslot_tidrange Unexecuted instantiation: hio.c:table_scan_getnextslot_tidrange Unexecuted instantiation: pruneheap.c:table_scan_getnextslot_tidrange Unexecuted instantiation: rewriteheap.c:table_scan_getnextslot_tidrange Unexecuted instantiation: vacuumlazy.c:table_scan_getnextslot_tidrange Unexecuted instantiation: genam.c:table_scan_getnextslot_tidrange Unexecuted instantiation: indexam.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nbtdedup.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nbtinsert.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nbtpage.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nbtsort.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nbtsplitloc.c:table_scan_getnextslot_tidrange Unexecuted instantiation: spginsert.c:table_scan_getnextslot_tidrange Unexecuted instantiation: tableam.c:table_scan_getnextslot_tidrange Unexecuted instantiation: tableamapi.c:table_scan_getnextslot_tidrange Unexecuted instantiation: xact.c:table_scan_getnextslot_tidrange Unexecuted instantiation: bootstrap.c:table_scan_getnextslot_tidrange Unexecuted instantiation: aclchk.c:table_scan_getnextslot_tidrange Unexecuted instantiation: dependency.c:table_scan_getnextslot_tidrange Unexecuted instantiation: heap.c:table_scan_getnextslot_tidrange Unexecuted instantiation: index.c:table_scan_getnextslot_tidrange Unexecuted instantiation: indexing.c:table_scan_getnextslot_tidrange Unexecuted instantiation: objectaddress.c:table_scan_getnextslot_tidrange Unexecuted instantiation: pg_db_role_setting.c:table_scan_getnextslot_tidrange Unexecuted instantiation: pg_publication.c:table_scan_getnextslot_tidrange Unexecuted instantiation: pg_subscription.c:table_scan_getnextslot_tidrange Unexecuted instantiation: toasting.c:table_scan_getnextslot_tidrange Unexecuted instantiation: gram.c:table_scan_getnextslot_tidrange Unexecuted instantiation: alter.c:table_scan_getnextslot_tidrange Unexecuted instantiation: analyze.c:table_scan_getnextslot_tidrange Unexecuted instantiation: constraint.c:table_scan_getnextslot_tidrange Unexecuted instantiation: copyfrom.c:table_scan_getnextslot_tidrange Unexecuted instantiation: copyfromparse.c:table_scan_getnextslot_tidrange Unexecuted instantiation: copyto.c:table_scan_getnextslot_tidrange Unexecuted instantiation: createas.c:table_scan_getnextslot_tidrange Unexecuted instantiation: dbcommands.c:table_scan_getnextslot_tidrange Unexecuted instantiation: event_trigger.c:table_scan_getnextslot_tidrange Unexecuted instantiation: indexcmds.c:table_scan_getnextslot_tidrange Unexecuted instantiation: matview.c:table_scan_getnextslot_tidrange Unexecuted instantiation: repack.c:table_scan_getnextslot_tidrange Unexecuted instantiation: tablecmds.c:table_scan_getnextslot_tidrange Unexecuted instantiation: tablespace.c:table_scan_getnextslot_tidrange Unexecuted instantiation: trigger.c:table_scan_getnextslot_tidrange Unexecuted instantiation: typecmds.c:table_scan_getnextslot_tidrange Unexecuted instantiation: vacuum.c:table_scan_getnextslot_tidrange Unexecuted instantiation: execIndexing.c:table_scan_getnextslot_tidrange Unexecuted instantiation: execMain.c:table_scan_getnextslot_tidrange Unexecuted instantiation: execPartition.c:table_scan_getnextslot_tidrange Unexecuted instantiation: execReplication.c:table_scan_getnextslot_tidrange Unexecuted instantiation: execUtils.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeBitmapHeapscan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeIndexonlyscan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeIndexscan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeLockRows.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeModifyTable.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeSamplescan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeSeqscan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeTidrangescan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: nodeTidscan.c:table_scan_getnextslot_tidrange Unexecuted instantiation: spi.c:table_scan_getnextslot_tidrange Unexecuted instantiation: copyfuncs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: equalfuncs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: outfuncs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: queryjumblefuncs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: readfuncs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: plancat.c:table_scan_getnextslot_tidrange Unexecuted instantiation: partbounds.c:table_scan_getnextslot_tidrange Unexecuted instantiation: autovacuum.c:table_scan_getnextslot_tidrange Unexecuted instantiation: datachecksum_state.c:table_scan_getnextslot_tidrange Unexecuted instantiation: conflict.c:table_scan_getnextslot_tidrange Unexecuted instantiation: launcher.c:table_scan_getnextslot_tidrange Unexecuted instantiation: reorderbuffer.c:table_scan_getnextslot_tidrange Unexecuted instantiation: worker.c:table_scan_getnextslot_tidrange Unexecuted instantiation: rewriteHandler.c:table_scan_getnextslot_tidrange Unexecuted instantiation: attribute_stats.c:table_scan_getnextslot_tidrange Unexecuted instantiation: extended_stats_funcs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: relation_stats.c:table_scan_getnextslot_tidrange Unexecuted instantiation: bufmgr.c:table_scan_getnextslot_tidrange Unexecuted instantiation: utility.c:table_scan_getnextslot_tidrange Unexecuted instantiation: ri_triggers.c:table_scan_getnextslot_tidrange Unexecuted instantiation: ruleutils.c:table_scan_getnextslot_tidrange Unexecuted instantiation: selfuncs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: tid.c:table_scan_getnextslot_tidrange Unexecuted instantiation: trigfuncs.c:table_scan_getnextslot_tidrange Unexecuted instantiation: tsquery_rewrite.c:table_scan_getnextslot_tidrange Unexecuted instantiation: tsvector_op.c:table_scan_getnextslot_tidrange Unexecuted instantiation: xml.c:table_scan_getnextslot_tidrange Unexecuted instantiation: evtcache.c:table_scan_getnextslot_tidrange Unexecuted instantiation: funccache.c:table_scan_getnextslot_tidrange Unexecuted instantiation: relcache.c:table_scan_getnextslot_tidrange Unexecuted instantiation: postinit.c:table_scan_getnextslot_tidrange Unexecuted instantiation: guc_tables.c:table_scan_getnextslot_tidrange Unexecuted instantiation: simple_query_fuzzer.c:table_scan_getnextslot_tidrange |
1171 | | |
1172 | | |
1173 | | /* ---------------------------------------------------------------------------- |
1174 | | * Parallel table scan related functions. |
1175 | | * ---------------------------------------------------------------------------- |
1176 | | */ |
1177 | | |
1178 | | /* |
1179 | | * Estimate the size of shared memory needed for a parallel scan of this |
1180 | | * relation. |
1181 | | */ |
1182 | | extern Size table_parallelscan_estimate(Relation rel, Snapshot snapshot); |
1183 | | |
1184 | | /* |
1185 | | * Initialize ParallelTableScanDesc for a parallel scan of this |
1186 | | * relation. `pscan` needs to be sized according to parallelscan_estimate() |
1187 | | * for the same relation. Call this just once in the leader process; then, |
1188 | | * individual workers attach via table_beginscan_parallel. |
1189 | | */ |
1190 | | extern void table_parallelscan_initialize(Relation rel, |
1191 | | ParallelTableScanDesc pscan, |
1192 | | Snapshot snapshot); |
1193 | | |
1194 | | /* |
1195 | | * Begin a parallel scan. `pscan` needs to have been initialized with |
1196 | | * table_parallelscan_initialize(), for the same relation. The initialization |
1197 | | * does not need to have happened in this backend. |
1198 | | * |
1199 | | * flags is a bitmask of ScanOptions. No SO_INTERNAL_FLAGS are permitted. |
1200 | | * |
1201 | | * Caller must hold a suitable lock on the relation. |
1202 | | */ |
1203 | | extern TableScanDesc table_beginscan_parallel(Relation relation, |
1204 | | ParallelTableScanDesc pscan, |
1205 | | uint32 flags); |
1206 | | |
1207 | | /* |
1208 | | * Begin a parallel tid range scan. `pscan` needs to have been initialized |
1209 | | * with table_parallelscan_initialize(), for the same relation. The |
1210 | | * initialization does not need to have happened in this backend. |
1211 | | * |
1212 | | * flags is a bitmask of ScanOptions. No SO_INTERNAL_FLAGS are permitted. |
1213 | | * |
1214 | | * Caller must hold a suitable lock on the relation. |
1215 | | */ |
1216 | | extern TableScanDesc table_beginscan_parallel_tidrange(Relation relation, |
1217 | | ParallelTableScanDesc pscan, |
1218 | | uint32 flags); |
1219 | | |
1220 | | /* |
1221 | | * Restart a parallel scan. Call this in the leader process. Caller is |
1222 | | * responsible for making sure that all workers have finished the scan |
1223 | | * beforehand. |
1224 | | */ |
1225 | | static inline void |
1226 | | table_parallelscan_reinitialize(Relation rel, ParallelTableScanDesc pscan) |
1227 | 0 | { |
1228 | 0 | rel->rd_tableam->parallelscan_reinitialize(rel, pscan); |
1229 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_parallelscan_reinitialize Unexecuted instantiation: brin.c:table_parallelscan_reinitialize Unexecuted instantiation: detoast.c:table_parallelscan_reinitialize Unexecuted instantiation: toast_internals.c:table_parallelscan_reinitialize Unexecuted instantiation: gininsert.c:table_parallelscan_reinitialize Unexecuted instantiation: gistbuild.c:table_parallelscan_reinitialize Unexecuted instantiation: hash.c:table_parallelscan_reinitialize Unexecuted instantiation: heapam.c:table_parallelscan_reinitialize Unexecuted instantiation: heapam_handler.c:table_parallelscan_reinitialize Unexecuted instantiation: heapam_indexscan.c:table_parallelscan_reinitialize Unexecuted instantiation: heapam_visibility.c:table_parallelscan_reinitialize Unexecuted instantiation: heapam_xlog.c:table_parallelscan_reinitialize Unexecuted instantiation: heaptoast.c:table_parallelscan_reinitialize Unexecuted instantiation: hio.c:table_parallelscan_reinitialize Unexecuted instantiation: pruneheap.c:table_parallelscan_reinitialize Unexecuted instantiation: rewriteheap.c:table_parallelscan_reinitialize Unexecuted instantiation: vacuumlazy.c:table_parallelscan_reinitialize Unexecuted instantiation: genam.c:table_parallelscan_reinitialize Unexecuted instantiation: indexam.c:table_parallelscan_reinitialize Unexecuted instantiation: nbtdedup.c:table_parallelscan_reinitialize Unexecuted instantiation: nbtinsert.c:table_parallelscan_reinitialize Unexecuted instantiation: nbtpage.c:table_parallelscan_reinitialize Unexecuted instantiation: nbtsort.c:table_parallelscan_reinitialize Unexecuted instantiation: nbtsplitloc.c:table_parallelscan_reinitialize Unexecuted instantiation: spginsert.c:table_parallelscan_reinitialize Unexecuted instantiation: tableam.c:table_parallelscan_reinitialize Unexecuted instantiation: tableamapi.c:table_parallelscan_reinitialize Unexecuted instantiation: xact.c:table_parallelscan_reinitialize Unexecuted instantiation: bootstrap.c:table_parallelscan_reinitialize Unexecuted instantiation: aclchk.c:table_parallelscan_reinitialize Unexecuted instantiation: dependency.c:table_parallelscan_reinitialize Unexecuted instantiation: heap.c:table_parallelscan_reinitialize Unexecuted instantiation: index.c:table_parallelscan_reinitialize Unexecuted instantiation: indexing.c:table_parallelscan_reinitialize Unexecuted instantiation: objectaddress.c:table_parallelscan_reinitialize Unexecuted instantiation: pg_db_role_setting.c:table_parallelscan_reinitialize Unexecuted instantiation: pg_publication.c:table_parallelscan_reinitialize Unexecuted instantiation: pg_subscription.c:table_parallelscan_reinitialize Unexecuted instantiation: toasting.c:table_parallelscan_reinitialize Unexecuted instantiation: gram.c:table_parallelscan_reinitialize Unexecuted instantiation: alter.c:table_parallelscan_reinitialize Unexecuted instantiation: analyze.c:table_parallelscan_reinitialize Unexecuted instantiation: constraint.c:table_parallelscan_reinitialize Unexecuted instantiation: copyfrom.c:table_parallelscan_reinitialize Unexecuted instantiation: copyfromparse.c:table_parallelscan_reinitialize Unexecuted instantiation: copyto.c:table_parallelscan_reinitialize Unexecuted instantiation: createas.c:table_parallelscan_reinitialize Unexecuted instantiation: dbcommands.c:table_parallelscan_reinitialize Unexecuted instantiation: event_trigger.c:table_parallelscan_reinitialize Unexecuted instantiation: indexcmds.c:table_parallelscan_reinitialize Unexecuted instantiation: matview.c:table_parallelscan_reinitialize Unexecuted instantiation: repack.c:table_parallelscan_reinitialize Unexecuted instantiation: tablecmds.c:table_parallelscan_reinitialize Unexecuted instantiation: tablespace.c:table_parallelscan_reinitialize Unexecuted instantiation: trigger.c:table_parallelscan_reinitialize Unexecuted instantiation: typecmds.c:table_parallelscan_reinitialize Unexecuted instantiation: vacuum.c:table_parallelscan_reinitialize Unexecuted instantiation: execIndexing.c:table_parallelscan_reinitialize Unexecuted instantiation: execMain.c:table_parallelscan_reinitialize Unexecuted instantiation: execPartition.c:table_parallelscan_reinitialize Unexecuted instantiation: execReplication.c:table_parallelscan_reinitialize Unexecuted instantiation: execUtils.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeBitmapHeapscan.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeIndexonlyscan.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeIndexscan.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeLockRows.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeModifyTable.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeSamplescan.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeSeqscan.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeTidrangescan.c:table_parallelscan_reinitialize Unexecuted instantiation: nodeTidscan.c:table_parallelscan_reinitialize Unexecuted instantiation: spi.c:table_parallelscan_reinitialize Unexecuted instantiation: copyfuncs.c:table_parallelscan_reinitialize Unexecuted instantiation: equalfuncs.c:table_parallelscan_reinitialize Unexecuted instantiation: outfuncs.c:table_parallelscan_reinitialize Unexecuted instantiation: queryjumblefuncs.c:table_parallelscan_reinitialize Unexecuted instantiation: readfuncs.c:table_parallelscan_reinitialize Unexecuted instantiation: plancat.c:table_parallelscan_reinitialize Unexecuted instantiation: partbounds.c:table_parallelscan_reinitialize Unexecuted instantiation: autovacuum.c:table_parallelscan_reinitialize Unexecuted instantiation: datachecksum_state.c:table_parallelscan_reinitialize Unexecuted instantiation: conflict.c:table_parallelscan_reinitialize Unexecuted instantiation: launcher.c:table_parallelscan_reinitialize Unexecuted instantiation: reorderbuffer.c:table_parallelscan_reinitialize Unexecuted instantiation: worker.c:table_parallelscan_reinitialize Unexecuted instantiation: rewriteHandler.c:table_parallelscan_reinitialize Unexecuted instantiation: attribute_stats.c:table_parallelscan_reinitialize Unexecuted instantiation: extended_stats_funcs.c:table_parallelscan_reinitialize Unexecuted instantiation: relation_stats.c:table_parallelscan_reinitialize Unexecuted instantiation: bufmgr.c:table_parallelscan_reinitialize Unexecuted instantiation: utility.c:table_parallelscan_reinitialize Unexecuted instantiation: ri_triggers.c:table_parallelscan_reinitialize Unexecuted instantiation: ruleutils.c:table_parallelscan_reinitialize Unexecuted instantiation: selfuncs.c:table_parallelscan_reinitialize Unexecuted instantiation: tid.c:table_parallelscan_reinitialize Unexecuted instantiation: trigfuncs.c:table_parallelscan_reinitialize Unexecuted instantiation: tsquery_rewrite.c:table_parallelscan_reinitialize Unexecuted instantiation: tsvector_op.c:table_parallelscan_reinitialize Unexecuted instantiation: xml.c:table_parallelscan_reinitialize Unexecuted instantiation: evtcache.c:table_parallelscan_reinitialize Unexecuted instantiation: funccache.c:table_parallelscan_reinitialize Unexecuted instantiation: relcache.c:table_parallelscan_reinitialize Unexecuted instantiation: postinit.c:table_parallelscan_reinitialize Unexecuted instantiation: guc_tables.c:table_parallelscan_reinitialize Unexecuted instantiation: simple_query_fuzzer.c:table_parallelscan_reinitialize |
1230 | | |
1231 | | |
1232 | | /* ---------------------------------------------------------------------------- |
1233 | | * Index scan related functions. |
1234 | | * ---------------------------------------------------------------------------- |
1235 | | */ |
1236 | | |
1237 | | /* |
1238 | | * Prepare to fetch tuples from the relation, as needed when fetching tuples |
1239 | | * for an index scan. |
1240 | | * |
1241 | | * flags is a bitmask of ScanOptions. No SO_INTERNAL_FLAGS are permitted. |
1242 | | * |
1243 | | * Tuples for an index scan can then be fetched via table_index_fetch_tuple(). |
1244 | | */ |
1245 | | static inline IndexFetchTableData * |
1246 | | table_index_fetch_begin(Relation rel, uint32 flags) |
1247 | 0 | { |
1248 | 0 | Assert((flags & SO_INTERNAL_FLAGS) == 0); |
1249 | | |
1250 | | /* |
1251 | | * We don't allow scans to be started while CheckXidAlive is set, except |
1252 | | * via systable_beginscan() et al. See detailed comments in xact.c where |
1253 | | * these variables are declared. |
1254 | | */ |
1255 | 0 | if (unlikely(TransactionIdIsValid(CheckXidAlive) && !bsysscan)) |
1256 | 0 | elog(ERROR, "scan started during logical decoding"); |
1257 | | |
1258 | 0 | return rel->rd_tableam->index_fetch_begin(rel, flags); |
1259 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_fetch_begin Unexecuted instantiation: brin.c:table_index_fetch_begin Unexecuted instantiation: detoast.c:table_index_fetch_begin Unexecuted instantiation: toast_internals.c:table_index_fetch_begin Unexecuted instantiation: gininsert.c:table_index_fetch_begin Unexecuted instantiation: gistbuild.c:table_index_fetch_begin Unexecuted instantiation: hash.c:table_index_fetch_begin Unexecuted instantiation: heapam.c:table_index_fetch_begin Unexecuted instantiation: heapam_handler.c:table_index_fetch_begin Unexecuted instantiation: heapam_indexscan.c:table_index_fetch_begin Unexecuted instantiation: heapam_visibility.c:table_index_fetch_begin Unexecuted instantiation: heapam_xlog.c:table_index_fetch_begin Unexecuted instantiation: heaptoast.c:table_index_fetch_begin Unexecuted instantiation: hio.c:table_index_fetch_begin Unexecuted instantiation: pruneheap.c:table_index_fetch_begin Unexecuted instantiation: rewriteheap.c:table_index_fetch_begin Unexecuted instantiation: vacuumlazy.c:table_index_fetch_begin Unexecuted instantiation: genam.c:table_index_fetch_begin Unexecuted instantiation: indexam.c:table_index_fetch_begin Unexecuted instantiation: nbtdedup.c:table_index_fetch_begin Unexecuted instantiation: nbtinsert.c:table_index_fetch_begin Unexecuted instantiation: nbtpage.c:table_index_fetch_begin Unexecuted instantiation: nbtsort.c:table_index_fetch_begin Unexecuted instantiation: nbtsplitloc.c:table_index_fetch_begin Unexecuted instantiation: spginsert.c:table_index_fetch_begin Unexecuted instantiation: tableam.c:table_index_fetch_begin Unexecuted instantiation: tableamapi.c:table_index_fetch_begin Unexecuted instantiation: xact.c:table_index_fetch_begin Unexecuted instantiation: bootstrap.c:table_index_fetch_begin Unexecuted instantiation: aclchk.c:table_index_fetch_begin Unexecuted instantiation: dependency.c:table_index_fetch_begin Unexecuted instantiation: heap.c:table_index_fetch_begin Unexecuted instantiation: index.c:table_index_fetch_begin Unexecuted instantiation: indexing.c:table_index_fetch_begin Unexecuted instantiation: objectaddress.c:table_index_fetch_begin Unexecuted instantiation: pg_db_role_setting.c:table_index_fetch_begin Unexecuted instantiation: pg_publication.c:table_index_fetch_begin Unexecuted instantiation: pg_subscription.c:table_index_fetch_begin Unexecuted instantiation: toasting.c:table_index_fetch_begin Unexecuted instantiation: gram.c:table_index_fetch_begin Unexecuted instantiation: alter.c:table_index_fetch_begin Unexecuted instantiation: analyze.c:table_index_fetch_begin Unexecuted instantiation: constraint.c:table_index_fetch_begin Unexecuted instantiation: copyfrom.c:table_index_fetch_begin Unexecuted instantiation: copyfromparse.c:table_index_fetch_begin Unexecuted instantiation: copyto.c:table_index_fetch_begin Unexecuted instantiation: createas.c:table_index_fetch_begin Unexecuted instantiation: dbcommands.c:table_index_fetch_begin Unexecuted instantiation: event_trigger.c:table_index_fetch_begin Unexecuted instantiation: indexcmds.c:table_index_fetch_begin Unexecuted instantiation: matview.c:table_index_fetch_begin Unexecuted instantiation: repack.c:table_index_fetch_begin Unexecuted instantiation: tablecmds.c:table_index_fetch_begin Unexecuted instantiation: tablespace.c:table_index_fetch_begin Unexecuted instantiation: trigger.c:table_index_fetch_begin Unexecuted instantiation: typecmds.c:table_index_fetch_begin Unexecuted instantiation: vacuum.c:table_index_fetch_begin Unexecuted instantiation: execIndexing.c:table_index_fetch_begin Unexecuted instantiation: execMain.c:table_index_fetch_begin Unexecuted instantiation: execPartition.c:table_index_fetch_begin Unexecuted instantiation: execReplication.c:table_index_fetch_begin Unexecuted instantiation: execUtils.c:table_index_fetch_begin Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_fetch_begin Unexecuted instantiation: nodeIndexonlyscan.c:table_index_fetch_begin Unexecuted instantiation: nodeIndexscan.c:table_index_fetch_begin Unexecuted instantiation: nodeLockRows.c:table_index_fetch_begin Unexecuted instantiation: nodeModifyTable.c:table_index_fetch_begin Unexecuted instantiation: nodeSamplescan.c:table_index_fetch_begin Unexecuted instantiation: nodeSeqscan.c:table_index_fetch_begin Unexecuted instantiation: nodeTidrangescan.c:table_index_fetch_begin Unexecuted instantiation: nodeTidscan.c:table_index_fetch_begin Unexecuted instantiation: spi.c:table_index_fetch_begin Unexecuted instantiation: copyfuncs.c:table_index_fetch_begin Unexecuted instantiation: equalfuncs.c:table_index_fetch_begin Unexecuted instantiation: outfuncs.c:table_index_fetch_begin Unexecuted instantiation: queryjumblefuncs.c:table_index_fetch_begin Unexecuted instantiation: readfuncs.c:table_index_fetch_begin Unexecuted instantiation: plancat.c:table_index_fetch_begin Unexecuted instantiation: partbounds.c:table_index_fetch_begin Unexecuted instantiation: autovacuum.c:table_index_fetch_begin Unexecuted instantiation: datachecksum_state.c:table_index_fetch_begin Unexecuted instantiation: conflict.c:table_index_fetch_begin Unexecuted instantiation: launcher.c:table_index_fetch_begin Unexecuted instantiation: reorderbuffer.c:table_index_fetch_begin Unexecuted instantiation: worker.c:table_index_fetch_begin Unexecuted instantiation: rewriteHandler.c:table_index_fetch_begin Unexecuted instantiation: attribute_stats.c:table_index_fetch_begin Unexecuted instantiation: extended_stats_funcs.c:table_index_fetch_begin Unexecuted instantiation: relation_stats.c:table_index_fetch_begin Unexecuted instantiation: bufmgr.c:table_index_fetch_begin Unexecuted instantiation: utility.c:table_index_fetch_begin Unexecuted instantiation: ri_triggers.c:table_index_fetch_begin Unexecuted instantiation: ruleutils.c:table_index_fetch_begin Unexecuted instantiation: selfuncs.c:table_index_fetch_begin Unexecuted instantiation: tid.c:table_index_fetch_begin Unexecuted instantiation: trigfuncs.c:table_index_fetch_begin Unexecuted instantiation: tsquery_rewrite.c:table_index_fetch_begin Unexecuted instantiation: tsvector_op.c:table_index_fetch_begin Unexecuted instantiation: xml.c:table_index_fetch_begin Unexecuted instantiation: evtcache.c:table_index_fetch_begin Unexecuted instantiation: funccache.c:table_index_fetch_begin Unexecuted instantiation: relcache.c:table_index_fetch_begin Unexecuted instantiation: postinit.c:table_index_fetch_begin Unexecuted instantiation: guc_tables.c:table_index_fetch_begin Unexecuted instantiation: simple_query_fuzzer.c:table_index_fetch_begin |
1260 | | |
1261 | | /* |
1262 | | * Reset index fetch. Typically this will release cross index fetch resources |
1263 | | * held in IndexFetchTableData. |
1264 | | */ |
1265 | | static inline void |
1266 | | table_index_fetch_reset(struct IndexFetchTableData *scan) |
1267 | 0 | { |
1268 | 0 | scan->rel->rd_tableam->index_fetch_reset(scan); |
1269 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_fetch_reset Unexecuted instantiation: brin.c:table_index_fetch_reset Unexecuted instantiation: detoast.c:table_index_fetch_reset Unexecuted instantiation: toast_internals.c:table_index_fetch_reset Unexecuted instantiation: gininsert.c:table_index_fetch_reset Unexecuted instantiation: gistbuild.c:table_index_fetch_reset Unexecuted instantiation: hash.c:table_index_fetch_reset Unexecuted instantiation: heapam.c:table_index_fetch_reset Unexecuted instantiation: heapam_handler.c:table_index_fetch_reset Unexecuted instantiation: heapam_indexscan.c:table_index_fetch_reset Unexecuted instantiation: heapam_visibility.c:table_index_fetch_reset Unexecuted instantiation: heapam_xlog.c:table_index_fetch_reset Unexecuted instantiation: heaptoast.c:table_index_fetch_reset Unexecuted instantiation: hio.c:table_index_fetch_reset Unexecuted instantiation: pruneheap.c:table_index_fetch_reset Unexecuted instantiation: rewriteheap.c:table_index_fetch_reset Unexecuted instantiation: vacuumlazy.c:table_index_fetch_reset Unexecuted instantiation: genam.c:table_index_fetch_reset Unexecuted instantiation: indexam.c:table_index_fetch_reset Unexecuted instantiation: nbtdedup.c:table_index_fetch_reset Unexecuted instantiation: nbtinsert.c:table_index_fetch_reset Unexecuted instantiation: nbtpage.c:table_index_fetch_reset Unexecuted instantiation: nbtsort.c:table_index_fetch_reset Unexecuted instantiation: nbtsplitloc.c:table_index_fetch_reset Unexecuted instantiation: spginsert.c:table_index_fetch_reset Unexecuted instantiation: tableam.c:table_index_fetch_reset Unexecuted instantiation: tableamapi.c:table_index_fetch_reset Unexecuted instantiation: xact.c:table_index_fetch_reset Unexecuted instantiation: bootstrap.c:table_index_fetch_reset Unexecuted instantiation: aclchk.c:table_index_fetch_reset Unexecuted instantiation: dependency.c:table_index_fetch_reset Unexecuted instantiation: heap.c:table_index_fetch_reset Unexecuted instantiation: index.c:table_index_fetch_reset Unexecuted instantiation: indexing.c:table_index_fetch_reset Unexecuted instantiation: objectaddress.c:table_index_fetch_reset Unexecuted instantiation: pg_db_role_setting.c:table_index_fetch_reset Unexecuted instantiation: pg_publication.c:table_index_fetch_reset Unexecuted instantiation: pg_subscription.c:table_index_fetch_reset Unexecuted instantiation: toasting.c:table_index_fetch_reset Unexecuted instantiation: gram.c:table_index_fetch_reset Unexecuted instantiation: alter.c:table_index_fetch_reset Unexecuted instantiation: analyze.c:table_index_fetch_reset Unexecuted instantiation: constraint.c:table_index_fetch_reset Unexecuted instantiation: copyfrom.c:table_index_fetch_reset Unexecuted instantiation: copyfromparse.c:table_index_fetch_reset Unexecuted instantiation: copyto.c:table_index_fetch_reset Unexecuted instantiation: createas.c:table_index_fetch_reset Unexecuted instantiation: dbcommands.c:table_index_fetch_reset Unexecuted instantiation: event_trigger.c:table_index_fetch_reset Unexecuted instantiation: indexcmds.c:table_index_fetch_reset Unexecuted instantiation: matview.c:table_index_fetch_reset Unexecuted instantiation: repack.c:table_index_fetch_reset Unexecuted instantiation: tablecmds.c:table_index_fetch_reset Unexecuted instantiation: tablespace.c:table_index_fetch_reset Unexecuted instantiation: trigger.c:table_index_fetch_reset Unexecuted instantiation: typecmds.c:table_index_fetch_reset Unexecuted instantiation: vacuum.c:table_index_fetch_reset Unexecuted instantiation: execIndexing.c:table_index_fetch_reset Unexecuted instantiation: execMain.c:table_index_fetch_reset Unexecuted instantiation: execPartition.c:table_index_fetch_reset Unexecuted instantiation: execReplication.c:table_index_fetch_reset Unexecuted instantiation: execUtils.c:table_index_fetch_reset Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_fetch_reset Unexecuted instantiation: nodeIndexonlyscan.c:table_index_fetch_reset Unexecuted instantiation: nodeIndexscan.c:table_index_fetch_reset Unexecuted instantiation: nodeLockRows.c:table_index_fetch_reset Unexecuted instantiation: nodeModifyTable.c:table_index_fetch_reset Unexecuted instantiation: nodeSamplescan.c:table_index_fetch_reset Unexecuted instantiation: nodeSeqscan.c:table_index_fetch_reset Unexecuted instantiation: nodeTidrangescan.c:table_index_fetch_reset Unexecuted instantiation: nodeTidscan.c:table_index_fetch_reset Unexecuted instantiation: spi.c:table_index_fetch_reset Unexecuted instantiation: copyfuncs.c:table_index_fetch_reset Unexecuted instantiation: equalfuncs.c:table_index_fetch_reset Unexecuted instantiation: outfuncs.c:table_index_fetch_reset Unexecuted instantiation: queryjumblefuncs.c:table_index_fetch_reset Unexecuted instantiation: readfuncs.c:table_index_fetch_reset Unexecuted instantiation: plancat.c:table_index_fetch_reset Unexecuted instantiation: partbounds.c:table_index_fetch_reset Unexecuted instantiation: autovacuum.c:table_index_fetch_reset Unexecuted instantiation: datachecksum_state.c:table_index_fetch_reset Unexecuted instantiation: conflict.c:table_index_fetch_reset Unexecuted instantiation: launcher.c:table_index_fetch_reset Unexecuted instantiation: reorderbuffer.c:table_index_fetch_reset Unexecuted instantiation: worker.c:table_index_fetch_reset Unexecuted instantiation: rewriteHandler.c:table_index_fetch_reset Unexecuted instantiation: attribute_stats.c:table_index_fetch_reset Unexecuted instantiation: extended_stats_funcs.c:table_index_fetch_reset Unexecuted instantiation: relation_stats.c:table_index_fetch_reset Unexecuted instantiation: bufmgr.c:table_index_fetch_reset Unexecuted instantiation: utility.c:table_index_fetch_reset Unexecuted instantiation: ri_triggers.c:table_index_fetch_reset Unexecuted instantiation: ruleutils.c:table_index_fetch_reset Unexecuted instantiation: selfuncs.c:table_index_fetch_reset Unexecuted instantiation: tid.c:table_index_fetch_reset Unexecuted instantiation: trigfuncs.c:table_index_fetch_reset Unexecuted instantiation: tsquery_rewrite.c:table_index_fetch_reset Unexecuted instantiation: tsvector_op.c:table_index_fetch_reset Unexecuted instantiation: xml.c:table_index_fetch_reset Unexecuted instantiation: evtcache.c:table_index_fetch_reset Unexecuted instantiation: funccache.c:table_index_fetch_reset Unexecuted instantiation: relcache.c:table_index_fetch_reset Unexecuted instantiation: postinit.c:table_index_fetch_reset Unexecuted instantiation: guc_tables.c:table_index_fetch_reset Unexecuted instantiation: simple_query_fuzzer.c:table_index_fetch_reset |
1270 | | |
1271 | | /* |
1272 | | * Release resources and deallocate index fetch. |
1273 | | */ |
1274 | | static inline void |
1275 | | table_index_fetch_end(struct IndexFetchTableData *scan) |
1276 | 0 | { |
1277 | 0 | scan->rel->rd_tableam->index_fetch_end(scan); |
1278 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_fetch_end Unexecuted instantiation: brin.c:table_index_fetch_end Unexecuted instantiation: detoast.c:table_index_fetch_end Unexecuted instantiation: toast_internals.c:table_index_fetch_end Unexecuted instantiation: gininsert.c:table_index_fetch_end Unexecuted instantiation: gistbuild.c:table_index_fetch_end Unexecuted instantiation: hash.c:table_index_fetch_end Unexecuted instantiation: heapam.c:table_index_fetch_end Unexecuted instantiation: heapam_handler.c:table_index_fetch_end Unexecuted instantiation: heapam_indexscan.c:table_index_fetch_end Unexecuted instantiation: heapam_visibility.c:table_index_fetch_end Unexecuted instantiation: heapam_xlog.c:table_index_fetch_end Unexecuted instantiation: heaptoast.c:table_index_fetch_end Unexecuted instantiation: hio.c:table_index_fetch_end Unexecuted instantiation: pruneheap.c:table_index_fetch_end Unexecuted instantiation: rewriteheap.c:table_index_fetch_end Unexecuted instantiation: vacuumlazy.c:table_index_fetch_end Unexecuted instantiation: genam.c:table_index_fetch_end Unexecuted instantiation: indexam.c:table_index_fetch_end Unexecuted instantiation: nbtdedup.c:table_index_fetch_end Unexecuted instantiation: nbtinsert.c:table_index_fetch_end Unexecuted instantiation: nbtpage.c:table_index_fetch_end Unexecuted instantiation: nbtsort.c:table_index_fetch_end Unexecuted instantiation: nbtsplitloc.c:table_index_fetch_end Unexecuted instantiation: spginsert.c:table_index_fetch_end Unexecuted instantiation: tableam.c:table_index_fetch_end Unexecuted instantiation: tableamapi.c:table_index_fetch_end Unexecuted instantiation: xact.c:table_index_fetch_end Unexecuted instantiation: bootstrap.c:table_index_fetch_end Unexecuted instantiation: aclchk.c:table_index_fetch_end Unexecuted instantiation: dependency.c:table_index_fetch_end Unexecuted instantiation: heap.c:table_index_fetch_end Unexecuted instantiation: index.c:table_index_fetch_end Unexecuted instantiation: indexing.c:table_index_fetch_end Unexecuted instantiation: objectaddress.c:table_index_fetch_end Unexecuted instantiation: pg_db_role_setting.c:table_index_fetch_end Unexecuted instantiation: pg_publication.c:table_index_fetch_end Unexecuted instantiation: pg_subscription.c:table_index_fetch_end Unexecuted instantiation: toasting.c:table_index_fetch_end Unexecuted instantiation: gram.c:table_index_fetch_end Unexecuted instantiation: alter.c:table_index_fetch_end Unexecuted instantiation: analyze.c:table_index_fetch_end Unexecuted instantiation: constraint.c:table_index_fetch_end Unexecuted instantiation: copyfrom.c:table_index_fetch_end Unexecuted instantiation: copyfromparse.c:table_index_fetch_end Unexecuted instantiation: copyto.c:table_index_fetch_end Unexecuted instantiation: createas.c:table_index_fetch_end Unexecuted instantiation: dbcommands.c:table_index_fetch_end Unexecuted instantiation: event_trigger.c:table_index_fetch_end Unexecuted instantiation: indexcmds.c:table_index_fetch_end Unexecuted instantiation: matview.c:table_index_fetch_end Unexecuted instantiation: repack.c:table_index_fetch_end Unexecuted instantiation: tablecmds.c:table_index_fetch_end Unexecuted instantiation: tablespace.c:table_index_fetch_end Unexecuted instantiation: trigger.c:table_index_fetch_end Unexecuted instantiation: typecmds.c:table_index_fetch_end Unexecuted instantiation: vacuum.c:table_index_fetch_end Unexecuted instantiation: execIndexing.c:table_index_fetch_end Unexecuted instantiation: execMain.c:table_index_fetch_end Unexecuted instantiation: execPartition.c:table_index_fetch_end Unexecuted instantiation: execReplication.c:table_index_fetch_end Unexecuted instantiation: execUtils.c:table_index_fetch_end Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_fetch_end Unexecuted instantiation: nodeIndexonlyscan.c:table_index_fetch_end Unexecuted instantiation: nodeIndexscan.c:table_index_fetch_end Unexecuted instantiation: nodeLockRows.c:table_index_fetch_end Unexecuted instantiation: nodeModifyTable.c:table_index_fetch_end Unexecuted instantiation: nodeSamplescan.c:table_index_fetch_end Unexecuted instantiation: nodeSeqscan.c:table_index_fetch_end Unexecuted instantiation: nodeTidrangescan.c:table_index_fetch_end Unexecuted instantiation: nodeTidscan.c:table_index_fetch_end Unexecuted instantiation: spi.c:table_index_fetch_end Unexecuted instantiation: copyfuncs.c:table_index_fetch_end Unexecuted instantiation: equalfuncs.c:table_index_fetch_end Unexecuted instantiation: outfuncs.c:table_index_fetch_end Unexecuted instantiation: queryjumblefuncs.c:table_index_fetch_end Unexecuted instantiation: readfuncs.c:table_index_fetch_end Unexecuted instantiation: plancat.c:table_index_fetch_end Unexecuted instantiation: partbounds.c:table_index_fetch_end Unexecuted instantiation: autovacuum.c:table_index_fetch_end Unexecuted instantiation: datachecksum_state.c:table_index_fetch_end Unexecuted instantiation: conflict.c:table_index_fetch_end Unexecuted instantiation: launcher.c:table_index_fetch_end Unexecuted instantiation: reorderbuffer.c:table_index_fetch_end Unexecuted instantiation: worker.c:table_index_fetch_end Unexecuted instantiation: rewriteHandler.c:table_index_fetch_end Unexecuted instantiation: attribute_stats.c:table_index_fetch_end Unexecuted instantiation: extended_stats_funcs.c:table_index_fetch_end Unexecuted instantiation: relation_stats.c:table_index_fetch_end Unexecuted instantiation: bufmgr.c:table_index_fetch_end Unexecuted instantiation: utility.c:table_index_fetch_end Unexecuted instantiation: ri_triggers.c:table_index_fetch_end Unexecuted instantiation: ruleutils.c:table_index_fetch_end Unexecuted instantiation: selfuncs.c:table_index_fetch_end Unexecuted instantiation: tid.c:table_index_fetch_end Unexecuted instantiation: trigfuncs.c:table_index_fetch_end Unexecuted instantiation: tsquery_rewrite.c:table_index_fetch_end Unexecuted instantiation: tsvector_op.c:table_index_fetch_end Unexecuted instantiation: xml.c:table_index_fetch_end Unexecuted instantiation: evtcache.c:table_index_fetch_end Unexecuted instantiation: funccache.c:table_index_fetch_end Unexecuted instantiation: relcache.c:table_index_fetch_end Unexecuted instantiation: postinit.c:table_index_fetch_end Unexecuted instantiation: guc_tables.c:table_index_fetch_end Unexecuted instantiation: simple_query_fuzzer.c:table_index_fetch_end |
1279 | | |
1280 | | /* |
1281 | | * Fetches, as part of an index scan, tuple at `tid` into `slot`, after doing |
1282 | | * a visibility test according to `snapshot`. If a tuple was found and passed |
1283 | | * the visibility test, returns true, false otherwise. Note that *tid may be |
1284 | | * modified when we return true (see later remarks on multiple row versions |
1285 | | * reachable via a single index entry). |
1286 | | * |
1287 | | * *call_again needs to be false on the first call to table_index_fetch_tuple() for |
1288 | | * a tid. If there potentially is another tuple matching the tid, *call_again |
1289 | | * will be set to true, signaling that table_index_fetch_tuple() should be called |
1290 | | * again for the same tid. |
1291 | | * |
1292 | | * *all_dead, if all_dead is not NULL, will be set to true by |
1293 | | * table_index_fetch_tuple() iff it is guaranteed that no backend needs to see |
1294 | | * that tuple. Index AMs can use that to avoid returning that tid in future |
1295 | | * searches. |
1296 | | * |
1297 | | * The difference between this function and table_tuple_fetch_row_version() |
1298 | | * is that this function returns the currently visible version of a row if |
1299 | | * the AM supports storing multiple row versions reachable via a single index |
1300 | | * entry (like heap's HOT). Whereas table_tuple_fetch_row_version() only |
1301 | | * evaluates the tuple exactly at `tid`. Outside of index entry ->table tuple |
1302 | | * lookups, table_tuple_fetch_row_version() is what's usually needed. |
1303 | | */ |
1304 | | static inline bool |
1305 | | table_index_fetch_tuple(struct IndexFetchTableData *scan, |
1306 | | ItemPointer tid, |
1307 | | Snapshot snapshot, |
1308 | | TupleTableSlot *slot, |
1309 | | bool *call_again, bool *all_dead) |
1310 | 0 | { |
1311 | 0 | return scan->rel->rd_tableam->index_fetch_tuple(scan, tid, snapshot, |
1312 | 0 | slot, call_again, |
1313 | 0 | all_dead); |
1314 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_fetch_tuple Unexecuted instantiation: brin.c:table_index_fetch_tuple Unexecuted instantiation: detoast.c:table_index_fetch_tuple Unexecuted instantiation: toast_internals.c:table_index_fetch_tuple Unexecuted instantiation: gininsert.c:table_index_fetch_tuple Unexecuted instantiation: gistbuild.c:table_index_fetch_tuple Unexecuted instantiation: hash.c:table_index_fetch_tuple Unexecuted instantiation: heapam.c:table_index_fetch_tuple Unexecuted instantiation: heapam_handler.c:table_index_fetch_tuple Unexecuted instantiation: heapam_indexscan.c:table_index_fetch_tuple Unexecuted instantiation: heapam_visibility.c:table_index_fetch_tuple Unexecuted instantiation: heapam_xlog.c:table_index_fetch_tuple Unexecuted instantiation: heaptoast.c:table_index_fetch_tuple Unexecuted instantiation: hio.c:table_index_fetch_tuple Unexecuted instantiation: pruneheap.c:table_index_fetch_tuple Unexecuted instantiation: rewriteheap.c:table_index_fetch_tuple Unexecuted instantiation: vacuumlazy.c:table_index_fetch_tuple Unexecuted instantiation: genam.c:table_index_fetch_tuple Unexecuted instantiation: indexam.c:table_index_fetch_tuple Unexecuted instantiation: nbtdedup.c:table_index_fetch_tuple Unexecuted instantiation: nbtinsert.c:table_index_fetch_tuple Unexecuted instantiation: nbtpage.c:table_index_fetch_tuple Unexecuted instantiation: nbtsort.c:table_index_fetch_tuple Unexecuted instantiation: nbtsplitloc.c:table_index_fetch_tuple Unexecuted instantiation: spginsert.c:table_index_fetch_tuple Unexecuted instantiation: tableam.c:table_index_fetch_tuple Unexecuted instantiation: tableamapi.c:table_index_fetch_tuple Unexecuted instantiation: xact.c:table_index_fetch_tuple Unexecuted instantiation: bootstrap.c:table_index_fetch_tuple Unexecuted instantiation: aclchk.c:table_index_fetch_tuple Unexecuted instantiation: dependency.c:table_index_fetch_tuple Unexecuted instantiation: heap.c:table_index_fetch_tuple Unexecuted instantiation: index.c:table_index_fetch_tuple Unexecuted instantiation: indexing.c:table_index_fetch_tuple Unexecuted instantiation: objectaddress.c:table_index_fetch_tuple Unexecuted instantiation: pg_db_role_setting.c:table_index_fetch_tuple Unexecuted instantiation: pg_publication.c:table_index_fetch_tuple Unexecuted instantiation: pg_subscription.c:table_index_fetch_tuple Unexecuted instantiation: toasting.c:table_index_fetch_tuple Unexecuted instantiation: gram.c:table_index_fetch_tuple Unexecuted instantiation: alter.c:table_index_fetch_tuple Unexecuted instantiation: analyze.c:table_index_fetch_tuple Unexecuted instantiation: constraint.c:table_index_fetch_tuple Unexecuted instantiation: copyfrom.c:table_index_fetch_tuple Unexecuted instantiation: copyfromparse.c:table_index_fetch_tuple Unexecuted instantiation: copyto.c:table_index_fetch_tuple Unexecuted instantiation: createas.c:table_index_fetch_tuple Unexecuted instantiation: dbcommands.c:table_index_fetch_tuple Unexecuted instantiation: event_trigger.c:table_index_fetch_tuple Unexecuted instantiation: indexcmds.c:table_index_fetch_tuple Unexecuted instantiation: matview.c:table_index_fetch_tuple Unexecuted instantiation: repack.c:table_index_fetch_tuple Unexecuted instantiation: tablecmds.c:table_index_fetch_tuple Unexecuted instantiation: tablespace.c:table_index_fetch_tuple Unexecuted instantiation: trigger.c:table_index_fetch_tuple Unexecuted instantiation: typecmds.c:table_index_fetch_tuple Unexecuted instantiation: vacuum.c:table_index_fetch_tuple Unexecuted instantiation: execIndexing.c:table_index_fetch_tuple Unexecuted instantiation: execMain.c:table_index_fetch_tuple Unexecuted instantiation: execPartition.c:table_index_fetch_tuple Unexecuted instantiation: execReplication.c:table_index_fetch_tuple Unexecuted instantiation: execUtils.c:table_index_fetch_tuple Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_fetch_tuple Unexecuted instantiation: nodeIndexonlyscan.c:table_index_fetch_tuple Unexecuted instantiation: nodeIndexscan.c:table_index_fetch_tuple Unexecuted instantiation: nodeLockRows.c:table_index_fetch_tuple Unexecuted instantiation: nodeModifyTable.c:table_index_fetch_tuple Unexecuted instantiation: nodeSamplescan.c:table_index_fetch_tuple Unexecuted instantiation: nodeSeqscan.c:table_index_fetch_tuple Unexecuted instantiation: nodeTidrangescan.c:table_index_fetch_tuple Unexecuted instantiation: nodeTidscan.c:table_index_fetch_tuple Unexecuted instantiation: spi.c:table_index_fetch_tuple Unexecuted instantiation: copyfuncs.c:table_index_fetch_tuple Unexecuted instantiation: equalfuncs.c:table_index_fetch_tuple Unexecuted instantiation: outfuncs.c:table_index_fetch_tuple Unexecuted instantiation: queryjumblefuncs.c:table_index_fetch_tuple Unexecuted instantiation: readfuncs.c:table_index_fetch_tuple Unexecuted instantiation: plancat.c:table_index_fetch_tuple Unexecuted instantiation: partbounds.c:table_index_fetch_tuple Unexecuted instantiation: autovacuum.c:table_index_fetch_tuple Unexecuted instantiation: datachecksum_state.c:table_index_fetch_tuple Unexecuted instantiation: conflict.c:table_index_fetch_tuple Unexecuted instantiation: launcher.c:table_index_fetch_tuple Unexecuted instantiation: reorderbuffer.c:table_index_fetch_tuple Unexecuted instantiation: worker.c:table_index_fetch_tuple Unexecuted instantiation: rewriteHandler.c:table_index_fetch_tuple Unexecuted instantiation: attribute_stats.c:table_index_fetch_tuple Unexecuted instantiation: extended_stats_funcs.c:table_index_fetch_tuple Unexecuted instantiation: relation_stats.c:table_index_fetch_tuple Unexecuted instantiation: bufmgr.c:table_index_fetch_tuple Unexecuted instantiation: utility.c:table_index_fetch_tuple Unexecuted instantiation: ri_triggers.c:table_index_fetch_tuple Unexecuted instantiation: ruleutils.c:table_index_fetch_tuple Unexecuted instantiation: selfuncs.c:table_index_fetch_tuple Unexecuted instantiation: tid.c:table_index_fetch_tuple Unexecuted instantiation: trigfuncs.c:table_index_fetch_tuple Unexecuted instantiation: tsquery_rewrite.c:table_index_fetch_tuple Unexecuted instantiation: tsvector_op.c:table_index_fetch_tuple Unexecuted instantiation: xml.c:table_index_fetch_tuple Unexecuted instantiation: evtcache.c:table_index_fetch_tuple Unexecuted instantiation: funccache.c:table_index_fetch_tuple Unexecuted instantiation: relcache.c:table_index_fetch_tuple Unexecuted instantiation: postinit.c:table_index_fetch_tuple Unexecuted instantiation: guc_tables.c:table_index_fetch_tuple Unexecuted instantiation: simple_query_fuzzer.c:table_index_fetch_tuple |
1315 | | |
1316 | | /* |
1317 | | * This is a convenience wrapper around table_index_fetch_tuple() which |
1318 | | * returns whether there are table tuple items corresponding to an index |
1319 | | * entry. This likely is only useful to verify if there's a conflict in a |
1320 | | * unique index. |
1321 | | */ |
1322 | | extern bool table_index_fetch_tuple_check(Relation rel, |
1323 | | ItemPointer tid, |
1324 | | Snapshot snapshot, |
1325 | | bool *all_dead); |
1326 | | |
1327 | | |
1328 | | /* ------------------------------------------------------------------------ |
1329 | | * Functions for non-modifying operations on individual tuples |
1330 | | * ------------------------------------------------------------------------ |
1331 | | */ |
1332 | | |
1333 | | |
1334 | | /* |
1335 | | * Fetch tuple at `tid` into `slot`, after doing a visibility test according to |
1336 | | * `snapshot`. If a tuple was found and passed the visibility test, returns |
1337 | | * true, false otherwise. |
1338 | | * |
1339 | | * See table_index_fetch_tuple's comment about what the difference between |
1340 | | * these functions is. It is correct to use this function outside of index |
1341 | | * entry->table tuple lookups. |
1342 | | */ |
1343 | | static inline bool |
1344 | | table_tuple_fetch_row_version(Relation rel, |
1345 | | ItemPointer tid, |
1346 | | Snapshot snapshot, |
1347 | | TupleTableSlot *slot) |
1348 | 0 | { |
1349 | | /* |
1350 | | * We don't expect direct calls to table_tuple_fetch_row_version with |
1351 | | * valid CheckXidAlive for catalog or regular tables. See detailed |
1352 | | * comments in xact.c where these variables are declared. |
1353 | | */ |
1354 | 0 | if (unlikely(TransactionIdIsValid(CheckXidAlive) && !bsysscan)) |
1355 | 0 | elog(ERROR, "unexpected table_tuple_fetch_row_version call during logical decoding"); |
1356 | | |
1357 | 0 | return rel->rd_tableam->tuple_fetch_row_version(rel, tid, snapshot, slot); |
1358 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_fetch_row_version Unexecuted instantiation: brin.c:table_tuple_fetch_row_version Unexecuted instantiation: detoast.c:table_tuple_fetch_row_version Unexecuted instantiation: toast_internals.c:table_tuple_fetch_row_version Unexecuted instantiation: gininsert.c:table_tuple_fetch_row_version Unexecuted instantiation: gistbuild.c:table_tuple_fetch_row_version Unexecuted instantiation: hash.c:table_tuple_fetch_row_version Unexecuted instantiation: heapam.c:table_tuple_fetch_row_version Unexecuted instantiation: heapam_handler.c:table_tuple_fetch_row_version Unexecuted instantiation: heapam_indexscan.c:table_tuple_fetch_row_version Unexecuted instantiation: heapam_visibility.c:table_tuple_fetch_row_version Unexecuted instantiation: heapam_xlog.c:table_tuple_fetch_row_version Unexecuted instantiation: heaptoast.c:table_tuple_fetch_row_version Unexecuted instantiation: hio.c:table_tuple_fetch_row_version Unexecuted instantiation: pruneheap.c:table_tuple_fetch_row_version Unexecuted instantiation: rewriteheap.c:table_tuple_fetch_row_version Unexecuted instantiation: vacuumlazy.c:table_tuple_fetch_row_version Unexecuted instantiation: genam.c:table_tuple_fetch_row_version Unexecuted instantiation: indexam.c:table_tuple_fetch_row_version Unexecuted instantiation: nbtdedup.c:table_tuple_fetch_row_version Unexecuted instantiation: nbtinsert.c:table_tuple_fetch_row_version Unexecuted instantiation: nbtpage.c:table_tuple_fetch_row_version Unexecuted instantiation: nbtsort.c:table_tuple_fetch_row_version Unexecuted instantiation: nbtsplitloc.c:table_tuple_fetch_row_version Unexecuted instantiation: spginsert.c:table_tuple_fetch_row_version Unexecuted instantiation: tableam.c:table_tuple_fetch_row_version Unexecuted instantiation: tableamapi.c:table_tuple_fetch_row_version Unexecuted instantiation: xact.c:table_tuple_fetch_row_version Unexecuted instantiation: bootstrap.c:table_tuple_fetch_row_version Unexecuted instantiation: aclchk.c:table_tuple_fetch_row_version Unexecuted instantiation: dependency.c:table_tuple_fetch_row_version Unexecuted instantiation: heap.c:table_tuple_fetch_row_version Unexecuted instantiation: index.c:table_tuple_fetch_row_version Unexecuted instantiation: indexing.c:table_tuple_fetch_row_version Unexecuted instantiation: objectaddress.c:table_tuple_fetch_row_version Unexecuted instantiation: pg_db_role_setting.c:table_tuple_fetch_row_version Unexecuted instantiation: pg_publication.c:table_tuple_fetch_row_version Unexecuted instantiation: pg_subscription.c:table_tuple_fetch_row_version Unexecuted instantiation: toasting.c:table_tuple_fetch_row_version Unexecuted instantiation: gram.c:table_tuple_fetch_row_version Unexecuted instantiation: alter.c:table_tuple_fetch_row_version Unexecuted instantiation: analyze.c:table_tuple_fetch_row_version Unexecuted instantiation: constraint.c:table_tuple_fetch_row_version Unexecuted instantiation: copyfrom.c:table_tuple_fetch_row_version Unexecuted instantiation: copyfromparse.c:table_tuple_fetch_row_version Unexecuted instantiation: copyto.c:table_tuple_fetch_row_version Unexecuted instantiation: createas.c:table_tuple_fetch_row_version Unexecuted instantiation: dbcommands.c:table_tuple_fetch_row_version Unexecuted instantiation: event_trigger.c:table_tuple_fetch_row_version Unexecuted instantiation: indexcmds.c:table_tuple_fetch_row_version Unexecuted instantiation: matview.c:table_tuple_fetch_row_version Unexecuted instantiation: repack.c:table_tuple_fetch_row_version Unexecuted instantiation: tablecmds.c:table_tuple_fetch_row_version Unexecuted instantiation: tablespace.c:table_tuple_fetch_row_version Unexecuted instantiation: trigger.c:table_tuple_fetch_row_version Unexecuted instantiation: typecmds.c:table_tuple_fetch_row_version Unexecuted instantiation: vacuum.c:table_tuple_fetch_row_version Unexecuted instantiation: execIndexing.c:table_tuple_fetch_row_version Unexecuted instantiation: execMain.c:table_tuple_fetch_row_version Unexecuted instantiation: execPartition.c:table_tuple_fetch_row_version Unexecuted instantiation: execReplication.c:table_tuple_fetch_row_version Unexecuted instantiation: execUtils.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeIndexscan.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeLockRows.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeModifyTable.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeSamplescan.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeSeqscan.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeTidrangescan.c:table_tuple_fetch_row_version Unexecuted instantiation: nodeTidscan.c:table_tuple_fetch_row_version Unexecuted instantiation: spi.c:table_tuple_fetch_row_version Unexecuted instantiation: copyfuncs.c:table_tuple_fetch_row_version Unexecuted instantiation: equalfuncs.c:table_tuple_fetch_row_version Unexecuted instantiation: outfuncs.c:table_tuple_fetch_row_version Unexecuted instantiation: queryjumblefuncs.c:table_tuple_fetch_row_version Unexecuted instantiation: readfuncs.c:table_tuple_fetch_row_version Unexecuted instantiation: plancat.c:table_tuple_fetch_row_version Unexecuted instantiation: partbounds.c:table_tuple_fetch_row_version Unexecuted instantiation: autovacuum.c:table_tuple_fetch_row_version Unexecuted instantiation: datachecksum_state.c:table_tuple_fetch_row_version Unexecuted instantiation: conflict.c:table_tuple_fetch_row_version Unexecuted instantiation: launcher.c:table_tuple_fetch_row_version Unexecuted instantiation: reorderbuffer.c:table_tuple_fetch_row_version Unexecuted instantiation: worker.c:table_tuple_fetch_row_version Unexecuted instantiation: rewriteHandler.c:table_tuple_fetch_row_version Unexecuted instantiation: attribute_stats.c:table_tuple_fetch_row_version Unexecuted instantiation: extended_stats_funcs.c:table_tuple_fetch_row_version Unexecuted instantiation: relation_stats.c:table_tuple_fetch_row_version Unexecuted instantiation: bufmgr.c:table_tuple_fetch_row_version Unexecuted instantiation: utility.c:table_tuple_fetch_row_version Unexecuted instantiation: ri_triggers.c:table_tuple_fetch_row_version Unexecuted instantiation: ruleutils.c:table_tuple_fetch_row_version Unexecuted instantiation: selfuncs.c:table_tuple_fetch_row_version Unexecuted instantiation: tid.c:table_tuple_fetch_row_version Unexecuted instantiation: trigfuncs.c:table_tuple_fetch_row_version Unexecuted instantiation: tsquery_rewrite.c:table_tuple_fetch_row_version Unexecuted instantiation: tsvector_op.c:table_tuple_fetch_row_version Unexecuted instantiation: xml.c:table_tuple_fetch_row_version Unexecuted instantiation: evtcache.c:table_tuple_fetch_row_version Unexecuted instantiation: funccache.c:table_tuple_fetch_row_version Unexecuted instantiation: relcache.c:table_tuple_fetch_row_version Unexecuted instantiation: postinit.c:table_tuple_fetch_row_version Unexecuted instantiation: guc_tables.c:table_tuple_fetch_row_version Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_fetch_row_version |
1359 | | |
1360 | | /* |
1361 | | * Verify that `tid` is a potentially valid tuple identifier. That doesn't |
1362 | | * mean that the pointed to row needs to exist or be visible, but that |
1363 | | * attempting to fetch the row (e.g. with table_tuple_get_latest_tid() or |
1364 | | * table_tuple_fetch_row_version()) should not error out if called with that |
1365 | | * tid. |
1366 | | * |
1367 | | * `scan` needs to have been started via table_beginscan(). |
1368 | | */ |
1369 | | static inline bool |
1370 | | table_tuple_tid_valid(TableScanDesc scan, ItemPointer tid) |
1371 | 0 | { |
1372 | 0 | return scan->rs_rd->rd_tableam->tuple_tid_valid(scan, tid); |
1373 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_tid_valid Unexecuted instantiation: brin.c:table_tuple_tid_valid Unexecuted instantiation: detoast.c:table_tuple_tid_valid Unexecuted instantiation: toast_internals.c:table_tuple_tid_valid Unexecuted instantiation: gininsert.c:table_tuple_tid_valid Unexecuted instantiation: gistbuild.c:table_tuple_tid_valid Unexecuted instantiation: hash.c:table_tuple_tid_valid Unexecuted instantiation: heapam.c:table_tuple_tid_valid Unexecuted instantiation: heapam_handler.c:table_tuple_tid_valid Unexecuted instantiation: heapam_indexscan.c:table_tuple_tid_valid Unexecuted instantiation: heapam_visibility.c:table_tuple_tid_valid Unexecuted instantiation: heapam_xlog.c:table_tuple_tid_valid Unexecuted instantiation: heaptoast.c:table_tuple_tid_valid Unexecuted instantiation: hio.c:table_tuple_tid_valid Unexecuted instantiation: pruneheap.c:table_tuple_tid_valid Unexecuted instantiation: rewriteheap.c:table_tuple_tid_valid Unexecuted instantiation: vacuumlazy.c:table_tuple_tid_valid Unexecuted instantiation: genam.c:table_tuple_tid_valid Unexecuted instantiation: indexam.c:table_tuple_tid_valid Unexecuted instantiation: nbtdedup.c:table_tuple_tid_valid Unexecuted instantiation: nbtinsert.c:table_tuple_tid_valid Unexecuted instantiation: nbtpage.c:table_tuple_tid_valid Unexecuted instantiation: nbtsort.c:table_tuple_tid_valid Unexecuted instantiation: nbtsplitloc.c:table_tuple_tid_valid Unexecuted instantiation: spginsert.c:table_tuple_tid_valid Unexecuted instantiation: tableam.c:table_tuple_tid_valid Unexecuted instantiation: tableamapi.c:table_tuple_tid_valid Unexecuted instantiation: xact.c:table_tuple_tid_valid Unexecuted instantiation: bootstrap.c:table_tuple_tid_valid Unexecuted instantiation: aclchk.c:table_tuple_tid_valid Unexecuted instantiation: dependency.c:table_tuple_tid_valid Unexecuted instantiation: heap.c:table_tuple_tid_valid Unexecuted instantiation: index.c:table_tuple_tid_valid Unexecuted instantiation: indexing.c:table_tuple_tid_valid Unexecuted instantiation: objectaddress.c:table_tuple_tid_valid Unexecuted instantiation: pg_db_role_setting.c:table_tuple_tid_valid Unexecuted instantiation: pg_publication.c:table_tuple_tid_valid Unexecuted instantiation: pg_subscription.c:table_tuple_tid_valid Unexecuted instantiation: toasting.c:table_tuple_tid_valid Unexecuted instantiation: gram.c:table_tuple_tid_valid Unexecuted instantiation: alter.c:table_tuple_tid_valid Unexecuted instantiation: analyze.c:table_tuple_tid_valid Unexecuted instantiation: constraint.c:table_tuple_tid_valid Unexecuted instantiation: copyfrom.c:table_tuple_tid_valid Unexecuted instantiation: copyfromparse.c:table_tuple_tid_valid Unexecuted instantiation: copyto.c:table_tuple_tid_valid Unexecuted instantiation: createas.c:table_tuple_tid_valid Unexecuted instantiation: dbcommands.c:table_tuple_tid_valid Unexecuted instantiation: event_trigger.c:table_tuple_tid_valid Unexecuted instantiation: indexcmds.c:table_tuple_tid_valid Unexecuted instantiation: matview.c:table_tuple_tid_valid Unexecuted instantiation: repack.c:table_tuple_tid_valid Unexecuted instantiation: tablecmds.c:table_tuple_tid_valid Unexecuted instantiation: tablespace.c:table_tuple_tid_valid Unexecuted instantiation: trigger.c:table_tuple_tid_valid Unexecuted instantiation: typecmds.c:table_tuple_tid_valid Unexecuted instantiation: vacuum.c:table_tuple_tid_valid Unexecuted instantiation: execIndexing.c:table_tuple_tid_valid Unexecuted instantiation: execMain.c:table_tuple_tid_valid Unexecuted instantiation: execPartition.c:table_tuple_tid_valid Unexecuted instantiation: execReplication.c:table_tuple_tid_valid Unexecuted instantiation: execUtils.c:table_tuple_tid_valid Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_tid_valid Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_tid_valid Unexecuted instantiation: nodeIndexscan.c:table_tuple_tid_valid Unexecuted instantiation: nodeLockRows.c:table_tuple_tid_valid Unexecuted instantiation: nodeModifyTable.c:table_tuple_tid_valid Unexecuted instantiation: nodeSamplescan.c:table_tuple_tid_valid Unexecuted instantiation: nodeSeqscan.c:table_tuple_tid_valid Unexecuted instantiation: nodeTidrangescan.c:table_tuple_tid_valid Unexecuted instantiation: nodeTidscan.c:table_tuple_tid_valid Unexecuted instantiation: spi.c:table_tuple_tid_valid Unexecuted instantiation: copyfuncs.c:table_tuple_tid_valid Unexecuted instantiation: equalfuncs.c:table_tuple_tid_valid Unexecuted instantiation: outfuncs.c:table_tuple_tid_valid Unexecuted instantiation: queryjumblefuncs.c:table_tuple_tid_valid Unexecuted instantiation: readfuncs.c:table_tuple_tid_valid Unexecuted instantiation: plancat.c:table_tuple_tid_valid Unexecuted instantiation: partbounds.c:table_tuple_tid_valid Unexecuted instantiation: autovacuum.c:table_tuple_tid_valid Unexecuted instantiation: datachecksum_state.c:table_tuple_tid_valid Unexecuted instantiation: conflict.c:table_tuple_tid_valid Unexecuted instantiation: launcher.c:table_tuple_tid_valid Unexecuted instantiation: reorderbuffer.c:table_tuple_tid_valid Unexecuted instantiation: worker.c:table_tuple_tid_valid Unexecuted instantiation: rewriteHandler.c:table_tuple_tid_valid Unexecuted instantiation: attribute_stats.c:table_tuple_tid_valid Unexecuted instantiation: extended_stats_funcs.c:table_tuple_tid_valid Unexecuted instantiation: relation_stats.c:table_tuple_tid_valid Unexecuted instantiation: bufmgr.c:table_tuple_tid_valid Unexecuted instantiation: utility.c:table_tuple_tid_valid Unexecuted instantiation: ri_triggers.c:table_tuple_tid_valid Unexecuted instantiation: ruleutils.c:table_tuple_tid_valid Unexecuted instantiation: selfuncs.c:table_tuple_tid_valid Unexecuted instantiation: tid.c:table_tuple_tid_valid Unexecuted instantiation: trigfuncs.c:table_tuple_tid_valid Unexecuted instantiation: tsquery_rewrite.c:table_tuple_tid_valid Unexecuted instantiation: tsvector_op.c:table_tuple_tid_valid Unexecuted instantiation: xml.c:table_tuple_tid_valid Unexecuted instantiation: evtcache.c:table_tuple_tid_valid Unexecuted instantiation: funccache.c:table_tuple_tid_valid Unexecuted instantiation: relcache.c:table_tuple_tid_valid Unexecuted instantiation: postinit.c:table_tuple_tid_valid Unexecuted instantiation: guc_tables.c:table_tuple_tid_valid Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_tid_valid |
1374 | | |
1375 | | /* |
1376 | | * Return the latest version of the tuple at `tid`, by updating `tid` to |
1377 | | * point at the newest version. |
1378 | | */ |
1379 | | extern void table_tuple_get_latest_tid(TableScanDesc scan, ItemPointer tid); |
1380 | | |
1381 | | /* |
1382 | | * Return true iff tuple in slot satisfies the snapshot. |
1383 | | * |
1384 | | * This assumes the slot's tuple is valid, and of the appropriate type for the |
1385 | | * AM. |
1386 | | * |
1387 | | * Some AMs might modify the data underlying the tuple as a side-effect. If so |
1388 | | * they ought to mark the relevant buffer dirty. |
1389 | | */ |
1390 | | static inline bool |
1391 | | table_tuple_satisfies_snapshot(Relation rel, TupleTableSlot *slot, |
1392 | | Snapshot snapshot) |
1393 | 0 | { |
1394 | 0 | return rel->rd_tableam->tuple_satisfies_snapshot(rel, slot, snapshot); |
1395 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_satisfies_snapshot Unexecuted instantiation: brin.c:table_tuple_satisfies_snapshot Unexecuted instantiation: detoast.c:table_tuple_satisfies_snapshot Unexecuted instantiation: toast_internals.c:table_tuple_satisfies_snapshot Unexecuted instantiation: gininsert.c:table_tuple_satisfies_snapshot Unexecuted instantiation: gistbuild.c:table_tuple_satisfies_snapshot Unexecuted instantiation: hash.c:table_tuple_satisfies_snapshot Unexecuted instantiation: heapam.c:table_tuple_satisfies_snapshot Unexecuted instantiation: heapam_handler.c:table_tuple_satisfies_snapshot Unexecuted instantiation: heapam_indexscan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: heapam_visibility.c:table_tuple_satisfies_snapshot Unexecuted instantiation: heapam_xlog.c:table_tuple_satisfies_snapshot Unexecuted instantiation: heaptoast.c:table_tuple_satisfies_snapshot Unexecuted instantiation: hio.c:table_tuple_satisfies_snapshot Unexecuted instantiation: pruneheap.c:table_tuple_satisfies_snapshot Unexecuted instantiation: rewriteheap.c:table_tuple_satisfies_snapshot Unexecuted instantiation: vacuumlazy.c:table_tuple_satisfies_snapshot Unexecuted instantiation: genam.c:table_tuple_satisfies_snapshot Unexecuted instantiation: indexam.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nbtdedup.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nbtinsert.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nbtpage.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nbtsort.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nbtsplitloc.c:table_tuple_satisfies_snapshot Unexecuted instantiation: spginsert.c:table_tuple_satisfies_snapshot Unexecuted instantiation: tableam.c:table_tuple_satisfies_snapshot Unexecuted instantiation: tableamapi.c:table_tuple_satisfies_snapshot Unexecuted instantiation: xact.c:table_tuple_satisfies_snapshot Unexecuted instantiation: bootstrap.c:table_tuple_satisfies_snapshot Unexecuted instantiation: aclchk.c:table_tuple_satisfies_snapshot Unexecuted instantiation: dependency.c:table_tuple_satisfies_snapshot Unexecuted instantiation: heap.c:table_tuple_satisfies_snapshot Unexecuted instantiation: index.c:table_tuple_satisfies_snapshot Unexecuted instantiation: indexing.c:table_tuple_satisfies_snapshot Unexecuted instantiation: objectaddress.c:table_tuple_satisfies_snapshot Unexecuted instantiation: pg_db_role_setting.c:table_tuple_satisfies_snapshot Unexecuted instantiation: pg_publication.c:table_tuple_satisfies_snapshot Unexecuted instantiation: pg_subscription.c:table_tuple_satisfies_snapshot Unexecuted instantiation: toasting.c:table_tuple_satisfies_snapshot Unexecuted instantiation: gram.c:table_tuple_satisfies_snapshot Unexecuted instantiation: alter.c:table_tuple_satisfies_snapshot Unexecuted instantiation: analyze.c:table_tuple_satisfies_snapshot Unexecuted instantiation: constraint.c:table_tuple_satisfies_snapshot Unexecuted instantiation: copyfrom.c:table_tuple_satisfies_snapshot Unexecuted instantiation: copyfromparse.c:table_tuple_satisfies_snapshot Unexecuted instantiation: copyto.c:table_tuple_satisfies_snapshot Unexecuted instantiation: createas.c:table_tuple_satisfies_snapshot Unexecuted instantiation: dbcommands.c:table_tuple_satisfies_snapshot Unexecuted instantiation: event_trigger.c:table_tuple_satisfies_snapshot Unexecuted instantiation: indexcmds.c:table_tuple_satisfies_snapshot Unexecuted instantiation: matview.c:table_tuple_satisfies_snapshot Unexecuted instantiation: repack.c:table_tuple_satisfies_snapshot Unexecuted instantiation: tablecmds.c:table_tuple_satisfies_snapshot Unexecuted instantiation: tablespace.c:table_tuple_satisfies_snapshot Unexecuted instantiation: trigger.c:table_tuple_satisfies_snapshot Unexecuted instantiation: typecmds.c:table_tuple_satisfies_snapshot Unexecuted instantiation: vacuum.c:table_tuple_satisfies_snapshot Unexecuted instantiation: execIndexing.c:table_tuple_satisfies_snapshot Unexecuted instantiation: execMain.c:table_tuple_satisfies_snapshot Unexecuted instantiation: execPartition.c:table_tuple_satisfies_snapshot Unexecuted instantiation: execReplication.c:table_tuple_satisfies_snapshot Unexecuted instantiation: execUtils.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeIndexscan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeLockRows.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeModifyTable.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeSamplescan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeSeqscan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeTidrangescan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: nodeTidscan.c:table_tuple_satisfies_snapshot Unexecuted instantiation: spi.c:table_tuple_satisfies_snapshot Unexecuted instantiation: copyfuncs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: equalfuncs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: outfuncs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: queryjumblefuncs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: readfuncs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: plancat.c:table_tuple_satisfies_snapshot Unexecuted instantiation: partbounds.c:table_tuple_satisfies_snapshot Unexecuted instantiation: autovacuum.c:table_tuple_satisfies_snapshot Unexecuted instantiation: datachecksum_state.c:table_tuple_satisfies_snapshot Unexecuted instantiation: conflict.c:table_tuple_satisfies_snapshot Unexecuted instantiation: launcher.c:table_tuple_satisfies_snapshot Unexecuted instantiation: reorderbuffer.c:table_tuple_satisfies_snapshot Unexecuted instantiation: worker.c:table_tuple_satisfies_snapshot Unexecuted instantiation: rewriteHandler.c:table_tuple_satisfies_snapshot Unexecuted instantiation: attribute_stats.c:table_tuple_satisfies_snapshot Unexecuted instantiation: extended_stats_funcs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: relation_stats.c:table_tuple_satisfies_snapshot Unexecuted instantiation: bufmgr.c:table_tuple_satisfies_snapshot Unexecuted instantiation: utility.c:table_tuple_satisfies_snapshot Unexecuted instantiation: ri_triggers.c:table_tuple_satisfies_snapshot Unexecuted instantiation: ruleutils.c:table_tuple_satisfies_snapshot Unexecuted instantiation: selfuncs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: tid.c:table_tuple_satisfies_snapshot Unexecuted instantiation: trigfuncs.c:table_tuple_satisfies_snapshot Unexecuted instantiation: tsquery_rewrite.c:table_tuple_satisfies_snapshot Unexecuted instantiation: tsvector_op.c:table_tuple_satisfies_snapshot Unexecuted instantiation: xml.c:table_tuple_satisfies_snapshot Unexecuted instantiation: evtcache.c:table_tuple_satisfies_snapshot Unexecuted instantiation: funccache.c:table_tuple_satisfies_snapshot Unexecuted instantiation: relcache.c:table_tuple_satisfies_snapshot Unexecuted instantiation: postinit.c:table_tuple_satisfies_snapshot Unexecuted instantiation: guc_tables.c:table_tuple_satisfies_snapshot Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_satisfies_snapshot |
1396 | | |
1397 | | /* |
1398 | | * Determine which index tuples are safe to delete based on their table TID. |
1399 | | * |
1400 | | * Determines which entries from index AM caller's TM_IndexDeleteOp state |
1401 | | * point to vacuumable table tuples. Entries that are found by tableam to be |
1402 | | * vacuumable are naturally safe for index AM to delete, and so get directly |
1403 | | * marked as deletable. See comments above TM_IndexDelete and comments above |
1404 | | * TM_IndexDeleteOp for full details. |
1405 | | * |
1406 | | * Returns a snapshotConflictHorizon transaction ID that caller places in |
1407 | | * its index deletion WAL record. This might be used during subsequent REDO |
1408 | | * of the WAL record when in Hot Standby mode -- a recovery conflict for the |
1409 | | * index deletion operation might be required on the standby. |
1410 | | */ |
1411 | | static inline TransactionId |
1412 | | table_index_delete_tuples(Relation rel, TM_IndexDeleteOp *delstate) |
1413 | 0 | { |
1414 | 0 | return rel->rd_tableam->index_delete_tuples(rel, delstate); |
1415 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_delete_tuples Unexecuted instantiation: brin.c:table_index_delete_tuples Unexecuted instantiation: detoast.c:table_index_delete_tuples Unexecuted instantiation: toast_internals.c:table_index_delete_tuples Unexecuted instantiation: gininsert.c:table_index_delete_tuples Unexecuted instantiation: gistbuild.c:table_index_delete_tuples Unexecuted instantiation: hash.c:table_index_delete_tuples Unexecuted instantiation: heapam.c:table_index_delete_tuples Unexecuted instantiation: heapam_handler.c:table_index_delete_tuples Unexecuted instantiation: heapam_indexscan.c:table_index_delete_tuples Unexecuted instantiation: heapam_visibility.c:table_index_delete_tuples Unexecuted instantiation: heapam_xlog.c:table_index_delete_tuples Unexecuted instantiation: heaptoast.c:table_index_delete_tuples Unexecuted instantiation: hio.c:table_index_delete_tuples Unexecuted instantiation: pruneheap.c:table_index_delete_tuples Unexecuted instantiation: rewriteheap.c:table_index_delete_tuples Unexecuted instantiation: vacuumlazy.c:table_index_delete_tuples Unexecuted instantiation: genam.c:table_index_delete_tuples Unexecuted instantiation: indexam.c:table_index_delete_tuples Unexecuted instantiation: nbtdedup.c:table_index_delete_tuples Unexecuted instantiation: nbtinsert.c:table_index_delete_tuples Unexecuted instantiation: nbtpage.c:table_index_delete_tuples Unexecuted instantiation: nbtsort.c:table_index_delete_tuples Unexecuted instantiation: nbtsplitloc.c:table_index_delete_tuples Unexecuted instantiation: spginsert.c:table_index_delete_tuples Unexecuted instantiation: tableam.c:table_index_delete_tuples Unexecuted instantiation: tableamapi.c:table_index_delete_tuples Unexecuted instantiation: xact.c:table_index_delete_tuples Unexecuted instantiation: bootstrap.c:table_index_delete_tuples Unexecuted instantiation: aclchk.c:table_index_delete_tuples Unexecuted instantiation: dependency.c:table_index_delete_tuples Unexecuted instantiation: heap.c:table_index_delete_tuples Unexecuted instantiation: index.c:table_index_delete_tuples Unexecuted instantiation: indexing.c:table_index_delete_tuples Unexecuted instantiation: objectaddress.c:table_index_delete_tuples Unexecuted instantiation: pg_db_role_setting.c:table_index_delete_tuples Unexecuted instantiation: pg_publication.c:table_index_delete_tuples Unexecuted instantiation: pg_subscription.c:table_index_delete_tuples Unexecuted instantiation: toasting.c:table_index_delete_tuples Unexecuted instantiation: gram.c:table_index_delete_tuples Unexecuted instantiation: alter.c:table_index_delete_tuples Unexecuted instantiation: analyze.c:table_index_delete_tuples Unexecuted instantiation: constraint.c:table_index_delete_tuples Unexecuted instantiation: copyfrom.c:table_index_delete_tuples Unexecuted instantiation: copyfromparse.c:table_index_delete_tuples Unexecuted instantiation: copyto.c:table_index_delete_tuples Unexecuted instantiation: createas.c:table_index_delete_tuples Unexecuted instantiation: dbcommands.c:table_index_delete_tuples Unexecuted instantiation: event_trigger.c:table_index_delete_tuples Unexecuted instantiation: indexcmds.c:table_index_delete_tuples Unexecuted instantiation: matview.c:table_index_delete_tuples Unexecuted instantiation: repack.c:table_index_delete_tuples Unexecuted instantiation: tablecmds.c:table_index_delete_tuples Unexecuted instantiation: tablespace.c:table_index_delete_tuples Unexecuted instantiation: trigger.c:table_index_delete_tuples Unexecuted instantiation: typecmds.c:table_index_delete_tuples Unexecuted instantiation: vacuum.c:table_index_delete_tuples Unexecuted instantiation: execIndexing.c:table_index_delete_tuples Unexecuted instantiation: execMain.c:table_index_delete_tuples Unexecuted instantiation: execPartition.c:table_index_delete_tuples Unexecuted instantiation: execReplication.c:table_index_delete_tuples Unexecuted instantiation: execUtils.c:table_index_delete_tuples Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_delete_tuples Unexecuted instantiation: nodeIndexonlyscan.c:table_index_delete_tuples Unexecuted instantiation: nodeIndexscan.c:table_index_delete_tuples Unexecuted instantiation: nodeLockRows.c:table_index_delete_tuples Unexecuted instantiation: nodeModifyTable.c:table_index_delete_tuples Unexecuted instantiation: nodeSamplescan.c:table_index_delete_tuples Unexecuted instantiation: nodeSeqscan.c:table_index_delete_tuples Unexecuted instantiation: nodeTidrangescan.c:table_index_delete_tuples Unexecuted instantiation: nodeTidscan.c:table_index_delete_tuples Unexecuted instantiation: spi.c:table_index_delete_tuples Unexecuted instantiation: copyfuncs.c:table_index_delete_tuples Unexecuted instantiation: equalfuncs.c:table_index_delete_tuples Unexecuted instantiation: outfuncs.c:table_index_delete_tuples Unexecuted instantiation: queryjumblefuncs.c:table_index_delete_tuples Unexecuted instantiation: readfuncs.c:table_index_delete_tuples Unexecuted instantiation: plancat.c:table_index_delete_tuples Unexecuted instantiation: partbounds.c:table_index_delete_tuples Unexecuted instantiation: autovacuum.c:table_index_delete_tuples Unexecuted instantiation: datachecksum_state.c:table_index_delete_tuples Unexecuted instantiation: conflict.c:table_index_delete_tuples Unexecuted instantiation: launcher.c:table_index_delete_tuples Unexecuted instantiation: reorderbuffer.c:table_index_delete_tuples Unexecuted instantiation: worker.c:table_index_delete_tuples Unexecuted instantiation: rewriteHandler.c:table_index_delete_tuples Unexecuted instantiation: attribute_stats.c:table_index_delete_tuples Unexecuted instantiation: extended_stats_funcs.c:table_index_delete_tuples Unexecuted instantiation: relation_stats.c:table_index_delete_tuples Unexecuted instantiation: bufmgr.c:table_index_delete_tuples Unexecuted instantiation: utility.c:table_index_delete_tuples Unexecuted instantiation: ri_triggers.c:table_index_delete_tuples Unexecuted instantiation: ruleutils.c:table_index_delete_tuples Unexecuted instantiation: selfuncs.c:table_index_delete_tuples Unexecuted instantiation: tid.c:table_index_delete_tuples Unexecuted instantiation: trigfuncs.c:table_index_delete_tuples Unexecuted instantiation: tsquery_rewrite.c:table_index_delete_tuples Unexecuted instantiation: tsvector_op.c:table_index_delete_tuples Unexecuted instantiation: xml.c:table_index_delete_tuples Unexecuted instantiation: evtcache.c:table_index_delete_tuples Unexecuted instantiation: funccache.c:table_index_delete_tuples Unexecuted instantiation: relcache.c:table_index_delete_tuples Unexecuted instantiation: postinit.c:table_index_delete_tuples Unexecuted instantiation: guc_tables.c:table_index_delete_tuples Unexecuted instantiation: simple_query_fuzzer.c:table_index_delete_tuples |
1416 | | |
1417 | | |
1418 | | /* ---------------------------------------------------------------------------- |
1419 | | * Functions for manipulations of physical tuples. |
1420 | | * ---------------------------------------------------------------------------- |
1421 | | */ |
1422 | | |
1423 | | /* |
1424 | | * Insert a tuple from a slot into table AM routine. |
1425 | | * |
1426 | | * The options bitmask allows the caller to specify options that may change the |
1427 | | * behaviour of the AM. The AM will ignore options that it does not support. |
1428 | | * |
1429 | | * If the TABLE_INSERT_SKIP_FSM option is specified, AMs are free to not reuse |
1430 | | * free space in the relation. This can save some cycles when we know the |
1431 | | * relation is new and doesn't contain useful amounts of free space. |
1432 | | * TABLE_INSERT_SKIP_FSM is commonly passed directly to |
1433 | | * RelationGetBufferForTuple. See that method for more information. |
1434 | | * |
1435 | | * TABLE_INSERT_FROZEN should only be specified for inserts into |
1436 | | * relation storage created during the current subtransaction and when |
1437 | | * there are no prior snapshots or pre-existing portals open. |
1438 | | * This causes rows to be frozen, which is an MVCC violation and |
1439 | | * requires explicit options chosen by user. |
1440 | | * |
1441 | | * TABLE_INSERT_NO_LOGICAL force-disables the emitting of logical decoding |
1442 | | * information for the tuple. This should solely be used during table rewrites |
1443 | | * where RelationIsLogicallyLogged(relation) is not yet accurate for the new |
1444 | | * relation. |
1445 | | * |
1446 | | * Note that most of these options will be applied when inserting into the |
1447 | | * heap's TOAST table, too, if the tuple requires any out-of-line data. |
1448 | | * |
1449 | | * The BulkInsertState object (if any; bistate can be NULL for default |
1450 | | * behavior) is also just passed through to RelationGetBufferForTuple. If |
1451 | | * `bistate` is provided, table_finish_bulk_insert() needs to be called. |
1452 | | * |
1453 | | * On return the slot's tts_tid and tts_tableOid are updated to reflect the |
1454 | | * insertion. But note that any toasting of fields within the slot is NOT |
1455 | | * reflected in the slots contents. |
1456 | | */ |
1457 | | static inline void |
1458 | | table_tuple_insert(Relation rel, TupleTableSlot *slot, CommandId cid, |
1459 | | uint32 options, BulkInsertStateData *bistate) |
1460 | 0 | { |
1461 | 0 | rel->rd_tableam->tuple_insert(rel, slot, cid, options, |
1462 | 0 | bistate); |
1463 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_insert Unexecuted instantiation: brin.c:table_tuple_insert Unexecuted instantiation: detoast.c:table_tuple_insert Unexecuted instantiation: toast_internals.c:table_tuple_insert Unexecuted instantiation: gininsert.c:table_tuple_insert Unexecuted instantiation: gistbuild.c:table_tuple_insert Unexecuted instantiation: hash.c:table_tuple_insert Unexecuted instantiation: heapam.c:table_tuple_insert Unexecuted instantiation: heapam_handler.c:table_tuple_insert Unexecuted instantiation: heapam_indexscan.c:table_tuple_insert Unexecuted instantiation: heapam_visibility.c:table_tuple_insert Unexecuted instantiation: heapam_xlog.c:table_tuple_insert Unexecuted instantiation: heaptoast.c:table_tuple_insert Unexecuted instantiation: hio.c:table_tuple_insert Unexecuted instantiation: pruneheap.c:table_tuple_insert Unexecuted instantiation: rewriteheap.c:table_tuple_insert Unexecuted instantiation: vacuumlazy.c:table_tuple_insert Unexecuted instantiation: genam.c:table_tuple_insert Unexecuted instantiation: indexam.c:table_tuple_insert Unexecuted instantiation: nbtdedup.c:table_tuple_insert Unexecuted instantiation: nbtinsert.c:table_tuple_insert Unexecuted instantiation: nbtpage.c:table_tuple_insert Unexecuted instantiation: nbtsort.c:table_tuple_insert Unexecuted instantiation: nbtsplitloc.c:table_tuple_insert Unexecuted instantiation: spginsert.c:table_tuple_insert Unexecuted instantiation: tableam.c:table_tuple_insert Unexecuted instantiation: tableamapi.c:table_tuple_insert Unexecuted instantiation: xact.c:table_tuple_insert Unexecuted instantiation: bootstrap.c:table_tuple_insert Unexecuted instantiation: aclchk.c:table_tuple_insert Unexecuted instantiation: dependency.c:table_tuple_insert Unexecuted instantiation: heap.c:table_tuple_insert Unexecuted instantiation: index.c:table_tuple_insert Unexecuted instantiation: indexing.c:table_tuple_insert Unexecuted instantiation: objectaddress.c:table_tuple_insert Unexecuted instantiation: pg_db_role_setting.c:table_tuple_insert Unexecuted instantiation: pg_publication.c:table_tuple_insert Unexecuted instantiation: pg_subscription.c:table_tuple_insert Unexecuted instantiation: toasting.c:table_tuple_insert Unexecuted instantiation: gram.c:table_tuple_insert Unexecuted instantiation: alter.c:table_tuple_insert Unexecuted instantiation: analyze.c:table_tuple_insert Unexecuted instantiation: constraint.c:table_tuple_insert Unexecuted instantiation: copyfrom.c:table_tuple_insert Unexecuted instantiation: copyfromparse.c:table_tuple_insert Unexecuted instantiation: copyto.c:table_tuple_insert Unexecuted instantiation: createas.c:table_tuple_insert Unexecuted instantiation: dbcommands.c:table_tuple_insert Unexecuted instantiation: event_trigger.c:table_tuple_insert Unexecuted instantiation: indexcmds.c:table_tuple_insert Unexecuted instantiation: matview.c:table_tuple_insert Unexecuted instantiation: repack.c:table_tuple_insert Unexecuted instantiation: tablecmds.c:table_tuple_insert Unexecuted instantiation: tablespace.c:table_tuple_insert Unexecuted instantiation: trigger.c:table_tuple_insert Unexecuted instantiation: typecmds.c:table_tuple_insert Unexecuted instantiation: vacuum.c:table_tuple_insert Unexecuted instantiation: execIndexing.c:table_tuple_insert Unexecuted instantiation: execMain.c:table_tuple_insert Unexecuted instantiation: execPartition.c:table_tuple_insert Unexecuted instantiation: execReplication.c:table_tuple_insert Unexecuted instantiation: execUtils.c:table_tuple_insert Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_insert Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_insert Unexecuted instantiation: nodeIndexscan.c:table_tuple_insert Unexecuted instantiation: nodeLockRows.c:table_tuple_insert Unexecuted instantiation: nodeModifyTable.c:table_tuple_insert Unexecuted instantiation: nodeSamplescan.c:table_tuple_insert Unexecuted instantiation: nodeSeqscan.c:table_tuple_insert Unexecuted instantiation: nodeTidrangescan.c:table_tuple_insert Unexecuted instantiation: nodeTidscan.c:table_tuple_insert Unexecuted instantiation: spi.c:table_tuple_insert Unexecuted instantiation: copyfuncs.c:table_tuple_insert Unexecuted instantiation: equalfuncs.c:table_tuple_insert Unexecuted instantiation: outfuncs.c:table_tuple_insert Unexecuted instantiation: queryjumblefuncs.c:table_tuple_insert Unexecuted instantiation: readfuncs.c:table_tuple_insert Unexecuted instantiation: plancat.c:table_tuple_insert Unexecuted instantiation: partbounds.c:table_tuple_insert Unexecuted instantiation: autovacuum.c:table_tuple_insert Unexecuted instantiation: datachecksum_state.c:table_tuple_insert Unexecuted instantiation: conflict.c:table_tuple_insert Unexecuted instantiation: launcher.c:table_tuple_insert Unexecuted instantiation: reorderbuffer.c:table_tuple_insert Unexecuted instantiation: worker.c:table_tuple_insert Unexecuted instantiation: rewriteHandler.c:table_tuple_insert Unexecuted instantiation: attribute_stats.c:table_tuple_insert Unexecuted instantiation: extended_stats_funcs.c:table_tuple_insert Unexecuted instantiation: relation_stats.c:table_tuple_insert Unexecuted instantiation: bufmgr.c:table_tuple_insert Unexecuted instantiation: utility.c:table_tuple_insert Unexecuted instantiation: ri_triggers.c:table_tuple_insert Unexecuted instantiation: ruleutils.c:table_tuple_insert Unexecuted instantiation: selfuncs.c:table_tuple_insert Unexecuted instantiation: tid.c:table_tuple_insert Unexecuted instantiation: trigfuncs.c:table_tuple_insert Unexecuted instantiation: tsquery_rewrite.c:table_tuple_insert Unexecuted instantiation: tsvector_op.c:table_tuple_insert Unexecuted instantiation: xml.c:table_tuple_insert Unexecuted instantiation: evtcache.c:table_tuple_insert Unexecuted instantiation: funccache.c:table_tuple_insert Unexecuted instantiation: relcache.c:table_tuple_insert Unexecuted instantiation: postinit.c:table_tuple_insert Unexecuted instantiation: guc_tables.c:table_tuple_insert Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_insert |
1464 | | |
1465 | | /* |
1466 | | * Perform a "speculative insertion". These can be backed out afterwards |
1467 | | * without aborting the whole transaction. Other sessions can wait for the |
1468 | | * speculative insertion to be confirmed, turning it into a regular tuple, or |
1469 | | * aborted, as if it never existed. Speculatively inserted tuples behave as |
1470 | | * "value locks" of short duration, used to implement INSERT .. ON CONFLICT. |
1471 | | * |
1472 | | * A transaction having performed a speculative insertion has to either abort, |
1473 | | * or finish the speculative insertion with |
1474 | | * table_tuple_complete_speculative(succeeded = ...). |
1475 | | */ |
1476 | | static inline void |
1477 | | table_tuple_insert_speculative(Relation rel, TupleTableSlot *slot, |
1478 | | CommandId cid, uint32 options, |
1479 | | BulkInsertStateData *bistate, |
1480 | | uint32 specToken) |
1481 | 0 | { |
1482 | 0 | rel->rd_tableam->tuple_insert_speculative(rel, slot, cid, options, |
1483 | 0 | bistate, specToken); |
1484 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_insert_speculative Unexecuted instantiation: brin.c:table_tuple_insert_speculative Unexecuted instantiation: detoast.c:table_tuple_insert_speculative Unexecuted instantiation: toast_internals.c:table_tuple_insert_speculative Unexecuted instantiation: gininsert.c:table_tuple_insert_speculative Unexecuted instantiation: gistbuild.c:table_tuple_insert_speculative Unexecuted instantiation: hash.c:table_tuple_insert_speculative Unexecuted instantiation: heapam.c:table_tuple_insert_speculative Unexecuted instantiation: heapam_handler.c:table_tuple_insert_speculative Unexecuted instantiation: heapam_indexscan.c:table_tuple_insert_speculative Unexecuted instantiation: heapam_visibility.c:table_tuple_insert_speculative Unexecuted instantiation: heapam_xlog.c:table_tuple_insert_speculative Unexecuted instantiation: heaptoast.c:table_tuple_insert_speculative Unexecuted instantiation: hio.c:table_tuple_insert_speculative Unexecuted instantiation: pruneheap.c:table_tuple_insert_speculative Unexecuted instantiation: rewriteheap.c:table_tuple_insert_speculative Unexecuted instantiation: vacuumlazy.c:table_tuple_insert_speculative Unexecuted instantiation: genam.c:table_tuple_insert_speculative Unexecuted instantiation: indexam.c:table_tuple_insert_speculative Unexecuted instantiation: nbtdedup.c:table_tuple_insert_speculative Unexecuted instantiation: nbtinsert.c:table_tuple_insert_speculative Unexecuted instantiation: nbtpage.c:table_tuple_insert_speculative Unexecuted instantiation: nbtsort.c:table_tuple_insert_speculative Unexecuted instantiation: nbtsplitloc.c:table_tuple_insert_speculative Unexecuted instantiation: spginsert.c:table_tuple_insert_speculative Unexecuted instantiation: tableam.c:table_tuple_insert_speculative Unexecuted instantiation: tableamapi.c:table_tuple_insert_speculative Unexecuted instantiation: xact.c:table_tuple_insert_speculative Unexecuted instantiation: bootstrap.c:table_tuple_insert_speculative Unexecuted instantiation: aclchk.c:table_tuple_insert_speculative Unexecuted instantiation: dependency.c:table_tuple_insert_speculative Unexecuted instantiation: heap.c:table_tuple_insert_speculative Unexecuted instantiation: index.c:table_tuple_insert_speculative Unexecuted instantiation: indexing.c:table_tuple_insert_speculative Unexecuted instantiation: objectaddress.c:table_tuple_insert_speculative Unexecuted instantiation: pg_db_role_setting.c:table_tuple_insert_speculative Unexecuted instantiation: pg_publication.c:table_tuple_insert_speculative Unexecuted instantiation: pg_subscription.c:table_tuple_insert_speculative Unexecuted instantiation: toasting.c:table_tuple_insert_speculative Unexecuted instantiation: gram.c:table_tuple_insert_speculative Unexecuted instantiation: alter.c:table_tuple_insert_speculative Unexecuted instantiation: analyze.c:table_tuple_insert_speculative Unexecuted instantiation: constraint.c:table_tuple_insert_speculative Unexecuted instantiation: copyfrom.c:table_tuple_insert_speculative Unexecuted instantiation: copyfromparse.c:table_tuple_insert_speculative Unexecuted instantiation: copyto.c:table_tuple_insert_speculative Unexecuted instantiation: createas.c:table_tuple_insert_speculative Unexecuted instantiation: dbcommands.c:table_tuple_insert_speculative Unexecuted instantiation: event_trigger.c:table_tuple_insert_speculative Unexecuted instantiation: indexcmds.c:table_tuple_insert_speculative Unexecuted instantiation: matview.c:table_tuple_insert_speculative Unexecuted instantiation: repack.c:table_tuple_insert_speculative Unexecuted instantiation: tablecmds.c:table_tuple_insert_speculative Unexecuted instantiation: tablespace.c:table_tuple_insert_speculative Unexecuted instantiation: trigger.c:table_tuple_insert_speculative Unexecuted instantiation: typecmds.c:table_tuple_insert_speculative Unexecuted instantiation: vacuum.c:table_tuple_insert_speculative Unexecuted instantiation: execIndexing.c:table_tuple_insert_speculative Unexecuted instantiation: execMain.c:table_tuple_insert_speculative Unexecuted instantiation: execPartition.c:table_tuple_insert_speculative Unexecuted instantiation: execReplication.c:table_tuple_insert_speculative Unexecuted instantiation: execUtils.c:table_tuple_insert_speculative Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_insert_speculative Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_insert_speculative Unexecuted instantiation: nodeIndexscan.c:table_tuple_insert_speculative Unexecuted instantiation: nodeLockRows.c:table_tuple_insert_speculative Unexecuted instantiation: nodeModifyTable.c:table_tuple_insert_speculative Unexecuted instantiation: nodeSamplescan.c:table_tuple_insert_speculative Unexecuted instantiation: nodeSeqscan.c:table_tuple_insert_speculative Unexecuted instantiation: nodeTidrangescan.c:table_tuple_insert_speculative Unexecuted instantiation: nodeTidscan.c:table_tuple_insert_speculative Unexecuted instantiation: spi.c:table_tuple_insert_speculative Unexecuted instantiation: copyfuncs.c:table_tuple_insert_speculative Unexecuted instantiation: equalfuncs.c:table_tuple_insert_speculative Unexecuted instantiation: outfuncs.c:table_tuple_insert_speculative Unexecuted instantiation: queryjumblefuncs.c:table_tuple_insert_speculative Unexecuted instantiation: readfuncs.c:table_tuple_insert_speculative Unexecuted instantiation: plancat.c:table_tuple_insert_speculative Unexecuted instantiation: partbounds.c:table_tuple_insert_speculative Unexecuted instantiation: autovacuum.c:table_tuple_insert_speculative Unexecuted instantiation: datachecksum_state.c:table_tuple_insert_speculative Unexecuted instantiation: conflict.c:table_tuple_insert_speculative Unexecuted instantiation: launcher.c:table_tuple_insert_speculative Unexecuted instantiation: reorderbuffer.c:table_tuple_insert_speculative Unexecuted instantiation: worker.c:table_tuple_insert_speculative Unexecuted instantiation: rewriteHandler.c:table_tuple_insert_speculative Unexecuted instantiation: attribute_stats.c:table_tuple_insert_speculative Unexecuted instantiation: extended_stats_funcs.c:table_tuple_insert_speculative Unexecuted instantiation: relation_stats.c:table_tuple_insert_speculative Unexecuted instantiation: bufmgr.c:table_tuple_insert_speculative Unexecuted instantiation: utility.c:table_tuple_insert_speculative Unexecuted instantiation: ri_triggers.c:table_tuple_insert_speculative Unexecuted instantiation: ruleutils.c:table_tuple_insert_speculative Unexecuted instantiation: selfuncs.c:table_tuple_insert_speculative Unexecuted instantiation: tid.c:table_tuple_insert_speculative Unexecuted instantiation: trigfuncs.c:table_tuple_insert_speculative Unexecuted instantiation: tsquery_rewrite.c:table_tuple_insert_speculative Unexecuted instantiation: tsvector_op.c:table_tuple_insert_speculative Unexecuted instantiation: xml.c:table_tuple_insert_speculative Unexecuted instantiation: evtcache.c:table_tuple_insert_speculative Unexecuted instantiation: funccache.c:table_tuple_insert_speculative Unexecuted instantiation: relcache.c:table_tuple_insert_speculative Unexecuted instantiation: postinit.c:table_tuple_insert_speculative Unexecuted instantiation: guc_tables.c:table_tuple_insert_speculative Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_insert_speculative |
1485 | | |
1486 | | /* |
1487 | | * Complete "speculative insertion" started in the same transaction. If |
1488 | | * succeeded is true, the tuple is fully inserted, if false, it's removed. |
1489 | | */ |
1490 | | static inline void |
1491 | | table_tuple_complete_speculative(Relation rel, TupleTableSlot *slot, |
1492 | | uint32 specToken, bool succeeded) |
1493 | 0 | { |
1494 | 0 | rel->rd_tableam->tuple_complete_speculative(rel, slot, specToken, |
1495 | 0 | succeeded); |
1496 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_complete_speculative Unexecuted instantiation: brin.c:table_tuple_complete_speculative Unexecuted instantiation: detoast.c:table_tuple_complete_speculative Unexecuted instantiation: toast_internals.c:table_tuple_complete_speculative Unexecuted instantiation: gininsert.c:table_tuple_complete_speculative Unexecuted instantiation: gistbuild.c:table_tuple_complete_speculative Unexecuted instantiation: hash.c:table_tuple_complete_speculative Unexecuted instantiation: heapam.c:table_tuple_complete_speculative Unexecuted instantiation: heapam_handler.c:table_tuple_complete_speculative Unexecuted instantiation: heapam_indexscan.c:table_tuple_complete_speculative Unexecuted instantiation: heapam_visibility.c:table_tuple_complete_speculative Unexecuted instantiation: heapam_xlog.c:table_tuple_complete_speculative Unexecuted instantiation: heaptoast.c:table_tuple_complete_speculative Unexecuted instantiation: hio.c:table_tuple_complete_speculative Unexecuted instantiation: pruneheap.c:table_tuple_complete_speculative Unexecuted instantiation: rewriteheap.c:table_tuple_complete_speculative Unexecuted instantiation: vacuumlazy.c:table_tuple_complete_speculative Unexecuted instantiation: genam.c:table_tuple_complete_speculative Unexecuted instantiation: indexam.c:table_tuple_complete_speculative Unexecuted instantiation: nbtdedup.c:table_tuple_complete_speculative Unexecuted instantiation: nbtinsert.c:table_tuple_complete_speculative Unexecuted instantiation: nbtpage.c:table_tuple_complete_speculative Unexecuted instantiation: nbtsort.c:table_tuple_complete_speculative Unexecuted instantiation: nbtsplitloc.c:table_tuple_complete_speculative Unexecuted instantiation: spginsert.c:table_tuple_complete_speculative Unexecuted instantiation: tableam.c:table_tuple_complete_speculative Unexecuted instantiation: tableamapi.c:table_tuple_complete_speculative Unexecuted instantiation: xact.c:table_tuple_complete_speculative Unexecuted instantiation: bootstrap.c:table_tuple_complete_speculative Unexecuted instantiation: aclchk.c:table_tuple_complete_speculative Unexecuted instantiation: dependency.c:table_tuple_complete_speculative Unexecuted instantiation: heap.c:table_tuple_complete_speculative Unexecuted instantiation: index.c:table_tuple_complete_speculative Unexecuted instantiation: indexing.c:table_tuple_complete_speculative Unexecuted instantiation: objectaddress.c:table_tuple_complete_speculative Unexecuted instantiation: pg_db_role_setting.c:table_tuple_complete_speculative Unexecuted instantiation: pg_publication.c:table_tuple_complete_speculative Unexecuted instantiation: pg_subscription.c:table_tuple_complete_speculative Unexecuted instantiation: toasting.c:table_tuple_complete_speculative Unexecuted instantiation: gram.c:table_tuple_complete_speculative Unexecuted instantiation: alter.c:table_tuple_complete_speculative Unexecuted instantiation: analyze.c:table_tuple_complete_speculative Unexecuted instantiation: constraint.c:table_tuple_complete_speculative Unexecuted instantiation: copyfrom.c:table_tuple_complete_speculative Unexecuted instantiation: copyfromparse.c:table_tuple_complete_speculative Unexecuted instantiation: copyto.c:table_tuple_complete_speculative Unexecuted instantiation: createas.c:table_tuple_complete_speculative Unexecuted instantiation: dbcommands.c:table_tuple_complete_speculative Unexecuted instantiation: event_trigger.c:table_tuple_complete_speculative Unexecuted instantiation: indexcmds.c:table_tuple_complete_speculative Unexecuted instantiation: matview.c:table_tuple_complete_speculative Unexecuted instantiation: repack.c:table_tuple_complete_speculative Unexecuted instantiation: tablecmds.c:table_tuple_complete_speculative Unexecuted instantiation: tablespace.c:table_tuple_complete_speculative Unexecuted instantiation: trigger.c:table_tuple_complete_speculative Unexecuted instantiation: typecmds.c:table_tuple_complete_speculative Unexecuted instantiation: vacuum.c:table_tuple_complete_speculative Unexecuted instantiation: execIndexing.c:table_tuple_complete_speculative Unexecuted instantiation: execMain.c:table_tuple_complete_speculative Unexecuted instantiation: execPartition.c:table_tuple_complete_speculative Unexecuted instantiation: execReplication.c:table_tuple_complete_speculative Unexecuted instantiation: execUtils.c:table_tuple_complete_speculative Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_complete_speculative Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_complete_speculative Unexecuted instantiation: nodeIndexscan.c:table_tuple_complete_speculative Unexecuted instantiation: nodeLockRows.c:table_tuple_complete_speculative Unexecuted instantiation: nodeModifyTable.c:table_tuple_complete_speculative Unexecuted instantiation: nodeSamplescan.c:table_tuple_complete_speculative Unexecuted instantiation: nodeSeqscan.c:table_tuple_complete_speculative Unexecuted instantiation: nodeTidrangescan.c:table_tuple_complete_speculative Unexecuted instantiation: nodeTidscan.c:table_tuple_complete_speculative Unexecuted instantiation: spi.c:table_tuple_complete_speculative Unexecuted instantiation: copyfuncs.c:table_tuple_complete_speculative Unexecuted instantiation: equalfuncs.c:table_tuple_complete_speculative Unexecuted instantiation: outfuncs.c:table_tuple_complete_speculative Unexecuted instantiation: queryjumblefuncs.c:table_tuple_complete_speculative Unexecuted instantiation: readfuncs.c:table_tuple_complete_speculative Unexecuted instantiation: plancat.c:table_tuple_complete_speculative Unexecuted instantiation: partbounds.c:table_tuple_complete_speculative Unexecuted instantiation: autovacuum.c:table_tuple_complete_speculative Unexecuted instantiation: datachecksum_state.c:table_tuple_complete_speculative Unexecuted instantiation: conflict.c:table_tuple_complete_speculative Unexecuted instantiation: launcher.c:table_tuple_complete_speculative Unexecuted instantiation: reorderbuffer.c:table_tuple_complete_speculative Unexecuted instantiation: worker.c:table_tuple_complete_speculative Unexecuted instantiation: rewriteHandler.c:table_tuple_complete_speculative Unexecuted instantiation: attribute_stats.c:table_tuple_complete_speculative Unexecuted instantiation: extended_stats_funcs.c:table_tuple_complete_speculative Unexecuted instantiation: relation_stats.c:table_tuple_complete_speculative Unexecuted instantiation: bufmgr.c:table_tuple_complete_speculative Unexecuted instantiation: utility.c:table_tuple_complete_speculative Unexecuted instantiation: ri_triggers.c:table_tuple_complete_speculative Unexecuted instantiation: ruleutils.c:table_tuple_complete_speculative Unexecuted instantiation: selfuncs.c:table_tuple_complete_speculative Unexecuted instantiation: tid.c:table_tuple_complete_speculative Unexecuted instantiation: trigfuncs.c:table_tuple_complete_speculative Unexecuted instantiation: tsquery_rewrite.c:table_tuple_complete_speculative Unexecuted instantiation: tsvector_op.c:table_tuple_complete_speculative Unexecuted instantiation: xml.c:table_tuple_complete_speculative Unexecuted instantiation: evtcache.c:table_tuple_complete_speculative Unexecuted instantiation: funccache.c:table_tuple_complete_speculative Unexecuted instantiation: relcache.c:table_tuple_complete_speculative Unexecuted instantiation: postinit.c:table_tuple_complete_speculative Unexecuted instantiation: guc_tables.c:table_tuple_complete_speculative Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_complete_speculative |
1497 | | |
1498 | | /* |
1499 | | * Insert multiple tuples into a table. |
1500 | | * |
1501 | | * This is like table_tuple_insert(), but inserts multiple tuples in one |
1502 | | * operation. That's often faster than calling table_tuple_insert() in a loop, |
1503 | | * because e.g. the AM can reduce WAL logging and page locking overhead. |
1504 | | * |
1505 | | * Except for taking `nslots` tuples as input, and an array of TupleTableSlots |
1506 | | * in `slots`, the parameters for table_multi_insert() are the same as for |
1507 | | * table_tuple_insert(). |
1508 | | * |
1509 | | * Note: this leaks memory into the current memory context. You can create a |
1510 | | * temporary context before calling this, if that's a problem. |
1511 | | */ |
1512 | | static inline void |
1513 | | table_multi_insert(Relation rel, TupleTableSlot **slots, int nslots, |
1514 | | CommandId cid, uint32 options, BulkInsertStateData *bistate) |
1515 | 0 | { |
1516 | 0 | rel->rd_tableam->multi_insert(rel, slots, nslots, |
1517 | 0 | cid, options, bistate); |
1518 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_multi_insert Unexecuted instantiation: brin.c:table_multi_insert Unexecuted instantiation: detoast.c:table_multi_insert Unexecuted instantiation: toast_internals.c:table_multi_insert Unexecuted instantiation: gininsert.c:table_multi_insert Unexecuted instantiation: gistbuild.c:table_multi_insert Unexecuted instantiation: hash.c:table_multi_insert Unexecuted instantiation: heapam.c:table_multi_insert Unexecuted instantiation: heapam_handler.c:table_multi_insert Unexecuted instantiation: heapam_indexscan.c:table_multi_insert Unexecuted instantiation: heapam_visibility.c:table_multi_insert Unexecuted instantiation: heapam_xlog.c:table_multi_insert Unexecuted instantiation: heaptoast.c:table_multi_insert Unexecuted instantiation: hio.c:table_multi_insert Unexecuted instantiation: pruneheap.c:table_multi_insert Unexecuted instantiation: rewriteheap.c:table_multi_insert Unexecuted instantiation: vacuumlazy.c:table_multi_insert Unexecuted instantiation: genam.c:table_multi_insert Unexecuted instantiation: indexam.c:table_multi_insert Unexecuted instantiation: nbtdedup.c:table_multi_insert Unexecuted instantiation: nbtinsert.c:table_multi_insert Unexecuted instantiation: nbtpage.c:table_multi_insert Unexecuted instantiation: nbtsort.c:table_multi_insert Unexecuted instantiation: nbtsplitloc.c:table_multi_insert Unexecuted instantiation: spginsert.c:table_multi_insert Unexecuted instantiation: tableam.c:table_multi_insert Unexecuted instantiation: tableamapi.c:table_multi_insert Unexecuted instantiation: xact.c:table_multi_insert Unexecuted instantiation: bootstrap.c:table_multi_insert Unexecuted instantiation: aclchk.c:table_multi_insert Unexecuted instantiation: dependency.c:table_multi_insert Unexecuted instantiation: heap.c:table_multi_insert Unexecuted instantiation: index.c:table_multi_insert Unexecuted instantiation: indexing.c:table_multi_insert Unexecuted instantiation: objectaddress.c:table_multi_insert Unexecuted instantiation: pg_db_role_setting.c:table_multi_insert Unexecuted instantiation: pg_publication.c:table_multi_insert Unexecuted instantiation: pg_subscription.c:table_multi_insert Unexecuted instantiation: toasting.c:table_multi_insert Unexecuted instantiation: gram.c:table_multi_insert Unexecuted instantiation: alter.c:table_multi_insert Unexecuted instantiation: analyze.c:table_multi_insert Unexecuted instantiation: constraint.c:table_multi_insert Unexecuted instantiation: copyfrom.c:table_multi_insert Unexecuted instantiation: copyfromparse.c:table_multi_insert Unexecuted instantiation: copyto.c:table_multi_insert Unexecuted instantiation: createas.c:table_multi_insert Unexecuted instantiation: dbcommands.c:table_multi_insert Unexecuted instantiation: event_trigger.c:table_multi_insert Unexecuted instantiation: indexcmds.c:table_multi_insert Unexecuted instantiation: matview.c:table_multi_insert Unexecuted instantiation: repack.c:table_multi_insert Unexecuted instantiation: tablecmds.c:table_multi_insert Unexecuted instantiation: tablespace.c:table_multi_insert Unexecuted instantiation: trigger.c:table_multi_insert Unexecuted instantiation: typecmds.c:table_multi_insert Unexecuted instantiation: vacuum.c:table_multi_insert Unexecuted instantiation: execIndexing.c:table_multi_insert Unexecuted instantiation: execMain.c:table_multi_insert Unexecuted instantiation: execPartition.c:table_multi_insert Unexecuted instantiation: execReplication.c:table_multi_insert Unexecuted instantiation: execUtils.c:table_multi_insert Unexecuted instantiation: nodeBitmapHeapscan.c:table_multi_insert Unexecuted instantiation: nodeIndexonlyscan.c:table_multi_insert Unexecuted instantiation: nodeIndexscan.c:table_multi_insert Unexecuted instantiation: nodeLockRows.c:table_multi_insert Unexecuted instantiation: nodeModifyTable.c:table_multi_insert Unexecuted instantiation: nodeSamplescan.c:table_multi_insert Unexecuted instantiation: nodeSeqscan.c:table_multi_insert Unexecuted instantiation: nodeTidrangescan.c:table_multi_insert Unexecuted instantiation: nodeTidscan.c:table_multi_insert Unexecuted instantiation: spi.c:table_multi_insert Unexecuted instantiation: copyfuncs.c:table_multi_insert Unexecuted instantiation: equalfuncs.c:table_multi_insert Unexecuted instantiation: outfuncs.c:table_multi_insert Unexecuted instantiation: queryjumblefuncs.c:table_multi_insert Unexecuted instantiation: readfuncs.c:table_multi_insert Unexecuted instantiation: plancat.c:table_multi_insert Unexecuted instantiation: partbounds.c:table_multi_insert Unexecuted instantiation: autovacuum.c:table_multi_insert Unexecuted instantiation: datachecksum_state.c:table_multi_insert Unexecuted instantiation: conflict.c:table_multi_insert Unexecuted instantiation: launcher.c:table_multi_insert Unexecuted instantiation: reorderbuffer.c:table_multi_insert Unexecuted instantiation: worker.c:table_multi_insert Unexecuted instantiation: rewriteHandler.c:table_multi_insert Unexecuted instantiation: attribute_stats.c:table_multi_insert Unexecuted instantiation: extended_stats_funcs.c:table_multi_insert Unexecuted instantiation: relation_stats.c:table_multi_insert Unexecuted instantiation: bufmgr.c:table_multi_insert Unexecuted instantiation: utility.c:table_multi_insert Unexecuted instantiation: ri_triggers.c:table_multi_insert Unexecuted instantiation: ruleutils.c:table_multi_insert Unexecuted instantiation: selfuncs.c:table_multi_insert Unexecuted instantiation: tid.c:table_multi_insert Unexecuted instantiation: trigfuncs.c:table_multi_insert Unexecuted instantiation: tsquery_rewrite.c:table_multi_insert Unexecuted instantiation: tsvector_op.c:table_multi_insert Unexecuted instantiation: xml.c:table_multi_insert Unexecuted instantiation: evtcache.c:table_multi_insert Unexecuted instantiation: funccache.c:table_multi_insert Unexecuted instantiation: relcache.c:table_multi_insert Unexecuted instantiation: postinit.c:table_multi_insert Unexecuted instantiation: guc_tables.c:table_multi_insert Unexecuted instantiation: simple_query_fuzzer.c:table_multi_insert |
1519 | | |
1520 | | /* |
1521 | | * Delete a tuple. |
1522 | | * |
1523 | | * NB: do not call this directly unless prepared to deal with |
1524 | | * concurrent-update conditions. Use simple_table_tuple_delete instead. |
1525 | | * |
1526 | | * Input parameters: |
1527 | | * rel - table to be modified (caller must hold suitable lock) |
1528 | | * tid - TID of tuple to be deleted |
1529 | | * cid - delete command ID (used for visibility test, and stored into |
1530 | | * cmax if successful) |
1531 | | * options - bitmask of options. Supported values: |
1532 | | * TABLE_DELETE_CHANGING_PARTITION: the tuple is being moved to another |
1533 | | * partition table due to an update of the partition key. |
1534 | | * TABLE_DELETE_NO_LOGICAL: force-disables the emitting of logical |
1535 | | * decoding information for the tuple. This should solely be used |
1536 | | * during table rewrites where RelationIsLogicallyLogged(rel) is not |
1537 | | * yet accurate for the new relation. |
1538 | | * crosscheck - if not InvalidSnapshot, also check tuple against this |
1539 | | * wait - true if should wait for any conflicting update to commit/abort |
1540 | | * |
1541 | | * Output parameters: |
1542 | | * tmfd - filled in failure cases (see below) |
1543 | | * |
1544 | | * Normal, successful return value is TM_Ok, which means we did actually |
1545 | | * delete it. Failure return codes are TM_SelfModified, TM_Updated, and |
1546 | | * TM_BeingModified (the last only possible if wait == false). |
1547 | | * |
1548 | | * In the failure cases, the routine fills *tmfd with the tuple's t_ctid, |
1549 | | * t_xmax, and, if possible, t_cmax. See comments for struct |
1550 | | * TM_FailureData for additional info. |
1551 | | */ |
1552 | | static inline TM_Result |
1553 | | table_tuple_delete(Relation rel, ItemPointer tid, CommandId cid, |
1554 | | uint32 options, Snapshot snapshot, Snapshot crosscheck, |
1555 | | bool wait, TM_FailureData *tmfd) |
1556 | 0 | { |
1557 | 0 | return rel->rd_tableam->tuple_delete(rel, tid, cid, options, |
1558 | 0 | snapshot, crosscheck, |
1559 | 0 | wait, tmfd); |
1560 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_delete Unexecuted instantiation: brin.c:table_tuple_delete Unexecuted instantiation: detoast.c:table_tuple_delete Unexecuted instantiation: toast_internals.c:table_tuple_delete Unexecuted instantiation: gininsert.c:table_tuple_delete Unexecuted instantiation: gistbuild.c:table_tuple_delete Unexecuted instantiation: hash.c:table_tuple_delete Unexecuted instantiation: heapam.c:table_tuple_delete Unexecuted instantiation: heapam_handler.c:table_tuple_delete Unexecuted instantiation: heapam_indexscan.c:table_tuple_delete Unexecuted instantiation: heapam_visibility.c:table_tuple_delete Unexecuted instantiation: heapam_xlog.c:table_tuple_delete Unexecuted instantiation: heaptoast.c:table_tuple_delete Unexecuted instantiation: hio.c:table_tuple_delete Unexecuted instantiation: pruneheap.c:table_tuple_delete Unexecuted instantiation: rewriteheap.c:table_tuple_delete Unexecuted instantiation: vacuumlazy.c:table_tuple_delete Unexecuted instantiation: genam.c:table_tuple_delete Unexecuted instantiation: indexam.c:table_tuple_delete Unexecuted instantiation: nbtdedup.c:table_tuple_delete Unexecuted instantiation: nbtinsert.c:table_tuple_delete Unexecuted instantiation: nbtpage.c:table_tuple_delete Unexecuted instantiation: nbtsort.c:table_tuple_delete Unexecuted instantiation: nbtsplitloc.c:table_tuple_delete Unexecuted instantiation: spginsert.c:table_tuple_delete Unexecuted instantiation: tableam.c:table_tuple_delete Unexecuted instantiation: tableamapi.c:table_tuple_delete Unexecuted instantiation: xact.c:table_tuple_delete Unexecuted instantiation: bootstrap.c:table_tuple_delete Unexecuted instantiation: aclchk.c:table_tuple_delete Unexecuted instantiation: dependency.c:table_tuple_delete Unexecuted instantiation: heap.c:table_tuple_delete Unexecuted instantiation: index.c:table_tuple_delete Unexecuted instantiation: indexing.c:table_tuple_delete Unexecuted instantiation: objectaddress.c:table_tuple_delete Unexecuted instantiation: pg_db_role_setting.c:table_tuple_delete Unexecuted instantiation: pg_publication.c:table_tuple_delete Unexecuted instantiation: pg_subscription.c:table_tuple_delete Unexecuted instantiation: toasting.c:table_tuple_delete Unexecuted instantiation: gram.c:table_tuple_delete Unexecuted instantiation: alter.c:table_tuple_delete Unexecuted instantiation: analyze.c:table_tuple_delete Unexecuted instantiation: constraint.c:table_tuple_delete Unexecuted instantiation: copyfrom.c:table_tuple_delete Unexecuted instantiation: copyfromparse.c:table_tuple_delete Unexecuted instantiation: copyto.c:table_tuple_delete Unexecuted instantiation: createas.c:table_tuple_delete Unexecuted instantiation: dbcommands.c:table_tuple_delete Unexecuted instantiation: event_trigger.c:table_tuple_delete Unexecuted instantiation: indexcmds.c:table_tuple_delete Unexecuted instantiation: matview.c:table_tuple_delete Unexecuted instantiation: repack.c:table_tuple_delete Unexecuted instantiation: tablecmds.c:table_tuple_delete Unexecuted instantiation: tablespace.c:table_tuple_delete Unexecuted instantiation: trigger.c:table_tuple_delete Unexecuted instantiation: typecmds.c:table_tuple_delete Unexecuted instantiation: vacuum.c:table_tuple_delete Unexecuted instantiation: execIndexing.c:table_tuple_delete Unexecuted instantiation: execMain.c:table_tuple_delete Unexecuted instantiation: execPartition.c:table_tuple_delete Unexecuted instantiation: execReplication.c:table_tuple_delete Unexecuted instantiation: execUtils.c:table_tuple_delete Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_delete Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_delete Unexecuted instantiation: nodeIndexscan.c:table_tuple_delete Unexecuted instantiation: nodeLockRows.c:table_tuple_delete Unexecuted instantiation: nodeModifyTable.c:table_tuple_delete Unexecuted instantiation: nodeSamplescan.c:table_tuple_delete Unexecuted instantiation: nodeSeqscan.c:table_tuple_delete Unexecuted instantiation: nodeTidrangescan.c:table_tuple_delete Unexecuted instantiation: nodeTidscan.c:table_tuple_delete Unexecuted instantiation: spi.c:table_tuple_delete Unexecuted instantiation: copyfuncs.c:table_tuple_delete Unexecuted instantiation: equalfuncs.c:table_tuple_delete Unexecuted instantiation: outfuncs.c:table_tuple_delete Unexecuted instantiation: queryjumblefuncs.c:table_tuple_delete Unexecuted instantiation: readfuncs.c:table_tuple_delete Unexecuted instantiation: plancat.c:table_tuple_delete Unexecuted instantiation: partbounds.c:table_tuple_delete Unexecuted instantiation: autovacuum.c:table_tuple_delete Unexecuted instantiation: datachecksum_state.c:table_tuple_delete Unexecuted instantiation: conflict.c:table_tuple_delete Unexecuted instantiation: launcher.c:table_tuple_delete Unexecuted instantiation: reorderbuffer.c:table_tuple_delete Unexecuted instantiation: worker.c:table_tuple_delete Unexecuted instantiation: rewriteHandler.c:table_tuple_delete Unexecuted instantiation: attribute_stats.c:table_tuple_delete Unexecuted instantiation: extended_stats_funcs.c:table_tuple_delete Unexecuted instantiation: relation_stats.c:table_tuple_delete Unexecuted instantiation: bufmgr.c:table_tuple_delete Unexecuted instantiation: utility.c:table_tuple_delete Unexecuted instantiation: ri_triggers.c:table_tuple_delete Unexecuted instantiation: ruleutils.c:table_tuple_delete Unexecuted instantiation: selfuncs.c:table_tuple_delete Unexecuted instantiation: tid.c:table_tuple_delete Unexecuted instantiation: trigfuncs.c:table_tuple_delete Unexecuted instantiation: tsquery_rewrite.c:table_tuple_delete Unexecuted instantiation: tsvector_op.c:table_tuple_delete Unexecuted instantiation: xml.c:table_tuple_delete Unexecuted instantiation: evtcache.c:table_tuple_delete Unexecuted instantiation: funccache.c:table_tuple_delete Unexecuted instantiation: relcache.c:table_tuple_delete Unexecuted instantiation: postinit.c:table_tuple_delete Unexecuted instantiation: guc_tables.c:table_tuple_delete Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_delete |
1561 | | |
1562 | | /* |
1563 | | * Update a tuple. |
1564 | | * |
1565 | | * NB: do not call this directly unless you are prepared to deal with |
1566 | | * concurrent-update conditions. Use simple_table_tuple_update instead. |
1567 | | * |
1568 | | * Input parameters: |
1569 | | * rel - table to be modified (caller must hold suitable lock) |
1570 | | * otid - TID of old tuple to be replaced |
1571 | | * cid - update command ID (used for visibility test, and stored into |
1572 | | * cmax/cmin if successful) |
1573 | | * options - bitmask of options. Supported values: |
1574 | | * TABLE_UPDATE_NO_LOGICAL: force-disables the emitting of logical |
1575 | | * decoding information for the tuple. This should solely be used |
1576 | | * during table rewrites where RelationIsLogicallyLogged(rel) is not |
1577 | | * yet accurate for the new relation. |
1578 | | * crosscheck - if not InvalidSnapshot, also check old tuple against this |
1579 | | * |
1580 | | * Output parameters: |
1581 | | * slot - newly constructed tuple data to store |
1582 | | * tmfd - filled in failure cases (see below) |
1583 | | * lockmode - filled with lock mode acquired on tuple |
1584 | | * update_indexes - in success cases this is set if new index entries |
1585 | | * are required for this tuple; see TU_UpdateIndexes |
1586 | | * |
1587 | | * Normal, successful return value is TM_Ok, which means we did actually |
1588 | | * update it. Failure return codes are TM_SelfModified, TM_Updated, and |
1589 | | * TM_BeingModified (the last only possible if wait == false). |
1590 | | * |
1591 | | * On success, the slot's tts_tid and tts_tableOid are updated to match the new |
1592 | | * stored tuple; in particular, slot->tts_tid is set to the TID where the |
1593 | | * new tuple was inserted, and its HEAP_ONLY_TUPLE flag is set iff a HOT |
1594 | | * update was done. However, any TOAST changes in the new tuple's |
1595 | | * data are not reflected into *newtup. |
1596 | | * |
1597 | | * In the failure cases, the routine fills *tmfd with the tuple's t_ctid, |
1598 | | * t_xmax, and, if possible, t_cmax. See comments for struct TM_FailureData |
1599 | | * for additional info. |
1600 | | */ |
1601 | | static inline TM_Result |
1602 | | table_tuple_update(Relation rel, ItemPointer otid, TupleTableSlot *slot, |
1603 | | CommandId cid, uint32 options, |
1604 | | Snapshot snapshot, Snapshot crosscheck, |
1605 | | bool wait, TM_FailureData *tmfd, LockTupleMode *lockmode, |
1606 | | TU_UpdateIndexes *update_indexes) |
1607 | 0 | { |
1608 | 0 | return rel->rd_tableam->tuple_update(rel, otid, slot, |
1609 | 0 | cid, options, snapshot, crosscheck, |
1610 | 0 | wait, tmfd, |
1611 | 0 | lockmode, update_indexes); |
1612 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_update Unexecuted instantiation: brin.c:table_tuple_update Unexecuted instantiation: detoast.c:table_tuple_update Unexecuted instantiation: toast_internals.c:table_tuple_update Unexecuted instantiation: gininsert.c:table_tuple_update Unexecuted instantiation: gistbuild.c:table_tuple_update Unexecuted instantiation: hash.c:table_tuple_update Unexecuted instantiation: heapam.c:table_tuple_update Unexecuted instantiation: heapam_handler.c:table_tuple_update Unexecuted instantiation: heapam_indexscan.c:table_tuple_update Unexecuted instantiation: heapam_visibility.c:table_tuple_update Unexecuted instantiation: heapam_xlog.c:table_tuple_update Unexecuted instantiation: heaptoast.c:table_tuple_update Unexecuted instantiation: hio.c:table_tuple_update Unexecuted instantiation: pruneheap.c:table_tuple_update Unexecuted instantiation: rewriteheap.c:table_tuple_update Unexecuted instantiation: vacuumlazy.c:table_tuple_update Unexecuted instantiation: genam.c:table_tuple_update Unexecuted instantiation: indexam.c:table_tuple_update Unexecuted instantiation: nbtdedup.c:table_tuple_update Unexecuted instantiation: nbtinsert.c:table_tuple_update Unexecuted instantiation: nbtpage.c:table_tuple_update Unexecuted instantiation: nbtsort.c:table_tuple_update Unexecuted instantiation: nbtsplitloc.c:table_tuple_update Unexecuted instantiation: spginsert.c:table_tuple_update Unexecuted instantiation: tableam.c:table_tuple_update Unexecuted instantiation: tableamapi.c:table_tuple_update Unexecuted instantiation: xact.c:table_tuple_update Unexecuted instantiation: bootstrap.c:table_tuple_update Unexecuted instantiation: aclchk.c:table_tuple_update Unexecuted instantiation: dependency.c:table_tuple_update Unexecuted instantiation: heap.c:table_tuple_update Unexecuted instantiation: index.c:table_tuple_update Unexecuted instantiation: indexing.c:table_tuple_update Unexecuted instantiation: objectaddress.c:table_tuple_update Unexecuted instantiation: pg_db_role_setting.c:table_tuple_update Unexecuted instantiation: pg_publication.c:table_tuple_update Unexecuted instantiation: pg_subscription.c:table_tuple_update Unexecuted instantiation: toasting.c:table_tuple_update Unexecuted instantiation: gram.c:table_tuple_update Unexecuted instantiation: alter.c:table_tuple_update Unexecuted instantiation: analyze.c:table_tuple_update Unexecuted instantiation: constraint.c:table_tuple_update Unexecuted instantiation: copyfrom.c:table_tuple_update Unexecuted instantiation: copyfromparse.c:table_tuple_update Unexecuted instantiation: copyto.c:table_tuple_update Unexecuted instantiation: createas.c:table_tuple_update Unexecuted instantiation: dbcommands.c:table_tuple_update Unexecuted instantiation: event_trigger.c:table_tuple_update Unexecuted instantiation: indexcmds.c:table_tuple_update Unexecuted instantiation: matview.c:table_tuple_update Unexecuted instantiation: repack.c:table_tuple_update Unexecuted instantiation: tablecmds.c:table_tuple_update Unexecuted instantiation: tablespace.c:table_tuple_update Unexecuted instantiation: trigger.c:table_tuple_update Unexecuted instantiation: typecmds.c:table_tuple_update Unexecuted instantiation: vacuum.c:table_tuple_update Unexecuted instantiation: execIndexing.c:table_tuple_update Unexecuted instantiation: execMain.c:table_tuple_update Unexecuted instantiation: execPartition.c:table_tuple_update Unexecuted instantiation: execReplication.c:table_tuple_update Unexecuted instantiation: execUtils.c:table_tuple_update Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_update Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_update Unexecuted instantiation: nodeIndexscan.c:table_tuple_update Unexecuted instantiation: nodeLockRows.c:table_tuple_update Unexecuted instantiation: nodeModifyTable.c:table_tuple_update Unexecuted instantiation: nodeSamplescan.c:table_tuple_update Unexecuted instantiation: nodeSeqscan.c:table_tuple_update Unexecuted instantiation: nodeTidrangescan.c:table_tuple_update Unexecuted instantiation: nodeTidscan.c:table_tuple_update Unexecuted instantiation: spi.c:table_tuple_update Unexecuted instantiation: copyfuncs.c:table_tuple_update Unexecuted instantiation: equalfuncs.c:table_tuple_update Unexecuted instantiation: outfuncs.c:table_tuple_update Unexecuted instantiation: queryjumblefuncs.c:table_tuple_update Unexecuted instantiation: readfuncs.c:table_tuple_update Unexecuted instantiation: plancat.c:table_tuple_update Unexecuted instantiation: partbounds.c:table_tuple_update Unexecuted instantiation: autovacuum.c:table_tuple_update Unexecuted instantiation: datachecksum_state.c:table_tuple_update Unexecuted instantiation: conflict.c:table_tuple_update Unexecuted instantiation: launcher.c:table_tuple_update Unexecuted instantiation: reorderbuffer.c:table_tuple_update Unexecuted instantiation: worker.c:table_tuple_update Unexecuted instantiation: rewriteHandler.c:table_tuple_update Unexecuted instantiation: attribute_stats.c:table_tuple_update Unexecuted instantiation: extended_stats_funcs.c:table_tuple_update Unexecuted instantiation: relation_stats.c:table_tuple_update Unexecuted instantiation: bufmgr.c:table_tuple_update Unexecuted instantiation: utility.c:table_tuple_update Unexecuted instantiation: ri_triggers.c:table_tuple_update Unexecuted instantiation: ruleutils.c:table_tuple_update Unexecuted instantiation: selfuncs.c:table_tuple_update Unexecuted instantiation: tid.c:table_tuple_update Unexecuted instantiation: trigfuncs.c:table_tuple_update Unexecuted instantiation: tsquery_rewrite.c:table_tuple_update Unexecuted instantiation: tsvector_op.c:table_tuple_update Unexecuted instantiation: xml.c:table_tuple_update Unexecuted instantiation: evtcache.c:table_tuple_update Unexecuted instantiation: funccache.c:table_tuple_update Unexecuted instantiation: relcache.c:table_tuple_update Unexecuted instantiation: postinit.c:table_tuple_update Unexecuted instantiation: guc_tables.c:table_tuple_update Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_update |
1613 | | |
1614 | | /* |
1615 | | * Lock a tuple in the specified mode. |
1616 | | * |
1617 | | * Input parameters: |
1618 | | * rel: relation containing tuple (caller must hold suitable lock) |
1619 | | * tid: TID of tuple to lock (updated if an update chain was followed) |
1620 | | * snapshot: snapshot to use for visibility determinations |
1621 | | * cid: current command ID (used for visibility test, and stored into |
1622 | | * tuple's cmax if lock is successful) |
1623 | | * mode: lock mode desired |
1624 | | * wait_policy: what to do if tuple lock is not available |
1625 | | * flags: |
1626 | | * If TUPLE_LOCK_FLAG_LOCK_UPDATE_IN_PROGRESS, follow the update chain to |
1627 | | * also lock descendant tuples if lock modes don't conflict. |
1628 | | * If TUPLE_LOCK_FLAG_FIND_LAST_VERSION, follow the update chain and lock |
1629 | | * latest version. |
1630 | | * |
1631 | | * Output parameters: |
1632 | | * *slot: contains the target tuple |
1633 | | * *tmfd: filled in failure cases (see below) |
1634 | | * |
1635 | | * Function result may be: |
1636 | | * TM_Ok: lock was successfully acquired |
1637 | | * TM_Invisible: lock failed because tuple was never visible to us |
1638 | | * TM_SelfModified: lock failed because tuple updated by self |
1639 | | * TM_Updated: lock failed because tuple updated by other xact |
1640 | | * TM_Deleted: lock failed because tuple deleted by other xact |
1641 | | * TM_WouldBlock: lock couldn't be acquired and wait_policy is skip |
1642 | | * |
1643 | | * In the failure cases other than TM_Invisible and TM_Deleted, the routine |
1644 | | * fills *tmfd with the tuple's t_ctid, t_xmax, and, if possible, t_cmax. |
1645 | | * Additionally, in both success and failure cases, tmfd->traversed is set if |
1646 | | * an update chain was followed. See comments for struct TM_FailureData for |
1647 | | * additional info. |
1648 | | */ |
1649 | | static inline TM_Result |
1650 | | table_tuple_lock(Relation rel, ItemPointer tid, Snapshot snapshot, |
1651 | | TupleTableSlot *slot, CommandId cid, LockTupleMode mode, |
1652 | | LockWaitPolicy wait_policy, uint8 flags, |
1653 | | TM_FailureData *tmfd) |
1654 | 0 | { |
1655 | 0 | return rel->rd_tableam->tuple_lock(rel, tid, snapshot, slot, |
1656 | 0 | cid, mode, wait_policy, |
1657 | 0 | flags, tmfd); |
1658 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_tuple_lock Unexecuted instantiation: brin.c:table_tuple_lock Unexecuted instantiation: detoast.c:table_tuple_lock Unexecuted instantiation: toast_internals.c:table_tuple_lock Unexecuted instantiation: gininsert.c:table_tuple_lock Unexecuted instantiation: gistbuild.c:table_tuple_lock Unexecuted instantiation: hash.c:table_tuple_lock Unexecuted instantiation: heapam.c:table_tuple_lock Unexecuted instantiation: heapam_handler.c:table_tuple_lock Unexecuted instantiation: heapam_indexscan.c:table_tuple_lock Unexecuted instantiation: heapam_visibility.c:table_tuple_lock Unexecuted instantiation: heapam_xlog.c:table_tuple_lock Unexecuted instantiation: heaptoast.c:table_tuple_lock Unexecuted instantiation: hio.c:table_tuple_lock Unexecuted instantiation: pruneheap.c:table_tuple_lock Unexecuted instantiation: rewriteheap.c:table_tuple_lock Unexecuted instantiation: vacuumlazy.c:table_tuple_lock Unexecuted instantiation: genam.c:table_tuple_lock Unexecuted instantiation: indexam.c:table_tuple_lock Unexecuted instantiation: nbtdedup.c:table_tuple_lock Unexecuted instantiation: nbtinsert.c:table_tuple_lock Unexecuted instantiation: nbtpage.c:table_tuple_lock Unexecuted instantiation: nbtsort.c:table_tuple_lock Unexecuted instantiation: nbtsplitloc.c:table_tuple_lock Unexecuted instantiation: spginsert.c:table_tuple_lock Unexecuted instantiation: tableam.c:table_tuple_lock Unexecuted instantiation: tableamapi.c:table_tuple_lock Unexecuted instantiation: xact.c:table_tuple_lock Unexecuted instantiation: bootstrap.c:table_tuple_lock Unexecuted instantiation: aclchk.c:table_tuple_lock Unexecuted instantiation: dependency.c:table_tuple_lock Unexecuted instantiation: heap.c:table_tuple_lock Unexecuted instantiation: index.c:table_tuple_lock Unexecuted instantiation: indexing.c:table_tuple_lock Unexecuted instantiation: objectaddress.c:table_tuple_lock Unexecuted instantiation: pg_db_role_setting.c:table_tuple_lock Unexecuted instantiation: pg_publication.c:table_tuple_lock Unexecuted instantiation: pg_subscription.c:table_tuple_lock Unexecuted instantiation: toasting.c:table_tuple_lock Unexecuted instantiation: gram.c:table_tuple_lock Unexecuted instantiation: alter.c:table_tuple_lock Unexecuted instantiation: analyze.c:table_tuple_lock Unexecuted instantiation: constraint.c:table_tuple_lock Unexecuted instantiation: copyfrom.c:table_tuple_lock Unexecuted instantiation: copyfromparse.c:table_tuple_lock Unexecuted instantiation: copyto.c:table_tuple_lock Unexecuted instantiation: createas.c:table_tuple_lock Unexecuted instantiation: dbcommands.c:table_tuple_lock Unexecuted instantiation: event_trigger.c:table_tuple_lock Unexecuted instantiation: indexcmds.c:table_tuple_lock Unexecuted instantiation: matview.c:table_tuple_lock Unexecuted instantiation: repack.c:table_tuple_lock Unexecuted instantiation: tablecmds.c:table_tuple_lock Unexecuted instantiation: tablespace.c:table_tuple_lock Unexecuted instantiation: trigger.c:table_tuple_lock Unexecuted instantiation: typecmds.c:table_tuple_lock Unexecuted instantiation: vacuum.c:table_tuple_lock Unexecuted instantiation: execIndexing.c:table_tuple_lock Unexecuted instantiation: execMain.c:table_tuple_lock Unexecuted instantiation: execPartition.c:table_tuple_lock Unexecuted instantiation: execReplication.c:table_tuple_lock Unexecuted instantiation: execUtils.c:table_tuple_lock Unexecuted instantiation: nodeBitmapHeapscan.c:table_tuple_lock Unexecuted instantiation: nodeIndexonlyscan.c:table_tuple_lock Unexecuted instantiation: nodeIndexscan.c:table_tuple_lock Unexecuted instantiation: nodeLockRows.c:table_tuple_lock Unexecuted instantiation: nodeModifyTable.c:table_tuple_lock Unexecuted instantiation: nodeSamplescan.c:table_tuple_lock Unexecuted instantiation: nodeSeqscan.c:table_tuple_lock Unexecuted instantiation: nodeTidrangescan.c:table_tuple_lock Unexecuted instantiation: nodeTidscan.c:table_tuple_lock Unexecuted instantiation: spi.c:table_tuple_lock Unexecuted instantiation: copyfuncs.c:table_tuple_lock Unexecuted instantiation: equalfuncs.c:table_tuple_lock Unexecuted instantiation: outfuncs.c:table_tuple_lock Unexecuted instantiation: queryjumblefuncs.c:table_tuple_lock Unexecuted instantiation: readfuncs.c:table_tuple_lock Unexecuted instantiation: plancat.c:table_tuple_lock Unexecuted instantiation: partbounds.c:table_tuple_lock Unexecuted instantiation: autovacuum.c:table_tuple_lock Unexecuted instantiation: datachecksum_state.c:table_tuple_lock Unexecuted instantiation: conflict.c:table_tuple_lock Unexecuted instantiation: launcher.c:table_tuple_lock Unexecuted instantiation: reorderbuffer.c:table_tuple_lock Unexecuted instantiation: worker.c:table_tuple_lock Unexecuted instantiation: rewriteHandler.c:table_tuple_lock Unexecuted instantiation: attribute_stats.c:table_tuple_lock Unexecuted instantiation: extended_stats_funcs.c:table_tuple_lock Unexecuted instantiation: relation_stats.c:table_tuple_lock Unexecuted instantiation: bufmgr.c:table_tuple_lock Unexecuted instantiation: utility.c:table_tuple_lock Unexecuted instantiation: ri_triggers.c:table_tuple_lock Unexecuted instantiation: ruleutils.c:table_tuple_lock Unexecuted instantiation: selfuncs.c:table_tuple_lock Unexecuted instantiation: tid.c:table_tuple_lock Unexecuted instantiation: trigfuncs.c:table_tuple_lock Unexecuted instantiation: tsquery_rewrite.c:table_tuple_lock Unexecuted instantiation: tsvector_op.c:table_tuple_lock Unexecuted instantiation: xml.c:table_tuple_lock Unexecuted instantiation: evtcache.c:table_tuple_lock Unexecuted instantiation: funccache.c:table_tuple_lock Unexecuted instantiation: relcache.c:table_tuple_lock Unexecuted instantiation: postinit.c:table_tuple_lock Unexecuted instantiation: guc_tables.c:table_tuple_lock Unexecuted instantiation: simple_query_fuzzer.c:table_tuple_lock |
1659 | | |
1660 | | /* |
1661 | | * Perform operations necessary to complete insertions made via |
1662 | | * tuple_insert and multi_insert with a BulkInsertState specified. |
1663 | | */ |
1664 | | static inline void |
1665 | | table_finish_bulk_insert(Relation rel, uint32 options) |
1666 | 0 | { |
1667 | | /* optional callback */ |
1668 | 0 | if (rel->rd_tableam && rel->rd_tableam->finish_bulk_insert) |
1669 | 0 | rel->rd_tableam->finish_bulk_insert(rel, options); |
1670 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_finish_bulk_insert Unexecuted instantiation: brin.c:table_finish_bulk_insert Unexecuted instantiation: detoast.c:table_finish_bulk_insert Unexecuted instantiation: toast_internals.c:table_finish_bulk_insert Unexecuted instantiation: gininsert.c:table_finish_bulk_insert Unexecuted instantiation: gistbuild.c:table_finish_bulk_insert Unexecuted instantiation: hash.c:table_finish_bulk_insert Unexecuted instantiation: heapam.c:table_finish_bulk_insert Unexecuted instantiation: heapam_handler.c:table_finish_bulk_insert Unexecuted instantiation: heapam_indexscan.c:table_finish_bulk_insert Unexecuted instantiation: heapam_visibility.c:table_finish_bulk_insert Unexecuted instantiation: heapam_xlog.c:table_finish_bulk_insert Unexecuted instantiation: heaptoast.c:table_finish_bulk_insert Unexecuted instantiation: hio.c:table_finish_bulk_insert Unexecuted instantiation: pruneheap.c:table_finish_bulk_insert Unexecuted instantiation: rewriteheap.c:table_finish_bulk_insert Unexecuted instantiation: vacuumlazy.c:table_finish_bulk_insert Unexecuted instantiation: genam.c:table_finish_bulk_insert Unexecuted instantiation: indexam.c:table_finish_bulk_insert Unexecuted instantiation: nbtdedup.c:table_finish_bulk_insert Unexecuted instantiation: nbtinsert.c:table_finish_bulk_insert Unexecuted instantiation: nbtpage.c:table_finish_bulk_insert Unexecuted instantiation: nbtsort.c:table_finish_bulk_insert Unexecuted instantiation: nbtsplitloc.c:table_finish_bulk_insert Unexecuted instantiation: spginsert.c:table_finish_bulk_insert Unexecuted instantiation: tableam.c:table_finish_bulk_insert Unexecuted instantiation: tableamapi.c:table_finish_bulk_insert Unexecuted instantiation: xact.c:table_finish_bulk_insert Unexecuted instantiation: bootstrap.c:table_finish_bulk_insert Unexecuted instantiation: aclchk.c:table_finish_bulk_insert Unexecuted instantiation: dependency.c:table_finish_bulk_insert Unexecuted instantiation: heap.c:table_finish_bulk_insert Unexecuted instantiation: index.c:table_finish_bulk_insert Unexecuted instantiation: indexing.c:table_finish_bulk_insert Unexecuted instantiation: objectaddress.c:table_finish_bulk_insert Unexecuted instantiation: pg_db_role_setting.c:table_finish_bulk_insert Unexecuted instantiation: pg_publication.c:table_finish_bulk_insert Unexecuted instantiation: pg_subscription.c:table_finish_bulk_insert Unexecuted instantiation: toasting.c:table_finish_bulk_insert Unexecuted instantiation: gram.c:table_finish_bulk_insert Unexecuted instantiation: alter.c:table_finish_bulk_insert Unexecuted instantiation: analyze.c:table_finish_bulk_insert Unexecuted instantiation: constraint.c:table_finish_bulk_insert Unexecuted instantiation: copyfrom.c:table_finish_bulk_insert Unexecuted instantiation: copyfromparse.c:table_finish_bulk_insert Unexecuted instantiation: copyto.c:table_finish_bulk_insert Unexecuted instantiation: createas.c:table_finish_bulk_insert Unexecuted instantiation: dbcommands.c:table_finish_bulk_insert Unexecuted instantiation: event_trigger.c:table_finish_bulk_insert Unexecuted instantiation: indexcmds.c:table_finish_bulk_insert Unexecuted instantiation: matview.c:table_finish_bulk_insert Unexecuted instantiation: repack.c:table_finish_bulk_insert Unexecuted instantiation: tablecmds.c:table_finish_bulk_insert Unexecuted instantiation: tablespace.c:table_finish_bulk_insert Unexecuted instantiation: trigger.c:table_finish_bulk_insert Unexecuted instantiation: typecmds.c:table_finish_bulk_insert Unexecuted instantiation: vacuum.c:table_finish_bulk_insert Unexecuted instantiation: execIndexing.c:table_finish_bulk_insert Unexecuted instantiation: execMain.c:table_finish_bulk_insert Unexecuted instantiation: execPartition.c:table_finish_bulk_insert Unexecuted instantiation: execReplication.c:table_finish_bulk_insert Unexecuted instantiation: execUtils.c:table_finish_bulk_insert Unexecuted instantiation: nodeBitmapHeapscan.c:table_finish_bulk_insert Unexecuted instantiation: nodeIndexonlyscan.c:table_finish_bulk_insert Unexecuted instantiation: nodeIndexscan.c:table_finish_bulk_insert Unexecuted instantiation: nodeLockRows.c:table_finish_bulk_insert Unexecuted instantiation: nodeModifyTable.c:table_finish_bulk_insert Unexecuted instantiation: nodeSamplescan.c:table_finish_bulk_insert Unexecuted instantiation: nodeSeqscan.c:table_finish_bulk_insert Unexecuted instantiation: nodeTidrangescan.c:table_finish_bulk_insert Unexecuted instantiation: nodeTidscan.c:table_finish_bulk_insert Unexecuted instantiation: spi.c:table_finish_bulk_insert Unexecuted instantiation: copyfuncs.c:table_finish_bulk_insert Unexecuted instantiation: equalfuncs.c:table_finish_bulk_insert Unexecuted instantiation: outfuncs.c:table_finish_bulk_insert Unexecuted instantiation: queryjumblefuncs.c:table_finish_bulk_insert Unexecuted instantiation: readfuncs.c:table_finish_bulk_insert Unexecuted instantiation: plancat.c:table_finish_bulk_insert Unexecuted instantiation: partbounds.c:table_finish_bulk_insert Unexecuted instantiation: autovacuum.c:table_finish_bulk_insert Unexecuted instantiation: datachecksum_state.c:table_finish_bulk_insert Unexecuted instantiation: conflict.c:table_finish_bulk_insert Unexecuted instantiation: launcher.c:table_finish_bulk_insert Unexecuted instantiation: reorderbuffer.c:table_finish_bulk_insert Unexecuted instantiation: worker.c:table_finish_bulk_insert Unexecuted instantiation: rewriteHandler.c:table_finish_bulk_insert Unexecuted instantiation: attribute_stats.c:table_finish_bulk_insert Unexecuted instantiation: extended_stats_funcs.c:table_finish_bulk_insert Unexecuted instantiation: relation_stats.c:table_finish_bulk_insert Unexecuted instantiation: bufmgr.c:table_finish_bulk_insert Unexecuted instantiation: utility.c:table_finish_bulk_insert Unexecuted instantiation: ri_triggers.c:table_finish_bulk_insert Unexecuted instantiation: ruleutils.c:table_finish_bulk_insert Unexecuted instantiation: selfuncs.c:table_finish_bulk_insert Unexecuted instantiation: tid.c:table_finish_bulk_insert Unexecuted instantiation: trigfuncs.c:table_finish_bulk_insert Unexecuted instantiation: tsquery_rewrite.c:table_finish_bulk_insert Unexecuted instantiation: tsvector_op.c:table_finish_bulk_insert Unexecuted instantiation: xml.c:table_finish_bulk_insert Unexecuted instantiation: evtcache.c:table_finish_bulk_insert Unexecuted instantiation: funccache.c:table_finish_bulk_insert Unexecuted instantiation: relcache.c:table_finish_bulk_insert Unexecuted instantiation: postinit.c:table_finish_bulk_insert Unexecuted instantiation: guc_tables.c:table_finish_bulk_insert Unexecuted instantiation: simple_query_fuzzer.c:table_finish_bulk_insert |
1671 | | |
1672 | | |
1673 | | /* ------------------------------------------------------------------------ |
1674 | | * DDL related functionality. |
1675 | | * ------------------------------------------------------------------------ |
1676 | | */ |
1677 | | |
1678 | | /* |
1679 | | * Create storage for `rel` in `newrlocator`, with persistence set to |
1680 | | * `persistence`. |
1681 | | * |
1682 | | * This is used both during relation creation and various DDL operations to |
1683 | | * create new rel storage that can be filled from scratch. When creating |
1684 | | * new storage for an existing relfilelocator, this should be called before the |
1685 | | * relcache entry has been updated. |
1686 | | * |
1687 | | * *freezeXid, *minmulti are set to the xid / multixact horizon for the table |
1688 | | * that pg_class.{relfrozenxid, relminmxid} have to be set to. |
1689 | | */ |
1690 | | static inline void |
1691 | | table_relation_set_new_filelocator(Relation rel, |
1692 | | const RelFileLocator *newrlocator, |
1693 | | char persistence, |
1694 | | TransactionId *freezeXid, |
1695 | | MultiXactId *minmulti) |
1696 | 0 | { |
1697 | 0 | rel->rd_tableam->relation_set_new_filelocator(rel, newrlocator, |
1698 | 0 | persistence, freezeXid, |
1699 | 0 | minmulti); |
1700 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_set_new_filelocator Unexecuted instantiation: brin.c:table_relation_set_new_filelocator Unexecuted instantiation: detoast.c:table_relation_set_new_filelocator Unexecuted instantiation: toast_internals.c:table_relation_set_new_filelocator Unexecuted instantiation: gininsert.c:table_relation_set_new_filelocator Unexecuted instantiation: gistbuild.c:table_relation_set_new_filelocator Unexecuted instantiation: hash.c:table_relation_set_new_filelocator Unexecuted instantiation: heapam.c:table_relation_set_new_filelocator Unexecuted instantiation: heapam_handler.c:table_relation_set_new_filelocator Unexecuted instantiation: heapam_indexscan.c:table_relation_set_new_filelocator Unexecuted instantiation: heapam_visibility.c:table_relation_set_new_filelocator Unexecuted instantiation: heapam_xlog.c:table_relation_set_new_filelocator Unexecuted instantiation: heaptoast.c:table_relation_set_new_filelocator Unexecuted instantiation: hio.c:table_relation_set_new_filelocator Unexecuted instantiation: pruneheap.c:table_relation_set_new_filelocator Unexecuted instantiation: rewriteheap.c:table_relation_set_new_filelocator Unexecuted instantiation: vacuumlazy.c:table_relation_set_new_filelocator Unexecuted instantiation: genam.c:table_relation_set_new_filelocator Unexecuted instantiation: indexam.c:table_relation_set_new_filelocator Unexecuted instantiation: nbtdedup.c:table_relation_set_new_filelocator Unexecuted instantiation: nbtinsert.c:table_relation_set_new_filelocator Unexecuted instantiation: nbtpage.c:table_relation_set_new_filelocator Unexecuted instantiation: nbtsort.c:table_relation_set_new_filelocator Unexecuted instantiation: nbtsplitloc.c:table_relation_set_new_filelocator Unexecuted instantiation: spginsert.c:table_relation_set_new_filelocator Unexecuted instantiation: tableam.c:table_relation_set_new_filelocator Unexecuted instantiation: tableamapi.c:table_relation_set_new_filelocator Unexecuted instantiation: xact.c:table_relation_set_new_filelocator Unexecuted instantiation: bootstrap.c:table_relation_set_new_filelocator Unexecuted instantiation: aclchk.c:table_relation_set_new_filelocator Unexecuted instantiation: dependency.c:table_relation_set_new_filelocator Unexecuted instantiation: heap.c:table_relation_set_new_filelocator Unexecuted instantiation: index.c:table_relation_set_new_filelocator Unexecuted instantiation: indexing.c:table_relation_set_new_filelocator Unexecuted instantiation: objectaddress.c:table_relation_set_new_filelocator Unexecuted instantiation: pg_db_role_setting.c:table_relation_set_new_filelocator Unexecuted instantiation: pg_publication.c:table_relation_set_new_filelocator Unexecuted instantiation: pg_subscription.c:table_relation_set_new_filelocator Unexecuted instantiation: toasting.c:table_relation_set_new_filelocator Unexecuted instantiation: gram.c:table_relation_set_new_filelocator Unexecuted instantiation: alter.c:table_relation_set_new_filelocator Unexecuted instantiation: analyze.c:table_relation_set_new_filelocator Unexecuted instantiation: constraint.c:table_relation_set_new_filelocator Unexecuted instantiation: copyfrom.c:table_relation_set_new_filelocator Unexecuted instantiation: copyfromparse.c:table_relation_set_new_filelocator Unexecuted instantiation: copyto.c:table_relation_set_new_filelocator Unexecuted instantiation: createas.c:table_relation_set_new_filelocator Unexecuted instantiation: dbcommands.c:table_relation_set_new_filelocator Unexecuted instantiation: event_trigger.c:table_relation_set_new_filelocator Unexecuted instantiation: indexcmds.c:table_relation_set_new_filelocator Unexecuted instantiation: matview.c:table_relation_set_new_filelocator Unexecuted instantiation: repack.c:table_relation_set_new_filelocator Unexecuted instantiation: tablecmds.c:table_relation_set_new_filelocator Unexecuted instantiation: tablespace.c:table_relation_set_new_filelocator Unexecuted instantiation: trigger.c:table_relation_set_new_filelocator Unexecuted instantiation: typecmds.c:table_relation_set_new_filelocator Unexecuted instantiation: vacuum.c:table_relation_set_new_filelocator Unexecuted instantiation: execIndexing.c:table_relation_set_new_filelocator Unexecuted instantiation: execMain.c:table_relation_set_new_filelocator Unexecuted instantiation: execPartition.c:table_relation_set_new_filelocator Unexecuted instantiation: execReplication.c:table_relation_set_new_filelocator Unexecuted instantiation: execUtils.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeIndexscan.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeLockRows.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeModifyTable.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeSamplescan.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeSeqscan.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeTidrangescan.c:table_relation_set_new_filelocator Unexecuted instantiation: nodeTidscan.c:table_relation_set_new_filelocator Unexecuted instantiation: spi.c:table_relation_set_new_filelocator Unexecuted instantiation: copyfuncs.c:table_relation_set_new_filelocator Unexecuted instantiation: equalfuncs.c:table_relation_set_new_filelocator Unexecuted instantiation: outfuncs.c:table_relation_set_new_filelocator Unexecuted instantiation: queryjumblefuncs.c:table_relation_set_new_filelocator Unexecuted instantiation: readfuncs.c:table_relation_set_new_filelocator Unexecuted instantiation: plancat.c:table_relation_set_new_filelocator Unexecuted instantiation: partbounds.c:table_relation_set_new_filelocator Unexecuted instantiation: autovacuum.c:table_relation_set_new_filelocator Unexecuted instantiation: datachecksum_state.c:table_relation_set_new_filelocator Unexecuted instantiation: conflict.c:table_relation_set_new_filelocator Unexecuted instantiation: launcher.c:table_relation_set_new_filelocator Unexecuted instantiation: reorderbuffer.c:table_relation_set_new_filelocator Unexecuted instantiation: worker.c:table_relation_set_new_filelocator Unexecuted instantiation: rewriteHandler.c:table_relation_set_new_filelocator Unexecuted instantiation: attribute_stats.c:table_relation_set_new_filelocator Unexecuted instantiation: extended_stats_funcs.c:table_relation_set_new_filelocator Unexecuted instantiation: relation_stats.c:table_relation_set_new_filelocator Unexecuted instantiation: bufmgr.c:table_relation_set_new_filelocator Unexecuted instantiation: utility.c:table_relation_set_new_filelocator Unexecuted instantiation: ri_triggers.c:table_relation_set_new_filelocator Unexecuted instantiation: ruleutils.c:table_relation_set_new_filelocator Unexecuted instantiation: selfuncs.c:table_relation_set_new_filelocator Unexecuted instantiation: tid.c:table_relation_set_new_filelocator Unexecuted instantiation: trigfuncs.c:table_relation_set_new_filelocator Unexecuted instantiation: tsquery_rewrite.c:table_relation_set_new_filelocator Unexecuted instantiation: tsvector_op.c:table_relation_set_new_filelocator Unexecuted instantiation: xml.c:table_relation_set_new_filelocator Unexecuted instantiation: evtcache.c:table_relation_set_new_filelocator Unexecuted instantiation: funccache.c:table_relation_set_new_filelocator Unexecuted instantiation: relcache.c:table_relation_set_new_filelocator Unexecuted instantiation: postinit.c:table_relation_set_new_filelocator Unexecuted instantiation: guc_tables.c:table_relation_set_new_filelocator Unexecuted instantiation: simple_query_fuzzer.c:table_relation_set_new_filelocator |
1701 | | |
1702 | | /* |
1703 | | * Remove all table contents from `rel`, in a non-transactional manner. |
1704 | | * Non-transactional meaning that there's no need to support rollbacks. This |
1705 | | * commonly only is used to perform truncations for relation storage created in |
1706 | | * the current transaction. |
1707 | | */ |
1708 | | static inline void |
1709 | | table_relation_nontransactional_truncate(Relation rel) |
1710 | 0 | { |
1711 | 0 | rel->rd_tableam->relation_nontransactional_truncate(rel); |
1712 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_nontransactional_truncate Unexecuted instantiation: brin.c:table_relation_nontransactional_truncate Unexecuted instantiation: detoast.c:table_relation_nontransactional_truncate Unexecuted instantiation: toast_internals.c:table_relation_nontransactional_truncate Unexecuted instantiation: gininsert.c:table_relation_nontransactional_truncate Unexecuted instantiation: gistbuild.c:table_relation_nontransactional_truncate Unexecuted instantiation: hash.c:table_relation_nontransactional_truncate Unexecuted instantiation: heapam.c:table_relation_nontransactional_truncate Unexecuted instantiation: heapam_handler.c:table_relation_nontransactional_truncate Unexecuted instantiation: heapam_indexscan.c:table_relation_nontransactional_truncate Unexecuted instantiation: heapam_visibility.c:table_relation_nontransactional_truncate Unexecuted instantiation: heapam_xlog.c:table_relation_nontransactional_truncate Unexecuted instantiation: heaptoast.c:table_relation_nontransactional_truncate Unexecuted instantiation: hio.c:table_relation_nontransactional_truncate Unexecuted instantiation: pruneheap.c:table_relation_nontransactional_truncate Unexecuted instantiation: rewriteheap.c:table_relation_nontransactional_truncate Unexecuted instantiation: vacuumlazy.c:table_relation_nontransactional_truncate Unexecuted instantiation: genam.c:table_relation_nontransactional_truncate Unexecuted instantiation: indexam.c:table_relation_nontransactional_truncate Unexecuted instantiation: nbtdedup.c:table_relation_nontransactional_truncate Unexecuted instantiation: nbtinsert.c:table_relation_nontransactional_truncate Unexecuted instantiation: nbtpage.c:table_relation_nontransactional_truncate Unexecuted instantiation: nbtsort.c:table_relation_nontransactional_truncate Unexecuted instantiation: nbtsplitloc.c:table_relation_nontransactional_truncate Unexecuted instantiation: spginsert.c:table_relation_nontransactional_truncate Unexecuted instantiation: tableam.c:table_relation_nontransactional_truncate Unexecuted instantiation: tableamapi.c:table_relation_nontransactional_truncate Unexecuted instantiation: xact.c:table_relation_nontransactional_truncate Unexecuted instantiation: bootstrap.c:table_relation_nontransactional_truncate Unexecuted instantiation: aclchk.c:table_relation_nontransactional_truncate Unexecuted instantiation: dependency.c:table_relation_nontransactional_truncate Unexecuted instantiation: heap.c:table_relation_nontransactional_truncate Unexecuted instantiation: index.c:table_relation_nontransactional_truncate Unexecuted instantiation: indexing.c:table_relation_nontransactional_truncate Unexecuted instantiation: objectaddress.c:table_relation_nontransactional_truncate Unexecuted instantiation: pg_db_role_setting.c:table_relation_nontransactional_truncate Unexecuted instantiation: pg_publication.c:table_relation_nontransactional_truncate Unexecuted instantiation: pg_subscription.c:table_relation_nontransactional_truncate Unexecuted instantiation: toasting.c:table_relation_nontransactional_truncate Unexecuted instantiation: gram.c:table_relation_nontransactional_truncate Unexecuted instantiation: alter.c:table_relation_nontransactional_truncate Unexecuted instantiation: analyze.c:table_relation_nontransactional_truncate Unexecuted instantiation: constraint.c:table_relation_nontransactional_truncate Unexecuted instantiation: copyfrom.c:table_relation_nontransactional_truncate Unexecuted instantiation: copyfromparse.c:table_relation_nontransactional_truncate Unexecuted instantiation: copyto.c:table_relation_nontransactional_truncate Unexecuted instantiation: createas.c:table_relation_nontransactional_truncate Unexecuted instantiation: dbcommands.c:table_relation_nontransactional_truncate Unexecuted instantiation: event_trigger.c:table_relation_nontransactional_truncate Unexecuted instantiation: indexcmds.c:table_relation_nontransactional_truncate Unexecuted instantiation: matview.c:table_relation_nontransactional_truncate Unexecuted instantiation: repack.c:table_relation_nontransactional_truncate Unexecuted instantiation: tablecmds.c:table_relation_nontransactional_truncate Unexecuted instantiation: tablespace.c:table_relation_nontransactional_truncate Unexecuted instantiation: trigger.c:table_relation_nontransactional_truncate Unexecuted instantiation: typecmds.c:table_relation_nontransactional_truncate Unexecuted instantiation: vacuum.c:table_relation_nontransactional_truncate Unexecuted instantiation: execIndexing.c:table_relation_nontransactional_truncate Unexecuted instantiation: execMain.c:table_relation_nontransactional_truncate Unexecuted instantiation: execPartition.c:table_relation_nontransactional_truncate Unexecuted instantiation: execReplication.c:table_relation_nontransactional_truncate Unexecuted instantiation: execUtils.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeIndexscan.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeLockRows.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeModifyTable.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeSamplescan.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeSeqscan.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeTidrangescan.c:table_relation_nontransactional_truncate Unexecuted instantiation: nodeTidscan.c:table_relation_nontransactional_truncate Unexecuted instantiation: spi.c:table_relation_nontransactional_truncate Unexecuted instantiation: copyfuncs.c:table_relation_nontransactional_truncate Unexecuted instantiation: equalfuncs.c:table_relation_nontransactional_truncate Unexecuted instantiation: outfuncs.c:table_relation_nontransactional_truncate Unexecuted instantiation: queryjumblefuncs.c:table_relation_nontransactional_truncate Unexecuted instantiation: readfuncs.c:table_relation_nontransactional_truncate Unexecuted instantiation: plancat.c:table_relation_nontransactional_truncate Unexecuted instantiation: partbounds.c:table_relation_nontransactional_truncate Unexecuted instantiation: autovacuum.c:table_relation_nontransactional_truncate Unexecuted instantiation: datachecksum_state.c:table_relation_nontransactional_truncate Unexecuted instantiation: conflict.c:table_relation_nontransactional_truncate Unexecuted instantiation: launcher.c:table_relation_nontransactional_truncate Unexecuted instantiation: reorderbuffer.c:table_relation_nontransactional_truncate Unexecuted instantiation: worker.c:table_relation_nontransactional_truncate Unexecuted instantiation: rewriteHandler.c:table_relation_nontransactional_truncate Unexecuted instantiation: attribute_stats.c:table_relation_nontransactional_truncate Unexecuted instantiation: extended_stats_funcs.c:table_relation_nontransactional_truncate Unexecuted instantiation: relation_stats.c:table_relation_nontransactional_truncate Unexecuted instantiation: bufmgr.c:table_relation_nontransactional_truncate Unexecuted instantiation: utility.c:table_relation_nontransactional_truncate Unexecuted instantiation: ri_triggers.c:table_relation_nontransactional_truncate Unexecuted instantiation: ruleutils.c:table_relation_nontransactional_truncate Unexecuted instantiation: selfuncs.c:table_relation_nontransactional_truncate Unexecuted instantiation: tid.c:table_relation_nontransactional_truncate Unexecuted instantiation: trigfuncs.c:table_relation_nontransactional_truncate Unexecuted instantiation: tsquery_rewrite.c:table_relation_nontransactional_truncate Unexecuted instantiation: tsvector_op.c:table_relation_nontransactional_truncate Unexecuted instantiation: xml.c:table_relation_nontransactional_truncate Unexecuted instantiation: evtcache.c:table_relation_nontransactional_truncate Unexecuted instantiation: funccache.c:table_relation_nontransactional_truncate Unexecuted instantiation: relcache.c:table_relation_nontransactional_truncate Unexecuted instantiation: postinit.c:table_relation_nontransactional_truncate Unexecuted instantiation: guc_tables.c:table_relation_nontransactional_truncate Unexecuted instantiation: simple_query_fuzzer.c:table_relation_nontransactional_truncate |
1713 | | |
1714 | | /* |
1715 | | * Copy data from `rel` into the new relfilelocator `newrlocator`. The new |
1716 | | * relfilelocator may not have storage associated before this function is |
1717 | | * called. This is only supposed to be used for low level operations like |
1718 | | * changing a relation's tablespace. |
1719 | | */ |
1720 | | static inline void |
1721 | | table_relation_copy_data(Relation rel, const RelFileLocator *newrlocator) |
1722 | 0 | { |
1723 | 0 | rel->rd_tableam->relation_copy_data(rel, newrlocator); |
1724 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_copy_data Unexecuted instantiation: brin.c:table_relation_copy_data Unexecuted instantiation: detoast.c:table_relation_copy_data Unexecuted instantiation: toast_internals.c:table_relation_copy_data Unexecuted instantiation: gininsert.c:table_relation_copy_data Unexecuted instantiation: gistbuild.c:table_relation_copy_data Unexecuted instantiation: hash.c:table_relation_copy_data Unexecuted instantiation: heapam.c:table_relation_copy_data Unexecuted instantiation: heapam_handler.c:table_relation_copy_data Unexecuted instantiation: heapam_indexscan.c:table_relation_copy_data Unexecuted instantiation: heapam_visibility.c:table_relation_copy_data Unexecuted instantiation: heapam_xlog.c:table_relation_copy_data Unexecuted instantiation: heaptoast.c:table_relation_copy_data Unexecuted instantiation: hio.c:table_relation_copy_data Unexecuted instantiation: pruneheap.c:table_relation_copy_data Unexecuted instantiation: rewriteheap.c:table_relation_copy_data Unexecuted instantiation: vacuumlazy.c:table_relation_copy_data Unexecuted instantiation: genam.c:table_relation_copy_data Unexecuted instantiation: indexam.c:table_relation_copy_data Unexecuted instantiation: nbtdedup.c:table_relation_copy_data Unexecuted instantiation: nbtinsert.c:table_relation_copy_data Unexecuted instantiation: nbtpage.c:table_relation_copy_data Unexecuted instantiation: nbtsort.c:table_relation_copy_data Unexecuted instantiation: nbtsplitloc.c:table_relation_copy_data Unexecuted instantiation: spginsert.c:table_relation_copy_data Unexecuted instantiation: tableam.c:table_relation_copy_data Unexecuted instantiation: tableamapi.c:table_relation_copy_data Unexecuted instantiation: xact.c:table_relation_copy_data Unexecuted instantiation: bootstrap.c:table_relation_copy_data Unexecuted instantiation: aclchk.c:table_relation_copy_data Unexecuted instantiation: dependency.c:table_relation_copy_data Unexecuted instantiation: heap.c:table_relation_copy_data Unexecuted instantiation: index.c:table_relation_copy_data Unexecuted instantiation: indexing.c:table_relation_copy_data Unexecuted instantiation: objectaddress.c:table_relation_copy_data Unexecuted instantiation: pg_db_role_setting.c:table_relation_copy_data Unexecuted instantiation: pg_publication.c:table_relation_copy_data Unexecuted instantiation: pg_subscription.c:table_relation_copy_data Unexecuted instantiation: toasting.c:table_relation_copy_data Unexecuted instantiation: gram.c:table_relation_copy_data Unexecuted instantiation: alter.c:table_relation_copy_data Unexecuted instantiation: analyze.c:table_relation_copy_data Unexecuted instantiation: constraint.c:table_relation_copy_data Unexecuted instantiation: copyfrom.c:table_relation_copy_data Unexecuted instantiation: copyfromparse.c:table_relation_copy_data Unexecuted instantiation: copyto.c:table_relation_copy_data Unexecuted instantiation: createas.c:table_relation_copy_data Unexecuted instantiation: dbcommands.c:table_relation_copy_data Unexecuted instantiation: event_trigger.c:table_relation_copy_data Unexecuted instantiation: indexcmds.c:table_relation_copy_data Unexecuted instantiation: matview.c:table_relation_copy_data Unexecuted instantiation: repack.c:table_relation_copy_data Unexecuted instantiation: tablecmds.c:table_relation_copy_data Unexecuted instantiation: tablespace.c:table_relation_copy_data Unexecuted instantiation: trigger.c:table_relation_copy_data Unexecuted instantiation: typecmds.c:table_relation_copy_data Unexecuted instantiation: vacuum.c:table_relation_copy_data Unexecuted instantiation: execIndexing.c:table_relation_copy_data Unexecuted instantiation: execMain.c:table_relation_copy_data Unexecuted instantiation: execPartition.c:table_relation_copy_data Unexecuted instantiation: execReplication.c:table_relation_copy_data Unexecuted instantiation: execUtils.c:table_relation_copy_data Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_copy_data Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_copy_data Unexecuted instantiation: nodeIndexscan.c:table_relation_copy_data Unexecuted instantiation: nodeLockRows.c:table_relation_copy_data Unexecuted instantiation: nodeModifyTable.c:table_relation_copy_data Unexecuted instantiation: nodeSamplescan.c:table_relation_copy_data Unexecuted instantiation: nodeSeqscan.c:table_relation_copy_data Unexecuted instantiation: nodeTidrangescan.c:table_relation_copy_data Unexecuted instantiation: nodeTidscan.c:table_relation_copy_data Unexecuted instantiation: spi.c:table_relation_copy_data Unexecuted instantiation: copyfuncs.c:table_relation_copy_data Unexecuted instantiation: equalfuncs.c:table_relation_copy_data Unexecuted instantiation: outfuncs.c:table_relation_copy_data Unexecuted instantiation: queryjumblefuncs.c:table_relation_copy_data Unexecuted instantiation: readfuncs.c:table_relation_copy_data Unexecuted instantiation: plancat.c:table_relation_copy_data Unexecuted instantiation: partbounds.c:table_relation_copy_data Unexecuted instantiation: autovacuum.c:table_relation_copy_data Unexecuted instantiation: datachecksum_state.c:table_relation_copy_data Unexecuted instantiation: conflict.c:table_relation_copy_data Unexecuted instantiation: launcher.c:table_relation_copy_data Unexecuted instantiation: reorderbuffer.c:table_relation_copy_data Unexecuted instantiation: worker.c:table_relation_copy_data Unexecuted instantiation: rewriteHandler.c:table_relation_copy_data Unexecuted instantiation: attribute_stats.c:table_relation_copy_data Unexecuted instantiation: extended_stats_funcs.c:table_relation_copy_data Unexecuted instantiation: relation_stats.c:table_relation_copy_data Unexecuted instantiation: bufmgr.c:table_relation_copy_data Unexecuted instantiation: utility.c:table_relation_copy_data Unexecuted instantiation: ri_triggers.c:table_relation_copy_data Unexecuted instantiation: ruleutils.c:table_relation_copy_data Unexecuted instantiation: selfuncs.c:table_relation_copy_data Unexecuted instantiation: tid.c:table_relation_copy_data Unexecuted instantiation: trigfuncs.c:table_relation_copy_data Unexecuted instantiation: tsquery_rewrite.c:table_relation_copy_data Unexecuted instantiation: tsvector_op.c:table_relation_copy_data Unexecuted instantiation: xml.c:table_relation_copy_data Unexecuted instantiation: evtcache.c:table_relation_copy_data Unexecuted instantiation: funccache.c:table_relation_copy_data Unexecuted instantiation: relcache.c:table_relation_copy_data Unexecuted instantiation: postinit.c:table_relation_copy_data Unexecuted instantiation: guc_tables.c:table_relation_copy_data Unexecuted instantiation: simple_query_fuzzer.c:table_relation_copy_data |
1725 | | |
1726 | | /* |
1727 | | * Copy data from `OldTable` into `NewTable`, as part of a CLUSTER or VACUUM |
1728 | | * FULL. |
1729 | | * |
1730 | | * Additional Input parameters: |
1731 | | * - use_sort - if true, the table contents are sorted appropriate for |
1732 | | * `OldIndex`; if false and OldIndex is not InvalidOid, the data is copied |
1733 | | * in that index's order; if false and OldIndex is InvalidOid, no sorting is |
1734 | | * performed |
1735 | | * - OldIndex - see use_sort |
1736 | | * - OldestXmin - computed by vacuum_get_cutoffs(), even when |
1737 | | * not needed for the relation's AM |
1738 | | * - *xid_cutoff - ditto |
1739 | | * - *multi_cutoff - ditto |
1740 | | * - snapshot - if != NULL, ignore data changes done by transactions that this |
1741 | | * (MVCC) snapshot considers still in-progress or in the future. |
1742 | | * |
1743 | | * Output parameters: |
1744 | | * - *xid_cutoff - rel's new relfrozenxid value, may be invalid |
1745 | | * - *multi_cutoff - rel's new relminmxid value, may be invalid |
1746 | | * - *tups_vacuumed - stats, for logging, if appropriate for AM |
1747 | | * - *tups_recently_dead - stats, for logging, if appropriate for AM |
1748 | | */ |
1749 | | static inline void |
1750 | | table_relation_copy_for_cluster(Relation OldTable, Relation NewTable, |
1751 | | Relation OldIndex, |
1752 | | bool use_sort, |
1753 | | TransactionId OldestXmin, |
1754 | | Snapshot snapshot, |
1755 | | TransactionId *xid_cutoff, |
1756 | | MultiXactId *multi_cutoff, |
1757 | | double *num_tuples, |
1758 | | double *tups_vacuumed, |
1759 | | double *tups_recently_dead) |
1760 | 0 | { |
1761 | 0 | OldTable->rd_tableam->relation_copy_for_cluster(OldTable, NewTable, OldIndex, |
1762 | 0 | use_sort, OldestXmin, |
1763 | 0 | snapshot, |
1764 | 0 | xid_cutoff, multi_cutoff, |
1765 | 0 | num_tuples, tups_vacuumed, |
1766 | 0 | tups_recently_dead); |
1767 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_copy_for_cluster Unexecuted instantiation: brin.c:table_relation_copy_for_cluster Unexecuted instantiation: detoast.c:table_relation_copy_for_cluster Unexecuted instantiation: toast_internals.c:table_relation_copy_for_cluster Unexecuted instantiation: gininsert.c:table_relation_copy_for_cluster Unexecuted instantiation: gistbuild.c:table_relation_copy_for_cluster Unexecuted instantiation: hash.c:table_relation_copy_for_cluster Unexecuted instantiation: heapam.c:table_relation_copy_for_cluster Unexecuted instantiation: heapam_handler.c:table_relation_copy_for_cluster Unexecuted instantiation: heapam_indexscan.c:table_relation_copy_for_cluster Unexecuted instantiation: heapam_visibility.c:table_relation_copy_for_cluster Unexecuted instantiation: heapam_xlog.c:table_relation_copy_for_cluster Unexecuted instantiation: heaptoast.c:table_relation_copy_for_cluster Unexecuted instantiation: hio.c:table_relation_copy_for_cluster Unexecuted instantiation: pruneheap.c:table_relation_copy_for_cluster Unexecuted instantiation: rewriteheap.c:table_relation_copy_for_cluster Unexecuted instantiation: vacuumlazy.c:table_relation_copy_for_cluster Unexecuted instantiation: genam.c:table_relation_copy_for_cluster Unexecuted instantiation: indexam.c:table_relation_copy_for_cluster Unexecuted instantiation: nbtdedup.c:table_relation_copy_for_cluster Unexecuted instantiation: nbtinsert.c:table_relation_copy_for_cluster Unexecuted instantiation: nbtpage.c:table_relation_copy_for_cluster Unexecuted instantiation: nbtsort.c:table_relation_copy_for_cluster Unexecuted instantiation: nbtsplitloc.c:table_relation_copy_for_cluster Unexecuted instantiation: spginsert.c:table_relation_copy_for_cluster Unexecuted instantiation: tableam.c:table_relation_copy_for_cluster Unexecuted instantiation: tableamapi.c:table_relation_copy_for_cluster Unexecuted instantiation: xact.c:table_relation_copy_for_cluster Unexecuted instantiation: bootstrap.c:table_relation_copy_for_cluster Unexecuted instantiation: aclchk.c:table_relation_copy_for_cluster Unexecuted instantiation: dependency.c:table_relation_copy_for_cluster Unexecuted instantiation: heap.c:table_relation_copy_for_cluster Unexecuted instantiation: index.c:table_relation_copy_for_cluster Unexecuted instantiation: indexing.c:table_relation_copy_for_cluster Unexecuted instantiation: objectaddress.c:table_relation_copy_for_cluster Unexecuted instantiation: pg_db_role_setting.c:table_relation_copy_for_cluster Unexecuted instantiation: pg_publication.c:table_relation_copy_for_cluster Unexecuted instantiation: pg_subscription.c:table_relation_copy_for_cluster Unexecuted instantiation: toasting.c:table_relation_copy_for_cluster Unexecuted instantiation: gram.c:table_relation_copy_for_cluster Unexecuted instantiation: alter.c:table_relation_copy_for_cluster Unexecuted instantiation: analyze.c:table_relation_copy_for_cluster Unexecuted instantiation: constraint.c:table_relation_copy_for_cluster Unexecuted instantiation: copyfrom.c:table_relation_copy_for_cluster Unexecuted instantiation: copyfromparse.c:table_relation_copy_for_cluster Unexecuted instantiation: copyto.c:table_relation_copy_for_cluster Unexecuted instantiation: createas.c:table_relation_copy_for_cluster Unexecuted instantiation: dbcommands.c:table_relation_copy_for_cluster Unexecuted instantiation: event_trigger.c:table_relation_copy_for_cluster Unexecuted instantiation: indexcmds.c:table_relation_copy_for_cluster Unexecuted instantiation: matview.c:table_relation_copy_for_cluster Unexecuted instantiation: repack.c:table_relation_copy_for_cluster Unexecuted instantiation: tablecmds.c:table_relation_copy_for_cluster Unexecuted instantiation: tablespace.c:table_relation_copy_for_cluster Unexecuted instantiation: trigger.c:table_relation_copy_for_cluster Unexecuted instantiation: typecmds.c:table_relation_copy_for_cluster Unexecuted instantiation: vacuum.c:table_relation_copy_for_cluster Unexecuted instantiation: execIndexing.c:table_relation_copy_for_cluster Unexecuted instantiation: execMain.c:table_relation_copy_for_cluster Unexecuted instantiation: execPartition.c:table_relation_copy_for_cluster Unexecuted instantiation: execReplication.c:table_relation_copy_for_cluster Unexecuted instantiation: execUtils.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeIndexscan.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeLockRows.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeModifyTable.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeSamplescan.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeSeqscan.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeTidrangescan.c:table_relation_copy_for_cluster Unexecuted instantiation: nodeTidscan.c:table_relation_copy_for_cluster Unexecuted instantiation: spi.c:table_relation_copy_for_cluster Unexecuted instantiation: copyfuncs.c:table_relation_copy_for_cluster Unexecuted instantiation: equalfuncs.c:table_relation_copy_for_cluster Unexecuted instantiation: outfuncs.c:table_relation_copy_for_cluster Unexecuted instantiation: queryjumblefuncs.c:table_relation_copy_for_cluster Unexecuted instantiation: readfuncs.c:table_relation_copy_for_cluster Unexecuted instantiation: plancat.c:table_relation_copy_for_cluster Unexecuted instantiation: partbounds.c:table_relation_copy_for_cluster Unexecuted instantiation: autovacuum.c:table_relation_copy_for_cluster Unexecuted instantiation: datachecksum_state.c:table_relation_copy_for_cluster Unexecuted instantiation: conflict.c:table_relation_copy_for_cluster Unexecuted instantiation: launcher.c:table_relation_copy_for_cluster Unexecuted instantiation: reorderbuffer.c:table_relation_copy_for_cluster Unexecuted instantiation: worker.c:table_relation_copy_for_cluster Unexecuted instantiation: rewriteHandler.c:table_relation_copy_for_cluster Unexecuted instantiation: attribute_stats.c:table_relation_copy_for_cluster Unexecuted instantiation: extended_stats_funcs.c:table_relation_copy_for_cluster Unexecuted instantiation: relation_stats.c:table_relation_copy_for_cluster Unexecuted instantiation: bufmgr.c:table_relation_copy_for_cluster Unexecuted instantiation: utility.c:table_relation_copy_for_cluster Unexecuted instantiation: ri_triggers.c:table_relation_copy_for_cluster Unexecuted instantiation: ruleutils.c:table_relation_copy_for_cluster Unexecuted instantiation: selfuncs.c:table_relation_copy_for_cluster Unexecuted instantiation: tid.c:table_relation_copy_for_cluster Unexecuted instantiation: trigfuncs.c:table_relation_copy_for_cluster Unexecuted instantiation: tsquery_rewrite.c:table_relation_copy_for_cluster Unexecuted instantiation: tsvector_op.c:table_relation_copy_for_cluster Unexecuted instantiation: xml.c:table_relation_copy_for_cluster Unexecuted instantiation: evtcache.c:table_relation_copy_for_cluster Unexecuted instantiation: funccache.c:table_relation_copy_for_cluster Unexecuted instantiation: relcache.c:table_relation_copy_for_cluster Unexecuted instantiation: postinit.c:table_relation_copy_for_cluster Unexecuted instantiation: guc_tables.c:table_relation_copy_for_cluster Unexecuted instantiation: simple_query_fuzzer.c:table_relation_copy_for_cluster |
1768 | | |
1769 | | /* |
1770 | | * Perform VACUUM on the relation. The VACUUM can be triggered by a user or by |
1771 | | * autovacuum. The specific actions performed by the AM will depend heavily on |
1772 | | * the individual AM. |
1773 | | * |
1774 | | * On entry a transaction needs to already been established, and the |
1775 | | * table is locked with a ShareUpdateExclusive lock. |
1776 | | * |
1777 | | * Note that neither VACUUM FULL (and CLUSTER), nor ANALYZE go through this |
1778 | | * routine, even if (for ANALYZE) it is part of the same VACUUM command. |
1779 | | */ |
1780 | | static inline void |
1781 | | table_relation_vacuum(Relation rel, const VacuumParams *params, |
1782 | | BufferAccessStrategy bstrategy) |
1783 | 0 | { |
1784 | 0 | rel->rd_tableam->relation_vacuum(rel, params, bstrategy); |
1785 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_vacuum Unexecuted instantiation: brin.c:table_relation_vacuum Unexecuted instantiation: detoast.c:table_relation_vacuum Unexecuted instantiation: toast_internals.c:table_relation_vacuum Unexecuted instantiation: gininsert.c:table_relation_vacuum Unexecuted instantiation: gistbuild.c:table_relation_vacuum Unexecuted instantiation: hash.c:table_relation_vacuum Unexecuted instantiation: heapam.c:table_relation_vacuum Unexecuted instantiation: heapam_handler.c:table_relation_vacuum Unexecuted instantiation: heapam_indexscan.c:table_relation_vacuum Unexecuted instantiation: heapam_visibility.c:table_relation_vacuum Unexecuted instantiation: heapam_xlog.c:table_relation_vacuum Unexecuted instantiation: heaptoast.c:table_relation_vacuum Unexecuted instantiation: hio.c:table_relation_vacuum Unexecuted instantiation: pruneheap.c:table_relation_vacuum Unexecuted instantiation: rewriteheap.c:table_relation_vacuum Unexecuted instantiation: vacuumlazy.c:table_relation_vacuum Unexecuted instantiation: genam.c:table_relation_vacuum Unexecuted instantiation: indexam.c:table_relation_vacuum Unexecuted instantiation: nbtdedup.c:table_relation_vacuum Unexecuted instantiation: nbtinsert.c:table_relation_vacuum Unexecuted instantiation: nbtpage.c:table_relation_vacuum Unexecuted instantiation: nbtsort.c:table_relation_vacuum Unexecuted instantiation: nbtsplitloc.c:table_relation_vacuum Unexecuted instantiation: spginsert.c:table_relation_vacuum Unexecuted instantiation: tableam.c:table_relation_vacuum Unexecuted instantiation: tableamapi.c:table_relation_vacuum Unexecuted instantiation: xact.c:table_relation_vacuum Unexecuted instantiation: bootstrap.c:table_relation_vacuum Unexecuted instantiation: aclchk.c:table_relation_vacuum Unexecuted instantiation: dependency.c:table_relation_vacuum Unexecuted instantiation: heap.c:table_relation_vacuum Unexecuted instantiation: index.c:table_relation_vacuum Unexecuted instantiation: indexing.c:table_relation_vacuum Unexecuted instantiation: objectaddress.c:table_relation_vacuum Unexecuted instantiation: pg_db_role_setting.c:table_relation_vacuum Unexecuted instantiation: pg_publication.c:table_relation_vacuum Unexecuted instantiation: pg_subscription.c:table_relation_vacuum Unexecuted instantiation: toasting.c:table_relation_vacuum Unexecuted instantiation: gram.c:table_relation_vacuum Unexecuted instantiation: alter.c:table_relation_vacuum Unexecuted instantiation: analyze.c:table_relation_vacuum Unexecuted instantiation: constraint.c:table_relation_vacuum Unexecuted instantiation: copyfrom.c:table_relation_vacuum Unexecuted instantiation: copyfromparse.c:table_relation_vacuum Unexecuted instantiation: copyto.c:table_relation_vacuum Unexecuted instantiation: createas.c:table_relation_vacuum Unexecuted instantiation: dbcommands.c:table_relation_vacuum Unexecuted instantiation: event_trigger.c:table_relation_vacuum Unexecuted instantiation: indexcmds.c:table_relation_vacuum Unexecuted instantiation: matview.c:table_relation_vacuum Unexecuted instantiation: repack.c:table_relation_vacuum Unexecuted instantiation: tablecmds.c:table_relation_vacuum Unexecuted instantiation: tablespace.c:table_relation_vacuum Unexecuted instantiation: trigger.c:table_relation_vacuum Unexecuted instantiation: typecmds.c:table_relation_vacuum Unexecuted instantiation: vacuum.c:table_relation_vacuum Unexecuted instantiation: execIndexing.c:table_relation_vacuum Unexecuted instantiation: execMain.c:table_relation_vacuum Unexecuted instantiation: execPartition.c:table_relation_vacuum Unexecuted instantiation: execReplication.c:table_relation_vacuum Unexecuted instantiation: execUtils.c:table_relation_vacuum Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_vacuum Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_vacuum Unexecuted instantiation: nodeIndexscan.c:table_relation_vacuum Unexecuted instantiation: nodeLockRows.c:table_relation_vacuum Unexecuted instantiation: nodeModifyTable.c:table_relation_vacuum Unexecuted instantiation: nodeSamplescan.c:table_relation_vacuum Unexecuted instantiation: nodeSeqscan.c:table_relation_vacuum Unexecuted instantiation: nodeTidrangescan.c:table_relation_vacuum Unexecuted instantiation: nodeTidscan.c:table_relation_vacuum Unexecuted instantiation: spi.c:table_relation_vacuum Unexecuted instantiation: copyfuncs.c:table_relation_vacuum Unexecuted instantiation: equalfuncs.c:table_relation_vacuum Unexecuted instantiation: outfuncs.c:table_relation_vacuum Unexecuted instantiation: queryjumblefuncs.c:table_relation_vacuum Unexecuted instantiation: readfuncs.c:table_relation_vacuum Unexecuted instantiation: plancat.c:table_relation_vacuum Unexecuted instantiation: partbounds.c:table_relation_vacuum Unexecuted instantiation: autovacuum.c:table_relation_vacuum Unexecuted instantiation: datachecksum_state.c:table_relation_vacuum Unexecuted instantiation: conflict.c:table_relation_vacuum Unexecuted instantiation: launcher.c:table_relation_vacuum Unexecuted instantiation: reorderbuffer.c:table_relation_vacuum Unexecuted instantiation: worker.c:table_relation_vacuum Unexecuted instantiation: rewriteHandler.c:table_relation_vacuum Unexecuted instantiation: attribute_stats.c:table_relation_vacuum Unexecuted instantiation: extended_stats_funcs.c:table_relation_vacuum Unexecuted instantiation: relation_stats.c:table_relation_vacuum Unexecuted instantiation: bufmgr.c:table_relation_vacuum Unexecuted instantiation: utility.c:table_relation_vacuum Unexecuted instantiation: ri_triggers.c:table_relation_vacuum Unexecuted instantiation: ruleutils.c:table_relation_vacuum Unexecuted instantiation: selfuncs.c:table_relation_vacuum Unexecuted instantiation: tid.c:table_relation_vacuum Unexecuted instantiation: trigfuncs.c:table_relation_vacuum Unexecuted instantiation: tsquery_rewrite.c:table_relation_vacuum Unexecuted instantiation: tsvector_op.c:table_relation_vacuum Unexecuted instantiation: xml.c:table_relation_vacuum Unexecuted instantiation: evtcache.c:table_relation_vacuum Unexecuted instantiation: funccache.c:table_relation_vacuum Unexecuted instantiation: relcache.c:table_relation_vacuum Unexecuted instantiation: postinit.c:table_relation_vacuum Unexecuted instantiation: guc_tables.c:table_relation_vacuum Unexecuted instantiation: simple_query_fuzzer.c:table_relation_vacuum |
1786 | | |
1787 | | /* |
1788 | | * Prepare to analyze the next block in the read stream. The scan needs to |
1789 | | * have been started with table_beginscan_analyze(). Note that this routine |
1790 | | * might acquire resources like locks that are held until |
1791 | | * table_scan_analyze_next_tuple() returns false. |
1792 | | * |
1793 | | * Returns false if block is unsuitable for sampling, true otherwise. |
1794 | | */ |
1795 | | static inline bool |
1796 | | table_scan_analyze_next_block(TableScanDesc scan, ReadStream *stream) |
1797 | 0 | { |
1798 | 0 | return scan->rs_rd->rd_tableam->scan_analyze_next_block(scan, stream); |
1799 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_scan_analyze_next_block Unexecuted instantiation: brin.c:table_scan_analyze_next_block Unexecuted instantiation: detoast.c:table_scan_analyze_next_block Unexecuted instantiation: toast_internals.c:table_scan_analyze_next_block Unexecuted instantiation: gininsert.c:table_scan_analyze_next_block Unexecuted instantiation: gistbuild.c:table_scan_analyze_next_block Unexecuted instantiation: hash.c:table_scan_analyze_next_block Unexecuted instantiation: heapam.c:table_scan_analyze_next_block Unexecuted instantiation: heapam_handler.c:table_scan_analyze_next_block Unexecuted instantiation: heapam_indexscan.c:table_scan_analyze_next_block Unexecuted instantiation: heapam_visibility.c:table_scan_analyze_next_block Unexecuted instantiation: heapam_xlog.c:table_scan_analyze_next_block Unexecuted instantiation: heaptoast.c:table_scan_analyze_next_block Unexecuted instantiation: hio.c:table_scan_analyze_next_block Unexecuted instantiation: pruneheap.c:table_scan_analyze_next_block Unexecuted instantiation: rewriteheap.c:table_scan_analyze_next_block Unexecuted instantiation: vacuumlazy.c:table_scan_analyze_next_block Unexecuted instantiation: genam.c:table_scan_analyze_next_block Unexecuted instantiation: indexam.c:table_scan_analyze_next_block Unexecuted instantiation: nbtdedup.c:table_scan_analyze_next_block Unexecuted instantiation: nbtinsert.c:table_scan_analyze_next_block Unexecuted instantiation: nbtpage.c:table_scan_analyze_next_block Unexecuted instantiation: nbtsort.c:table_scan_analyze_next_block Unexecuted instantiation: nbtsplitloc.c:table_scan_analyze_next_block Unexecuted instantiation: spginsert.c:table_scan_analyze_next_block Unexecuted instantiation: tableam.c:table_scan_analyze_next_block Unexecuted instantiation: tableamapi.c:table_scan_analyze_next_block Unexecuted instantiation: xact.c:table_scan_analyze_next_block Unexecuted instantiation: bootstrap.c:table_scan_analyze_next_block Unexecuted instantiation: aclchk.c:table_scan_analyze_next_block Unexecuted instantiation: dependency.c:table_scan_analyze_next_block Unexecuted instantiation: heap.c:table_scan_analyze_next_block Unexecuted instantiation: index.c:table_scan_analyze_next_block Unexecuted instantiation: indexing.c:table_scan_analyze_next_block Unexecuted instantiation: objectaddress.c:table_scan_analyze_next_block Unexecuted instantiation: pg_db_role_setting.c:table_scan_analyze_next_block Unexecuted instantiation: pg_publication.c:table_scan_analyze_next_block Unexecuted instantiation: pg_subscription.c:table_scan_analyze_next_block Unexecuted instantiation: toasting.c:table_scan_analyze_next_block Unexecuted instantiation: gram.c:table_scan_analyze_next_block Unexecuted instantiation: alter.c:table_scan_analyze_next_block Unexecuted instantiation: analyze.c:table_scan_analyze_next_block Unexecuted instantiation: constraint.c:table_scan_analyze_next_block Unexecuted instantiation: copyfrom.c:table_scan_analyze_next_block Unexecuted instantiation: copyfromparse.c:table_scan_analyze_next_block Unexecuted instantiation: copyto.c:table_scan_analyze_next_block Unexecuted instantiation: createas.c:table_scan_analyze_next_block Unexecuted instantiation: dbcommands.c:table_scan_analyze_next_block Unexecuted instantiation: event_trigger.c:table_scan_analyze_next_block Unexecuted instantiation: indexcmds.c:table_scan_analyze_next_block Unexecuted instantiation: matview.c:table_scan_analyze_next_block Unexecuted instantiation: repack.c:table_scan_analyze_next_block Unexecuted instantiation: tablecmds.c:table_scan_analyze_next_block Unexecuted instantiation: tablespace.c:table_scan_analyze_next_block Unexecuted instantiation: trigger.c:table_scan_analyze_next_block Unexecuted instantiation: typecmds.c:table_scan_analyze_next_block Unexecuted instantiation: vacuum.c:table_scan_analyze_next_block Unexecuted instantiation: execIndexing.c:table_scan_analyze_next_block Unexecuted instantiation: execMain.c:table_scan_analyze_next_block Unexecuted instantiation: execPartition.c:table_scan_analyze_next_block Unexecuted instantiation: execReplication.c:table_scan_analyze_next_block Unexecuted instantiation: execUtils.c:table_scan_analyze_next_block Unexecuted instantiation: nodeBitmapHeapscan.c:table_scan_analyze_next_block Unexecuted instantiation: nodeIndexonlyscan.c:table_scan_analyze_next_block Unexecuted instantiation: nodeIndexscan.c:table_scan_analyze_next_block Unexecuted instantiation: nodeLockRows.c:table_scan_analyze_next_block Unexecuted instantiation: nodeModifyTable.c:table_scan_analyze_next_block Unexecuted instantiation: nodeSamplescan.c:table_scan_analyze_next_block Unexecuted instantiation: nodeSeqscan.c:table_scan_analyze_next_block Unexecuted instantiation: nodeTidrangescan.c:table_scan_analyze_next_block Unexecuted instantiation: nodeTidscan.c:table_scan_analyze_next_block Unexecuted instantiation: spi.c:table_scan_analyze_next_block Unexecuted instantiation: copyfuncs.c:table_scan_analyze_next_block Unexecuted instantiation: equalfuncs.c:table_scan_analyze_next_block Unexecuted instantiation: outfuncs.c:table_scan_analyze_next_block Unexecuted instantiation: queryjumblefuncs.c:table_scan_analyze_next_block Unexecuted instantiation: readfuncs.c:table_scan_analyze_next_block Unexecuted instantiation: plancat.c:table_scan_analyze_next_block Unexecuted instantiation: partbounds.c:table_scan_analyze_next_block Unexecuted instantiation: autovacuum.c:table_scan_analyze_next_block Unexecuted instantiation: datachecksum_state.c:table_scan_analyze_next_block Unexecuted instantiation: conflict.c:table_scan_analyze_next_block Unexecuted instantiation: launcher.c:table_scan_analyze_next_block Unexecuted instantiation: reorderbuffer.c:table_scan_analyze_next_block Unexecuted instantiation: worker.c:table_scan_analyze_next_block Unexecuted instantiation: rewriteHandler.c:table_scan_analyze_next_block Unexecuted instantiation: attribute_stats.c:table_scan_analyze_next_block Unexecuted instantiation: extended_stats_funcs.c:table_scan_analyze_next_block Unexecuted instantiation: relation_stats.c:table_scan_analyze_next_block Unexecuted instantiation: bufmgr.c:table_scan_analyze_next_block Unexecuted instantiation: utility.c:table_scan_analyze_next_block Unexecuted instantiation: ri_triggers.c:table_scan_analyze_next_block Unexecuted instantiation: ruleutils.c:table_scan_analyze_next_block Unexecuted instantiation: selfuncs.c:table_scan_analyze_next_block Unexecuted instantiation: tid.c:table_scan_analyze_next_block Unexecuted instantiation: trigfuncs.c:table_scan_analyze_next_block Unexecuted instantiation: tsquery_rewrite.c:table_scan_analyze_next_block Unexecuted instantiation: tsvector_op.c:table_scan_analyze_next_block Unexecuted instantiation: xml.c:table_scan_analyze_next_block Unexecuted instantiation: evtcache.c:table_scan_analyze_next_block Unexecuted instantiation: funccache.c:table_scan_analyze_next_block Unexecuted instantiation: relcache.c:table_scan_analyze_next_block Unexecuted instantiation: postinit.c:table_scan_analyze_next_block Unexecuted instantiation: guc_tables.c:table_scan_analyze_next_block Unexecuted instantiation: simple_query_fuzzer.c:table_scan_analyze_next_block |
1800 | | |
1801 | | /* |
1802 | | * Iterate over tuples in the block selected with |
1803 | | * table_scan_analyze_next_block() (which needs to have returned true, and |
1804 | | * this routine may not have returned false for the same block before). If a |
1805 | | * tuple that's suitable for sampling is found, true is returned and a tuple |
1806 | | * is stored in `slot`. |
1807 | | * |
1808 | | * *liverows and *deadrows are incremented according to the encountered |
1809 | | * tuples. |
1810 | | */ |
1811 | | static inline bool |
1812 | | table_scan_analyze_next_tuple(TableScanDesc scan, |
1813 | | double *liverows, double *deadrows, |
1814 | | TupleTableSlot *slot) |
1815 | 0 | { |
1816 | 0 | return scan->rs_rd->rd_tableam->scan_analyze_next_tuple(scan, |
1817 | 0 | liverows, deadrows, |
1818 | 0 | slot); |
1819 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_scan_analyze_next_tuple Unexecuted instantiation: brin.c:table_scan_analyze_next_tuple Unexecuted instantiation: detoast.c:table_scan_analyze_next_tuple Unexecuted instantiation: toast_internals.c:table_scan_analyze_next_tuple Unexecuted instantiation: gininsert.c:table_scan_analyze_next_tuple Unexecuted instantiation: gistbuild.c:table_scan_analyze_next_tuple Unexecuted instantiation: hash.c:table_scan_analyze_next_tuple Unexecuted instantiation: heapam.c:table_scan_analyze_next_tuple Unexecuted instantiation: heapam_handler.c:table_scan_analyze_next_tuple Unexecuted instantiation: heapam_indexscan.c:table_scan_analyze_next_tuple Unexecuted instantiation: heapam_visibility.c:table_scan_analyze_next_tuple Unexecuted instantiation: heapam_xlog.c:table_scan_analyze_next_tuple Unexecuted instantiation: heaptoast.c:table_scan_analyze_next_tuple Unexecuted instantiation: hio.c:table_scan_analyze_next_tuple Unexecuted instantiation: pruneheap.c:table_scan_analyze_next_tuple Unexecuted instantiation: rewriteheap.c:table_scan_analyze_next_tuple Unexecuted instantiation: vacuumlazy.c:table_scan_analyze_next_tuple Unexecuted instantiation: genam.c:table_scan_analyze_next_tuple Unexecuted instantiation: indexam.c:table_scan_analyze_next_tuple Unexecuted instantiation: nbtdedup.c:table_scan_analyze_next_tuple Unexecuted instantiation: nbtinsert.c:table_scan_analyze_next_tuple Unexecuted instantiation: nbtpage.c:table_scan_analyze_next_tuple Unexecuted instantiation: nbtsort.c:table_scan_analyze_next_tuple Unexecuted instantiation: nbtsplitloc.c:table_scan_analyze_next_tuple Unexecuted instantiation: spginsert.c:table_scan_analyze_next_tuple Unexecuted instantiation: tableam.c:table_scan_analyze_next_tuple Unexecuted instantiation: tableamapi.c:table_scan_analyze_next_tuple Unexecuted instantiation: xact.c:table_scan_analyze_next_tuple Unexecuted instantiation: bootstrap.c:table_scan_analyze_next_tuple Unexecuted instantiation: aclchk.c:table_scan_analyze_next_tuple Unexecuted instantiation: dependency.c:table_scan_analyze_next_tuple Unexecuted instantiation: heap.c:table_scan_analyze_next_tuple Unexecuted instantiation: index.c:table_scan_analyze_next_tuple Unexecuted instantiation: indexing.c:table_scan_analyze_next_tuple Unexecuted instantiation: objectaddress.c:table_scan_analyze_next_tuple Unexecuted instantiation: pg_db_role_setting.c:table_scan_analyze_next_tuple Unexecuted instantiation: pg_publication.c:table_scan_analyze_next_tuple Unexecuted instantiation: pg_subscription.c:table_scan_analyze_next_tuple Unexecuted instantiation: toasting.c:table_scan_analyze_next_tuple Unexecuted instantiation: gram.c:table_scan_analyze_next_tuple Unexecuted instantiation: alter.c:table_scan_analyze_next_tuple Unexecuted instantiation: analyze.c:table_scan_analyze_next_tuple Unexecuted instantiation: constraint.c:table_scan_analyze_next_tuple Unexecuted instantiation: copyfrom.c:table_scan_analyze_next_tuple Unexecuted instantiation: copyfromparse.c:table_scan_analyze_next_tuple Unexecuted instantiation: copyto.c:table_scan_analyze_next_tuple Unexecuted instantiation: createas.c:table_scan_analyze_next_tuple Unexecuted instantiation: dbcommands.c:table_scan_analyze_next_tuple Unexecuted instantiation: event_trigger.c:table_scan_analyze_next_tuple Unexecuted instantiation: indexcmds.c:table_scan_analyze_next_tuple Unexecuted instantiation: matview.c:table_scan_analyze_next_tuple Unexecuted instantiation: repack.c:table_scan_analyze_next_tuple Unexecuted instantiation: tablecmds.c:table_scan_analyze_next_tuple Unexecuted instantiation: tablespace.c:table_scan_analyze_next_tuple Unexecuted instantiation: trigger.c:table_scan_analyze_next_tuple Unexecuted instantiation: typecmds.c:table_scan_analyze_next_tuple Unexecuted instantiation: vacuum.c:table_scan_analyze_next_tuple Unexecuted instantiation: execIndexing.c:table_scan_analyze_next_tuple Unexecuted instantiation: execMain.c:table_scan_analyze_next_tuple Unexecuted instantiation: execPartition.c:table_scan_analyze_next_tuple Unexecuted instantiation: execReplication.c:table_scan_analyze_next_tuple Unexecuted instantiation: execUtils.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeBitmapHeapscan.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeIndexonlyscan.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeIndexscan.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeLockRows.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeModifyTable.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeSamplescan.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeSeqscan.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeTidrangescan.c:table_scan_analyze_next_tuple Unexecuted instantiation: nodeTidscan.c:table_scan_analyze_next_tuple Unexecuted instantiation: spi.c:table_scan_analyze_next_tuple Unexecuted instantiation: copyfuncs.c:table_scan_analyze_next_tuple Unexecuted instantiation: equalfuncs.c:table_scan_analyze_next_tuple Unexecuted instantiation: outfuncs.c:table_scan_analyze_next_tuple Unexecuted instantiation: queryjumblefuncs.c:table_scan_analyze_next_tuple Unexecuted instantiation: readfuncs.c:table_scan_analyze_next_tuple Unexecuted instantiation: plancat.c:table_scan_analyze_next_tuple Unexecuted instantiation: partbounds.c:table_scan_analyze_next_tuple Unexecuted instantiation: autovacuum.c:table_scan_analyze_next_tuple Unexecuted instantiation: datachecksum_state.c:table_scan_analyze_next_tuple Unexecuted instantiation: conflict.c:table_scan_analyze_next_tuple Unexecuted instantiation: launcher.c:table_scan_analyze_next_tuple Unexecuted instantiation: reorderbuffer.c:table_scan_analyze_next_tuple Unexecuted instantiation: worker.c:table_scan_analyze_next_tuple Unexecuted instantiation: rewriteHandler.c:table_scan_analyze_next_tuple Unexecuted instantiation: attribute_stats.c:table_scan_analyze_next_tuple Unexecuted instantiation: extended_stats_funcs.c:table_scan_analyze_next_tuple Unexecuted instantiation: relation_stats.c:table_scan_analyze_next_tuple Unexecuted instantiation: bufmgr.c:table_scan_analyze_next_tuple Unexecuted instantiation: utility.c:table_scan_analyze_next_tuple Unexecuted instantiation: ri_triggers.c:table_scan_analyze_next_tuple Unexecuted instantiation: ruleutils.c:table_scan_analyze_next_tuple Unexecuted instantiation: selfuncs.c:table_scan_analyze_next_tuple Unexecuted instantiation: tid.c:table_scan_analyze_next_tuple Unexecuted instantiation: trigfuncs.c:table_scan_analyze_next_tuple Unexecuted instantiation: tsquery_rewrite.c:table_scan_analyze_next_tuple Unexecuted instantiation: tsvector_op.c:table_scan_analyze_next_tuple Unexecuted instantiation: xml.c:table_scan_analyze_next_tuple Unexecuted instantiation: evtcache.c:table_scan_analyze_next_tuple Unexecuted instantiation: funccache.c:table_scan_analyze_next_tuple Unexecuted instantiation: relcache.c:table_scan_analyze_next_tuple Unexecuted instantiation: postinit.c:table_scan_analyze_next_tuple Unexecuted instantiation: guc_tables.c:table_scan_analyze_next_tuple Unexecuted instantiation: simple_query_fuzzer.c:table_scan_analyze_next_tuple |
1820 | | |
1821 | | /* |
1822 | | * table_index_build_scan - scan the table to find tuples to be indexed |
1823 | | * |
1824 | | * This is called back from an access-method-specific index build procedure |
1825 | | * after the AM has done whatever setup it needs. The parent table relation |
1826 | | * is scanned to find tuples that should be entered into the index. Each |
1827 | | * such tuple is passed to the AM's callback routine, which does the right |
1828 | | * things to add it to the new index. After we return, the AM's index |
1829 | | * build procedure does whatever cleanup it needs. |
1830 | | * |
1831 | | * The total count of live tuples is returned. This is for updating pg_class |
1832 | | * statistics. (It's annoying not to be able to do that here, but we want to |
1833 | | * merge that update with others; see index_update_stats.) Note that the |
1834 | | * index AM itself must keep track of the number of index tuples; we don't do |
1835 | | * so here because the AM might reject some of the tuples for its own reasons, |
1836 | | * such as being unable to store NULLs. |
1837 | | * |
1838 | | * If 'progress', the PROGRESS_SCAN_BLOCKS_TOTAL counter is updated when |
1839 | | * starting the scan, and PROGRESS_SCAN_BLOCKS_DONE is updated as we go along. |
1840 | | * |
1841 | | * A side effect is to set indexInfo->ii_BrokenHotChain to true if we detect |
1842 | | * any potentially broken HOT chains. Currently, we set this if there are any |
1843 | | * RECENTLY_DEAD or DELETE_IN_PROGRESS entries in a HOT chain, without trying |
1844 | | * very hard to detect whether they're really incompatible with the chain tip. |
1845 | | * This only really makes sense for heap AM, it might need to be generalized |
1846 | | * for other AMs later. |
1847 | | */ |
1848 | | static inline double |
1849 | | table_index_build_scan(Relation table_rel, |
1850 | | Relation index_rel, |
1851 | | IndexInfo *index_info, |
1852 | | bool allow_sync, |
1853 | | bool progress, |
1854 | | IndexBuildCallback callback, |
1855 | | void *callback_state, |
1856 | | TableScanDesc scan) |
1857 | 0 | { |
1858 | 0 | return table_rel->rd_tableam->index_build_range_scan(table_rel, |
1859 | 0 | index_rel, |
1860 | 0 | index_info, |
1861 | 0 | allow_sync, |
1862 | 0 | false, |
1863 | 0 | progress, |
1864 | 0 | 0, |
1865 | 0 | InvalidBlockNumber, |
1866 | 0 | callback, |
1867 | 0 | callback_state, |
1868 | 0 | scan); |
1869 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_build_scan Unexecuted instantiation: brin.c:table_index_build_scan Unexecuted instantiation: detoast.c:table_index_build_scan Unexecuted instantiation: toast_internals.c:table_index_build_scan Unexecuted instantiation: gininsert.c:table_index_build_scan Unexecuted instantiation: gistbuild.c:table_index_build_scan Unexecuted instantiation: hash.c:table_index_build_scan Unexecuted instantiation: heapam.c:table_index_build_scan Unexecuted instantiation: heapam_handler.c:table_index_build_scan Unexecuted instantiation: heapam_indexscan.c:table_index_build_scan Unexecuted instantiation: heapam_visibility.c:table_index_build_scan Unexecuted instantiation: heapam_xlog.c:table_index_build_scan Unexecuted instantiation: heaptoast.c:table_index_build_scan Unexecuted instantiation: hio.c:table_index_build_scan Unexecuted instantiation: pruneheap.c:table_index_build_scan Unexecuted instantiation: rewriteheap.c:table_index_build_scan Unexecuted instantiation: vacuumlazy.c:table_index_build_scan Unexecuted instantiation: genam.c:table_index_build_scan Unexecuted instantiation: indexam.c:table_index_build_scan Unexecuted instantiation: nbtdedup.c:table_index_build_scan Unexecuted instantiation: nbtinsert.c:table_index_build_scan Unexecuted instantiation: nbtpage.c:table_index_build_scan Unexecuted instantiation: nbtsort.c:table_index_build_scan Unexecuted instantiation: nbtsplitloc.c:table_index_build_scan Unexecuted instantiation: spginsert.c:table_index_build_scan Unexecuted instantiation: tableam.c:table_index_build_scan Unexecuted instantiation: tableamapi.c:table_index_build_scan Unexecuted instantiation: xact.c:table_index_build_scan Unexecuted instantiation: bootstrap.c:table_index_build_scan Unexecuted instantiation: aclchk.c:table_index_build_scan Unexecuted instantiation: dependency.c:table_index_build_scan Unexecuted instantiation: heap.c:table_index_build_scan Unexecuted instantiation: index.c:table_index_build_scan Unexecuted instantiation: indexing.c:table_index_build_scan Unexecuted instantiation: objectaddress.c:table_index_build_scan Unexecuted instantiation: pg_db_role_setting.c:table_index_build_scan Unexecuted instantiation: pg_publication.c:table_index_build_scan Unexecuted instantiation: pg_subscription.c:table_index_build_scan Unexecuted instantiation: toasting.c:table_index_build_scan Unexecuted instantiation: gram.c:table_index_build_scan Unexecuted instantiation: alter.c:table_index_build_scan Unexecuted instantiation: analyze.c:table_index_build_scan Unexecuted instantiation: constraint.c:table_index_build_scan Unexecuted instantiation: copyfrom.c:table_index_build_scan Unexecuted instantiation: copyfromparse.c:table_index_build_scan Unexecuted instantiation: copyto.c:table_index_build_scan Unexecuted instantiation: createas.c:table_index_build_scan Unexecuted instantiation: dbcommands.c:table_index_build_scan Unexecuted instantiation: event_trigger.c:table_index_build_scan Unexecuted instantiation: indexcmds.c:table_index_build_scan Unexecuted instantiation: matview.c:table_index_build_scan Unexecuted instantiation: repack.c:table_index_build_scan Unexecuted instantiation: tablecmds.c:table_index_build_scan Unexecuted instantiation: tablespace.c:table_index_build_scan Unexecuted instantiation: trigger.c:table_index_build_scan Unexecuted instantiation: typecmds.c:table_index_build_scan Unexecuted instantiation: vacuum.c:table_index_build_scan Unexecuted instantiation: execIndexing.c:table_index_build_scan Unexecuted instantiation: execMain.c:table_index_build_scan Unexecuted instantiation: execPartition.c:table_index_build_scan Unexecuted instantiation: execReplication.c:table_index_build_scan Unexecuted instantiation: execUtils.c:table_index_build_scan Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_build_scan Unexecuted instantiation: nodeIndexonlyscan.c:table_index_build_scan Unexecuted instantiation: nodeIndexscan.c:table_index_build_scan Unexecuted instantiation: nodeLockRows.c:table_index_build_scan Unexecuted instantiation: nodeModifyTable.c:table_index_build_scan Unexecuted instantiation: nodeSamplescan.c:table_index_build_scan Unexecuted instantiation: nodeSeqscan.c:table_index_build_scan Unexecuted instantiation: nodeTidrangescan.c:table_index_build_scan Unexecuted instantiation: nodeTidscan.c:table_index_build_scan Unexecuted instantiation: spi.c:table_index_build_scan Unexecuted instantiation: copyfuncs.c:table_index_build_scan Unexecuted instantiation: equalfuncs.c:table_index_build_scan Unexecuted instantiation: outfuncs.c:table_index_build_scan Unexecuted instantiation: queryjumblefuncs.c:table_index_build_scan Unexecuted instantiation: readfuncs.c:table_index_build_scan Unexecuted instantiation: plancat.c:table_index_build_scan Unexecuted instantiation: partbounds.c:table_index_build_scan Unexecuted instantiation: autovacuum.c:table_index_build_scan Unexecuted instantiation: datachecksum_state.c:table_index_build_scan Unexecuted instantiation: conflict.c:table_index_build_scan Unexecuted instantiation: launcher.c:table_index_build_scan Unexecuted instantiation: reorderbuffer.c:table_index_build_scan Unexecuted instantiation: worker.c:table_index_build_scan Unexecuted instantiation: rewriteHandler.c:table_index_build_scan Unexecuted instantiation: attribute_stats.c:table_index_build_scan Unexecuted instantiation: extended_stats_funcs.c:table_index_build_scan Unexecuted instantiation: relation_stats.c:table_index_build_scan Unexecuted instantiation: bufmgr.c:table_index_build_scan Unexecuted instantiation: utility.c:table_index_build_scan Unexecuted instantiation: ri_triggers.c:table_index_build_scan Unexecuted instantiation: ruleutils.c:table_index_build_scan Unexecuted instantiation: selfuncs.c:table_index_build_scan Unexecuted instantiation: tid.c:table_index_build_scan Unexecuted instantiation: trigfuncs.c:table_index_build_scan Unexecuted instantiation: tsquery_rewrite.c:table_index_build_scan Unexecuted instantiation: tsvector_op.c:table_index_build_scan Unexecuted instantiation: xml.c:table_index_build_scan Unexecuted instantiation: evtcache.c:table_index_build_scan Unexecuted instantiation: funccache.c:table_index_build_scan Unexecuted instantiation: relcache.c:table_index_build_scan Unexecuted instantiation: postinit.c:table_index_build_scan Unexecuted instantiation: guc_tables.c:table_index_build_scan Unexecuted instantiation: simple_query_fuzzer.c:table_index_build_scan |
1870 | | |
1871 | | /* |
1872 | | * As table_index_build_scan(), except that instead of scanning the complete |
1873 | | * table, only the given number of blocks are scanned. Scan to end-of-rel can |
1874 | | * be signaled by passing InvalidBlockNumber as numblocks. Note that |
1875 | | * restricting the range to scan cannot be done when requesting syncscan. |
1876 | | * |
1877 | | * When "anyvisible" mode is requested, all tuples visible to any transaction |
1878 | | * are indexed and counted as live, including those inserted or deleted by |
1879 | | * transactions that are still in progress. |
1880 | | */ |
1881 | | static inline double |
1882 | | table_index_build_range_scan(Relation table_rel, |
1883 | | Relation index_rel, |
1884 | | IndexInfo *index_info, |
1885 | | bool allow_sync, |
1886 | | bool anyvisible, |
1887 | | bool progress, |
1888 | | BlockNumber start_blockno, |
1889 | | BlockNumber numblocks, |
1890 | | IndexBuildCallback callback, |
1891 | | void *callback_state, |
1892 | | TableScanDesc scan) |
1893 | 0 | { |
1894 | 0 | return table_rel->rd_tableam->index_build_range_scan(table_rel, |
1895 | 0 | index_rel, |
1896 | 0 | index_info, |
1897 | 0 | allow_sync, |
1898 | 0 | anyvisible, |
1899 | 0 | progress, |
1900 | 0 | start_blockno, |
1901 | 0 | numblocks, |
1902 | 0 | callback, |
1903 | 0 | callback_state, |
1904 | 0 | scan); |
1905 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_build_range_scan Unexecuted instantiation: brin.c:table_index_build_range_scan Unexecuted instantiation: detoast.c:table_index_build_range_scan Unexecuted instantiation: toast_internals.c:table_index_build_range_scan Unexecuted instantiation: gininsert.c:table_index_build_range_scan Unexecuted instantiation: gistbuild.c:table_index_build_range_scan Unexecuted instantiation: hash.c:table_index_build_range_scan Unexecuted instantiation: heapam.c:table_index_build_range_scan Unexecuted instantiation: heapam_handler.c:table_index_build_range_scan Unexecuted instantiation: heapam_indexscan.c:table_index_build_range_scan Unexecuted instantiation: heapam_visibility.c:table_index_build_range_scan Unexecuted instantiation: heapam_xlog.c:table_index_build_range_scan Unexecuted instantiation: heaptoast.c:table_index_build_range_scan Unexecuted instantiation: hio.c:table_index_build_range_scan Unexecuted instantiation: pruneheap.c:table_index_build_range_scan Unexecuted instantiation: rewriteheap.c:table_index_build_range_scan Unexecuted instantiation: vacuumlazy.c:table_index_build_range_scan Unexecuted instantiation: genam.c:table_index_build_range_scan Unexecuted instantiation: indexam.c:table_index_build_range_scan Unexecuted instantiation: nbtdedup.c:table_index_build_range_scan Unexecuted instantiation: nbtinsert.c:table_index_build_range_scan Unexecuted instantiation: nbtpage.c:table_index_build_range_scan Unexecuted instantiation: nbtsort.c:table_index_build_range_scan Unexecuted instantiation: nbtsplitloc.c:table_index_build_range_scan Unexecuted instantiation: spginsert.c:table_index_build_range_scan Unexecuted instantiation: tableam.c:table_index_build_range_scan Unexecuted instantiation: tableamapi.c:table_index_build_range_scan Unexecuted instantiation: xact.c:table_index_build_range_scan Unexecuted instantiation: bootstrap.c:table_index_build_range_scan Unexecuted instantiation: aclchk.c:table_index_build_range_scan Unexecuted instantiation: dependency.c:table_index_build_range_scan Unexecuted instantiation: heap.c:table_index_build_range_scan Unexecuted instantiation: index.c:table_index_build_range_scan Unexecuted instantiation: indexing.c:table_index_build_range_scan Unexecuted instantiation: objectaddress.c:table_index_build_range_scan Unexecuted instantiation: pg_db_role_setting.c:table_index_build_range_scan Unexecuted instantiation: pg_publication.c:table_index_build_range_scan Unexecuted instantiation: pg_subscription.c:table_index_build_range_scan Unexecuted instantiation: toasting.c:table_index_build_range_scan Unexecuted instantiation: gram.c:table_index_build_range_scan Unexecuted instantiation: alter.c:table_index_build_range_scan Unexecuted instantiation: analyze.c:table_index_build_range_scan Unexecuted instantiation: constraint.c:table_index_build_range_scan Unexecuted instantiation: copyfrom.c:table_index_build_range_scan Unexecuted instantiation: copyfromparse.c:table_index_build_range_scan Unexecuted instantiation: copyto.c:table_index_build_range_scan Unexecuted instantiation: createas.c:table_index_build_range_scan Unexecuted instantiation: dbcommands.c:table_index_build_range_scan Unexecuted instantiation: event_trigger.c:table_index_build_range_scan Unexecuted instantiation: indexcmds.c:table_index_build_range_scan Unexecuted instantiation: matview.c:table_index_build_range_scan Unexecuted instantiation: repack.c:table_index_build_range_scan Unexecuted instantiation: tablecmds.c:table_index_build_range_scan Unexecuted instantiation: tablespace.c:table_index_build_range_scan Unexecuted instantiation: trigger.c:table_index_build_range_scan Unexecuted instantiation: typecmds.c:table_index_build_range_scan Unexecuted instantiation: vacuum.c:table_index_build_range_scan Unexecuted instantiation: execIndexing.c:table_index_build_range_scan Unexecuted instantiation: execMain.c:table_index_build_range_scan Unexecuted instantiation: execPartition.c:table_index_build_range_scan Unexecuted instantiation: execReplication.c:table_index_build_range_scan Unexecuted instantiation: execUtils.c:table_index_build_range_scan Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_build_range_scan Unexecuted instantiation: nodeIndexonlyscan.c:table_index_build_range_scan Unexecuted instantiation: nodeIndexscan.c:table_index_build_range_scan Unexecuted instantiation: nodeLockRows.c:table_index_build_range_scan Unexecuted instantiation: nodeModifyTable.c:table_index_build_range_scan Unexecuted instantiation: nodeSamplescan.c:table_index_build_range_scan Unexecuted instantiation: nodeSeqscan.c:table_index_build_range_scan Unexecuted instantiation: nodeTidrangescan.c:table_index_build_range_scan Unexecuted instantiation: nodeTidscan.c:table_index_build_range_scan Unexecuted instantiation: spi.c:table_index_build_range_scan Unexecuted instantiation: copyfuncs.c:table_index_build_range_scan Unexecuted instantiation: equalfuncs.c:table_index_build_range_scan Unexecuted instantiation: outfuncs.c:table_index_build_range_scan Unexecuted instantiation: queryjumblefuncs.c:table_index_build_range_scan Unexecuted instantiation: readfuncs.c:table_index_build_range_scan Unexecuted instantiation: plancat.c:table_index_build_range_scan Unexecuted instantiation: partbounds.c:table_index_build_range_scan Unexecuted instantiation: autovacuum.c:table_index_build_range_scan Unexecuted instantiation: datachecksum_state.c:table_index_build_range_scan Unexecuted instantiation: conflict.c:table_index_build_range_scan Unexecuted instantiation: launcher.c:table_index_build_range_scan Unexecuted instantiation: reorderbuffer.c:table_index_build_range_scan Unexecuted instantiation: worker.c:table_index_build_range_scan Unexecuted instantiation: rewriteHandler.c:table_index_build_range_scan Unexecuted instantiation: attribute_stats.c:table_index_build_range_scan Unexecuted instantiation: extended_stats_funcs.c:table_index_build_range_scan Unexecuted instantiation: relation_stats.c:table_index_build_range_scan Unexecuted instantiation: bufmgr.c:table_index_build_range_scan Unexecuted instantiation: utility.c:table_index_build_range_scan Unexecuted instantiation: ri_triggers.c:table_index_build_range_scan Unexecuted instantiation: ruleutils.c:table_index_build_range_scan Unexecuted instantiation: selfuncs.c:table_index_build_range_scan Unexecuted instantiation: tid.c:table_index_build_range_scan Unexecuted instantiation: trigfuncs.c:table_index_build_range_scan Unexecuted instantiation: tsquery_rewrite.c:table_index_build_range_scan Unexecuted instantiation: tsvector_op.c:table_index_build_range_scan Unexecuted instantiation: xml.c:table_index_build_range_scan Unexecuted instantiation: evtcache.c:table_index_build_range_scan Unexecuted instantiation: funccache.c:table_index_build_range_scan Unexecuted instantiation: relcache.c:table_index_build_range_scan Unexecuted instantiation: postinit.c:table_index_build_range_scan Unexecuted instantiation: guc_tables.c:table_index_build_range_scan Unexecuted instantiation: simple_query_fuzzer.c:table_index_build_range_scan |
1906 | | |
1907 | | /* |
1908 | | * table_index_validate_scan - second table scan for concurrent index build |
1909 | | * |
1910 | | * See validate_index() for an explanation. |
1911 | | */ |
1912 | | static inline void |
1913 | | table_index_validate_scan(Relation table_rel, |
1914 | | Relation index_rel, |
1915 | | IndexInfo *index_info, |
1916 | | Snapshot snapshot, |
1917 | | ValidateIndexState *state) |
1918 | 0 | { |
1919 | 0 | table_rel->rd_tableam->index_validate_scan(table_rel, |
1920 | 0 | index_rel, |
1921 | 0 | index_info, |
1922 | 0 | snapshot, |
1923 | 0 | state); |
1924 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_index_validate_scan Unexecuted instantiation: brin.c:table_index_validate_scan Unexecuted instantiation: detoast.c:table_index_validate_scan Unexecuted instantiation: toast_internals.c:table_index_validate_scan Unexecuted instantiation: gininsert.c:table_index_validate_scan Unexecuted instantiation: gistbuild.c:table_index_validate_scan Unexecuted instantiation: hash.c:table_index_validate_scan Unexecuted instantiation: heapam.c:table_index_validate_scan Unexecuted instantiation: heapam_handler.c:table_index_validate_scan Unexecuted instantiation: heapam_indexscan.c:table_index_validate_scan Unexecuted instantiation: heapam_visibility.c:table_index_validate_scan Unexecuted instantiation: heapam_xlog.c:table_index_validate_scan Unexecuted instantiation: heaptoast.c:table_index_validate_scan Unexecuted instantiation: hio.c:table_index_validate_scan Unexecuted instantiation: pruneheap.c:table_index_validate_scan Unexecuted instantiation: rewriteheap.c:table_index_validate_scan Unexecuted instantiation: vacuumlazy.c:table_index_validate_scan Unexecuted instantiation: genam.c:table_index_validate_scan Unexecuted instantiation: indexam.c:table_index_validate_scan Unexecuted instantiation: nbtdedup.c:table_index_validate_scan Unexecuted instantiation: nbtinsert.c:table_index_validate_scan Unexecuted instantiation: nbtpage.c:table_index_validate_scan Unexecuted instantiation: nbtsort.c:table_index_validate_scan Unexecuted instantiation: nbtsplitloc.c:table_index_validate_scan Unexecuted instantiation: spginsert.c:table_index_validate_scan Unexecuted instantiation: tableam.c:table_index_validate_scan Unexecuted instantiation: tableamapi.c:table_index_validate_scan Unexecuted instantiation: xact.c:table_index_validate_scan Unexecuted instantiation: bootstrap.c:table_index_validate_scan Unexecuted instantiation: aclchk.c:table_index_validate_scan Unexecuted instantiation: dependency.c:table_index_validate_scan Unexecuted instantiation: heap.c:table_index_validate_scan Unexecuted instantiation: index.c:table_index_validate_scan Unexecuted instantiation: indexing.c:table_index_validate_scan Unexecuted instantiation: objectaddress.c:table_index_validate_scan Unexecuted instantiation: pg_db_role_setting.c:table_index_validate_scan Unexecuted instantiation: pg_publication.c:table_index_validate_scan Unexecuted instantiation: pg_subscription.c:table_index_validate_scan Unexecuted instantiation: toasting.c:table_index_validate_scan Unexecuted instantiation: gram.c:table_index_validate_scan Unexecuted instantiation: alter.c:table_index_validate_scan Unexecuted instantiation: analyze.c:table_index_validate_scan Unexecuted instantiation: constraint.c:table_index_validate_scan Unexecuted instantiation: copyfrom.c:table_index_validate_scan Unexecuted instantiation: copyfromparse.c:table_index_validate_scan Unexecuted instantiation: copyto.c:table_index_validate_scan Unexecuted instantiation: createas.c:table_index_validate_scan Unexecuted instantiation: dbcommands.c:table_index_validate_scan Unexecuted instantiation: event_trigger.c:table_index_validate_scan Unexecuted instantiation: indexcmds.c:table_index_validate_scan Unexecuted instantiation: matview.c:table_index_validate_scan Unexecuted instantiation: repack.c:table_index_validate_scan Unexecuted instantiation: tablecmds.c:table_index_validate_scan Unexecuted instantiation: tablespace.c:table_index_validate_scan Unexecuted instantiation: trigger.c:table_index_validate_scan Unexecuted instantiation: typecmds.c:table_index_validate_scan Unexecuted instantiation: vacuum.c:table_index_validate_scan Unexecuted instantiation: execIndexing.c:table_index_validate_scan Unexecuted instantiation: execMain.c:table_index_validate_scan Unexecuted instantiation: execPartition.c:table_index_validate_scan Unexecuted instantiation: execReplication.c:table_index_validate_scan Unexecuted instantiation: execUtils.c:table_index_validate_scan Unexecuted instantiation: nodeBitmapHeapscan.c:table_index_validate_scan Unexecuted instantiation: nodeIndexonlyscan.c:table_index_validate_scan Unexecuted instantiation: nodeIndexscan.c:table_index_validate_scan Unexecuted instantiation: nodeLockRows.c:table_index_validate_scan Unexecuted instantiation: nodeModifyTable.c:table_index_validate_scan Unexecuted instantiation: nodeSamplescan.c:table_index_validate_scan Unexecuted instantiation: nodeSeqscan.c:table_index_validate_scan Unexecuted instantiation: nodeTidrangescan.c:table_index_validate_scan Unexecuted instantiation: nodeTidscan.c:table_index_validate_scan Unexecuted instantiation: spi.c:table_index_validate_scan Unexecuted instantiation: copyfuncs.c:table_index_validate_scan Unexecuted instantiation: equalfuncs.c:table_index_validate_scan Unexecuted instantiation: outfuncs.c:table_index_validate_scan Unexecuted instantiation: queryjumblefuncs.c:table_index_validate_scan Unexecuted instantiation: readfuncs.c:table_index_validate_scan Unexecuted instantiation: plancat.c:table_index_validate_scan Unexecuted instantiation: partbounds.c:table_index_validate_scan Unexecuted instantiation: autovacuum.c:table_index_validate_scan Unexecuted instantiation: datachecksum_state.c:table_index_validate_scan Unexecuted instantiation: conflict.c:table_index_validate_scan Unexecuted instantiation: launcher.c:table_index_validate_scan Unexecuted instantiation: reorderbuffer.c:table_index_validate_scan Unexecuted instantiation: worker.c:table_index_validate_scan Unexecuted instantiation: rewriteHandler.c:table_index_validate_scan Unexecuted instantiation: attribute_stats.c:table_index_validate_scan Unexecuted instantiation: extended_stats_funcs.c:table_index_validate_scan Unexecuted instantiation: relation_stats.c:table_index_validate_scan Unexecuted instantiation: bufmgr.c:table_index_validate_scan Unexecuted instantiation: utility.c:table_index_validate_scan Unexecuted instantiation: ri_triggers.c:table_index_validate_scan Unexecuted instantiation: ruleutils.c:table_index_validate_scan Unexecuted instantiation: selfuncs.c:table_index_validate_scan Unexecuted instantiation: tid.c:table_index_validate_scan Unexecuted instantiation: trigfuncs.c:table_index_validate_scan Unexecuted instantiation: tsquery_rewrite.c:table_index_validate_scan Unexecuted instantiation: tsvector_op.c:table_index_validate_scan Unexecuted instantiation: xml.c:table_index_validate_scan Unexecuted instantiation: evtcache.c:table_index_validate_scan Unexecuted instantiation: funccache.c:table_index_validate_scan Unexecuted instantiation: relcache.c:table_index_validate_scan Unexecuted instantiation: postinit.c:table_index_validate_scan Unexecuted instantiation: guc_tables.c:table_index_validate_scan Unexecuted instantiation: simple_query_fuzzer.c:table_index_validate_scan |
1925 | | |
1926 | | |
1927 | | /* ---------------------------------------------------------------------------- |
1928 | | * Miscellaneous functionality |
1929 | | * ---------------------------------------------------------------------------- |
1930 | | */ |
1931 | | |
1932 | | /* |
1933 | | * Return the current size of `rel` in bytes. If `forkNumber` is |
1934 | | * InvalidForkNumber, return the relation's overall size, otherwise the size |
1935 | | * for the indicated fork. |
1936 | | * |
1937 | | * Note that the overall size might not be the equivalent of the sum of sizes |
1938 | | * for the individual forks for some AMs, e.g. because the AMs storage does |
1939 | | * not neatly map onto the builtin types of forks. |
1940 | | */ |
1941 | | static inline uint64 |
1942 | | table_relation_size(Relation rel, ForkNumber forkNumber) |
1943 | 0 | { |
1944 | 0 | return rel->rd_tableam->relation_size(rel, forkNumber); |
1945 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_size Unexecuted instantiation: brin.c:table_relation_size Unexecuted instantiation: detoast.c:table_relation_size Unexecuted instantiation: toast_internals.c:table_relation_size Unexecuted instantiation: gininsert.c:table_relation_size Unexecuted instantiation: gistbuild.c:table_relation_size Unexecuted instantiation: hash.c:table_relation_size Unexecuted instantiation: heapam.c:table_relation_size Unexecuted instantiation: heapam_handler.c:table_relation_size Unexecuted instantiation: heapam_indexscan.c:table_relation_size Unexecuted instantiation: heapam_visibility.c:table_relation_size Unexecuted instantiation: heapam_xlog.c:table_relation_size Unexecuted instantiation: heaptoast.c:table_relation_size Unexecuted instantiation: hio.c:table_relation_size Unexecuted instantiation: pruneheap.c:table_relation_size Unexecuted instantiation: rewriteheap.c:table_relation_size Unexecuted instantiation: vacuumlazy.c:table_relation_size Unexecuted instantiation: genam.c:table_relation_size Unexecuted instantiation: indexam.c:table_relation_size Unexecuted instantiation: nbtdedup.c:table_relation_size Unexecuted instantiation: nbtinsert.c:table_relation_size Unexecuted instantiation: nbtpage.c:table_relation_size Unexecuted instantiation: nbtsort.c:table_relation_size Unexecuted instantiation: nbtsplitloc.c:table_relation_size Unexecuted instantiation: spginsert.c:table_relation_size Unexecuted instantiation: tableam.c:table_relation_size Unexecuted instantiation: tableamapi.c:table_relation_size Unexecuted instantiation: xact.c:table_relation_size Unexecuted instantiation: bootstrap.c:table_relation_size Unexecuted instantiation: aclchk.c:table_relation_size Unexecuted instantiation: dependency.c:table_relation_size Unexecuted instantiation: heap.c:table_relation_size Unexecuted instantiation: index.c:table_relation_size Unexecuted instantiation: indexing.c:table_relation_size Unexecuted instantiation: objectaddress.c:table_relation_size Unexecuted instantiation: pg_db_role_setting.c:table_relation_size Unexecuted instantiation: pg_publication.c:table_relation_size Unexecuted instantiation: pg_subscription.c:table_relation_size Unexecuted instantiation: toasting.c:table_relation_size Unexecuted instantiation: gram.c:table_relation_size Unexecuted instantiation: alter.c:table_relation_size Unexecuted instantiation: analyze.c:table_relation_size Unexecuted instantiation: constraint.c:table_relation_size Unexecuted instantiation: copyfrom.c:table_relation_size Unexecuted instantiation: copyfromparse.c:table_relation_size Unexecuted instantiation: copyto.c:table_relation_size Unexecuted instantiation: createas.c:table_relation_size Unexecuted instantiation: dbcommands.c:table_relation_size Unexecuted instantiation: event_trigger.c:table_relation_size Unexecuted instantiation: indexcmds.c:table_relation_size Unexecuted instantiation: matview.c:table_relation_size Unexecuted instantiation: repack.c:table_relation_size Unexecuted instantiation: tablecmds.c:table_relation_size Unexecuted instantiation: tablespace.c:table_relation_size Unexecuted instantiation: trigger.c:table_relation_size Unexecuted instantiation: typecmds.c:table_relation_size Unexecuted instantiation: vacuum.c:table_relation_size Unexecuted instantiation: execIndexing.c:table_relation_size Unexecuted instantiation: execMain.c:table_relation_size Unexecuted instantiation: execPartition.c:table_relation_size Unexecuted instantiation: execReplication.c:table_relation_size Unexecuted instantiation: execUtils.c:table_relation_size Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_size Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_size Unexecuted instantiation: nodeIndexscan.c:table_relation_size Unexecuted instantiation: nodeLockRows.c:table_relation_size Unexecuted instantiation: nodeModifyTable.c:table_relation_size Unexecuted instantiation: nodeSamplescan.c:table_relation_size Unexecuted instantiation: nodeSeqscan.c:table_relation_size Unexecuted instantiation: nodeTidrangescan.c:table_relation_size Unexecuted instantiation: nodeTidscan.c:table_relation_size Unexecuted instantiation: spi.c:table_relation_size Unexecuted instantiation: copyfuncs.c:table_relation_size Unexecuted instantiation: equalfuncs.c:table_relation_size Unexecuted instantiation: outfuncs.c:table_relation_size Unexecuted instantiation: queryjumblefuncs.c:table_relation_size Unexecuted instantiation: readfuncs.c:table_relation_size Unexecuted instantiation: plancat.c:table_relation_size Unexecuted instantiation: partbounds.c:table_relation_size Unexecuted instantiation: autovacuum.c:table_relation_size Unexecuted instantiation: datachecksum_state.c:table_relation_size Unexecuted instantiation: conflict.c:table_relation_size Unexecuted instantiation: launcher.c:table_relation_size Unexecuted instantiation: reorderbuffer.c:table_relation_size Unexecuted instantiation: worker.c:table_relation_size Unexecuted instantiation: rewriteHandler.c:table_relation_size Unexecuted instantiation: attribute_stats.c:table_relation_size Unexecuted instantiation: extended_stats_funcs.c:table_relation_size Unexecuted instantiation: relation_stats.c:table_relation_size Unexecuted instantiation: bufmgr.c:table_relation_size Unexecuted instantiation: utility.c:table_relation_size Unexecuted instantiation: ri_triggers.c:table_relation_size Unexecuted instantiation: ruleutils.c:table_relation_size Unexecuted instantiation: selfuncs.c:table_relation_size Unexecuted instantiation: tid.c:table_relation_size Unexecuted instantiation: trigfuncs.c:table_relation_size Unexecuted instantiation: tsquery_rewrite.c:table_relation_size Unexecuted instantiation: tsvector_op.c:table_relation_size Unexecuted instantiation: xml.c:table_relation_size Unexecuted instantiation: evtcache.c:table_relation_size Unexecuted instantiation: funccache.c:table_relation_size Unexecuted instantiation: relcache.c:table_relation_size Unexecuted instantiation: postinit.c:table_relation_size Unexecuted instantiation: guc_tables.c:table_relation_size Unexecuted instantiation: simple_query_fuzzer.c:table_relation_size |
1946 | | |
1947 | | /* |
1948 | | * table_relation_needs_toast_table - does this relation need a toast table? |
1949 | | */ |
1950 | | static inline bool |
1951 | | table_relation_needs_toast_table(Relation rel) |
1952 | 0 | { |
1953 | 0 | return rel->rd_tableam->relation_needs_toast_table(rel); |
1954 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_needs_toast_table Unexecuted instantiation: brin.c:table_relation_needs_toast_table Unexecuted instantiation: detoast.c:table_relation_needs_toast_table Unexecuted instantiation: toast_internals.c:table_relation_needs_toast_table Unexecuted instantiation: gininsert.c:table_relation_needs_toast_table Unexecuted instantiation: gistbuild.c:table_relation_needs_toast_table Unexecuted instantiation: hash.c:table_relation_needs_toast_table Unexecuted instantiation: heapam.c:table_relation_needs_toast_table Unexecuted instantiation: heapam_handler.c:table_relation_needs_toast_table Unexecuted instantiation: heapam_indexscan.c:table_relation_needs_toast_table Unexecuted instantiation: heapam_visibility.c:table_relation_needs_toast_table Unexecuted instantiation: heapam_xlog.c:table_relation_needs_toast_table Unexecuted instantiation: heaptoast.c:table_relation_needs_toast_table Unexecuted instantiation: hio.c:table_relation_needs_toast_table Unexecuted instantiation: pruneheap.c:table_relation_needs_toast_table Unexecuted instantiation: rewriteheap.c:table_relation_needs_toast_table Unexecuted instantiation: vacuumlazy.c:table_relation_needs_toast_table Unexecuted instantiation: genam.c:table_relation_needs_toast_table Unexecuted instantiation: indexam.c:table_relation_needs_toast_table Unexecuted instantiation: nbtdedup.c:table_relation_needs_toast_table Unexecuted instantiation: nbtinsert.c:table_relation_needs_toast_table Unexecuted instantiation: nbtpage.c:table_relation_needs_toast_table Unexecuted instantiation: nbtsort.c:table_relation_needs_toast_table Unexecuted instantiation: nbtsplitloc.c:table_relation_needs_toast_table Unexecuted instantiation: spginsert.c:table_relation_needs_toast_table Unexecuted instantiation: tableam.c:table_relation_needs_toast_table Unexecuted instantiation: tableamapi.c:table_relation_needs_toast_table Unexecuted instantiation: xact.c:table_relation_needs_toast_table Unexecuted instantiation: bootstrap.c:table_relation_needs_toast_table Unexecuted instantiation: aclchk.c:table_relation_needs_toast_table Unexecuted instantiation: dependency.c:table_relation_needs_toast_table Unexecuted instantiation: heap.c:table_relation_needs_toast_table Unexecuted instantiation: index.c:table_relation_needs_toast_table Unexecuted instantiation: indexing.c:table_relation_needs_toast_table Unexecuted instantiation: objectaddress.c:table_relation_needs_toast_table Unexecuted instantiation: pg_db_role_setting.c:table_relation_needs_toast_table Unexecuted instantiation: pg_publication.c:table_relation_needs_toast_table Unexecuted instantiation: pg_subscription.c:table_relation_needs_toast_table Unexecuted instantiation: toasting.c:table_relation_needs_toast_table Unexecuted instantiation: gram.c:table_relation_needs_toast_table Unexecuted instantiation: alter.c:table_relation_needs_toast_table Unexecuted instantiation: analyze.c:table_relation_needs_toast_table Unexecuted instantiation: constraint.c:table_relation_needs_toast_table Unexecuted instantiation: copyfrom.c:table_relation_needs_toast_table Unexecuted instantiation: copyfromparse.c:table_relation_needs_toast_table Unexecuted instantiation: copyto.c:table_relation_needs_toast_table Unexecuted instantiation: createas.c:table_relation_needs_toast_table Unexecuted instantiation: dbcommands.c:table_relation_needs_toast_table Unexecuted instantiation: event_trigger.c:table_relation_needs_toast_table Unexecuted instantiation: indexcmds.c:table_relation_needs_toast_table Unexecuted instantiation: matview.c:table_relation_needs_toast_table Unexecuted instantiation: repack.c:table_relation_needs_toast_table Unexecuted instantiation: tablecmds.c:table_relation_needs_toast_table Unexecuted instantiation: tablespace.c:table_relation_needs_toast_table Unexecuted instantiation: trigger.c:table_relation_needs_toast_table Unexecuted instantiation: typecmds.c:table_relation_needs_toast_table Unexecuted instantiation: vacuum.c:table_relation_needs_toast_table Unexecuted instantiation: execIndexing.c:table_relation_needs_toast_table Unexecuted instantiation: execMain.c:table_relation_needs_toast_table Unexecuted instantiation: execPartition.c:table_relation_needs_toast_table Unexecuted instantiation: execReplication.c:table_relation_needs_toast_table Unexecuted instantiation: execUtils.c:table_relation_needs_toast_table Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_needs_toast_table Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_needs_toast_table Unexecuted instantiation: nodeIndexscan.c:table_relation_needs_toast_table Unexecuted instantiation: nodeLockRows.c:table_relation_needs_toast_table Unexecuted instantiation: nodeModifyTable.c:table_relation_needs_toast_table Unexecuted instantiation: nodeSamplescan.c:table_relation_needs_toast_table Unexecuted instantiation: nodeSeqscan.c:table_relation_needs_toast_table Unexecuted instantiation: nodeTidrangescan.c:table_relation_needs_toast_table Unexecuted instantiation: nodeTidscan.c:table_relation_needs_toast_table Unexecuted instantiation: spi.c:table_relation_needs_toast_table Unexecuted instantiation: copyfuncs.c:table_relation_needs_toast_table Unexecuted instantiation: equalfuncs.c:table_relation_needs_toast_table Unexecuted instantiation: outfuncs.c:table_relation_needs_toast_table Unexecuted instantiation: queryjumblefuncs.c:table_relation_needs_toast_table Unexecuted instantiation: readfuncs.c:table_relation_needs_toast_table Unexecuted instantiation: plancat.c:table_relation_needs_toast_table Unexecuted instantiation: partbounds.c:table_relation_needs_toast_table Unexecuted instantiation: autovacuum.c:table_relation_needs_toast_table Unexecuted instantiation: datachecksum_state.c:table_relation_needs_toast_table Unexecuted instantiation: conflict.c:table_relation_needs_toast_table Unexecuted instantiation: launcher.c:table_relation_needs_toast_table Unexecuted instantiation: reorderbuffer.c:table_relation_needs_toast_table Unexecuted instantiation: worker.c:table_relation_needs_toast_table Unexecuted instantiation: rewriteHandler.c:table_relation_needs_toast_table Unexecuted instantiation: attribute_stats.c:table_relation_needs_toast_table Unexecuted instantiation: extended_stats_funcs.c:table_relation_needs_toast_table Unexecuted instantiation: relation_stats.c:table_relation_needs_toast_table Unexecuted instantiation: bufmgr.c:table_relation_needs_toast_table Unexecuted instantiation: utility.c:table_relation_needs_toast_table Unexecuted instantiation: ri_triggers.c:table_relation_needs_toast_table Unexecuted instantiation: ruleutils.c:table_relation_needs_toast_table Unexecuted instantiation: selfuncs.c:table_relation_needs_toast_table Unexecuted instantiation: tid.c:table_relation_needs_toast_table Unexecuted instantiation: trigfuncs.c:table_relation_needs_toast_table Unexecuted instantiation: tsquery_rewrite.c:table_relation_needs_toast_table Unexecuted instantiation: tsvector_op.c:table_relation_needs_toast_table Unexecuted instantiation: xml.c:table_relation_needs_toast_table Unexecuted instantiation: evtcache.c:table_relation_needs_toast_table Unexecuted instantiation: funccache.c:table_relation_needs_toast_table Unexecuted instantiation: relcache.c:table_relation_needs_toast_table Unexecuted instantiation: postinit.c:table_relation_needs_toast_table Unexecuted instantiation: guc_tables.c:table_relation_needs_toast_table Unexecuted instantiation: simple_query_fuzzer.c:table_relation_needs_toast_table |
1955 | | |
1956 | | /* |
1957 | | * Return the OID of the AM that should be used to implement the TOAST table |
1958 | | * for this relation. |
1959 | | */ |
1960 | | static inline Oid |
1961 | | table_relation_toast_am(Relation rel) |
1962 | 0 | { |
1963 | 0 | return rel->rd_tableam->relation_toast_am(rel); |
1964 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_toast_am Unexecuted instantiation: brin.c:table_relation_toast_am Unexecuted instantiation: detoast.c:table_relation_toast_am Unexecuted instantiation: toast_internals.c:table_relation_toast_am Unexecuted instantiation: gininsert.c:table_relation_toast_am Unexecuted instantiation: gistbuild.c:table_relation_toast_am Unexecuted instantiation: hash.c:table_relation_toast_am Unexecuted instantiation: heapam.c:table_relation_toast_am Unexecuted instantiation: heapam_handler.c:table_relation_toast_am Unexecuted instantiation: heapam_indexscan.c:table_relation_toast_am Unexecuted instantiation: heapam_visibility.c:table_relation_toast_am Unexecuted instantiation: heapam_xlog.c:table_relation_toast_am Unexecuted instantiation: heaptoast.c:table_relation_toast_am Unexecuted instantiation: hio.c:table_relation_toast_am Unexecuted instantiation: pruneheap.c:table_relation_toast_am Unexecuted instantiation: rewriteheap.c:table_relation_toast_am Unexecuted instantiation: vacuumlazy.c:table_relation_toast_am Unexecuted instantiation: genam.c:table_relation_toast_am Unexecuted instantiation: indexam.c:table_relation_toast_am Unexecuted instantiation: nbtdedup.c:table_relation_toast_am Unexecuted instantiation: nbtinsert.c:table_relation_toast_am Unexecuted instantiation: nbtpage.c:table_relation_toast_am Unexecuted instantiation: nbtsort.c:table_relation_toast_am Unexecuted instantiation: nbtsplitloc.c:table_relation_toast_am Unexecuted instantiation: spginsert.c:table_relation_toast_am Unexecuted instantiation: tableam.c:table_relation_toast_am Unexecuted instantiation: tableamapi.c:table_relation_toast_am Unexecuted instantiation: xact.c:table_relation_toast_am Unexecuted instantiation: bootstrap.c:table_relation_toast_am Unexecuted instantiation: aclchk.c:table_relation_toast_am Unexecuted instantiation: dependency.c:table_relation_toast_am Unexecuted instantiation: heap.c:table_relation_toast_am Unexecuted instantiation: index.c:table_relation_toast_am Unexecuted instantiation: indexing.c:table_relation_toast_am Unexecuted instantiation: objectaddress.c:table_relation_toast_am Unexecuted instantiation: pg_db_role_setting.c:table_relation_toast_am Unexecuted instantiation: pg_publication.c:table_relation_toast_am Unexecuted instantiation: pg_subscription.c:table_relation_toast_am Unexecuted instantiation: toasting.c:table_relation_toast_am Unexecuted instantiation: gram.c:table_relation_toast_am Unexecuted instantiation: alter.c:table_relation_toast_am Unexecuted instantiation: analyze.c:table_relation_toast_am Unexecuted instantiation: constraint.c:table_relation_toast_am Unexecuted instantiation: copyfrom.c:table_relation_toast_am Unexecuted instantiation: copyfromparse.c:table_relation_toast_am Unexecuted instantiation: copyto.c:table_relation_toast_am Unexecuted instantiation: createas.c:table_relation_toast_am Unexecuted instantiation: dbcommands.c:table_relation_toast_am Unexecuted instantiation: event_trigger.c:table_relation_toast_am Unexecuted instantiation: indexcmds.c:table_relation_toast_am Unexecuted instantiation: matview.c:table_relation_toast_am Unexecuted instantiation: repack.c:table_relation_toast_am Unexecuted instantiation: tablecmds.c:table_relation_toast_am Unexecuted instantiation: tablespace.c:table_relation_toast_am Unexecuted instantiation: trigger.c:table_relation_toast_am Unexecuted instantiation: typecmds.c:table_relation_toast_am Unexecuted instantiation: vacuum.c:table_relation_toast_am Unexecuted instantiation: execIndexing.c:table_relation_toast_am Unexecuted instantiation: execMain.c:table_relation_toast_am Unexecuted instantiation: execPartition.c:table_relation_toast_am Unexecuted instantiation: execReplication.c:table_relation_toast_am Unexecuted instantiation: execUtils.c:table_relation_toast_am Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_toast_am Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_toast_am Unexecuted instantiation: nodeIndexscan.c:table_relation_toast_am Unexecuted instantiation: nodeLockRows.c:table_relation_toast_am Unexecuted instantiation: nodeModifyTable.c:table_relation_toast_am Unexecuted instantiation: nodeSamplescan.c:table_relation_toast_am Unexecuted instantiation: nodeSeqscan.c:table_relation_toast_am Unexecuted instantiation: nodeTidrangescan.c:table_relation_toast_am Unexecuted instantiation: nodeTidscan.c:table_relation_toast_am Unexecuted instantiation: spi.c:table_relation_toast_am Unexecuted instantiation: copyfuncs.c:table_relation_toast_am Unexecuted instantiation: equalfuncs.c:table_relation_toast_am Unexecuted instantiation: outfuncs.c:table_relation_toast_am Unexecuted instantiation: queryjumblefuncs.c:table_relation_toast_am Unexecuted instantiation: readfuncs.c:table_relation_toast_am Unexecuted instantiation: plancat.c:table_relation_toast_am Unexecuted instantiation: partbounds.c:table_relation_toast_am Unexecuted instantiation: autovacuum.c:table_relation_toast_am Unexecuted instantiation: datachecksum_state.c:table_relation_toast_am Unexecuted instantiation: conflict.c:table_relation_toast_am Unexecuted instantiation: launcher.c:table_relation_toast_am Unexecuted instantiation: reorderbuffer.c:table_relation_toast_am Unexecuted instantiation: worker.c:table_relation_toast_am Unexecuted instantiation: rewriteHandler.c:table_relation_toast_am Unexecuted instantiation: attribute_stats.c:table_relation_toast_am Unexecuted instantiation: extended_stats_funcs.c:table_relation_toast_am Unexecuted instantiation: relation_stats.c:table_relation_toast_am Unexecuted instantiation: bufmgr.c:table_relation_toast_am Unexecuted instantiation: utility.c:table_relation_toast_am Unexecuted instantiation: ri_triggers.c:table_relation_toast_am Unexecuted instantiation: ruleutils.c:table_relation_toast_am Unexecuted instantiation: selfuncs.c:table_relation_toast_am Unexecuted instantiation: tid.c:table_relation_toast_am Unexecuted instantiation: trigfuncs.c:table_relation_toast_am Unexecuted instantiation: tsquery_rewrite.c:table_relation_toast_am Unexecuted instantiation: tsvector_op.c:table_relation_toast_am Unexecuted instantiation: xml.c:table_relation_toast_am Unexecuted instantiation: evtcache.c:table_relation_toast_am Unexecuted instantiation: funccache.c:table_relation_toast_am Unexecuted instantiation: relcache.c:table_relation_toast_am Unexecuted instantiation: postinit.c:table_relation_toast_am Unexecuted instantiation: guc_tables.c:table_relation_toast_am Unexecuted instantiation: simple_query_fuzzer.c:table_relation_toast_am |
1965 | | |
1966 | | /* |
1967 | | * Fetch all or part of a TOAST value from a TOAST table. |
1968 | | * |
1969 | | * If this AM is never used to implement a TOAST table, then this callback |
1970 | | * is not needed. But, if toasted values are ever stored in a table of this |
1971 | | * type, then you will need this callback. |
1972 | | * |
1973 | | * toastrel is the relation in which the toasted value is stored. |
1974 | | * |
1975 | | * valueid identifies which toast value is to be fetched. For the heap, |
1976 | | * this corresponds to the values stored in the chunk_id column. |
1977 | | * |
1978 | | * attrsize is the total size of the toast value to be fetched. |
1979 | | * |
1980 | | * sliceoffset is the offset within the toast value of the first byte that |
1981 | | * should be fetched. |
1982 | | * |
1983 | | * slicelength is the number of bytes from the toast value that should be |
1984 | | * fetched. |
1985 | | * |
1986 | | * result is caller-allocated space into which the fetched bytes should be |
1987 | | * stored. |
1988 | | */ |
1989 | | static inline void |
1990 | | table_relation_fetch_toast_slice(Relation toastrel, Oid valueid, |
1991 | | int32 attrsize, int32 sliceoffset, |
1992 | | int32 slicelength, varlena *result) |
1993 | 0 | { |
1994 | 0 | toastrel->rd_tableam->relation_fetch_toast_slice(toastrel, valueid, |
1995 | 0 | attrsize, |
1996 | 0 | sliceoffset, slicelength, |
1997 | 0 | result); |
1998 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_fetch_toast_slice Unexecuted instantiation: brin.c:table_relation_fetch_toast_slice Unexecuted instantiation: detoast.c:table_relation_fetch_toast_slice Unexecuted instantiation: toast_internals.c:table_relation_fetch_toast_slice Unexecuted instantiation: gininsert.c:table_relation_fetch_toast_slice Unexecuted instantiation: gistbuild.c:table_relation_fetch_toast_slice Unexecuted instantiation: hash.c:table_relation_fetch_toast_slice Unexecuted instantiation: heapam.c:table_relation_fetch_toast_slice Unexecuted instantiation: heapam_handler.c:table_relation_fetch_toast_slice Unexecuted instantiation: heapam_indexscan.c:table_relation_fetch_toast_slice Unexecuted instantiation: heapam_visibility.c:table_relation_fetch_toast_slice Unexecuted instantiation: heapam_xlog.c:table_relation_fetch_toast_slice Unexecuted instantiation: heaptoast.c:table_relation_fetch_toast_slice Unexecuted instantiation: hio.c:table_relation_fetch_toast_slice Unexecuted instantiation: pruneheap.c:table_relation_fetch_toast_slice Unexecuted instantiation: rewriteheap.c:table_relation_fetch_toast_slice Unexecuted instantiation: vacuumlazy.c:table_relation_fetch_toast_slice Unexecuted instantiation: genam.c:table_relation_fetch_toast_slice Unexecuted instantiation: indexam.c:table_relation_fetch_toast_slice Unexecuted instantiation: nbtdedup.c:table_relation_fetch_toast_slice Unexecuted instantiation: nbtinsert.c:table_relation_fetch_toast_slice Unexecuted instantiation: nbtpage.c:table_relation_fetch_toast_slice Unexecuted instantiation: nbtsort.c:table_relation_fetch_toast_slice Unexecuted instantiation: nbtsplitloc.c:table_relation_fetch_toast_slice Unexecuted instantiation: spginsert.c:table_relation_fetch_toast_slice Unexecuted instantiation: tableam.c:table_relation_fetch_toast_slice Unexecuted instantiation: tableamapi.c:table_relation_fetch_toast_slice Unexecuted instantiation: xact.c:table_relation_fetch_toast_slice Unexecuted instantiation: bootstrap.c:table_relation_fetch_toast_slice Unexecuted instantiation: aclchk.c:table_relation_fetch_toast_slice Unexecuted instantiation: dependency.c:table_relation_fetch_toast_slice Unexecuted instantiation: heap.c:table_relation_fetch_toast_slice Unexecuted instantiation: index.c:table_relation_fetch_toast_slice Unexecuted instantiation: indexing.c:table_relation_fetch_toast_slice Unexecuted instantiation: objectaddress.c:table_relation_fetch_toast_slice Unexecuted instantiation: pg_db_role_setting.c:table_relation_fetch_toast_slice Unexecuted instantiation: pg_publication.c:table_relation_fetch_toast_slice Unexecuted instantiation: pg_subscription.c:table_relation_fetch_toast_slice Unexecuted instantiation: toasting.c:table_relation_fetch_toast_slice Unexecuted instantiation: gram.c:table_relation_fetch_toast_slice Unexecuted instantiation: alter.c:table_relation_fetch_toast_slice Unexecuted instantiation: analyze.c:table_relation_fetch_toast_slice Unexecuted instantiation: constraint.c:table_relation_fetch_toast_slice Unexecuted instantiation: copyfrom.c:table_relation_fetch_toast_slice Unexecuted instantiation: copyfromparse.c:table_relation_fetch_toast_slice Unexecuted instantiation: copyto.c:table_relation_fetch_toast_slice Unexecuted instantiation: createas.c:table_relation_fetch_toast_slice Unexecuted instantiation: dbcommands.c:table_relation_fetch_toast_slice Unexecuted instantiation: event_trigger.c:table_relation_fetch_toast_slice Unexecuted instantiation: indexcmds.c:table_relation_fetch_toast_slice Unexecuted instantiation: matview.c:table_relation_fetch_toast_slice Unexecuted instantiation: repack.c:table_relation_fetch_toast_slice Unexecuted instantiation: tablecmds.c:table_relation_fetch_toast_slice Unexecuted instantiation: tablespace.c:table_relation_fetch_toast_slice Unexecuted instantiation: trigger.c:table_relation_fetch_toast_slice Unexecuted instantiation: typecmds.c:table_relation_fetch_toast_slice Unexecuted instantiation: vacuum.c:table_relation_fetch_toast_slice Unexecuted instantiation: execIndexing.c:table_relation_fetch_toast_slice Unexecuted instantiation: execMain.c:table_relation_fetch_toast_slice Unexecuted instantiation: execPartition.c:table_relation_fetch_toast_slice Unexecuted instantiation: execReplication.c:table_relation_fetch_toast_slice Unexecuted instantiation: execUtils.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeIndexscan.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeLockRows.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeModifyTable.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeSamplescan.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeSeqscan.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeTidrangescan.c:table_relation_fetch_toast_slice Unexecuted instantiation: nodeTidscan.c:table_relation_fetch_toast_slice Unexecuted instantiation: spi.c:table_relation_fetch_toast_slice Unexecuted instantiation: copyfuncs.c:table_relation_fetch_toast_slice Unexecuted instantiation: equalfuncs.c:table_relation_fetch_toast_slice Unexecuted instantiation: outfuncs.c:table_relation_fetch_toast_slice Unexecuted instantiation: queryjumblefuncs.c:table_relation_fetch_toast_slice Unexecuted instantiation: readfuncs.c:table_relation_fetch_toast_slice Unexecuted instantiation: plancat.c:table_relation_fetch_toast_slice Unexecuted instantiation: partbounds.c:table_relation_fetch_toast_slice Unexecuted instantiation: autovacuum.c:table_relation_fetch_toast_slice Unexecuted instantiation: datachecksum_state.c:table_relation_fetch_toast_slice Unexecuted instantiation: conflict.c:table_relation_fetch_toast_slice Unexecuted instantiation: launcher.c:table_relation_fetch_toast_slice Unexecuted instantiation: reorderbuffer.c:table_relation_fetch_toast_slice Unexecuted instantiation: worker.c:table_relation_fetch_toast_slice Unexecuted instantiation: rewriteHandler.c:table_relation_fetch_toast_slice Unexecuted instantiation: attribute_stats.c:table_relation_fetch_toast_slice Unexecuted instantiation: extended_stats_funcs.c:table_relation_fetch_toast_slice Unexecuted instantiation: relation_stats.c:table_relation_fetch_toast_slice Unexecuted instantiation: bufmgr.c:table_relation_fetch_toast_slice Unexecuted instantiation: utility.c:table_relation_fetch_toast_slice Unexecuted instantiation: ri_triggers.c:table_relation_fetch_toast_slice Unexecuted instantiation: ruleutils.c:table_relation_fetch_toast_slice Unexecuted instantiation: selfuncs.c:table_relation_fetch_toast_slice Unexecuted instantiation: tid.c:table_relation_fetch_toast_slice Unexecuted instantiation: trigfuncs.c:table_relation_fetch_toast_slice Unexecuted instantiation: tsquery_rewrite.c:table_relation_fetch_toast_slice Unexecuted instantiation: tsvector_op.c:table_relation_fetch_toast_slice Unexecuted instantiation: xml.c:table_relation_fetch_toast_slice Unexecuted instantiation: evtcache.c:table_relation_fetch_toast_slice Unexecuted instantiation: funccache.c:table_relation_fetch_toast_slice Unexecuted instantiation: relcache.c:table_relation_fetch_toast_slice Unexecuted instantiation: postinit.c:table_relation_fetch_toast_slice Unexecuted instantiation: guc_tables.c:table_relation_fetch_toast_slice Unexecuted instantiation: simple_query_fuzzer.c:table_relation_fetch_toast_slice |
1999 | | |
2000 | | |
2001 | | /* ---------------------------------------------------------------------------- |
2002 | | * Planner related functionality |
2003 | | * ---------------------------------------------------------------------------- |
2004 | | */ |
2005 | | |
2006 | | /* |
2007 | | * Estimate the current size of the relation, as an AM specific workhorse for |
2008 | | * estimate_rel_size(). Look there for an explanation of the parameters. |
2009 | | */ |
2010 | | static inline void |
2011 | | table_relation_estimate_size(Relation rel, int32 *attr_widths, |
2012 | | BlockNumber *pages, double *tuples, |
2013 | | double *allvisfrac) |
2014 | 0 | { |
2015 | 0 | rel->rd_tableam->relation_estimate_size(rel, attr_widths, pages, tuples, |
2016 | 0 | allvisfrac); |
2017 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_relation_estimate_size Unexecuted instantiation: brin.c:table_relation_estimate_size Unexecuted instantiation: detoast.c:table_relation_estimate_size Unexecuted instantiation: toast_internals.c:table_relation_estimate_size Unexecuted instantiation: gininsert.c:table_relation_estimate_size Unexecuted instantiation: gistbuild.c:table_relation_estimate_size Unexecuted instantiation: hash.c:table_relation_estimate_size Unexecuted instantiation: heapam.c:table_relation_estimate_size Unexecuted instantiation: heapam_handler.c:table_relation_estimate_size Unexecuted instantiation: heapam_indexscan.c:table_relation_estimate_size Unexecuted instantiation: heapam_visibility.c:table_relation_estimate_size Unexecuted instantiation: heapam_xlog.c:table_relation_estimate_size Unexecuted instantiation: heaptoast.c:table_relation_estimate_size Unexecuted instantiation: hio.c:table_relation_estimate_size Unexecuted instantiation: pruneheap.c:table_relation_estimate_size Unexecuted instantiation: rewriteheap.c:table_relation_estimate_size Unexecuted instantiation: vacuumlazy.c:table_relation_estimate_size Unexecuted instantiation: genam.c:table_relation_estimate_size Unexecuted instantiation: indexam.c:table_relation_estimate_size Unexecuted instantiation: nbtdedup.c:table_relation_estimate_size Unexecuted instantiation: nbtinsert.c:table_relation_estimate_size Unexecuted instantiation: nbtpage.c:table_relation_estimate_size Unexecuted instantiation: nbtsort.c:table_relation_estimate_size Unexecuted instantiation: nbtsplitloc.c:table_relation_estimate_size Unexecuted instantiation: spginsert.c:table_relation_estimate_size Unexecuted instantiation: tableam.c:table_relation_estimate_size Unexecuted instantiation: tableamapi.c:table_relation_estimate_size Unexecuted instantiation: xact.c:table_relation_estimate_size Unexecuted instantiation: bootstrap.c:table_relation_estimate_size Unexecuted instantiation: aclchk.c:table_relation_estimate_size Unexecuted instantiation: dependency.c:table_relation_estimate_size Unexecuted instantiation: heap.c:table_relation_estimate_size Unexecuted instantiation: index.c:table_relation_estimate_size Unexecuted instantiation: indexing.c:table_relation_estimate_size Unexecuted instantiation: objectaddress.c:table_relation_estimate_size Unexecuted instantiation: pg_db_role_setting.c:table_relation_estimate_size Unexecuted instantiation: pg_publication.c:table_relation_estimate_size Unexecuted instantiation: pg_subscription.c:table_relation_estimate_size Unexecuted instantiation: toasting.c:table_relation_estimate_size Unexecuted instantiation: gram.c:table_relation_estimate_size Unexecuted instantiation: alter.c:table_relation_estimate_size Unexecuted instantiation: analyze.c:table_relation_estimate_size Unexecuted instantiation: constraint.c:table_relation_estimate_size Unexecuted instantiation: copyfrom.c:table_relation_estimate_size Unexecuted instantiation: copyfromparse.c:table_relation_estimate_size Unexecuted instantiation: copyto.c:table_relation_estimate_size Unexecuted instantiation: createas.c:table_relation_estimate_size Unexecuted instantiation: dbcommands.c:table_relation_estimate_size Unexecuted instantiation: event_trigger.c:table_relation_estimate_size Unexecuted instantiation: indexcmds.c:table_relation_estimate_size Unexecuted instantiation: matview.c:table_relation_estimate_size Unexecuted instantiation: repack.c:table_relation_estimate_size Unexecuted instantiation: tablecmds.c:table_relation_estimate_size Unexecuted instantiation: tablespace.c:table_relation_estimate_size Unexecuted instantiation: trigger.c:table_relation_estimate_size Unexecuted instantiation: typecmds.c:table_relation_estimate_size Unexecuted instantiation: vacuum.c:table_relation_estimate_size Unexecuted instantiation: execIndexing.c:table_relation_estimate_size Unexecuted instantiation: execMain.c:table_relation_estimate_size Unexecuted instantiation: execPartition.c:table_relation_estimate_size Unexecuted instantiation: execReplication.c:table_relation_estimate_size Unexecuted instantiation: execUtils.c:table_relation_estimate_size Unexecuted instantiation: nodeBitmapHeapscan.c:table_relation_estimate_size Unexecuted instantiation: nodeIndexonlyscan.c:table_relation_estimate_size Unexecuted instantiation: nodeIndexscan.c:table_relation_estimate_size Unexecuted instantiation: nodeLockRows.c:table_relation_estimate_size Unexecuted instantiation: nodeModifyTable.c:table_relation_estimate_size Unexecuted instantiation: nodeSamplescan.c:table_relation_estimate_size Unexecuted instantiation: nodeSeqscan.c:table_relation_estimate_size Unexecuted instantiation: nodeTidrangescan.c:table_relation_estimate_size Unexecuted instantiation: nodeTidscan.c:table_relation_estimate_size Unexecuted instantiation: spi.c:table_relation_estimate_size Unexecuted instantiation: copyfuncs.c:table_relation_estimate_size Unexecuted instantiation: equalfuncs.c:table_relation_estimate_size Unexecuted instantiation: outfuncs.c:table_relation_estimate_size Unexecuted instantiation: queryjumblefuncs.c:table_relation_estimate_size Unexecuted instantiation: readfuncs.c:table_relation_estimate_size Unexecuted instantiation: plancat.c:table_relation_estimate_size Unexecuted instantiation: partbounds.c:table_relation_estimate_size Unexecuted instantiation: autovacuum.c:table_relation_estimate_size Unexecuted instantiation: datachecksum_state.c:table_relation_estimate_size Unexecuted instantiation: conflict.c:table_relation_estimate_size Unexecuted instantiation: launcher.c:table_relation_estimate_size Unexecuted instantiation: reorderbuffer.c:table_relation_estimate_size Unexecuted instantiation: worker.c:table_relation_estimate_size Unexecuted instantiation: rewriteHandler.c:table_relation_estimate_size Unexecuted instantiation: attribute_stats.c:table_relation_estimate_size Unexecuted instantiation: extended_stats_funcs.c:table_relation_estimate_size Unexecuted instantiation: relation_stats.c:table_relation_estimate_size Unexecuted instantiation: bufmgr.c:table_relation_estimate_size Unexecuted instantiation: utility.c:table_relation_estimate_size Unexecuted instantiation: ri_triggers.c:table_relation_estimate_size Unexecuted instantiation: ruleutils.c:table_relation_estimate_size Unexecuted instantiation: selfuncs.c:table_relation_estimate_size Unexecuted instantiation: tid.c:table_relation_estimate_size Unexecuted instantiation: trigfuncs.c:table_relation_estimate_size Unexecuted instantiation: tsquery_rewrite.c:table_relation_estimate_size Unexecuted instantiation: tsvector_op.c:table_relation_estimate_size Unexecuted instantiation: xml.c:table_relation_estimate_size Unexecuted instantiation: evtcache.c:table_relation_estimate_size Unexecuted instantiation: funccache.c:table_relation_estimate_size Unexecuted instantiation: relcache.c:table_relation_estimate_size Unexecuted instantiation: postinit.c:table_relation_estimate_size Unexecuted instantiation: guc_tables.c:table_relation_estimate_size Unexecuted instantiation: simple_query_fuzzer.c:table_relation_estimate_size |
2018 | | |
2019 | | |
2020 | | /* ---------------------------------------------------------------------------- |
2021 | | * Executor related functionality |
2022 | | * ---------------------------------------------------------------------------- |
2023 | | */ |
2024 | | |
2025 | | /* |
2026 | | * Fetch / check / return tuples as part of a bitmap table scan. `scan` needs |
2027 | | * to have been started via table_beginscan_bm(). Fetch the next tuple of a |
2028 | | * bitmap table scan into `slot` and return true if a visible tuple was found, |
2029 | | * false otherwise. |
2030 | | * |
2031 | | * `recheck` is set by the table AM to indicate whether or not the tuple in |
2032 | | * `slot` should be rechecked. Tuples from lossy pages will always need to be |
2033 | | * rechecked, but some non-lossy pages' tuples may also require recheck. |
2034 | | * |
2035 | | * `lossy_pages` is incremented if the block's representation in the bitmap is |
2036 | | * lossy; otherwise, `exact_pages` is incremented. |
2037 | | */ |
2038 | | static inline bool |
2039 | | table_scan_bitmap_next_tuple(TableScanDesc scan, |
2040 | | TupleTableSlot *slot, |
2041 | | bool *recheck, |
2042 | | uint64 *lossy_pages, |
2043 | | uint64 *exact_pages) |
2044 | 0 | { |
2045 | 0 | return scan->rs_rd->rd_tableam->scan_bitmap_next_tuple(scan, |
2046 | 0 | slot, |
2047 | 0 | recheck, |
2048 | 0 | lossy_pages, |
2049 | 0 | exact_pages); |
2050 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_scan_bitmap_next_tuple Unexecuted instantiation: brin.c:table_scan_bitmap_next_tuple Unexecuted instantiation: detoast.c:table_scan_bitmap_next_tuple Unexecuted instantiation: toast_internals.c:table_scan_bitmap_next_tuple Unexecuted instantiation: gininsert.c:table_scan_bitmap_next_tuple Unexecuted instantiation: gistbuild.c:table_scan_bitmap_next_tuple Unexecuted instantiation: hash.c:table_scan_bitmap_next_tuple Unexecuted instantiation: heapam.c:table_scan_bitmap_next_tuple Unexecuted instantiation: heapam_handler.c:table_scan_bitmap_next_tuple Unexecuted instantiation: heapam_indexscan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: heapam_visibility.c:table_scan_bitmap_next_tuple Unexecuted instantiation: heapam_xlog.c:table_scan_bitmap_next_tuple Unexecuted instantiation: heaptoast.c:table_scan_bitmap_next_tuple Unexecuted instantiation: hio.c:table_scan_bitmap_next_tuple Unexecuted instantiation: pruneheap.c:table_scan_bitmap_next_tuple Unexecuted instantiation: rewriteheap.c:table_scan_bitmap_next_tuple Unexecuted instantiation: vacuumlazy.c:table_scan_bitmap_next_tuple Unexecuted instantiation: genam.c:table_scan_bitmap_next_tuple Unexecuted instantiation: indexam.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nbtdedup.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nbtinsert.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nbtpage.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nbtsort.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nbtsplitloc.c:table_scan_bitmap_next_tuple Unexecuted instantiation: spginsert.c:table_scan_bitmap_next_tuple Unexecuted instantiation: tableam.c:table_scan_bitmap_next_tuple Unexecuted instantiation: tableamapi.c:table_scan_bitmap_next_tuple Unexecuted instantiation: xact.c:table_scan_bitmap_next_tuple Unexecuted instantiation: bootstrap.c:table_scan_bitmap_next_tuple Unexecuted instantiation: aclchk.c:table_scan_bitmap_next_tuple Unexecuted instantiation: dependency.c:table_scan_bitmap_next_tuple Unexecuted instantiation: heap.c:table_scan_bitmap_next_tuple Unexecuted instantiation: index.c:table_scan_bitmap_next_tuple Unexecuted instantiation: indexing.c:table_scan_bitmap_next_tuple Unexecuted instantiation: objectaddress.c:table_scan_bitmap_next_tuple Unexecuted instantiation: pg_db_role_setting.c:table_scan_bitmap_next_tuple Unexecuted instantiation: pg_publication.c:table_scan_bitmap_next_tuple Unexecuted instantiation: pg_subscription.c:table_scan_bitmap_next_tuple Unexecuted instantiation: toasting.c:table_scan_bitmap_next_tuple Unexecuted instantiation: gram.c:table_scan_bitmap_next_tuple Unexecuted instantiation: alter.c:table_scan_bitmap_next_tuple Unexecuted instantiation: analyze.c:table_scan_bitmap_next_tuple Unexecuted instantiation: constraint.c:table_scan_bitmap_next_tuple Unexecuted instantiation: copyfrom.c:table_scan_bitmap_next_tuple Unexecuted instantiation: copyfromparse.c:table_scan_bitmap_next_tuple Unexecuted instantiation: copyto.c:table_scan_bitmap_next_tuple Unexecuted instantiation: createas.c:table_scan_bitmap_next_tuple Unexecuted instantiation: dbcommands.c:table_scan_bitmap_next_tuple Unexecuted instantiation: event_trigger.c:table_scan_bitmap_next_tuple Unexecuted instantiation: indexcmds.c:table_scan_bitmap_next_tuple Unexecuted instantiation: matview.c:table_scan_bitmap_next_tuple Unexecuted instantiation: repack.c:table_scan_bitmap_next_tuple Unexecuted instantiation: tablecmds.c:table_scan_bitmap_next_tuple Unexecuted instantiation: tablespace.c:table_scan_bitmap_next_tuple Unexecuted instantiation: trigger.c:table_scan_bitmap_next_tuple Unexecuted instantiation: typecmds.c:table_scan_bitmap_next_tuple Unexecuted instantiation: vacuum.c:table_scan_bitmap_next_tuple Unexecuted instantiation: execIndexing.c:table_scan_bitmap_next_tuple Unexecuted instantiation: execMain.c:table_scan_bitmap_next_tuple Unexecuted instantiation: execPartition.c:table_scan_bitmap_next_tuple Unexecuted instantiation: execReplication.c:table_scan_bitmap_next_tuple Unexecuted instantiation: execUtils.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeBitmapHeapscan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeIndexonlyscan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeIndexscan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeLockRows.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeModifyTable.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeSamplescan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeSeqscan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeTidrangescan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: nodeTidscan.c:table_scan_bitmap_next_tuple Unexecuted instantiation: spi.c:table_scan_bitmap_next_tuple Unexecuted instantiation: copyfuncs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: equalfuncs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: outfuncs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: queryjumblefuncs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: readfuncs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: plancat.c:table_scan_bitmap_next_tuple Unexecuted instantiation: partbounds.c:table_scan_bitmap_next_tuple Unexecuted instantiation: autovacuum.c:table_scan_bitmap_next_tuple Unexecuted instantiation: datachecksum_state.c:table_scan_bitmap_next_tuple Unexecuted instantiation: conflict.c:table_scan_bitmap_next_tuple Unexecuted instantiation: launcher.c:table_scan_bitmap_next_tuple Unexecuted instantiation: reorderbuffer.c:table_scan_bitmap_next_tuple Unexecuted instantiation: worker.c:table_scan_bitmap_next_tuple Unexecuted instantiation: rewriteHandler.c:table_scan_bitmap_next_tuple Unexecuted instantiation: attribute_stats.c:table_scan_bitmap_next_tuple Unexecuted instantiation: extended_stats_funcs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: relation_stats.c:table_scan_bitmap_next_tuple Unexecuted instantiation: bufmgr.c:table_scan_bitmap_next_tuple Unexecuted instantiation: utility.c:table_scan_bitmap_next_tuple Unexecuted instantiation: ri_triggers.c:table_scan_bitmap_next_tuple Unexecuted instantiation: ruleutils.c:table_scan_bitmap_next_tuple Unexecuted instantiation: selfuncs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: tid.c:table_scan_bitmap_next_tuple Unexecuted instantiation: trigfuncs.c:table_scan_bitmap_next_tuple Unexecuted instantiation: tsquery_rewrite.c:table_scan_bitmap_next_tuple Unexecuted instantiation: tsvector_op.c:table_scan_bitmap_next_tuple Unexecuted instantiation: xml.c:table_scan_bitmap_next_tuple Unexecuted instantiation: evtcache.c:table_scan_bitmap_next_tuple Unexecuted instantiation: funccache.c:table_scan_bitmap_next_tuple Unexecuted instantiation: relcache.c:table_scan_bitmap_next_tuple Unexecuted instantiation: postinit.c:table_scan_bitmap_next_tuple Unexecuted instantiation: guc_tables.c:table_scan_bitmap_next_tuple Unexecuted instantiation: simple_query_fuzzer.c:table_scan_bitmap_next_tuple |
2051 | | |
2052 | | /* |
2053 | | * Prepare to fetch tuples from the next block in a sample scan. Returns false |
2054 | | * if the sample scan is finished, true otherwise. `scan` needs to have been |
2055 | | * started via table_beginscan_sampling(). |
2056 | | * |
2057 | | * This will call the TsmRoutine's NextSampleBlock() callback if necessary |
2058 | | * (i.e. NextSampleBlock is not NULL), or perform a sequential scan over the |
2059 | | * underlying relation. |
2060 | | */ |
2061 | | static inline bool |
2062 | | table_scan_sample_next_block(TableScanDesc scan, |
2063 | | SampleScanState *scanstate) |
2064 | 0 | { |
2065 | 0 | return scan->rs_rd->rd_tableam->scan_sample_next_block(scan, scanstate); |
2066 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_scan_sample_next_block Unexecuted instantiation: brin.c:table_scan_sample_next_block Unexecuted instantiation: detoast.c:table_scan_sample_next_block Unexecuted instantiation: toast_internals.c:table_scan_sample_next_block Unexecuted instantiation: gininsert.c:table_scan_sample_next_block Unexecuted instantiation: gistbuild.c:table_scan_sample_next_block Unexecuted instantiation: hash.c:table_scan_sample_next_block Unexecuted instantiation: heapam.c:table_scan_sample_next_block Unexecuted instantiation: heapam_handler.c:table_scan_sample_next_block Unexecuted instantiation: heapam_indexscan.c:table_scan_sample_next_block Unexecuted instantiation: heapam_visibility.c:table_scan_sample_next_block Unexecuted instantiation: heapam_xlog.c:table_scan_sample_next_block Unexecuted instantiation: heaptoast.c:table_scan_sample_next_block Unexecuted instantiation: hio.c:table_scan_sample_next_block Unexecuted instantiation: pruneheap.c:table_scan_sample_next_block Unexecuted instantiation: rewriteheap.c:table_scan_sample_next_block Unexecuted instantiation: vacuumlazy.c:table_scan_sample_next_block Unexecuted instantiation: genam.c:table_scan_sample_next_block Unexecuted instantiation: indexam.c:table_scan_sample_next_block Unexecuted instantiation: nbtdedup.c:table_scan_sample_next_block Unexecuted instantiation: nbtinsert.c:table_scan_sample_next_block Unexecuted instantiation: nbtpage.c:table_scan_sample_next_block Unexecuted instantiation: nbtsort.c:table_scan_sample_next_block Unexecuted instantiation: nbtsplitloc.c:table_scan_sample_next_block Unexecuted instantiation: spginsert.c:table_scan_sample_next_block Unexecuted instantiation: tableam.c:table_scan_sample_next_block Unexecuted instantiation: tableamapi.c:table_scan_sample_next_block Unexecuted instantiation: xact.c:table_scan_sample_next_block Unexecuted instantiation: bootstrap.c:table_scan_sample_next_block Unexecuted instantiation: aclchk.c:table_scan_sample_next_block Unexecuted instantiation: dependency.c:table_scan_sample_next_block Unexecuted instantiation: heap.c:table_scan_sample_next_block Unexecuted instantiation: index.c:table_scan_sample_next_block Unexecuted instantiation: indexing.c:table_scan_sample_next_block Unexecuted instantiation: objectaddress.c:table_scan_sample_next_block Unexecuted instantiation: pg_db_role_setting.c:table_scan_sample_next_block Unexecuted instantiation: pg_publication.c:table_scan_sample_next_block Unexecuted instantiation: pg_subscription.c:table_scan_sample_next_block Unexecuted instantiation: toasting.c:table_scan_sample_next_block Unexecuted instantiation: gram.c:table_scan_sample_next_block Unexecuted instantiation: alter.c:table_scan_sample_next_block Unexecuted instantiation: analyze.c:table_scan_sample_next_block Unexecuted instantiation: constraint.c:table_scan_sample_next_block Unexecuted instantiation: copyfrom.c:table_scan_sample_next_block Unexecuted instantiation: copyfromparse.c:table_scan_sample_next_block Unexecuted instantiation: copyto.c:table_scan_sample_next_block Unexecuted instantiation: createas.c:table_scan_sample_next_block Unexecuted instantiation: dbcommands.c:table_scan_sample_next_block Unexecuted instantiation: event_trigger.c:table_scan_sample_next_block Unexecuted instantiation: indexcmds.c:table_scan_sample_next_block Unexecuted instantiation: matview.c:table_scan_sample_next_block Unexecuted instantiation: repack.c:table_scan_sample_next_block Unexecuted instantiation: tablecmds.c:table_scan_sample_next_block Unexecuted instantiation: tablespace.c:table_scan_sample_next_block Unexecuted instantiation: trigger.c:table_scan_sample_next_block Unexecuted instantiation: typecmds.c:table_scan_sample_next_block Unexecuted instantiation: vacuum.c:table_scan_sample_next_block Unexecuted instantiation: execIndexing.c:table_scan_sample_next_block Unexecuted instantiation: execMain.c:table_scan_sample_next_block Unexecuted instantiation: execPartition.c:table_scan_sample_next_block Unexecuted instantiation: execReplication.c:table_scan_sample_next_block Unexecuted instantiation: execUtils.c:table_scan_sample_next_block Unexecuted instantiation: nodeBitmapHeapscan.c:table_scan_sample_next_block Unexecuted instantiation: nodeIndexonlyscan.c:table_scan_sample_next_block Unexecuted instantiation: nodeIndexscan.c:table_scan_sample_next_block Unexecuted instantiation: nodeLockRows.c:table_scan_sample_next_block Unexecuted instantiation: nodeModifyTable.c:table_scan_sample_next_block Unexecuted instantiation: nodeSamplescan.c:table_scan_sample_next_block Unexecuted instantiation: nodeSeqscan.c:table_scan_sample_next_block Unexecuted instantiation: nodeTidrangescan.c:table_scan_sample_next_block Unexecuted instantiation: nodeTidscan.c:table_scan_sample_next_block Unexecuted instantiation: spi.c:table_scan_sample_next_block Unexecuted instantiation: copyfuncs.c:table_scan_sample_next_block Unexecuted instantiation: equalfuncs.c:table_scan_sample_next_block Unexecuted instantiation: outfuncs.c:table_scan_sample_next_block Unexecuted instantiation: queryjumblefuncs.c:table_scan_sample_next_block Unexecuted instantiation: readfuncs.c:table_scan_sample_next_block Unexecuted instantiation: plancat.c:table_scan_sample_next_block Unexecuted instantiation: partbounds.c:table_scan_sample_next_block Unexecuted instantiation: autovacuum.c:table_scan_sample_next_block Unexecuted instantiation: datachecksum_state.c:table_scan_sample_next_block Unexecuted instantiation: conflict.c:table_scan_sample_next_block Unexecuted instantiation: launcher.c:table_scan_sample_next_block Unexecuted instantiation: reorderbuffer.c:table_scan_sample_next_block Unexecuted instantiation: worker.c:table_scan_sample_next_block Unexecuted instantiation: rewriteHandler.c:table_scan_sample_next_block Unexecuted instantiation: attribute_stats.c:table_scan_sample_next_block Unexecuted instantiation: extended_stats_funcs.c:table_scan_sample_next_block Unexecuted instantiation: relation_stats.c:table_scan_sample_next_block Unexecuted instantiation: bufmgr.c:table_scan_sample_next_block Unexecuted instantiation: utility.c:table_scan_sample_next_block Unexecuted instantiation: ri_triggers.c:table_scan_sample_next_block Unexecuted instantiation: ruleutils.c:table_scan_sample_next_block Unexecuted instantiation: selfuncs.c:table_scan_sample_next_block Unexecuted instantiation: tid.c:table_scan_sample_next_block Unexecuted instantiation: trigfuncs.c:table_scan_sample_next_block Unexecuted instantiation: tsquery_rewrite.c:table_scan_sample_next_block Unexecuted instantiation: tsvector_op.c:table_scan_sample_next_block Unexecuted instantiation: xml.c:table_scan_sample_next_block Unexecuted instantiation: evtcache.c:table_scan_sample_next_block Unexecuted instantiation: funccache.c:table_scan_sample_next_block Unexecuted instantiation: relcache.c:table_scan_sample_next_block Unexecuted instantiation: postinit.c:table_scan_sample_next_block Unexecuted instantiation: guc_tables.c:table_scan_sample_next_block Unexecuted instantiation: simple_query_fuzzer.c:table_scan_sample_next_block |
2067 | | |
2068 | | /* |
2069 | | * Fetch the next sample tuple into `slot` and return true if a visible tuple |
2070 | | * was found, false otherwise. table_scan_sample_next_block() needs to |
2071 | | * previously have selected a block (i.e. returned true), and no previous |
2072 | | * table_scan_sample_next_tuple() for the same block may have returned false. |
2073 | | * |
2074 | | * This will call the TsmRoutine's NextSampleTuple() callback. |
2075 | | */ |
2076 | | static inline bool |
2077 | | table_scan_sample_next_tuple(TableScanDesc scan, |
2078 | | SampleScanState *scanstate, |
2079 | | TupleTableSlot *slot) |
2080 | 0 | { |
2081 | 0 | return scan->rs_rd->rd_tableam->scan_sample_next_tuple(scan, scanstate, |
2082 | 0 | slot); |
2083 | 0 | } Unexecuted instantiation: fuzzer_initialize.c:table_scan_sample_next_tuple Unexecuted instantiation: brin.c:table_scan_sample_next_tuple Unexecuted instantiation: detoast.c:table_scan_sample_next_tuple Unexecuted instantiation: toast_internals.c:table_scan_sample_next_tuple Unexecuted instantiation: gininsert.c:table_scan_sample_next_tuple Unexecuted instantiation: gistbuild.c:table_scan_sample_next_tuple Unexecuted instantiation: hash.c:table_scan_sample_next_tuple Unexecuted instantiation: heapam.c:table_scan_sample_next_tuple Unexecuted instantiation: heapam_handler.c:table_scan_sample_next_tuple Unexecuted instantiation: heapam_indexscan.c:table_scan_sample_next_tuple Unexecuted instantiation: heapam_visibility.c:table_scan_sample_next_tuple Unexecuted instantiation: heapam_xlog.c:table_scan_sample_next_tuple Unexecuted instantiation: heaptoast.c:table_scan_sample_next_tuple Unexecuted instantiation: hio.c:table_scan_sample_next_tuple Unexecuted instantiation: pruneheap.c:table_scan_sample_next_tuple Unexecuted instantiation: rewriteheap.c:table_scan_sample_next_tuple Unexecuted instantiation: vacuumlazy.c:table_scan_sample_next_tuple Unexecuted instantiation: genam.c:table_scan_sample_next_tuple Unexecuted instantiation: indexam.c:table_scan_sample_next_tuple Unexecuted instantiation: nbtdedup.c:table_scan_sample_next_tuple Unexecuted instantiation: nbtinsert.c:table_scan_sample_next_tuple Unexecuted instantiation: nbtpage.c:table_scan_sample_next_tuple Unexecuted instantiation: nbtsort.c:table_scan_sample_next_tuple Unexecuted instantiation: nbtsplitloc.c:table_scan_sample_next_tuple Unexecuted instantiation: spginsert.c:table_scan_sample_next_tuple Unexecuted instantiation: tableam.c:table_scan_sample_next_tuple Unexecuted instantiation: tableamapi.c:table_scan_sample_next_tuple Unexecuted instantiation: xact.c:table_scan_sample_next_tuple Unexecuted instantiation: bootstrap.c:table_scan_sample_next_tuple Unexecuted instantiation: aclchk.c:table_scan_sample_next_tuple Unexecuted instantiation: dependency.c:table_scan_sample_next_tuple Unexecuted instantiation: heap.c:table_scan_sample_next_tuple Unexecuted instantiation: index.c:table_scan_sample_next_tuple Unexecuted instantiation: indexing.c:table_scan_sample_next_tuple Unexecuted instantiation: objectaddress.c:table_scan_sample_next_tuple Unexecuted instantiation: pg_db_role_setting.c:table_scan_sample_next_tuple Unexecuted instantiation: pg_publication.c:table_scan_sample_next_tuple Unexecuted instantiation: pg_subscription.c:table_scan_sample_next_tuple Unexecuted instantiation: toasting.c:table_scan_sample_next_tuple Unexecuted instantiation: gram.c:table_scan_sample_next_tuple Unexecuted instantiation: alter.c:table_scan_sample_next_tuple Unexecuted instantiation: analyze.c:table_scan_sample_next_tuple Unexecuted instantiation: constraint.c:table_scan_sample_next_tuple Unexecuted instantiation: copyfrom.c:table_scan_sample_next_tuple Unexecuted instantiation: copyfromparse.c:table_scan_sample_next_tuple Unexecuted instantiation: copyto.c:table_scan_sample_next_tuple Unexecuted instantiation: createas.c:table_scan_sample_next_tuple Unexecuted instantiation: dbcommands.c:table_scan_sample_next_tuple Unexecuted instantiation: event_trigger.c:table_scan_sample_next_tuple Unexecuted instantiation: indexcmds.c:table_scan_sample_next_tuple Unexecuted instantiation: matview.c:table_scan_sample_next_tuple Unexecuted instantiation: repack.c:table_scan_sample_next_tuple Unexecuted instantiation: tablecmds.c:table_scan_sample_next_tuple Unexecuted instantiation: tablespace.c:table_scan_sample_next_tuple Unexecuted instantiation: trigger.c:table_scan_sample_next_tuple Unexecuted instantiation: typecmds.c:table_scan_sample_next_tuple Unexecuted instantiation: vacuum.c:table_scan_sample_next_tuple Unexecuted instantiation: execIndexing.c:table_scan_sample_next_tuple Unexecuted instantiation: execMain.c:table_scan_sample_next_tuple Unexecuted instantiation: execPartition.c:table_scan_sample_next_tuple Unexecuted instantiation: execReplication.c:table_scan_sample_next_tuple Unexecuted instantiation: execUtils.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeBitmapHeapscan.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeIndexonlyscan.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeIndexscan.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeLockRows.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeModifyTable.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeSamplescan.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeSeqscan.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeTidrangescan.c:table_scan_sample_next_tuple Unexecuted instantiation: nodeTidscan.c:table_scan_sample_next_tuple Unexecuted instantiation: spi.c:table_scan_sample_next_tuple Unexecuted instantiation: copyfuncs.c:table_scan_sample_next_tuple Unexecuted instantiation: equalfuncs.c:table_scan_sample_next_tuple Unexecuted instantiation: outfuncs.c:table_scan_sample_next_tuple Unexecuted instantiation: queryjumblefuncs.c:table_scan_sample_next_tuple Unexecuted instantiation: readfuncs.c:table_scan_sample_next_tuple Unexecuted instantiation: plancat.c:table_scan_sample_next_tuple Unexecuted instantiation: partbounds.c:table_scan_sample_next_tuple Unexecuted instantiation: autovacuum.c:table_scan_sample_next_tuple Unexecuted instantiation: datachecksum_state.c:table_scan_sample_next_tuple Unexecuted instantiation: conflict.c:table_scan_sample_next_tuple Unexecuted instantiation: launcher.c:table_scan_sample_next_tuple Unexecuted instantiation: reorderbuffer.c:table_scan_sample_next_tuple Unexecuted instantiation: worker.c:table_scan_sample_next_tuple Unexecuted instantiation: rewriteHandler.c:table_scan_sample_next_tuple Unexecuted instantiation: attribute_stats.c:table_scan_sample_next_tuple Unexecuted instantiation: extended_stats_funcs.c:table_scan_sample_next_tuple Unexecuted instantiation: relation_stats.c:table_scan_sample_next_tuple Unexecuted instantiation: bufmgr.c:table_scan_sample_next_tuple Unexecuted instantiation: utility.c:table_scan_sample_next_tuple Unexecuted instantiation: ri_triggers.c:table_scan_sample_next_tuple Unexecuted instantiation: ruleutils.c:table_scan_sample_next_tuple Unexecuted instantiation: selfuncs.c:table_scan_sample_next_tuple Unexecuted instantiation: tid.c:table_scan_sample_next_tuple Unexecuted instantiation: trigfuncs.c:table_scan_sample_next_tuple Unexecuted instantiation: tsquery_rewrite.c:table_scan_sample_next_tuple Unexecuted instantiation: tsvector_op.c:table_scan_sample_next_tuple Unexecuted instantiation: xml.c:table_scan_sample_next_tuple Unexecuted instantiation: evtcache.c:table_scan_sample_next_tuple Unexecuted instantiation: funccache.c:table_scan_sample_next_tuple Unexecuted instantiation: relcache.c:table_scan_sample_next_tuple Unexecuted instantiation: postinit.c:table_scan_sample_next_tuple Unexecuted instantiation: guc_tables.c:table_scan_sample_next_tuple Unexecuted instantiation: simple_query_fuzzer.c:table_scan_sample_next_tuple |
2084 | | |
2085 | | |
2086 | | /* ---------------------------------------------------------------------------- |
2087 | | * Functions to make modifications a bit simpler. |
2088 | | * ---------------------------------------------------------------------------- |
2089 | | */ |
2090 | | |
2091 | | extern void simple_table_tuple_insert(Relation rel, TupleTableSlot *slot); |
2092 | | extern void simple_table_tuple_delete(Relation rel, ItemPointer tid, |
2093 | | Snapshot snapshot); |
2094 | | extern void simple_table_tuple_update(Relation rel, ItemPointer otid, |
2095 | | TupleTableSlot *slot, Snapshot snapshot, |
2096 | | TU_UpdateIndexes *update_indexes); |
2097 | | |
2098 | | |
2099 | | /* ---------------------------------------------------------------------------- |
2100 | | * Helper functions to implement parallel scans for block oriented AMs. |
2101 | | * ---------------------------------------------------------------------------- |
2102 | | */ |
2103 | | |
2104 | | extern Size table_block_parallelscan_estimate(Relation rel); |
2105 | | extern Size table_block_parallelscan_initialize(Relation rel, |
2106 | | ParallelTableScanDesc pscan); |
2107 | | extern void table_block_parallelscan_reinitialize(Relation rel, |
2108 | | ParallelTableScanDesc pscan); |
2109 | | extern BlockNumber table_block_parallelscan_nextpage(Relation rel, |
2110 | | ParallelBlockTableScanWorker pbscanwork, |
2111 | | ParallelBlockTableScanDesc pbscan); |
2112 | | extern void table_block_parallelscan_startblock_init(Relation rel, |
2113 | | ParallelBlockTableScanWorker pbscanwork, |
2114 | | ParallelBlockTableScanDesc pbscan, |
2115 | | BlockNumber startblock, |
2116 | | BlockNumber numblocks); |
2117 | | |
2118 | | |
2119 | | /* ---------------------------------------------------------------------------- |
2120 | | * Helper functions to implement relation sizing for block oriented AMs. |
2121 | | * ---------------------------------------------------------------------------- |
2122 | | */ |
2123 | | |
2124 | | extern uint64 table_block_relation_size(Relation rel, ForkNumber forkNumber); |
2125 | | extern void table_block_relation_estimate_size(Relation rel, |
2126 | | int32 *attr_widths, |
2127 | | BlockNumber *pages, |
2128 | | double *tuples, |
2129 | | double *allvisfrac, |
2130 | | Size overhead_bytes_per_tuple, |
2131 | | Size usable_bytes_per_page); |
2132 | | |
2133 | | /* ---------------------------------------------------------------------------- |
2134 | | * Functions in tableamapi.c |
2135 | | * ---------------------------------------------------------------------------- |
2136 | | */ |
2137 | | |
2138 | | extern const TableAmRoutine *GetTableAmRoutine(Oid amhandler); |
2139 | | |
2140 | | /* ---------------------------------------------------------------------------- |
2141 | | * Functions in heapam_handler.c |
2142 | | * ---------------------------------------------------------------------------- |
2143 | | */ |
2144 | | |
2145 | | extern const TableAmRoutine *GetHeapamTableAmRoutine(void); |
2146 | | |
2147 | | #endif /* TABLEAM_H */ |