mirror of
https://github.com/pgvector/pgvector.git
synced 2026-07-12 15:46:54 +08:00
Added checks for invalid indexes - #591
This commit is contained in:
@@ -300,6 +300,9 @@ HnswGetMetaPageInfo(Relation index, int *m, HnswElement * entryPoint)
|
|||||||
page = BufferGetPage(buf);
|
page = BufferGetPage(buf);
|
||||||
metap = HnswPageGetMeta(page);
|
metap = HnswPageGetMeta(page);
|
||||||
|
|
||||||
|
if (unlikely(metap->magicNumber != HNSW_MAGIC_NUMBER))
|
||||||
|
elog(ERROR, "hnsw index is not valid");
|
||||||
|
|
||||||
if (m != NULL)
|
if (m != NULL)
|
||||||
*m = metap->m;
|
*m = metap->m;
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ FindInsertPage(Relation index, Datum *values, BlockNumber *insertPage, ListInfo
|
|||||||
FmgrInfo *procinfo;
|
FmgrInfo *procinfo;
|
||||||
Oid collation;
|
Oid collation;
|
||||||
|
|
||||||
|
/* Ensure index is valid */
|
||||||
|
IvfflatGetMetaPageInfo(index, NULL, NULL);
|
||||||
|
|
||||||
/* Avoid compiler warning */
|
/* Avoid compiler warning */
|
||||||
listInfo->blkno = nextblkno;
|
listInfo->blkno = nextblkno;
|
||||||
listInfo->offno = FirstOffsetNumber;
|
listInfo->offno = FirstOffsetNumber;
|
||||||
|
|||||||
@@ -170,7 +170,11 @@ IvfflatGetMetaPageInfo(Relation index, int *lists, int *dimensions)
|
|||||||
page = BufferGetPage(buf);
|
page = BufferGetPage(buf);
|
||||||
metap = IvfflatPageGetMeta(page);
|
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)
|
if (dimensions != NULL)
|
||||||
*dimensions = metap->dimensions;
|
*dimensions = metap->dimensions;
|
||||||
|
|||||||
Reference in New Issue
Block a user