code: func verifyColumnGeneration(colName2Generation map[string]columnGenerationInDDL, colName string) error {
  	attribute := colName2Generation[colName]
  	if attribute.generated {
  		for depCol := range attribute.dependences {
  			if attr, ok := colName2Generation[depCol]; ok {
  				if attr.generated && attribute.position <= attr.position {
  					// A generated column definition can refer to other
  					// generated columns occurring earilier in the table.
  					err := errGeneratedColumnNonPrior.GenWithStackByArgs()
  					return errors.Trace(err)
  				}
  			} else {
  				err := errBadField.GenWithStackByArgs(depCol, "generated column function")
  				return errors.Trace(err)
  			}
  		}
  	}
  	return nil
  }
docs: // verifyColumnGeneration is for CREATE TABLE, because we need verify all columns in the table.