В чистом коде C в разных проектах, которые i nvolve Postgresql серверное программирование , с которым я сейчас работаю, я постоянно сталкиваюсь с функцией IsA (), которая возвращает логическое значение и проверяет принадлежат ли 2 экземпляра структуры одной структуре. Я полагаю.
Один из них:
https://github.com/guotao0628/pipelinedb/blob/master/src/backend/executor/nodeBitmapAnd.c#L123
for (i = 0; i < nplans; i++)
{
PlanState *subnode = bitmapplans[i];
TIDBitmap *subresult;
subresult = (TIDBitmap *) MultiExecProcNode(subnode);
if (!subresult || !IsA(subresult, TIDBitmap)) /*what's IsA(...) ? */
elog(ERROR, "unrecognized result from subplan");
if (result == NULL)
result = subresult; /* first subplan */
Мне нужно перенести часть этого кода C на другой строго типизированный язык. Следовательно, мне нужно знать, как «isA ()» реализовано под капотом. Но нигде не нашел. Предположительно он определен в какой-то библиотеке.
Где я могу найти его определение?