if (varnos != NULL)
{
- *varnos = (int *) malloc(sizeof(int) * n);
-
- n = 0;
- for (i = datums_last; i < plpgsql_nDatums; i++)
+ if (n > 0)
{
- switch (plpgsql_Datums[i]->dtype)
+ *varnos = (int *) malloc(sizeof(int) * n);
+
+ n = 0;
+ for (i = datums_last; i < plpgsql_nDatums; i++)
{
- case PLPGSQL_DTYPE_VAR:
- (*varnos)[n++] = plpgsql_Datums[i]->dno;
+ switch (plpgsql_Datums[i]->dtype)
+ {
+ case PLPGSQL_DTYPE_VAR:
+ (*varnos)[n++] = plpgsql_Datums[i]->dno;
- default:
- break;
+ default:
+ break;
+ }
}
}
+ else
+ *varnos = NULL;
}
datums_last = plpgsql_nDatums;