@@ -3077,19 +3077,27 @@ psql_completion(const char *text, int start, int end)
30773077 COMPLETE_WITH ("SELECT" , "INSERT" , "DELETE" , "UPDATE" , "DECLARE" );
30783078
30793079/* FETCH && MOVE */
3080- /* Complete FETCH with one of FORWARD, BACKWARD, RELATIVE */
3080+
3081+ /*
3082+ * Complete FETCH with one of ABSOLUTE, BACKWARD, FORWARD, RELATIVE, ALL,
3083+ * NEXT, PRIOR, FIRST, LAST
3084+ */
30813085 else if (Matches ("FETCH|MOVE" ))
3082- COMPLETE_WITH ("ABSOLUTE" , "BACKWARD" , "FORWARD" , "RELATIVE" );
3083- /* Complete FETCH <sth> with one of ALL, NEXT, PRIOR */
3084- else if (Matches ("FETCH|MOVE" , MatchAny ))
3085- COMPLETE_WITH ("ALL" , "NEXT" , "PRIOR" );
3086+ COMPLETE_WITH ("ABSOLUTE" , "BACKWARD" , "FORWARD" , "RELATIVE" ,
3087+ "ALL" , "NEXT" , "PRIOR" , "FIRST" , "LAST" );
3088+
3089+ /* Complete FETCH BACKWARD or FORWARD with one of ALL, FROM, IN */
3090+ else if (Matches ("FETCH|MOVE" , "BACKWARD|FORWARD" ))
3091+ COMPLETE_WITH ("ALL" , "FROM" , "IN" );
30863092
30873093 /*
3088- * Complete FETCH <sth1> <sth2 > with "FROM" or "IN". These are equivalent,
3094+ * Complete FETCH <direction > with "FROM" or "IN". These are equivalent,
30893095 * but we may as well tab-complete both: perhaps some users prefer one
30903096 * variant or the other.
30913097 */
3092- else if (Matches ("FETCH|MOVE" , MatchAny , MatchAny ))
3098+ else if (Matches ("FETCH|MOVE" , "ABSOLUTE|BACKWARD|FORWARD|RELATIVE" ,
3099+ MatchAnyExcept ("FROM|IN" )) ||
3100+ Matches ("FETCH|MOVE" , "ALL|NEXT|PRIOR|FIRST|LAST" ))
30933101 COMPLETE_WITH ("FROM" , "IN" );
30943102
30953103/* FOREIGN DATA WRAPPER */
0 commit comments