aboutsummaryrefslogtreecommitdiff
path: root/renderer.js
diff options
context:
space:
mode:
Diffstat (limited to 'renderer.js')
-rw-r--r--renderer.js61
1 files changed, 40 insertions, 21 deletions
diff --git a/renderer.js b/renderer.js
index 4392daa..a7da9da 100644
--- a/renderer.js
+++ b/renderer.js
@@ -1,8 +1,8 @@
"use strict";
+const { ipcRenderer } = require('electron');
const $ = require("jquery");
const cm = require("codemirror");
-const { Pool } = require("pg");
require("datatables")(window, $);
require("codemirror/mode/sql/sql");
const Split = require("split.js");
@@ -14,43 +14,61 @@ const editorContext = cm(document.getElementById("editor"), {
lineNumbers: true
});
-const connectionPool = new Pool({
- user: "postgres",
- host: "localhost",
- database: "postgres",
- password: "",
- port: 5432
-});
-
let dataTable;
+let execStartTime;
+let execTimerInterval;
+let execElapsedTime;
function runQuery() {
_setExecutionStatusIndicator("RUNNING");
-
+ _startExecTimer();
+
var query = editorContext.getValue();
console.log(query);
- connectionPool.query(query, (err, res) => {
- console.log(err, res)
-
- if(err === undefined) {
- handleResult(res);
- }
- else {
- handleError(err);
- }
-
- });
+ _destroyDataTable();
+
+ ipcRenderer.send("queryExecutor.runQuery", query);
+}
+
+ipcRenderer.on("queryExecutor.runQueryComplete", (event, response) => {
+ _stopExecTimer();
+ if(response.error === undefined) {
+ handleResult(response.result);
+ }
+ else {
+ handleError(response.error);
+ }
+
+
+
+});
+
+function _startExecTimer() {
+ execStartTime = new Date;
+ execElapsedTime = 0;
+ execTimerInterval = setInterval(function () {
+ execElapsedTime = Date.now() - execStartTime;
+ $("#execution-time").text("exec time: " + execElapsedTime + "ms");
+ }, 10);
+}
+
+function _stopExecTimer() {
+ clearInterval(execTimerInterval);
+ execStartTime = null;
}
function handleError(err) {
+ _stopExecTimer();
_destroyDataTable();
$("#result-error").text("Error (" + err.code + ") - " + err.message);
_setExecutionStatusIndicator("ERROR");
+ $("#execution-time").text("failed after " + execElapsedTime + " ms");
}
function handleResult(results) {
+ _stopExecTimer();
$("#result-error").empty();
_destroyDataTable();
@@ -63,6 +81,7 @@ function handleResult(results) {
});
_setExecutionStatusIndicator("OK");
+ $("#execution-time").text("returned " + results.rowCount + " rows in " + execElapsedTime + " ms");
}
function _mapColumnProperties(results) {