Added checks for invalid indexes - #591

This commit is contained in:
Andrew Kane
2024-06-10 21:20:54 -07:00
parent 9dcf1bdc80
commit 9e91af5989
3 changed files with 11 additions and 1 deletions

View File

@@ -300,6 +300,9 @@ HnswGetMetaPageInfo(Relation index, int *m, HnswElement * entryPoint)
page = BufferGetPage(buf);
metap = HnswPageGetMeta(page);
if (unlikely(metap->magicNumber != HNSW_MAGIC_NUMBER))
elog(ERROR, "hnsw index is not valid");
if (m != NULL)
*m = metap->m;

View File

@@ -19,6 +19,9 @@ FindInsertPage(Relation index, Datum *values, BlockNumber *insertPage, ListInfo
FmgrInfo *procinfo;
Oid collation;
/* Ensure index is valid */
IvfflatGetMetaPageInfo(index, NULL, NULL);
/* Avoid compiler warning */
listInfo->blkno = nextblkno;
listInfo->offno = FirstOffsetNumber;

View File

@@ -170,7 +170,11 @@ IvfflatGetMetaPageInfo(Relation index, int *lists, int *dimensions)
page = BufferGetPage(buf);
metap = IvfflatPageGetMeta(page);
*lists = metap->lists;
if (unlikely(metap->magicNumber != IVFFLAT_MAGIC_NUMBER))
elog(ERROR, "ivfflat index is not valid");
if (lists != NULL)
*lists = metap->lists;
if (dimensions != NULL)
*dimensions = metap->dimensions;