insert order and line items in one atomic statement #12
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.
This allows us to load test order insertion. Previously this would break (as would any concurrent use) because we were inserting orders, line-items and join records in multiple calls to the database, wrapped in a transaction that would overlap with transactions from other instances. I suspect that the postgres provider we are using doesn't group multiple calls from the same wasm component onto a single db connection from the pool.
Anyway, now we only execute one SQL statement, using sequential CTEs, so that the writes (to all 3 tables) are atomic without a transaction.
A simple test on my machine now works: