PostgreSQL Source Code
git master
tablesample.c
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* tablesample.c
4
* Support functions for TABLESAMPLE feature
5
*
6
* Portions Copyright (c) 1996-2024, PostgreSQL Global Development Group
7
* Portions Copyright (c) 1994, Regents of the University of California
8
*
9
*
10
* IDENTIFICATION
11
* src/backend/access/tablesample/tablesample.c
12
*
13
* -------------------------------------------------------------------------
14
*/
15
16
#include "
postgres.h
"
17
18
#include "
access/tsmapi.h
"
19
20
21
/*
22
* GetTsmRoutine --- get a TsmRoutine struct by invoking the handler.
23
*
24
* This is a convenience routine that's just meant to check for errors.
25
*/
26
TsmRoutine
*
27
GetTsmRoutine
(
Oid
tsmhandler)
28
{
29
Datum
datum;
30
TsmRoutine
*routine;
31
32
datum =
OidFunctionCall1
(tsmhandler,
PointerGetDatum
(NULL));
33
routine = (
TsmRoutine
*)
DatumGetPointer
(datum);
34
35
if
(routine == NULL || !
IsA
(routine,
TsmRoutine
))
36
elog
(
ERROR
,
"tablesample handler function %u did not return a TsmRoutine struct"
,
37
tsmhandler);
38
39
return
routine;
40
}
ERROR
#define ERROR
Definition:
elog.h:39
elog
#define elog(elevel,...)
Definition:
elog.h:225
OidFunctionCall1
#define OidFunctionCall1(functionId, arg1)
Definition:
fmgr.h:679
IsA
#define IsA(nodeptr, _type_)
Definition:
nodes.h:158
postgres.h
PointerGetDatum
static Datum PointerGetDatum(const void *X)
Definition:
postgres.h:322
Datum
uintptr_t Datum
Definition:
postgres.h:64
DatumGetPointer
static Pointer DatumGetPointer(Datum X)
Definition:
postgres.h:312
Oid
unsigned int Oid
Definition:
postgres_ext.h:31
TsmRoutine
Definition:
tsmapi.h:57
GetTsmRoutine
TsmRoutine * GetTsmRoutine(Oid tsmhandler)
Definition:
tablesample.c:27
tsmapi.h
src
backend
access
tablesample
tablesample.c
Generated on Sun Sep 15 2024 12:13:14 for PostgreSQL Source Code by
1.9.1