Refactor view queries to be strongly typed

Description

Delaying deserialization of view result row keys and values until explicitly requested has very little value. The deserializer is still required to deserialize the rows, it just does so onto a dynamic object such as a JToken. This is adding more heap allocations, and adding an extra step to convert that to a POCO when Value<T> or Key<T> is called later. It is also interfering with fallbacks for non-streaming deserializers, which need to deserialize the whole response in one shot.

Instead, we can use strongly-typed results of IViewRow<TKey, TValue> which allows the deserializer to create the POCO directly.

Note: This is a PoC change for consideration.

Environment

None

Gerrit Reviews

None

Release Notes Description

None

Activity

Show:
Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Components

Fix versions

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created January 27, 2020 at 1:44 AM
Updated April 24, 2020 at 8:22 PM
Resolved January 27, 2020 at 4:11 AM
Instabug