I've been reassured by many that yes, the order will be the same. I think the only condition is that you don't do anything crazy like change the hash between calling
values and
keys. This isn't an issue as long as you have a single thread, but with threads now being more supported, your mileage may vary.
It's pretty risky to just throw things in to a table without naming names. You could delete a column and replace it with a different one with the same type, and you'd be populating the wrong columns with nary a hint of an error.