support multiple primary key columns
Merge branch 's/multiple-primary-keys'