Implement checked aggregation plans, native SQL, and bounded RPC capture

This commit is contained in:
Timothy J. Aveni
2026-09-17 18:23:16 -07:00
parent 13d2d0b1ee
commit b86dbe2dfa
11 changed files with 2190 additions and 28 deletions
+150 -1
View File
@@ -1,5 +1,5 @@
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { PersistencePlan, QuerySelection } from "./schema_pb.js";
import type { PersistencePlan, QueryRelationalPlan, QuerySelection } from "./schema_pb.js";
import type { Message } from "@bufbuild/protobuf";
/**
* Describes the file camino/api.proto.
@@ -928,6 +928,14 @@ export type QueryPendingField = Message<"camino.QueryPendingField"> & {
* @generated from field: string residual_field = 9;
*/
residualField: string;
/**
* @generated from field: optional uint32 relational_capture = 10;
*/
relationalCapture?: number | undefined;
/**
* @generated from field: uint32 captured_object = 11;
*/
capturedObject: number;
};
/**
* Describes the message camino.QueryPendingField.
@@ -966,6 +974,18 @@ export type QueryStats = Message<"camino.QueryStats"> & {
* @generated from field: double total_ms = 7;
*/
totalMs: number;
/**
* @generated from field: uint32 relational_stages = 8;
*/
relationalStages: number;
/**
* @generated from field: uint32 captured_candidates = 9;
*/
capturedCandidates: number;
/**
* @generated from field: double relational_ms = 10;
*/
relationalMs: number;
};
/**
* Describes the message camino.QueryStats.
@@ -1018,12 +1038,133 @@ export type QueryResponse = Message<"camino.QueryResponse"> & {
* @generated from field: string consistency = 9;
*/
consistency: string;
/**
* @generated from field: repeated camino.QueryRelationalCapture relational_captures = 10;
*/
relationalCaptures: QueryRelationalCapture[];
};
/**
* Describes the message camino.QueryResponse.
* Use `create(QueryResponseSchema)` to create a new message.
*/
export declare const QueryResponseSchema: GenMessage<QueryResponse>;
/**
* Private coordinator input, removed before publishing a result. Memberships
* and native facts share one snapshot; package reads are sampled afterwards.
*
* @generated from message camino.QueryCapturedMember
*/
export type QueryCapturedMember = Message<"camino.QueryCapturedMember"> & {
/**
* @generated from field: string object_id = 1;
*/
objectId: string;
/**
* @generated from field: string entry_id = 2;
*/
entryId: string;
/**
* @generated from field: camino.Value map_key = 3;
*/
mapKey?: Value | undefined;
};
/**
* Describes the message camino.QueryCapturedMember.
* Use `create(QueryCapturedMemberSchema)` to create a new message.
*/
export declare const QueryCapturedMemberSchema: GenMessage<QueryCapturedMember>;
/**
* @generated from message camino.QueryCapturedMembers
*/
export type QueryCapturedMembers = Message<"camino.QueryCapturedMembers"> & {
/**
* @generated from field: repeated camino.QueryCapturedMember entries = 1;
*/
entries: QueryCapturedMember[];
};
/**
* Describes the message camino.QueryCapturedMembers.
* Use `create(QueryCapturedMembersSchema)` to create a new message.
*/
export declare const QueryCapturedMembersSchema: GenMessage<QueryCapturedMembers>;
/**
* @generated from message camino.QueryCapturedObject
*/
export type QueryCapturedObject = Message<"camino.QueryCapturedObject"> & {
/**
* @generated from field: string object_id = 1;
*/
objectId: string;
/**
* @generated from field: map<string, camino.Value> fields = 2;
*/
fields: {
[key: string]: Value;
};
/**
* @generated from field: map<string, string> field_types = 3;
*/
fieldTypes: {
[key: string]: string;
};
/**
* @generated from field: map<string, camino.QueryCapturedMembers> relationships = 4;
*/
relationships: {
[key: string]: QueryCapturedMembers;
};
};
/**
* Describes the message camino.QueryCapturedObject.
* Use `create(QueryCapturedObjectSchema)` to create a new message.
*/
export declare const QueryCapturedObjectSchema: GenMessage<QueryCapturedObject>;
/**
* @generated from message camino.QueryRelationalCapture
*/
export type QueryRelationalCapture = Message<"camino.QueryRelationalCapture"> & {
/**
* @generated from field: repeated camino.QueryPathPart path = 1;
*/
path: QueryPathPart[];
/**
* @generated from field: camino.QueryRelationalPlan plan = 2;
*/
plan?: QueryRelationalPlan | undefined;
/**
* @generated from field: string root_object_id = 3;
*/
rootObjectId: string;
/**
* @generated from field: repeated camino.QueryCapturedObject objects = 4;
*/
objects: QueryCapturedObject[];
/**
* @generated from field: string variables_json = 5;
*/
variablesJson: string;
/**
* @generated from field: uint32 row_limit = 6;
*/
rowLimit: number;
/**
* @generated from field: uint32 candidate_limit = 7;
*/
candidateLimit: number;
/**
* @generated from field: optional uint32 residual_window = 8;
*/
residualWindow?: number | undefined;
/**
* @generated from field: repeated string result_path = 9;
*/
resultPath: string[];
};
/**
* Describes the message camino.QueryRelationalCapture.
* Use `create(QueryRelationalCaptureSchema)` to create a new message.
*/
export declare const QueryRelationalCaptureSchema: GenMessage<QueryRelationalCapture>;
/**
* @generated from message camino.QueryResidualRow
*/
@@ -1100,6 +1241,14 @@ export type QueryResidualWindow = Message<"camino.QueryResidualWindow"> & {
fieldTypes: {
[key: string]: string;
};
/**
* @generated from field: bool relational = 9;
*/
relational: boolean;
/**
* @generated from field: repeated string matched_entries = 10;
*/
matchedEntries: string[];
};
/**
* Describes the message camino.QueryResidualWindow.