Fix Cockroach Native Query problem #664
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Native query tracking fails for CockroachDB because OIDs are 64-bit (despite what the documentation says). However, if we just change the type to
i64
, then the vanilla Postgres native query setup fails becausesqlx
requires each type in Rust to correspond to a specific Postgres type, and thus we can't do some sort of dynamic switching.How
We cast absolutely everything to
i64
explicitly in the query. The fact that this works seems to be accidental: because the input type becomes irrelevant, Cockroach determines a different type foroid
than Postgres, and both are happy.sqlx
bases its types on information from the database, so it's also happy.I have tested this with tracking a native query in both Cockroach and Postgres, and both seem to be happy.