blob: 02f2a95e84f17c3b33e2eaf44dad98701f519d31 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
/*-------------------------------------------------------------------------
*
* tablesample.c
* Support functions for TABLESAMPLE feature
*
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* src/backend/access/tablesample/tablesample.c
*
* -------------------------------------------------------------------------
*/
#include "postgres.h"
#include "access/tsmapi.h"
/*
* GetTsmRoutine --- get a TsmRoutine struct by invoking the handler.
*
* This is a convenience routine that's just meant to check for errors.
*/
TsmRoutine *
GetTsmRoutine(Oid tsmhandler)
{
Datum datum;
TsmRoutine *routine;
datum = OidFunctionCall1(tsmhandler, PointerGetDatum(NULL));
routine = (TsmRoutine *) DatumGetPointer(datum);
if (routine == NULL || !IsA(routine, TsmRoutine))
elog(ERROR, "tablesample handler function %u did not return a TsmRoutine struct",
tsmhandler);
return routine;
}
|