diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c
new file mode 100644
index 0cb3464..8f14323
*** a/src/bin/psql/tab-complete.c
--- b/src/bin/psql/tab-complete.c
*************** psql_completion(const char *text, int st
*** 1209,1216 ****
  	/* ALTER INDEX <foo> SET|RESET ( */
  	else if (pg_strcasecmp(prev5_wd, "ALTER") == 0 &&
  			 pg_strcasecmp(prev4_wd, "INDEX") == 0 &&
! 			 (pg_strcasecmp(prev2_wd, "SET") == 0 ||
! 			  pg_strcasecmp(prev2_wd, "RESET") == 0) &&
  			 pg_strcasecmp(prev_wd, "(") == 0)
  	{
  		static const char *const list_INDEXOPTIONS[] =
--- 1209,1215 ----
  	/* ALTER INDEX <foo> SET|RESET ( */
  	else if (pg_strcasecmp(prev5_wd, "ALTER") == 0 &&
  			 pg_strcasecmp(prev4_wd, "INDEX") == 0 &&
! 			 pg_strcasecmp(prev2_wd, "RESET") == 0 &&
  			 pg_strcasecmp(prev_wd, "(") == 0)
  	{
  		static const char *const list_INDEXOPTIONS[] =
*************** psql_completion(const char *text, int st
*** 1218,1223 ****
--- 1217,1232 ----
  
  		COMPLETE_WITH_LIST(list_INDEXOPTIONS);
  	}
+ 	else if (pg_strcasecmp(prev5_wd, "ALTER") == 0 &&
+ 			 pg_strcasecmp(prev4_wd, "INDEX") == 0 &&
+ 			 pg_strcasecmp(prev2_wd, "SET") == 0 &&
+ 			 pg_strcasecmp(prev_wd, "(") == 0)
+ 	{
+ 		static const char *const list_INDEXOPTIONS[] =
+ 		{"fillfactor =", "fastupdate =", "gin_pending_list_limit =", NULL};
+ 
+ 		COMPLETE_WITH_LIST(list_INDEXOPTIONS);
+ 	}
  
  	/* ALTER LANGUAGE <name> */
  	else if (pg_strcasecmp(prev3_wd, "ALTER") == 0 &&
