Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/include/partitioning/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 2 kB image not shown  

Quelle  partdesc.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * partdesc.h
 *
 * Copyright (c) 1996-2025, PostgreSQL Global Development Group
 *
 * src/include/partitioning/partdesc.h
 *
 *-------------------------------------------------------------------------
 */


#ifndef PARTDESC_H
#define PARTDESC_H

#include "partitioning/partdefs.h"
#include "utils/relcache.h"

/*
 * Information about partitions of a partitioned table.
 *
 * For partitioned tables where detached partitions exist, we only cache
 * descriptors that include all partitions, including detached; when we're
 * requested a descriptor without the detached partitions, we create one
 * afresh each time.  (The reason for this is that the set of detached
 * partitions that are visible to each caller depends on the snapshot it has,
 * so it's pretty much impossible to evict a descriptor from cache at the
 * right time.)
 */

typedef struct PartitionDescData
{
 int   nparts;   /* Number of partitions */
 bool  detached_exist; /* Are there any detached partitions? */
 Oid     *oids;   /* Array of 'nparts' elements containing
 * partition OIDs in order of their bounds */

 bool    *is_leaf;  /* Array of 'nparts' elements storing whether
         * the corresponding 'oids' element belongs to
 * a leaf partition or not */

 PartitionBoundInfo boundinfo; /* collection of partition bounds */

 /* Caching fields to cache lookups in get_partition_for_tuple() */

 /*
  * Index into the PartitionBoundInfo's datum array for the last found
  * partition or -1 if none.
 */

 int   last_found_datum_index;

 /*
  * Partition index of the last found partition or -1 if none has been
  * found yet.
 */

 int   last_found_part_index;

 /*
  * For LIST partitioning, this is the number of times in a row that the
  * datum we're looking for a partition for matches the datum in the
  * last_found_datum_index index of the boundinfo->datums array.  For RANGE
  * partitioning, this is the number of times in a row we've found that the
  * datum we're looking for a partition for falls into the range of the
  * partition corresponding to the last_found_datum_index index of the
  * boundinfo->datums array.
 */

 int   last_found_count;
} PartitionDescData;


extern PartitionDesc RelationGetPartitionDesc(Relation rel, bool omit_detached);

extern PartitionDirectory CreatePartitionDirectory(MemoryContext mcxt, bool omit_detached);
extern PartitionDesc PartitionDirectoryLookup(PartitionDirectory, Relation);
extern void DestroyPartitionDirectory(PartitionDirectory pdir);

extern Oid get_default_oid_from_partdesc(PartitionDesc partdesc);

#endif       /* PARTDESC_H */

Messung V0.5 in Prozent
C=86 H=100 G=93

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet am  2026-08-06) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.