@pi-r/oci 0.6.2 → 0.6.3
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/client/index.js +32 -8
- package/package.json +8 -8
package/client/index.js
CHANGED
|
@@ -140,13 +140,13 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
else if (query) {
|
|
143
|
-
let maxRows = typeof item.limit === 'number' ?
|
|
143
|
+
let maxRows = typeof item.limit === 'number' ? item.limit : NaN;
|
|
144
144
|
if ((0, types_1.isPlainObject)(query)) {
|
|
145
145
|
if (!table) {
|
|
146
146
|
closeClient();
|
|
147
147
|
throw (0, util_1.formatError)(item, "Missing database table" /* ERR_DB.TABLE */);
|
|
148
148
|
}
|
|
149
|
-
if (queryString && (rows = getCache(queryString += Module.asString(query, true) + (maxRows ? maxRows : '')))) {
|
|
149
|
+
if (queryString && (rows = getCache(queryString += Module.asString(query, true) + (maxRows > 0 ? maxRows : '')))) {
|
|
150
150
|
result[i] = rows;
|
|
151
151
|
continue;
|
|
152
152
|
}
|
|
@@ -155,16 +155,40 @@ async function executeBatchQuery(credential, batch, sessionKey) {
|
|
|
155
155
|
closeClient();
|
|
156
156
|
throw (0, util_1.formatError)(item, "Missing database table" /* ERR_DB.TABLE */);
|
|
157
157
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
158
|
+
const tryQuery = async () => {
|
|
159
|
+
let operation = db.find().filter(query);
|
|
160
|
+
if (maxRows > 0) {
|
|
161
|
+
operation = operation.limit(maxRows);
|
|
162
|
+
}
|
|
163
|
+
return (await operation.getDocuments()).map(doc => doc.getContent());
|
|
164
|
+
};
|
|
165
|
+
try {
|
|
166
|
+
rows = await tryQuery();
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
switch (err instanceof Error && err.code) {
|
|
170
|
+
case 'ORA-40820':
|
|
171
|
+
if (maxRows > 0) {
|
|
172
|
+
const limit = maxRows;
|
|
173
|
+
maxRows = 0;
|
|
174
|
+
rows = await tryQuery();
|
|
175
|
+
if (limit > rows.length) {
|
|
176
|
+
rows = rows.slice(0, limit);
|
|
177
|
+
}
|
|
178
|
+
this.addLog(types_1.STATUS_TYPE.WARN, err, service, Module.asString(query, true));
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
default:
|
|
182
|
+
throw err;
|
|
183
|
+
}
|
|
161
184
|
}
|
|
162
|
-
rows = (await operation.getDocuments()).map(doc => doc.getContent());
|
|
163
185
|
}
|
|
164
186
|
else {
|
|
165
187
|
const { params, options } = item;
|
|
166
|
-
|
|
167
|
-
|
|
188
|
+
if (options?.maxRows && isNaN(maxRows)) {
|
|
189
|
+
maxRows = options.maxRows;
|
|
190
|
+
}
|
|
191
|
+
if (queryString && (rows = getCache(queryString += query + Module.asString(params, true) + Module.asString(options, true) + (maxRows > 0 ? maxRows : '')))) {
|
|
168
192
|
result[i] = rows;
|
|
169
193
|
continue;
|
|
170
194
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-r/oci",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Oracle (OCI) cloud functions for E-mc.",
|
|
5
5
|
"main": "client/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "https://github.com/anpham6/pi-r.git",
|
|
11
|
+
"url": "git+https://github.com/anpham6/pi-r.git",
|
|
12
12
|
"directory": "src/cloud/oci"
|
|
13
13
|
},
|
|
14
14
|
"keywords": [
|
|
@@ -20,12 +20,12 @@
|
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"homepage": "https://github.com/anpham6/pi-r#readme",
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@e-mc/cloud": "^0.8.
|
|
24
|
-
"@e-mc/module": "^0.8.
|
|
25
|
-
"@e-mc/types": "^0.8.
|
|
26
|
-
"@pi-r/aws": "^0.6.
|
|
27
|
-
"@pi-r/oracle": "^0.6.
|
|
28
|
-
"aws-sdk": "^2.
|
|
23
|
+
"@e-mc/cloud": "^0.8.3",
|
|
24
|
+
"@e-mc/module": "^0.8.3",
|
|
25
|
+
"@e-mc/types": "^0.8.3",
|
|
26
|
+
"@pi-r/aws": "^0.6.3",
|
|
27
|
+
"@pi-r/oracle": "^0.6.3",
|
|
28
|
+
"aws-sdk": "^2.1547.0",
|
|
29
29
|
"oracledb": "^6.3.0"
|
|
30
30
|
}
|
|
31
31
|
}
|