Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  explain_state.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * explain_state.h
 *   prototypes for explain_state.c
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994-5, Regents of the University of California
 *
 * src/include/commands/explain_state.h
 *
 *-------------------------------------------------------------------------
 */

#ifndef EXPLAIN_STATE_H
#define EXPLAIN_STATE_H

#include "nodes/parsenodes.h"
#include "nodes/plannodes.h"
#include "parser/parse_node.h"

typedef enum ExplainSerializeOption
{
 EXPLAIN_SERIALIZE_NONE,
 EXPLAIN_SERIALIZE_TEXT,
 EXPLAIN_SERIALIZE_BINARY,
} ExplainSerializeOption;

typedef enum ExplainFormat
{
 EXPLAIN_FORMAT_TEXT,
 EXPLAIN_FORMAT_XML,
 EXPLAIN_FORMAT_JSON,
 EXPLAIN_FORMAT_YAML,
} ExplainFormat;

typedef struct ExplainWorkersState
{
 int   num_workers; /* # of worker processes the plan used */
 bool    *worker_inited; /* per-worker state-initialized flags */
 StringInfoData *worker_str; /* per-worker transient output buffers */
 int     *worker_state_save; /* per-worker grouping state save areas */
 StringInfo prev_str;  /* saved output buffer while redirecting */
} ExplainWorkersState;

typedef struct ExplainState
{
 StringInfo str;   /* output buffer */
 /* options */
 bool  verbose;  /* be verbose */
 bool  analyze;  /* print actual times */
 bool  costs;   /* print estimated costs */
 bool  buffers;  /* print buffer usage */
 bool  wal;   /* print WAL usage */
 bool  timing;   /* print detailed node timing */
 bool  summary;  /* print total planning and execution timing */
 bool  memory;   /* print planner's memory usage information */
 bool  settings;  /* print modified settings */
 bool  generic;  /* generate a generic plan */
 ExplainSerializeOption serialize; /* serialize the query's output? */
 ExplainFormat format;  /* output format */
 /* state for output formatting --- not reset for each new plan tree */
 int   indent;   /* current indentation level */
 List    *grouping_stack; /* format-specific grouping state */
 /* state related to the current plan tree (filled by ExplainPrintPlan) */
 PlannedStmt *pstmt;   /* top of plan */
 List    *rtable;   /* range table */
 List    *rtable_names; /* alias names for RTEs */
 List    *deparse_cxt; /* context list for deparsing expressions */
 Bitmapset  *printed_subplans; /* ids of SubPlans we've printed */
 bool  hide_workers; /* set if we find an invisible Gather */
 int   rtable_size; /* length of rtable excluding the RTE_GROUP
 * entry */

 /* state related to the current plan node */
 ExplainWorkersState *workers_state; /* needed if parallel plan */
 /* extensions */
 void   **extension_state;
 int   extension_state_allocated;
} ExplainState;

typedef void (*ExplainOptionHandler) (ExplainState *, DefElem *, ParseState *);

/* Hook to perform additional EXPLAIN options validation */
typedef void (*explain_validate_options_hook_type) (struct ExplainState *es, List *options,
             ParseState *pstate);
extern PGDLLIMPORT explain_validate_options_hook_type explain_validate_options_hook;

extern ExplainState *NewExplainState(void);
extern void ParseExplainOptionList(ExplainState *es, List *options,
           ParseState *pstate);

extern int GetExplainExtensionId(const char *extension_name);
extern void *GetExplainExtensionState(ExplainState *es, int extension_id);
extern void SetExplainExtensionState(ExplainState *es, int extension_id,
          void *opaque);

extern void RegisterExtensionExplainOption(const char *option_name,
             ExplainOptionHandler handler);
extern bool ApplyExtensionExplainOption(ExplainState *es, DefElem *opt,
          ParseState *pstate);

#endif       /* EXPLAIN_STATE_H */

Messung V0.5 in Prozent
C=65 H=100 G=84

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

*© 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002