code: func handleTableOptions(options []*ast.TableOption, tbInfo *model.TableInfo) error {
  	for _, op := range options {
  		switch op.Tp {
  		case ast.TableOptionAutoIncrement:
  			tbInfo.AutoIncID = int64(op.UintValue)
  		case ast.TableOptionComment:
  			tbInfo.Comment = op.StrValue
  		case ast.TableOptionCharset:
  			tbInfo.Charset = op.StrValue
  		case ast.TableOptionCollate:
  			tbInfo.Collate = op.StrValue
  		case ast.TableOptionCompression:
  			tbInfo.Compression = op.StrValue
  		case ast.TableOptionShardRowID:
  			ok, _ := hasAutoIncrementColumn(tbInfo)
  			if ok && op.UintValue != 0 {
  				return errUnsupportedShardRowIDBits
  			}
  			tbInfo.ShardRowIDBits = op.UintValue
  			if tbInfo.ShardRowIDBits > shardRowIDBitsMax {
  				tbInfo.ShardRowIDBits = shardRowIDBitsMax
  			}
  			tbInfo.MaxShardRowIDBits = tbInfo.ShardRowIDBits
  		case ast.TableOptionPreSplitRegion:
  			tbInfo.PreSplitRegions = op.UintValue
  		}
  	}
  	if tbInfo.PreSplitRegions > tbInfo.ShardRowIDBits {
  		tbInfo.PreSplitRegions = tbInfo.ShardRowIDBits
  	}
  
  	return nil
  }
docs: // handleTableOptions updates tableInfo according to table options.