@@ -3077,19 +3077,27 @@ psql_completion(const char *text, int start, int end)
3077
3077
COMPLETE_WITH ("SELECT" , "INSERT" , "DELETE" , "UPDATE" , "DECLARE" );
3078
3078
3079
3079
/* 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
+ */
3081
3085
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" );
3086
3092
3087
3093
/*
3088
- * Complete FETCH <sth1> <sth2 > with "FROM" or "IN". These are equivalent,
3094
+ * Complete FETCH <direction > with "FROM" or "IN". These are equivalent,
3089
3095
* but we may as well tab-complete both: perhaps some users prefer one
3090
3096
* variant or the other.
3091
3097
*/
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" ))
3093
3101
COMPLETE_WITH ("FROM" , "IN" );
3094
3102
3095
3103
/* FOREIGN DATA WRAPPER */
0 commit comments