code: function requireValidColumn (name, spec) {
      // if spec is a string then convert to object using string
      // as type and name as the path for getting value from data
      if (typeof spec === 'string') {
          // capture type
          var type = spec
          // create new spec with default spect
          spec = _.cloneDeep(defaultColumnSpec)
          // set type
          spec.type = type
          // use the column name as path
          spec.path = name
      }
      // require object
      assert(spec && typeof spec === 'object', 'column spec must be obect for '+name)
      // default path to name
      if (typeof spec.path !== 'string') {
          spec.path = name
      }
      // if column is unique and firstOnly is not defined then default true
      if (spec.unique && spec.firstOnly === undefined) {
          spec.firstOnly = true
      }
      // if firstOnly is true then colum must be nullable
      if (spec.firstOnly && spec.null === 'false') {
          throw new Error(name+' must be nullable')
      }
      // require valid type
      assert.ok(sql.columnTypes[spec.type], name+' invalid type: '+spec.type)
      // return validated spec
      return spec
  }
docs: @function requireValidColumn
  
  validate column from model specification
  
  @param {string} name
  @param {object} spec
  
  @returns {object}
  
  @throws {Error}