Index: src/bin/psql/tab-complete.c
===================================================================
RCS file: /cvsroot/pgsql/src/bin/psql/tab-complete.c,v
retrieving revision 1.192
diff -c -c -r1.192 tab-complete.c
*** src/bin/psql/tab-complete.c	25 Jan 2010 18:23:09 -0000	1.192
--- src/bin/psql/tab-complete.c	6 Feb 2010 19:09:26 -0000
***************
*** 618,624 ****
  	static const char *const sql_commands[] = {
  		"ABORT", "ALTER", "ANALYZE", "BEGIN", "CHECKPOINT", "CLOSE", "CLUSTER",
  		"COMMENT", "COMMIT", "COPY", "CREATE", "DEALLOCATE", "DECLARE",
! 		"DELETE FROM", "DISCARD", "DROP", "END", "EXECUTE", "EXPLAIN", "FETCH",
  		"GRANT", "INSERT", "LISTEN", "LOAD", "LOCK", "MOVE", "NOTIFY", "PREPARE",
  		"REASSIGN", "REINDEX", "RELEASE", "RESET", "REVOKE", "ROLLBACK",
  		"SAVEPOINT", "SELECT", "SET", "SHOW", "START", "TABLE", "TRUNCATE", "UNLISTEN",
--- 618,624 ----
  	static const char *const sql_commands[] = {
  		"ABORT", "ALTER", "ANALYZE", "BEGIN", "CHECKPOINT", "CLOSE", "CLUSTER",
  		"COMMENT", "COMMIT", "COPY", "CREATE", "DEALLOCATE", "DECLARE",
! 		"DELETE FROM", "DISCARD", "DO", "DROP", "END", "EXECUTE", "EXPLAIN", "FETCH",
  		"GRANT", "INSERT", "LISTEN", "LOAD", "LOCK", "MOVE", "NOTIFY", "PREPARE",
  		"REASSIGN", "REINDEX", "RELEASE", "RESET", "REVOKE", "ROLLBACK",
  		"SAVEPOINT", "SELECT", "SET", "SHOW", "START", "TABLE", "TRUNCATE", "UNLISTEN",
***************
*** 1532,1537 ****
--- 1532,1555 ----
  		COMPLETE_WITH_LIST(list_DISCARD);
  	}
  
+ /* DO */
+ 	/*
+ 	 * Complete DO with LANGUAGE.
+ 	 */
+ 	else if (pg_strcasecmp(prev_wd, "DO") == 0)
+ 	{
+ 		static const char *const list_DO[] =
+ 		{"LANGUAGE", NULL};
+ 
+ 		COMPLETE_WITH_LIST(list_DO);
+ 	}
+ 	/*
+ 	 * Complete DO LANGUAGE with in-line-able languages.
+ 	 */
+ 	else if (pg_strcasecmp(prev2_wd, "DO") == 0 &&
+ 			 pg_strcasecmp(prev_wd, "LANGUAGE") == 0)
+ 		COMPLETE_WITH_QUERY(Query_for_list_of_languages);
+ 
  /* DROP (when not the previous word) */
  	/* DROP AGGREGATE */
  	else if (pg_strcasecmp(prev3_wd, "DROP") == 0 &&
