diff --git a/contrib/pageinspect/ginfuncs.c b/contrib/pageinspect/ginfuncs.c
new file mode 100644
index c0de3be..297e697
*** a/contrib/pageinspect/ginfuncs.c
--- b/contrib/pageinspect/ginfuncs.c
***************
*** 27,32 ****
--- 27,33 ----
  PG_FUNCTION_INFO_V1(gin_metapage_info);
  PG_FUNCTION_INFO_V1(gin_page_opaque_info);
  PG_FUNCTION_INFO_V1(gin_leafpage_items);
+ PG_FUNCTION_INFO_V1(gin_clean_pending_list);
  
  Datum
  gin_metapage_info(PG_FUNCTION_ARGS)
*************** gin_leafpage_items(PG_FUNCTION_ARGS)
*** 279,281 ****
--- 280,305 ----
  	else
  		SRF_RETURN_DONE(fctx);
  }
+ 
+ 
+ 
+ /*
+  * Clear the pending list
+  *
+  * Usage: SELECT * FROM gin_clean_pending_list('idx'::regclass);
+  */
+ Datum
+ gin_clean_pending_list(PG_FUNCTION_ARGS)
+ {
+ 	Oid			indexRelid = PG_GETARG_OID(0);
+ 	Relation	indexRel = index_open(indexRelid, AccessShareLock);
+ 	IndexBulkDeleteResult stats;
+ 	GinState	ginstate;
+ 
+ 	memset(&stats, 0, sizeof(stats));
+ 	initGinState(&ginstate, indexRel);
+ 	ginInsertCleanup(&ginstate, true, &stats);
+ 
+ 	index_close(indexRel, AccessShareLock);
+ 	PG_RETURN_INT64((int64) stats.pages_deleted);
+ };
diff --git a/contrib/pageinspect/pageinspect--1.3.sql b/contrib/pageinspect/pageinspect--1.3.sql
new file mode 100644
index a99e058..8e4a20e
*** a/contrib/pageinspect/pageinspect--1.3.sql
--- b/contrib/pageinspect/pageinspect--1.3.sql
*************** CREATE FUNCTION gin_leafpage_items(IN pa
*** 187,189 ****
--- 187,194 ----
  RETURNS SETOF record
  AS 'MODULE_PATHNAME', 'gin_leafpage_items'
  LANGUAGE C STRICT;
+ 
+ CREATE FUNCTION gin_clean_pending_list(IN index_oid regclass)
+ RETURNS bigint 
+ AS 'MODULE_PATHNAME', 'gin_clean_pending_list'
+ LANGUAGE C STRICT;
