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.
Description of Changes
This makes a few performance improvements. It is pretty similar to #179. The key changes are:
This also has the fix of using
concat
instead ofpush(...
that was in #179.Since I was already making some changes in the TableCache, I added some more context to log messages, so hopefully any future bug reports will be easier to look into.
These changes also give us a way to make
find
efficient, but I didn't put it in this PR.Requires SpacetimeDB PRs
Requires this codegen change clockworklabs/SpacetimeDB#2671, so we need to wait for the next release.
I'm going to leave this as a draft until we release a version with the required codegen changes.
Once we get this codegen change released, which adds the CLI version to the generated typescript code. I can add an assertion in the client that the generated code came from a compatible version.
Testing
There are some existing tests in
db_connection.test.ts
that cover parsing update messages, and this PR addstable_cache.test.ts
, which has testing for applying row operations to the table cache (and the resulting callbacks).