diff --git a/src/backend/access/gist/gistbuild.c b/src/backend/access/gist/gistbuild.c index 021a8dcf44b98539940ed08a0d4a9c41bce16c2d..3dc3e96df4d9c13833c8b1dc15a5a3e06f5078fc 100644 --- a/src/backend/access/gist/gistbuild.c +++ b/src/backend/access/gist/gistbuild.c @@ -144,6 +144,16 @@ gistbuild(PG_FUNCTION_ARGS) elog(ERROR, "index \"%s\" already contains data", RelationGetRelationName(index)); + /* + * We can't yet handle unlogged GiST indexes, because we depend on LSNs. + * This is duplicative of an error in gistbuildempty, but we want to check + * here so as to throw error before doing all the index-build work. + */ + if (heap->rd_rel->relpersistence == RELPERSISTENCE_UNLOGGED) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("unlogged GiST indexes are not supported"))); + /* no locking is needed */ buildstate.giststate = initGISTstate(index);