MCPcopy Create free account
hub / github.com/IceClusters/icmysql / ExecuteQuery

Function ExecuteQuery

src/db/Query.js:21–66  ·  view source on GitHub ↗
(type, dbId, query, values, callback, cache)

Source from the content-addressed store, hash-verified

19});
20
21async function ExecuteQuery(type, dbId, query, values, callback, cache) {
22 const start = performance.now();
23 let connection = null;
24 try {
25 if (global.interceptor) {
26 let resourceName = GetInvokingResource();
27 const resultMiddleware = await QueryInterceptor({ resourceName, type, dbId, query, values, callback, cache });
28 if (resultMiddleware === null) return callback ? callback(null) : null;
29 ({ resourceName, type, dbId, query, values, callback, cache } = resultMiddleware);
30 }
31
32 connection = await GetConnection(dbId);
33
34 if (values) {
35 if(typeof(values) === "string")
36 values = [values];
37 } else {
38 values = null;
39 }
40 values = ParseNilArgs(query, values)
41
42 if (query.includes("@")) {
43 query = ReplaceNamedParams(query, values)
44 values = null;
45 }
46 const [rows] = (type == "Raw" || type == "Scalar" || type == "Single" || type == "Update" || type == "Insert" || type == "Query")
47 ? await connection.query(query, values) : await connection.execute(query, values);
48 const end = performance.now();
49 const time = (end - start).toFixed(3);
50
51 if (time >= Config.SlowQueryWarn) {
52 Log(LogTypes.Warning, `Slow query detected: ${query} - ${time}ms`)
53 }
54
55 let result = ParseResponse(type, rows);
56 try {
57 return callback ? callback(result) : result;
58 } catch(err) {
59 return result;
60 }
61 } catch (err) {
62 ParseError(`Error while executing query: ${err} , query: ${query}, values: ${values}`, null, true);
63 } finally {
64 ReleaseConnection(dbId, connection)
65 }
66}
67
68async function ExecuteTransaction(dbId, queries, params, callback) {
69 const connection = await GetConnection(dbId);

Callers 2

methodFunction · 0.85
awaitMethodFunction · 0.85

Calls 7

GetConnectionFunction · 0.85
ParseNilArgsFunction · 0.85
ReplaceNamedParamsFunction · 0.85
LogFunction · 0.85
ParseResponseFunction · 0.85
ParseErrorFunction · 0.85
ReleaseConnectionFunction · 0.85

Tested by

no test coverage detected