/pgpatches/psql_DO

text/x-diff

Filename: /pgpatches/psql_DO
Type: text/x-diff
Part: 0
Message: Re: psql tab completion for DO blocks

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: context
File+
src/bin/psql/tab-complete.c 19 1
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 &&