Wasn't the key columns added by the tuple implementation? Not sure why the dialect would be involved in this case.