@spine-event-engine/storage-mysql 2.0.0-snapshot.21 → 2.0.0-snapshot.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,9 @@
12
12
  * the License.
13
13
  */
14
14
  import { ScalarType } from "@bufbuild/protobuf";
15
+ import { AgentHistoryRecordSchema } from "@spine-event-engine/proto/generated/spine/server/agent/history_record_pb.js";
16
+ // prettier-ignore
17
+ import { AgentExecutionHeadSchema, AgentExecutionRecordSchema, } from "@spine-event-engine/proto/generated/spine/server/agent/execution_record_pb.js";
15
18
  import { MysqlIdColumn } from "./id-column.js";
16
19
  /**
17
20
  * Maps a declared storage column value type to its native MySQL type.
@@ -60,6 +63,8 @@ export function mysqlColumnType(type) {
60
63
  *
61
64
  * @param input Identifies the resolved family and its declared columns.
62
65
  * @returns Returns the canonical table layout.
66
+ * @typeParam I Typed record identifier.
67
+ * @typeParam R Stored record message.
63
68
  */
64
69
  export function resolvedMysqlTableSpec(input) {
65
70
  return {
@@ -76,15 +81,90 @@ export function resolvedMysqlTableSpec(input) {
76
81
  primaryKey: ["ID"],
77
82
  };
78
83
  }
84
+ /**
85
+ * Resolves one native column, including the Agent history index layout.
86
+ *
87
+ * @param recordType Stored record message descriptor.
88
+ * @param groupName Optional storage group.
89
+ * @param column Declared storage column.
90
+ * @returns Resolved native column.
91
+ * @typeParam R Stored record message.
92
+ */
79
93
  function mysqlColumnSpec(recordType, groupName, column) {
80
94
  const entityDefault = entityAttributeDefault(recordType, groupName, column);
95
+ const historyType = recordType.typeName === AgentHistoryRecordSchema.typeName
96
+ ? AgentHistoryColumnTypes.for(column.name)
97
+ : undefined;
98
+ const executionType = recordType.typeName === AgentExecutionRecordSchema.typeName ||
99
+ recordType.typeName === AgentExecutionHeadSchema.typeName
100
+ ? AgentExecutionColumnTypes.for(column.name)
101
+ : undefined;
81
102
  return {
82
103
  name: column.name,
83
- mysqlType: mysqlColumnType(column.type),
104
+ mysqlType: executionType ?? historyType ?? mysqlColumnType(column.type),
84
105
  nullable: entityDefault === undefined,
85
106
  ...(entityDefault === undefined ? {} : { defaultSql: entityDefault }),
86
107
  };
87
108
  }
109
+ /**
110
+ * Complete order-key bytes available after the fixed digest columns in an InnoDB index.
111
+ */
112
+ export const AgentHistoryIndexBytes = 2944;
113
+ /**
114
+ * Complete native key bytes after the fixed digest and status components.
115
+ */
116
+ export const AgentExecutionIndexBytes = AgentHistoryIndexBytes;
117
+ /**
118
+ * Maps complete Agent execution order and exact scope to binary index columns.
119
+ */
120
+ const AgentExecutionColumnTypes = Object.freeze({
121
+ /**
122
+ * Returns the native type for one indexed execution column.
123
+ *
124
+ * @param name Indexed column name.
125
+ * @returns Full binary column type when this execution index uses one.
126
+ */
127
+ for(name) {
128
+ if (name === "order_key" || name === "pending_key")
129
+ return `VARBINARY(${String(AgentExecutionIndexBytes)})`;
130
+ if (name === "state_digest" || name === "scope_digest")
131
+ return "VARBINARY(64)";
132
+ if (name === "status")
133
+ return "VARBINARY(1)";
134
+ if (name === "claim_expires")
135
+ return "VARBINARY(22)";
136
+ return undefined;
137
+ },
138
+ });
139
+ /**
140
+ * Maps Agent history indexes to complete native binary column types.
141
+ */
142
+ const AgentHistoryColumnTypes = Object.freeze({
143
+ /**
144
+ * Returns a native binary type for an Agent history index column.
145
+ *
146
+ * @param name Materialized history column.
147
+ * @returns Native type override for indexed history metadata.
148
+ */
149
+ for(name) {
150
+ if (name === "order_key")
151
+ return `VARBINARY(${String(AgentHistoryIndexBytes)})`;
152
+ if (name === "scope_digest" || name === "conversation_digest")
153
+ return "VARBINARY(64)";
154
+ if (name === "category")
155
+ return "VARBINARY(12)";
156
+ return undefined;
157
+ },
158
+ });
159
+ /**
160
+ * Returns the Entity column default expected by legacy table layouts.
161
+ *
162
+ * @param recordType Stored record message descriptor.
163
+ * @param groupName Optional storage group.
164
+ * @param column Declared storage column.
165
+ * @returns Native default expression when one is required.
166
+ * @typeParam R Stored record message.
167
+ */
88
168
  function entityAttributeDefault(recordType, groupName, column) {
89
169
  if (recordType.typeName !== "spine.server.entity.EntityRecord" || groupName !== undefined)
90
170
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"table-spec.js","sourceRoot":"","sources":["../../src/mysql/table-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAc/C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf,KAAK,SAAS;YACZ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,2BAA2B;gBAAE,OAAO,QAAQ,CAAC;YAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,oBAAoB;gBAAE,OAAO,KAAK,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,UAAU,CAAC,MAAM;oBACpB,OAAO,MAAM,CAAC;gBAChB,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,QAAQ,CAAC;gBACzB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,OAAO;oBACrB,OAAO,KAAK,CAAC;gBACf,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,QAAQ,CAAC;gBACzB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,OAAO;oBACrB,OAAO,QAAQ,CAAC;gBAClB,KAAK,UAAU,CAAC,IAAI;oBAClB,OAAO,SAAS,CAAC;gBACnB,KAAK,UAAU,CAAC,KAAK;oBACnB,OAAO,MAAM,CAAC;gBAChB,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,MAAM;oBACpB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACtF,CAAC;IACL,CAAC;AACH,CAAC;AAuED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAuB,KAO5D;IACC,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrF,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrD,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAC3D;SACF;QACD,UAAU,EAAE,CAAC,IAAI,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,UAAyB,EACzB,SAA6B,EAC7B,MAAuB;IAEvB,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5E,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;QACvC,QAAQ,EAAE,aAAa,KAAK,SAAS;QACrC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,UAAyB,EACzB,SAA6B,EAC7B,MAAuB;IAEvB,IAAI,UAAU,CAAC,QAAQ,KAAK,kCAAkC,IAAI,SAAS,KAAK,SAAS;QACvF,OAAO,SAAS,CAAC;IACnB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI;gBAC5E,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,SAAS,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,oBAAoB;gBAC5F,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,SAAS,CAAC;QAChB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"table-spec.js","sourceRoot":"","sources":["../../src/mysql/table-spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6EAA6E,CAAC;AACvH,kBAAkB;AAClB,OAAO,EACL,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,+EAA+E,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAc/C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,KAAK,CAAC;QACf,KAAK,SAAS;YACZ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,2BAA2B;gBAAE,OAAO,QAAQ,CAAC;YAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,oBAAoB;gBAAE,OAAO,KAAK,CAAC;YACjE,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpB,KAAK,UAAU,CAAC,MAAM;oBACpB,OAAO,MAAM,CAAC;gBAChB,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,QAAQ,CAAC;gBACzB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,OAAO;oBACrB,OAAO,KAAK,CAAC;gBACf,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,QAAQ,CAAC;gBACzB,KAAK,UAAU,CAAC,MAAM,CAAC;gBACvB,KAAK,UAAU,CAAC,OAAO;oBACrB,OAAO,QAAQ,CAAC;gBAClB,KAAK,UAAU,CAAC,IAAI;oBAClB,OAAO,SAAS,CAAC;gBACnB,KAAK,UAAU,CAAC,KAAK;oBACnB,OAAO,MAAM,CAAC;gBAChB,KAAK,UAAU,CAAC,KAAK,CAAC;gBACtB,KAAK,UAAU,CAAC,MAAM;oBACpB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YACtF,CAAC;IACL,CAAC;AACH,CAAC;AA0ED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAuB,KAO5D;IACC,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrF,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrD,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACtC,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAC3D;SACF;QACD,UAAU,EAAE,CAAC,IAAI,CAAC;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CACtB,UAAyB,EACzB,SAA6B,EAC7B,MAAuB;IAEvB,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC5E,MAAM,WAAW,GACf,UAAU,CAAC,QAAQ,KAAK,wBAAwB,CAAC,QAAQ;QACvD,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,aAAa,GACjB,UAAU,CAAC,QAAQ,KAAK,0BAA0B,CAAC,QAAQ;QAC3D,UAAU,CAAC,QAAQ,KAAK,wBAAwB,CAAC,QAAQ;QACvD,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,aAAa,IAAI,WAAW,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;QACvE,QAAQ,EAAE,aAAa,KAAK,SAAS;QACrC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAW,sBAAsB,CAAC;AAEvE;;GAEG;AACH,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C;;;;;OAKG;IACH,GAAG,CAAC,IAAY;QACd,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,aAAa;YAChD,OAAO,aAAa,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC;QAC1D,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,cAAc;YAAE,OAAO,eAAe,CAAC;QAC/E,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC;QAC7C,IAAI,IAAI,KAAK,eAAe;YAAE,OAAO,eAAe,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C;;;;;OAKG;IACH,GAAG,CAAC,IAAY;QACd,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO,aAAa,MAAM,CAAC,sBAAsB,CAAC,GAAG,CAAC;QAChF,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,qBAAqB;YAAE,OAAO,eAAe,CAAC;QACtF,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,eAAe,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAC7B,UAAyB,EACzB,SAA6B,EAC7B,MAAuB;IAEvB,IAAI,UAAU,CAAC,QAAQ,KAAK,kCAAkC,IAAI,SAAS,KAAK,SAAS;QACvF,OAAO,SAAS,CAAC;IACnB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI;gBAC5E,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,SAAS,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,oBAAoB;gBAC5F,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,SAAS,CAAC;QAChB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}