@dbcube/core 3.0.8 → 3.0.10
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.
- package/dist/index.cjs +15 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +15 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -730,6 +730,9 @@ import * as net from "net";
|
|
|
730
730
|
import { spawn as spawn2 } from "child_process";
|
|
731
731
|
var globalTcpServers = /* @__PURE__ */ new Map();
|
|
732
732
|
var globalTcpConnections = /* @__PURE__ */ new Map();
|
|
733
|
+
var queryCache = /* @__PURE__ */ new Map();
|
|
734
|
+
var cacheSize = 0;
|
|
735
|
+
var MAX_CACHE_SIZE = 500;
|
|
733
736
|
var QueryEngine = class {
|
|
734
737
|
name;
|
|
735
738
|
config;
|
|
@@ -846,11 +849,9 @@ var QueryEngine = class {
|
|
|
846
849
|
async executeWithTcpServer(args) {
|
|
847
850
|
const serverInfo = globalTcpServers.get(this.connectionId);
|
|
848
851
|
if (!serverInfo || !serverInfo.process || serverInfo.process.killed) {
|
|
849
|
-
console.log("\u{1F680} Starting TCP server for ultra-fast queries...");
|
|
850
852
|
await this.startTcpServer();
|
|
851
853
|
await this.waitForServerReady();
|
|
852
854
|
}
|
|
853
|
-
console.log("\u26A1 Using TCP server (ultra-fast)");
|
|
854
855
|
return this.sendTcpRequestFast(args);
|
|
855
856
|
}
|
|
856
857
|
async waitForServerReady() {
|
|
@@ -860,7 +861,6 @@ var QueryEngine = class {
|
|
|
860
861
|
if (await this.isServerResponding()) {
|
|
861
862
|
return;
|
|
862
863
|
}
|
|
863
|
-
console.log(`\u23F3 Waiting for TCP server to be ready... (${i + 1}/${maxRetries})`);
|
|
864
864
|
await this.sleep(retryDelay);
|
|
865
865
|
}
|
|
866
866
|
throw new Error("TCP server failed to become ready within timeout");
|
|
@@ -886,13 +886,23 @@ var QueryEngine = class {
|
|
|
886
886
|
sleep(ms) {
|
|
887
887
|
return new Promise((resolve5) => setTimeout(resolve5, ms));
|
|
888
888
|
}
|
|
889
|
+
getCachedDML(dmlJson) {
|
|
890
|
+
if (queryCache.has(dmlJson)) {
|
|
891
|
+
return queryCache.get(dmlJson);
|
|
892
|
+
}
|
|
893
|
+
const parsed = JSON.parse(dmlJson);
|
|
894
|
+
if (cacheSize < MAX_CACHE_SIZE) {
|
|
895
|
+
queryCache.set(dmlJson, parsed);
|
|
896
|
+
cacheSize++;
|
|
897
|
+
}
|
|
898
|
+
return parsed;
|
|
899
|
+
}
|
|
889
900
|
async startTcpServer() {
|
|
890
901
|
await this.initializeBinary();
|
|
891
902
|
if (!this.binary) {
|
|
892
903
|
throw new Error("Binary not initialized");
|
|
893
904
|
}
|
|
894
905
|
this.tcpPort = await this.findAvailablePort(this.tcpPort);
|
|
895
|
-
console.log(`\u{1F310} Using port ${this.tcpPort} for TCP server`);
|
|
896
906
|
return new Promise((resolve5, reject) => {
|
|
897
907
|
const serverArgs = [...this.arguments, "--action", "server", "--port", this.tcpPort.toString()];
|
|
898
908
|
const serverProcess = spawn2(this.binary["query_engine"], serverArgs);
|
|
@@ -905,7 +915,6 @@ var QueryEngine = class {
|
|
|
905
915
|
}, 15e3);
|
|
906
916
|
serverProcess.stdout.on("data", (data) => {
|
|
907
917
|
const output = data.toString();
|
|
908
|
-
console.log(`[TCP Server] ${output.trim()}`);
|
|
909
918
|
if (output.includes("TCP Server listening on")) {
|
|
910
919
|
if (!started) {
|
|
911
920
|
started = true;
|
|
@@ -922,7 +931,6 @@ var QueryEngine = class {
|
|
|
922
931
|
console.error(`[TCP Server Error] ${data.toString().trim()}`);
|
|
923
932
|
});
|
|
924
933
|
serverProcess.on("close", (code) => {
|
|
925
|
-
console.log(`[TCP Server] Process exited with code ${code}`);
|
|
926
934
|
globalTcpServers.delete(this.connectionId);
|
|
927
935
|
});
|
|
928
936
|
serverProcess.on("error", (error) => {
|
|
@@ -1026,7 +1034,7 @@ var QueryEngine = class {
|
|
|
1026
1034
|
isResolved = true;
|
|
1027
1035
|
reject(new Error("TCP request timeout"));
|
|
1028
1036
|
}
|
|
1029
|
-
},
|
|
1037
|
+
}, 100);
|
|
1030
1038
|
const onData = (data) => {
|
|
1031
1039
|
responseBuffer += data.toString();
|
|
1032
1040
|
const match = responseBuffer.match(/PROCESS_RESPONSE:(\{.*\})/);
|
|
@@ -1226,7 +1234,6 @@ var QueryEngine = class {
|
|
|
1226
1234
|
}
|
|
1227
1235
|
const serverInfo = globalTcpServers.get(this.connectionId);
|
|
1228
1236
|
if (serverInfo && serverInfo.process && !serverInfo.process.killed) {
|
|
1229
|
-
console.log("\u{1F50C} Stopping TCP server...");
|
|
1230
1237
|
serverInfo.process.kill();
|
|
1231
1238
|
globalTcpServers.delete(this.connectionId);
|
|
1232
1239
|
return {
|