Support custom, non-numeric primary keys