mirror of
https://github.com/postgres/postgres.git
synced 2026-03-15 07:04:10 -04:00
columns, and the new version can be stored on the same heap page, we no longer generate extra index entries for the new version. Instead, index searches follow the HOT-chain links to ensure they find the correct tuple version. In addition, this patch introduces the ability to "prune" dead tuples on a per-page basis, without having to do a complete VACUUM pass to recover space. VACUUM is still needed to clean up dead index entries, however. Pavan Deolasee, with help from a bunch of other people.
31 lines
1.1 KiB
C
31 lines
1.1 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* var.h
|
|
* prototypes for optimizer/util/var.c.
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/optimizer/var.h,v 1.36 2007/09/20 17:56:32 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef VAR_H
|
|
#define VAR_H
|
|
|
|
#include "nodes/relation.h"
|
|
|
|
|
|
extern Relids pull_varnos(Node *node);
|
|
extern void pull_varattnos(Node *node, Bitmapset **varattnos);
|
|
extern bool contain_var_reference(Node *node, int varno, int varattno,
|
|
int levelsup);
|
|
extern bool contain_var_clause(Node *node);
|
|
extern bool contain_vars_of_level(Node *node, int levelsup);
|
|
extern bool contain_vars_above_level(Node *node, int levelsup);
|
|
extern int find_minimum_var_level(Node *node);
|
|
extern List *pull_var_clause(Node *node, bool includeUpperVars);
|
|
extern Node *flatten_join_alias_vars(PlannerInfo *root, Node *node);
|
|
|
|
#endif /* VAR_H */
|