code: func (pk PrimaryKey) Clone() *PrimaryKey {
  	npk := &PrimaryKey{}
  	if pk.PartitionKeys != nil {
  		npk.PartitionKeys = make([]string, len(pk.PartitionKeys))
  
  		for i, k := range pk.PartitionKeys {
  			npk.PartitionKeys[i] = k
  		}
  
  	}
  
  	if pk.ClusteringKeys != nil {
  		npk.ClusteringKeys = make([]*ClusteringKey, len(pk.ClusteringKeys))
  		for i, c := range pk.ClusteringKeys {
  			npk.ClusteringKeys[i] = &ClusteringKey{
  				Name:       c.Name,
  				Descending: c.Descending,
  			}
  		}
  	}
  
  	return npk
  }
docs: // Clone returns a deep copy of PrimaryKey