int segmentNumber = PG_GETARG_INT32(2);
bool willneed = PG_GETARG_BOOL(3);
bool dontneed = PG_GETARG_BOOL(4);
- VarBit *databit = PG_GETARG_VARBIT_P(5);
+ VarBit *databit;
/* our structure use to return values */
pgfloaderStruct *pgfloader;
Datum values[PGFADVISE_LOADER_COLS];
bool nulls[PGFADVISE_LOADER_COLS];
+ if (PG_ARGISNULL(5))
+ elog(ERROR, "pgfadvise_loader: databit argument shouldn't be NULL");
+ else
+ databit = PG_GETARG_VARBIT_P(5);
+
/* initialize nulls array to build the tuple */
memset(nulls, 0, sizeof(nulls));
select true from pgfadvise_loader('test', 0, true, false, B'1010');
select true from pgfadvise_loader('test', 0, false, true, B'1010');
select true from pgfadvise_loader('test', 0, false, false, B'1010');
+-- must not fail on NULL or empty
+select true from pgfadvise_loader('test', 0, false, false, NULL);
+select true from pgfadvise_loader('test', 0, false, false, B'');
--
-- test pgfincore
select true from pgfadvise_loader('test', 0, true, false, B'1010');
select true from pgfadvise_loader('test', 0, false, true, B'1010');
select true from pgfadvise_loader('test', 0, false, false, B'1010');
+-- must not fail on NULL or empty
+select true from pgfadvise_loader('test', 0, false, false, NULL);
+select true from pgfadvise_loader('test', 0, false, false, B'');
--
-- test pgfincore