code: function (column, cb) {
              var ret = this.forEach();
              column && (ret = ret[isFunction(column) ? "map" : "pluck"](column));
              return ret.classic(cb).promise();
          }
docs: Maps column values for each record in the dataset (if a column name is
  given).
  
  @example
  
  // SELECT * FROM table
  DB.from("table").map("id").chain(function(ids){
  // e.g. ids === [1, 2, 3, ...]
  });
  
  // SELECT * FROM table
  DB.from("table").map(function(r){
  return r.id * 2;
  }).chain(function(ids){
  // e.g. ids === [2, 4, 6, ...]
  });
  
  @param {Function|String} column if a string is provided then then it is assumed
  to be the name of a column in that table and the value of the column for each row
  will be returned. If column is a function then the return value of the function will
  be used.
  @param {Function} [cb] a function to be called when the aciton is complete
  
  @return {comb.Promise} a promise resolved with the array of mapped values.