Description
pg_select submits a SELECT query to the
PostgreSQL backend, and executes a
given chunk of code for each tuple in the result.
  The queryString
  must be a SELECT statement.  Anything else returns an error.
  The arrayVar
  variable is an array name used in the loop.  For each tuple,
  arrayVar is filled in
  with the tuple field values, using the field names as the array
  indexes.  Then the
  queryProcedure
  is executed.
 In addition to the field values, the following special entries are
made in the array:
- .headers
- A list of the column names returned by the SELECT. 
- .numcols
- The number of columns returned by the SELECT. 
- .tupno
- The current tuple number, starting at zero and incrementing
for each iteration of the loop body. 
Usage
This would work if table table has fields control and name
(and, perhaps, other fields):
	pg_select $pgconn "SELECT * FROM table" array {
		puts [format "%5d %s" $array(control) $array(name)]
	}