Age Owner Branch data TLA Line data Source code
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 *
3186 tgl@sss.pgh.pa.us 27 :CBC 614 : GetTsmRoutine(Oid tsmhandler)
28 : : {
29 : : Datum datum;
30 : : TsmRoutine *routine;
31 : :
32 : 614 : datum = OidFunctionCall1(tsmhandler, PointerGetDatum(NULL));
33 : 614 : routine = (TsmRoutine *) DatumGetPointer(datum);
34 : :
35 [ + - - + ]: 614 : if (routine == NULL || !IsA(routine, TsmRoutine))
3186 tgl@sss.pgh.pa.us 36 [ # # ]:UBC 0 : elog(ERROR, "tablesample handler function %u did not return a TsmRoutine struct",
37 : : tsmhandler);
38 : :
3186 tgl@sss.pgh.pa.us 39 :CBC 614 : return routine;
40 : : }
|