在纯C代码中,在不同的项目中,我涉及Postgresql服务器编程 我现在正在使用的 "IsA() "函数,一直遇到 "IsA() "这个函数,它返回一个布尔值,检查一个结构的2个实例是否属于同一个结构。我想是这样的。
其中的一个。
https:/github.comguotao0628pipelinedbblobmastersrcbackendexecutornodeBitmapAnd.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() "是如何在引擎盖下实现的。但是我没有在任何地方找到它。据说它被定义在某个库中。
我在哪里可以找到它的定义?
IsA
是一个宏,它定义在 这个 头文件 Postgresql
源代码。