@powersync/service-module-mssql 0.10.3 → 0.10.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAiC,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAWrD;;;;;GAKG;AACH,MAAM,OAAO,mBAAmB;IAEX;IACA;IAFnB,YACmB,WAA4B,EAC5B,kBAA0B;QAD1B,gBAAW,GAAX,WAAW,CAAiB;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAQ;IAC1C,CAAC;IAEG,KAAK,CAAC,UAAU,KAAmB,CAAC;IAEpC,KAAK,CAAC,CAAC,IAAI;QAChB,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACnD,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3E,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,eAAe,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAEzE,MAAM,cAAc,GAAwB,MAAM,eAAe,CAAC;QAClE,MAAM,cAAc,CAAC;QAErB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAE1C,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAE1D,uCAAuC;QACvC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAoB;IAkCZ;IACA;IAEA;IApCnB;;;;;OAKG;IACH,MAAM,CAAC,eAAe,GAAG;QACvB,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,KAAK;QACnB,aAAa,CAAC,OAAO;QACrB,aAAa,CAAC,QAAQ;QACtB,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,KAAK;QACnB,aAAa,CAAC,gBAAgB;QAC9B,aAAa,CAAC,OAAO;QACrB,aAAa,CAAC,QAAQ;QACtB,aAAa,CAAC,GAAG;QACjB,aAAa,CAAC,MAAM;KACrB,CAAC;IAEF,MAAM,CAAC,QAAQ,CAAC,WAAwB;QACtC,IAAI,WAAW,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEnD,OAAO,UAAU,CAAC,MAAM,IAAI,IAAI,IAAI,oBAAoB,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/G,CAAC;IAEgB,GAAG,CAAmB;IACvC,OAAO,GAA2B,IAAI,CAAC;IAEvC,YACmB,WAA4B,EAC5B,kBAA0B,EAC3C,WAAwB,EACP,YAAoB,MAAM,EAC3C,iBAAoC;QAJnB,gBAAW,GAAX,WAAW,CAAiB;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAQ;QAE1B,cAAS,GAAT,SAAS,CAAiB;QAG3C,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE3C,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,QAAQ;IACV,CAAC;IAEM,oBAAoB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,CAAC,IAAI;QAChB,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACnD,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3E,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAEzE,MAAM,cAAc,GAAwB,MAAM,eAAe,CAAC;QAElE,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,CAAC,GAAG,CAAC,IAAI,sBAAsB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtH,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,CAAC;QAErB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,YAAY,IAAI,CAAC,kBAAkB,aAAa,cAAc,EAAE,CAAC,CAAC;QAC9G,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,OAAO;iBACJ,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;iBAC9B,KAAK,CACJ,cAAc,IAAI,CAAC,SAAS,YAAY,IAAI,CAAC,kBAAkB,UAAU,cAAc,wBAAwB,cAAc,EAAE,CAChI,CAAC;QACN,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,GAAe;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,qBAAqB,CAAC,+BAA+B,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC"}
1
+ {"version":3,"file":"MSSQLSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MSSQLSnapshotQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAiC,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAoBrD;;GAEG;AACH,MAAM,cAAc;IAMC;IALV,IAAI,CAA6B;IACzB,SAAS,CAAgB;IAClC,QAAQ,GAAG,KAAK,CAAC;IAEzB,YACmB,OAAoB,EACrC,KAAa;QADI,YAAO,GAAP,OAAO,CAAa;QAGrC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC1C,+FAA+F;QAC/F,kGAAkG;QAClG,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7B,sFAAsF;QACtF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CACxC,GAAG,EAAE;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,EACD,GAAG,EAAE;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CACF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC;QACD,sEAAsE;QACtE,MAAM,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAIX;IACA;IACA;IALX,KAAK,GAA0B,IAAI,CAAC;IAE5C,YACmB,WAA4B,EAC5B,kBAA0B,EAC1B,YAAoB,MAAM;QAF1B,gBAAW,GAAX,WAAW,CAAiB;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAQ;QAC1B,cAAS,GAAT,SAAS,CAAiB;IAC1C,CAAC;IAEG,iBAAiB;QACtB,OAAO,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxE,CAAC;IAEM,KAAK,CAAC,CAAC,SAAS;QACrB,0GAA0G;QAC1G,IAAI,CAAC,KAAK,KAAK,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,iBAAiB,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC1G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,uCAAuC;YACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,oBAAoB;IAmCZ;IACA;IAEA;IArCnB;;;;;OAKG;IACH,MAAM,CAAC,eAAe,GAAG;QACvB,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,KAAK;QACnB,aAAa,CAAC,OAAO;QACrB,aAAa,CAAC,QAAQ;QACtB,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,KAAK;QACnB,aAAa,CAAC,gBAAgB;QAC9B,aAAa,CAAC,OAAO;QACrB,aAAa,CAAC,QAAQ;QACtB,aAAa,CAAC,GAAG;QACjB,aAAa,CAAC,MAAM;KACrB,CAAC;IAEF,MAAM,CAAC,QAAQ,CAAC,WAAwB;QACtC,IAAI,WAAW,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAEnD,OAAO,UAAU,CAAC,MAAM,IAAI,IAAI,IAAI,oBAAoB,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/G,CAAC;IAEgB,GAAG,CAAmB;IAC/B,KAAK,GAA0B,IAAI,CAAC;IAC5C,OAAO,GAA2B,IAAI,CAAC;IAEvC,YACmB,WAA4B,EAC5B,kBAA0B,EAC3C,WAAwB,EACP,YAAoB,MAAM,EAC3C,iBAAoC;QAJnB,gBAAW,GAAX,WAAW,CAAiB;QAC5B,uBAAkB,GAAlB,kBAAkB,CAAQ;QAE1B,cAAS,GAAT,SAAS,CAAiB;QAG3C,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAE3C,IAAI,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC5B,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE5F,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,kCAAkC,IAAI,CAAC,GAAG,CAAC,IAAI,sBAAsB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9G,CAAC;QACJ,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEM,oBAAoB;QACzB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,CAAC,SAAS;QACrB,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAC7B,OAAO,EACP,cAAc,IAAI,CAAC,SAAS,YAAY,IAAI,CAAC,kBAAkB,aAAa,cAAc,EAAE,CAC7F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,IAAI,cAAc,CAC7B,OAAO,EACP,cAAc,IAAI,CAAC,SAAS,YAAY,IAAI,CAAC,kBAAkB,UAAU,cAAc,wBAAwB,cAAc,EAAE,CAChI,CAAC;QACJ,CAAC;QAED,uCAAuC;QACvC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAK;QAChB,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAEO,cAAc,CAAC,GAAe;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,qBAAqB,CAAC,+BAA+B,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;;AAGH,KAAK,UAAU,mBAAmB,CAChC,WAA4B,EAC5B,kBAA0B;IAE1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,wBAAwB,kBAAkB,EAAE,CAAC,CAAC;IACtG,OAAO,SAAS,CAAC,OAAO,CAAC;AAC3B,CAAC"}
@@ -59,7 +59,6 @@ export declare function getLatestReplicatedLSN(connectionManager: MSSQLConnectio
59
59
  */
60
60
  export declare function escapeIdentifier(identifier: string): string;
61
61
  export declare function toQualifiedTableName(schema: string, tableName: string): string;
62
- export declare function isIColumnMetadata(obj: any): obj is sql.IColumnMetadata;
63
62
  export declare function addParameters(request: sql.Request, parameters: MSSQLParameter[]): sql.Request;
64
63
  export interface GetDebugTableInfoOptions {
65
64
  connectionManager: MSSQLConnectionManager;
@@ -178,25 +178,6 @@ export function escapeIdentifier(identifier) {
178
178
  export function toQualifiedTableName(schema, tableName) {
179
179
  return `${escapeIdentifier(schema)}.${escapeIdentifier(tableName)}`;
180
180
  }
181
- export function isIColumnMetadata(obj) {
182
- if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
183
- return false;
184
- }
185
- let propertiesMatched = true;
186
- for (const value of Object.values(obj)) {
187
- const property = value;
188
- propertiesMatched =
189
- typeof property.index === 'number' &&
190
- typeof property.name === 'string' &&
191
- (typeof property.length === 'number' || typeof property.length === 'undefined') &&
192
- (typeof property.type === 'function' || typeof property.type === 'object') &&
193
- typeof property.nullable === 'boolean' &&
194
- typeof property.caseSensitive === 'boolean' &&
195
- typeof property.identity === 'boolean' &&
196
- typeof property.readOnly === 'boolean';
197
- }
198
- return propertiesMatched;
199
- }
200
181
  export function addParameters(request, parameters) {
201
182
  for (const param of parameters) {
202
183
  if (param.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"mssql.js","sourceRoot":"","sources":["../../src/utils/mssql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mssql.js","sourceRoot":"","sources":["../../src/utils/mssql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powersync/service-module-mssql",
3
3
  "repository": "https://github.com/powersync-ja/powersync-service",
4
- "version": "0.10.3",
4
+ "version": "0.10.4",
5
5
  "license": "FSL-1.1-ALv2",
6
6
  "type": "module",
7
7
  "publishConfig": {
@@ -17,20 +17,20 @@
17
17
  "ts-codec": "^1.3.0",
18
18
  "uri-js": "^4.4.1",
19
19
  "uuid": "^14.0.0",
20
- "@powersync/lib-services-framework": "0.10.3",
21
- "@powersync/service-core": "1.27.0",
22
- "@powersync/service-errors": "0.5.0",
20
+ "@powersync/lib-services-framework": "0.10.4",
21
+ "@powersync/service-core": "1.27.1",
22
+ "@powersync/service-errors": "0.6.0",
23
23
  "@powersync/service-jsonbig": "0.17.13",
24
- "@powersync/service-sync-rules": "0.43.0",
25
- "@powersync/service-types": "0.19.0"
24
+ "@powersync/service-sync-rules": "0.44.0",
25
+ "@powersync/service-types": "0.20.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/mssql": "^9.1.9",
29
29
  "@types/semver": "^7.7.1",
30
30
  "@types/uuid": "^11.0.0",
31
- "@powersync/service-core-tests": "0.18.3",
32
- "@powersync/service-module-mongodb-storage": "0.23.0",
33
- "@powersync/service-module-postgres-storage": "0.19.2"
31
+ "@powersync/service-core-tests": "0.18.4",
32
+ "@powersync/service-module-mongodb-storage": "0.23.1",
33
+ "@powersync/service-module-postgres-storage": "0.19.3"
34
34
  },
35
35
  "scripts": {
36
36
  "build": "tsc -b",
@@ -218,7 +218,8 @@ export class MSSQLRouteAPIAdapter implements api.RouteAPI {
218
218
 
219
219
  getParseSyncRulesOptions(): ParseSyncConfigOptions {
220
220
  return {
221
- defaultSchema: this.connectionManager.schema
221
+ defaultSchema: this.connectionManager.schema,
222
+ connections: { [this.connectionManager.connectionTag]: { type: this.config.type } }
222
223
  };
223
224
  }
224
225
 
@@ -36,6 +36,7 @@ export class MSSQLModule extends replication.ReplicationModule<types.MSSQLConnec
36
36
  id: this.getDefaultId(normalisedConfig.database),
37
37
  syncRuleProvider: syncRuleProvider,
38
38
  storageEngine: context.storageEngine,
39
+ configuration: context.configuration,
39
40
  metricsEngine: context.metricsEngine,
40
41
  connectionFactory: connectionFactory,
41
42
  rateLimiter: new MSSQLErrorRateLimiter(),
@@ -32,8 +32,7 @@ import {
32
32
  createCheckpoint,
33
33
  getCaptureInstances,
34
34
  getLatestLSN,
35
- getLatestReplicatedLSN,
36
- isIColumnMetadata
35
+ getLatestReplicatedLSN
37
36
  } from '../utils/mssql.js';
38
37
  import { getReplicationIdentityColumns, getTablesFromPattern, ResolvedTable } from '../utils/schema.js';
39
38
  import {
@@ -52,8 +51,8 @@ import { MSSQLTableReconciliationState } from './MSSQLTableReconciliationContext
52
51
  import { SchemaChange, SchemaChangeType } from './SchemaChange.js';
53
52
 
54
53
  export interface CDCStreamOptions {
55
- connections: MSSQLConnectionManager;
56
54
  storage: storage.SyncRulesBucketStorage;
55
+ connections: MSSQLConnectionManager;
57
56
  metrics: MetricsEngine;
58
57
  abortSignal: AbortSignal;
59
58
  logger?: Logger;
@@ -393,28 +392,23 @@ export class CDCStream {
393
392
  this.logger.info(
394
393
  `Snapshotting ${physicalTable.toQualifiedName()} ${sourceTable.formatSnapshotProgress()} - not resumable`
395
394
  );
396
- query = new SimpleSnapshotQuery(transaction, physicalTable.toQualifiedName());
395
+ query = new SimpleSnapshotQuery(transaction, physicalTable.toQualifiedName(), this.snapshotBatchSize);
397
396
  replicatedCount = 0;
398
397
  }
399
- await query.initialize();
400
-
401
- let hasRemainingData = true;
402
- while (hasRemainingData) {
403
- // Fetch 10k at a time.
404
- // The balance here is between latency overhead per FETCH call,
405
- // and not spending too much time on each FETCH call.
406
- // We aim for a couple of seconds on each FETCH call.
407
- let batchReplicatedCount = 0;
408
- let columns: sql.IColumnMetadata | null = null;
409
- const cursor = query.next();
410
- for await (const result of cursor) {
411
- if (columns == null && isIColumnMetadata(result)) {
412
- columns = result;
413
- continue;
414
- } else {
415
- if (!columns) {
416
- throw new ReplicationAssertionError(`Missing column metadata`);
417
- }
398
+
399
+ try {
400
+ // Fetched once for the whole snapshot. Column changes require deploying a new sync config anyway,
401
+ // since replication continues against the captured schema until then.
402
+ const columns = await query.getColumnMetadata();
403
+
404
+ let hasRemainingData = true;
405
+ while (hasRemainingData) {
406
+ // Fetch this.snapshotBatchSize rows at a time
407
+ // The balance here is between latency overhead per FETCH call,
408
+ // and not spending too much time on each FETCH call.
409
+ // We aim for a couple of seconds on each FETCH call.
410
+ let batchReplicatedCount = 0;
411
+ for await (const result of query.nextBatch()) {
418
412
  const inputRow: SqliteInputRow = toSqliteInputRow(result, columns);
419
413
  const row = this.syncRules.applyRowContext<never>(inputRow);
420
414
  // This auto-flushes when the batch reaches its size limit
@@ -430,45 +424,49 @@ export class CDCStream {
430
424
  replicatedCount++;
431
425
  batchReplicatedCount++;
432
426
  this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED).add(1);
433
- }
434
427
 
435
- this.touch();
436
- }
428
+ this.touch();
429
+ }
437
430
 
438
- // Important: flush before marking progress
439
- await batch.flush();
431
+ // Important: flush before marking progress
432
+ await batch.flush();
440
433
 
441
- let lastKey: Uint8Array | undefined;
442
- if (query instanceof BatchedSnapshotQuery) {
443
- lastKey = query.getLastKeySerialized();
444
- }
445
- if (lastCountTime < performance.now() - 10 * 60 * 1000) {
446
- // Even though we're doing the snapshot inside a transaction, the transaction uses
447
- // the default "Read Committed" isolation level. This means we can get new data
448
- // within the transaction, so we re-estimate the count every 10 minutes when replicating
449
- // large tables.
450
- totalEstimatedCount = await this.estimatedCountNumber(physicalTable, transaction);
451
- lastCountTime = performance.now();
452
- }
453
- const updatedSourceTable = await batch.updateTableProgress(sourceTable, {
454
- lastKey: lastKey,
455
- replicatedCount: replicatedCount,
456
- totalEstimatedCount: totalEstimatedCount
457
- });
458
- this.tableCache.updateSourceTable(updatedSourceTable);
459
- sourceTable = updatedSourceTable;
434
+ let lastKey: Uint8Array | undefined;
435
+ if (query instanceof BatchedSnapshotQuery) {
436
+ lastKey = query.getLastKeySerialized();
437
+ }
438
+ if (lastCountTime < performance.now() - 10 * 60 * 1000) {
439
+ // Even though we're doing the snapshot inside a transaction, the transaction uses
440
+ // the default "Read Committed" isolation level. This means we can get new data
441
+ // within the transaction, so we re-estimate the count every 10 minutes when replicating
442
+ // large tables.
443
+ // This uses a separate connection: the snapshot query may still be in progress on the transaction.
444
+ totalEstimatedCount = await this.estimatedCountNumber(physicalTable);
445
+ lastCountTime = performance.now();
446
+ }
447
+ const updatedSourceTable = await batch.updateTableProgress(sourceTable, {
448
+ lastKey: lastKey,
449
+ replicatedCount: replicatedCount,
450
+ totalEstimatedCount: totalEstimatedCount
451
+ });
452
+ this.tableCache.updateSourceTable(updatedSourceTable);
453
+ sourceTable = updatedSourceTable;
460
454
 
461
- if (this.abortSignal.aborted) {
462
- // We only abort after flushing
463
- throw new ReplicationAbortedError(`Initial replication interrupted`);
464
- }
455
+ if (this.abortSignal.aborted) {
456
+ // We only abort after flushing
457
+ throw new ReplicationAbortedError(`Initial replication interrupted`);
458
+ }
465
459
 
466
- // When the batch of rows is smaller than the requested batch size we know it is the final batch
467
- if (batchReplicatedCount < this.snapshotBatchSize) {
468
- hasRemainingData = false;
469
- } else {
470
- this.logger.info(`Snapshotting ${physicalTable.toQualifiedName()} ${sourceTable.formatSnapshotProgress()}`);
460
+ // When the batch of rows is smaller than the requested batch size we know it is the final batch
461
+ if (batchReplicatedCount < this.snapshotBatchSize) {
462
+ hasRemainingData = false;
463
+ } else {
464
+ this.logger.info(`Snapshotting ${physicalTable.toQualifiedName()} ${sourceTable.formatSnapshotProgress()}`);
465
+ }
471
466
  }
467
+ } finally {
468
+ // Cancel the snapshot query if it is still in progress, so that the transaction can be rolled back.
469
+ await query.close();
472
470
  }
473
471
  }
474
472
 
@@ -476,10 +474,9 @@ export class CDCStream {
476
474
  * Estimate the number of rows in a table. This query uses partition stats view to get a fast estimate of the row count.
477
475
  * This requires that the MSSQL DB user has the VIEW DATABASE PERFORMANCE STATE permission.
478
476
  * @param table
479
- * @param transaction
480
477
  */
481
- async estimatedCountNumber(table: MSSQLSourceTable, transaction?: sql.Transaction): Promise<number> {
482
- const request = transaction ? transaction.request() : await this.connections.createRequest();
478
+ async estimatedCountNumber(table: MSSQLSourceTable): Promise<number> {
479
+ const request = await this.connections.createRequest();
483
480
  const { recordset: result } = await request.input('tableName', table.toQualifiedName()).query(
484
481
  `SELECT SUM(row_count) AS total_rows
485
482
  FROM sys.dm_db_partition_stats
@@ -5,61 +5,102 @@ import { MSSQLBaseType } from '../types/mssql-data-types.js';
5
5
  import { escapeIdentifier } from '../utils/mssql.js';
6
6
 
7
7
  export interface MSSQLSnapshotQuery {
8
- initialize(): Promise<void>;
8
+ /**
9
+ * Returns the column metadata for the rows that would be returned for this query.
10
+ */
11
+ getColumnMetadata(): Promise<sql.IColumnMetadata>;
9
12
 
10
13
  /**
11
- * Returns an async iterable iterator that yields the column metadata for the query followed by rows of data.
14
+ * Returns an async iterator for the next batch of rows, yielding at most the batch size.
15
+ * A batch smaller than the batch size indicates that there are no rows left.
12
16
  */
13
- next(): AsyncIterableIterator<sql.IColumnMetadata | sql.IRecordSet<any>>;
17
+ nextBatch(): AsyncIterableIterator<Record<string, any>>;
18
+
19
+ /**
20
+ * Cancels the query if it is still in progress.
21
+ */
22
+ close(): Promise<void>;
14
23
  }
15
24
 
16
25
  /**
17
- * Snapshot query using a plain SELECT * FROM table
18
- *
19
- * This supports all tables but does not efficiently resume the snapshot
20
- * if the process is restarted.
26
+ * Helper class that encapsulates the streaming logic of the queries used for snapshots.
27
+ */
28
+ class StreamingQuery {
29
+ readonly rows: AsyncIterableIterator<any>;
30
+ private readonly completed: Promise<void>;
31
+ private finished = false;
32
+
33
+ constructor(
34
+ private readonly request: sql.Request,
35
+ query: string
36
+ ) {
37
+ const stream = request.toReadableStream();
38
+ // Errors are surfaced by iterating the rows. This listener prevents an unhandled 'error' event
39
+ // when the query fails after iteration has stopped, such as the cancellation error from cancel().
40
+ stream.on('error', () => {});
41
+ // In stream mode, errors are emitted on the stream instead of rejecting this promise.
42
+ this.completed = request.query(query).then(
43
+ () => {
44
+ this.finished = true;
45
+ },
46
+ () => {
47
+ this.finished = true;
48
+ }
49
+ );
50
+ this.rows = stream[Symbol.asyncIterator]();
51
+ }
52
+
53
+ async cancel(): Promise<void> {
54
+ if (!this.finished) {
55
+ this.request.cancel();
56
+ }
57
+ // Resolves once the driver has released the transaction's connection.
58
+ await this.completed;
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Snapshot query using a plain SELECT * FROM table.
64
+ * This supports all tables but cannot resume the snapshot if the process is restarted.
21
65
  */
22
66
  export class SimpleSnapshotQuery implements MSSQLSnapshotQuery {
67
+ private query: StreamingQuery | null = null;
68
+
23
69
  public constructor(
24
70
  private readonly transaction: sql.Transaction,
25
- private readonly qualifiedTableName: string
71
+ private readonly qualifiedTableName: string,
72
+ private readonly batchSize: number = 10_000
26
73
  ) {}
27
74
 
28
- public async initialize(): Promise<void> {}
29
-
30
- public async *next(): AsyncIterableIterator<sql.IColumnMetadata | sql.IRecordSet<any>> {
31
- const metadataRequest = this.transaction.request();
32
- metadataRequest.stream = true;
33
- const metadataPromise = new Promise<sql.IColumnMetadata>((resolve, reject) => {
34
- metadataRequest.on('recordset', resolve);
35
- metadataRequest.on('error', reject);
36
- });
37
-
38
- metadataRequest.query(`SELECT TOP(0) * FROM ${this.qualifiedTableName}`);
39
-
40
- const columnMetadata: sql.IColumnMetadata = await metadataPromise;
41
- yield columnMetadata;
42
-
43
- const request = this.transaction.request();
44
- const stream = request.toReadableStream();
45
-
46
- request.query(`SELECT * FROM ${this.qualifiedTableName}`);
75
+ public getColumnMetadata(): Promise<sql.IColumnMetadata> {
76
+ return queryColumnMetadata(this.transaction, this.qualifiedTableName);
77
+ }
47
78
 
48
- // MSSQL only streams one row at a time
49
- for await (const row of stream) {
50
- yield row;
79
+ public async *nextBatch(): AsyncIterableIterator<Record<string, any>> {
80
+ // Opened on the first call, and iterated straight away so that the row iterator receives any query error.
81
+ this.query ??= new StreamingQuery(this.transaction.request(), `SELECT * FROM ${this.qualifiedTableName}`);
82
+ for (let i = 0; i < this.batchSize; i++) {
83
+ // MSSQL only streams one row at a time
84
+ const result = await this.query.rows.next();
85
+ if (result.done) {
86
+ return;
87
+ }
88
+ yield result.value;
51
89
  }
52
90
  }
91
+
92
+ public async close(): Promise<void> {
93
+ await this.query?.cancel();
94
+ }
53
95
  }
54
96
 
55
97
  /**
56
98
  * Performs a table snapshot query, batching by ranges of primary key data.
57
99
  *
58
100
  * This may miss some rows if they are modified during the snapshot query.
59
- * In that case, replication will pick up those rows afterward,
60
- * possibly resulting in an IdSnapshotQuery.
101
+ * In that case, replication will pick up those rows afterward.
61
102
  *
62
- * Currently, this only supports a table with a single primary key column,
103
+ * Currently, this only supports tables with a single primary key column,
63
104
  * of a select few types.
64
105
  */
65
106
  export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
@@ -93,6 +134,7 @@ export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
93
134
  }
94
135
 
95
136
  private readonly key: ColumnDescriptor;
137
+ private query: StreamingQuery | null = null;
96
138
  lastKey: string | bigint | null = null;
97
139
 
98
140
  public constructor(
@@ -109,57 +151,52 @@ export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
109
151
  }
110
152
  }
111
153
 
112
- public async initialize(): Promise<void> {
113
- // No-op
114
- }
115
-
116
- public getLastKeySerialized(): Uint8Array {
117
- return bson.serialize({ [this.key.name]: this.lastKey });
118
- }
119
-
120
- public async *next(): AsyncIterableIterator<sql.IColumnMetadata | sql.IRecordSet<any>> {
121
- const escapedKeyName = escapeIdentifier(this.key.name);
122
- const metadataRequest = this.transaction.request();
123
- metadataRequest.stream = true;
124
- const metadataPromise = new Promise<sql.IColumnMetadata>((resolve, reject) => {
125
- metadataRequest.on('recordset', resolve);
126
- metadataRequest.on('error', reject);
127
- });
128
- metadataRequest.query(`SELECT TOP(0) * FROM ${this.qualifiedTableName}`);
129
-
130
- const columnMetadata: sql.IColumnMetadata = await metadataPromise;
154
+ public async getColumnMetadata(): Promise<sql.IColumnMetadata> {
155
+ const columnMetadata = await queryColumnMetadata(this.transaction, this.qualifiedTableName);
131
156
 
132
157
  const foundPrimaryKey = columnMetadata[this.key.name];
133
158
  if (!foundPrimaryKey) {
134
159
  throw new Error(
135
- `Cannot find primary key column ${this.key.name} in results. Keys: ${Object.keys(columnMetadata.columns).join(', ')}`
160
+ `Cannot find primary key column ${this.key.name} in results. Keys: ${Object.keys(columnMetadata).join(', ')}`
136
161
  );
137
162
  }
163
+ return columnMetadata;
164
+ }
138
165
 
139
- yield columnMetadata;
166
+ public getLastKeySerialized(): Uint8Array {
167
+ return bson.serialize({ [this.key.name]: this.lastKey });
168
+ }
140
169
 
170
+ public async *nextBatch(): AsyncIterableIterator<Record<string, any>> {
171
+ const escapedKeyName = escapeIdentifier(this.key.name);
141
172
  const request = this.transaction.request();
142
- const stream = request.toReadableStream();
143
173
  if (this.lastKey == null) {
144
- request.query(`SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} ORDER BY ${escapedKeyName}`);
174
+ this.query = new StreamingQuery(
175
+ request,
176
+ `SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} ORDER BY ${escapedKeyName}`
177
+ );
145
178
  } else {
146
179
  if (this.key.typeId == null) {
147
180
  throw new Error(`typeId required for primary key ${this.key.name}`);
148
181
  }
149
- request
150
- .input('lastKey', this.lastKey)
151
- .query(
152
- `SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} WHERE ${escapedKeyName} > @lastKey ORDER BY ${escapedKeyName}`
153
- );
182
+ request.input('lastKey', this.lastKey);
183
+ this.query = new StreamingQuery(
184
+ request,
185
+ `SELECT TOP(${this.batchSize}) * FROM ${this.qualifiedTableName} WHERE ${escapedKeyName} > @lastKey ORDER BY ${escapedKeyName}`
186
+ );
154
187
  }
155
188
 
156
189
  // MSSQL only streams one row at a time
157
- for await (const row of stream) {
190
+ for await (const row of this.query.rows) {
158
191
  this.lastKey = row[this.key.name];
159
192
  yield row;
160
193
  }
161
194
  }
162
195
 
196
+ public async close(): Promise<void> {
197
+ await this.query?.cancel();
198
+ }
199
+
163
200
  private deserializeKey(key: Uint8Array) {
164
201
  const decoded = bson.deserialize(key, { useBigInt64: true });
165
202
  const keys = Object.keys(decoded);
@@ -173,3 +210,11 @@ export class BatchedSnapshotQuery implements MSSQLSnapshotQuery {
173
210
  return decoded[this.key.name];
174
211
  }
175
212
  }
213
+
214
+ async function queryColumnMetadata(
215
+ transaction: sql.Transaction,
216
+ qualifiedTableName: string
217
+ ): Promise<sql.IColumnMetadata> {
218
+ const { recordset } = await transaction.request().query(`SELECT TOP(0) * FROM ${qualifiedTableName}`);
219
+ return recordset.columns;
220
+ }
@@ -251,28 +251,6 @@ export function toQualifiedTableName(schema: string, tableName: string): string
251
251
  return `${escapeIdentifier(schema)}.${escapeIdentifier(tableName)}`;
252
252
  }
253
253
 
254
- export function isIColumnMetadata(obj: any): obj is sql.IColumnMetadata {
255
- if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
256
- return false;
257
- }
258
-
259
- let propertiesMatched = true;
260
- for (const value of Object.values(obj)) {
261
- const property = value as any;
262
- propertiesMatched =
263
- typeof property.index === 'number' &&
264
- typeof property.name === 'string' &&
265
- (typeof property.length === 'number' || typeof property.length === 'undefined') &&
266
- (typeof property.type === 'function' || typeof property.type === 'object') &&
267
- typeof property.nullable === 'boolean' &&
268
- typeof property.caseSensitive === 'boolean' &&
269
- typeof property.identity === 'boolean' &&
270
- typeof property.readOnly === 'boolean';
271
- }
272
-
273
- return propertiesMatched;
274
- }
275
-
276
254
  export function addParameters(request: sql.Request, parameters: MSSQLParameter[]): sql.Request {
277
255
  for (const param of parameters) {
278
256
  if (param.type) {