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

Quelle  tsmapi.h

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * tsmapi.h
 *   API for tablesample methods
 *
 * Copyright (c) 2015-2025, PostgreSQL Global Development Group
 *
 * src/include/access/tsmapi.h
 *
 *-------------------------------------------------------------------------
 */

#ifndef TSMAPI_H
#define TSMAPI_H

#include "nodes/execnodes.h"
#include "nodes/pathnodes.h"


/*
 * Callback function signatures --- see tablesample-method.sgml for more info.
 */


typedef void (*SampleScanGetSampleSize_function) (PlannerInfo *root,
              RelOptInfo *baserel,
              List *paramexprs,
              BlockNumber *pages,
              double *tuples);

typedef void (*InitSampleScan_function) (SampleScanState *node,
           int eflags);

typedef void (*BeginSampleScan_function) (SampleScanState *node,
            Datum *params,
            int nparams,
            uint32 seed);

typedef BlockNumber (*NextSampleBlock_function) (SampleScanState *node,
             BlockNumber nblocks);

typedef OffsetNumber (*NextSampleTuple_function) (SampleScanState *node,
              BlockNumber blockno,
              OffsetNumber maxoffset);

typedef void (*EndSampleScan_function) (SampleScanState *node);

/*
 * TsmRoutine is the struct returned by a tablesample method's handler
 * function.  It provides pointers to the callback functions needed by the
 * planner and executor, as well as additional information about the method.
 *
 * More function pointers are likely to be added in the future.
 * Therefore it's recommended that the handler initialize the struct with
 * makeNode(TsmRoutine) so that all fields are set to NULL.  This will
 * ensure that no fields are accidentally left undefined.
 */

typedef struct TsmRoutine
{
 NodeTag  type;

 /* List of datatype OIDs for the arguments of the TABLESAMPLE clause */
 List    *parameterTypes;

 /* Can method produce repeatable samples across, or even within, queries? */
 bool  repeatable_across_queries;
 bool  repeatable_across_scans;

 /* Functions for planning a SampleScan on a physical table */
 SampleScanGetSampleSize_function SampleScanGetSampleSize;

 /* Functions for executing a SampleScan on a physical table */
 InitSampleScan_function InitSampleScan; /* can be NULL */
 BeginSampleScan_function BeginSampleScan;
 NextSampleBlock_function NextSampleBlock; /* can be NULL */
 NextSampleTuple_function NextSampleTuple;
 EndSampleScan_function EndSampleScan; /* can be NULL */
} TsmRoutine;


/* Functions in access/tablesample/tablesample.c */
extern TsmRoutine *GetTsmRoutine(Oid tsmhandler);

#endif       /* TSMAPI_H */

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

¤ Dauer der Verarbeitung: 0.11 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.