@prairielearn/postgres 1.2.0 → 1.4.0
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/CHANGELOG.md +12 -0
- package/README.md +35 -0
- package/dist/default-pool.d.ts +24 -18
- package/dist/default-pool.js +6 -1
- package/dist/default-pool.js.map +1 -1
- package/dist/default-pool.test.js +19 -14
- package/dist/default-pool.test.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pool.d.ts +66 -38
- package/dist/pool.js +112 -26
- package/dist/pool.js.map +1 -1
- package/package.json +7 -3
- package/src/default-pool.test.ts +22 -17
- package/src/default-pool.ts +4 -0
- package/src/index.ts +1 -0
- package/src/pool.ts +160 -41
package/dist/pool.js
CHANGED
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.PostgresPool = exports.PostgresError = void 0;
|
|
7
7
|
const lodash_1 = __importDefault(require("lodash"));
|
|
8
8
|
const pg_1 = __importDefault(require("pg"));
|
|
9
|
+
const pg_cursor_1 = __importDefault(require("pg-cursor"));
|
|
9
10
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
11
|
const debug_1 = __importDefault(require("debug"));
|
|
11
12
|
const node_util_1 = require("node:util");
|
|
@@ -115,6 +116,19 @@ function escapeIdentifier(identifier) {
|
|
|
115
116
|
// https://www.postgresql.org/docs/12/sql-syntax-lexical.html
|
|
116
117
|
return pg_1.default.Client.prototype.escapeIdentifier(identifier);
|
|
117
118
|
}
|
|
119
|
+
function enhanceError(err, sql, params) {
|
|
120
|
+
// Copy the error so we don't end up with a circular reference in the
|
|
121
|
+
// final error.
|
|
122
|
+
const sqlError = { ...err };
|
|
123
|
+
// `message` is a non-enumerable property, so we need to copy it manually to
|
|
124
|
+
// the error object.
|
|
125
|
+
sqlError.message = err.message;
|
|
126
|
+
return addDataToError(err, {
|
|
127
|
+
sqlError: sqlError,
|
|
128
|
+
sql: sql,
|
|
129
|
+
sqlParams: params,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
118
132
|
class PostgresPool {
|
|
119
133
|
constructor() {
|
|
120
134
|
/** The pool from which clients will be acquired. */
|
|
@@ -127,6 +141,8 @@ class PostgresPool {
|
|
|
127
141
|
*/
|
|
128
142
|
this.alsClient = new node_async_hooks_1.AsyncLocalStorage();
|
|
129
143
|
this.searchSchema = null;
|
|
144
|
+
/** Tracks the total number of queries executed by this pool. */
|
|
145
|
+
this._queryCount = 0;
|
|
130
146
|
/**
|
|
131
147
|
* Creates a new connection pool and attempts to connect to the database.
|
|
132
148
|
*/
|
|
@@ -307,6 +323,7 @@ class PostgresPool {
|
|
|
307
323
|
* Performs a query with the given client.
|
|
308
324
|
*/
|
|
309
325
|
async queryWithClientAsync(client, sql, params) {
|
|
326
|
+
this._queryCount += 1;
|
|
310
327
|
debug('queryWithClient()', 'sql:', debugString(sql));
|
|
311
328
|
debug('queryWithClient()', 'params:', debugParams(params));
|
|
312
329
|
const { processedSql, paramsArray } = paramsToArray(sql, params);
|
|
@@ -317,14 +334,7 @@ class PostgresPool {
|
|
|
317
334
|
return result;
|
|
318
335
|
}
|
|
319
336
|
catch (err) {
|
|
320
|
-
|
|
321
|
-
const sqlError = JSON.parse(JSON.stringify(err));
|
|
322
|
-
sqlError.message = err.message;
|
|
323
|
-
throw addDataToError(err, {
|
|
324
|
-
sqlError: sqlError,
|
|
325
|
-
sql: sql,
|
|
326
|
-
sqlParams: params,
|
|
327
|
-
});
|
|
337
|
+
throw enhanceError(err, sql, params);
|
|
328
338
|
}
|
|
329
339
|
}
|
|
330
340
|
/**
|
|
@@ -617,25 +627,24 @@ class PostgresPool {
|
|
|
617
627
|
return result;
|
|
618
628
|
}
|
|
619
629
|
/**
|
|
620
|
-
* Wrapper around {@link queryAsync} that
|
|
621
|
-
*
|
|
630
|
+
* Wrapper around {@link queryAsync} that parses the resulting rows with the
|
|
631
|
+
* given Zod schema. Returns only the rows of the query.
|
|
622
632
|
*/
|
|
623
633
|
async queryValidatedRows(query, params, model) {
|
|
624
634
|
const results = await this.queryAsync(query, params);
|
|
625
635
|
return zod_1.z.array(model).parse(results.rows);
|
|
626
636
|
}
|
|
627
637
|
/**
|
|
628
|
-
* Wrapper around {@link queryOneRowAsync} that
|
|
629
|
-
*
|
|
638
|
+
* Wrapper around {@link queryOneRowAsync} that parses the resulting row with
|
|
639
|
+
* the given Zod schema. Returns only a single row of the query.
|
|
630
640
|
*/
|
|
631
641
|
async queryValidatedOneRow(query, params, model) {
|
|
632
642
|
const results = await this.queryOneRowAsync(query, params);
|
|
633
643
|
return model.parse(results.rows[0]);
|
|
634
644
|
}
|
|
635
645
|
/**
|
|
636
|
-
* Wrapper around {@link queryZeroOrOneRowAsync} that
|
|
637
|
-
*
|
|
638
|
-
* Returns either the single row of the query or `null`.
|
|
646
|
+
* Wrapper around {@link queryZeroOrOneRowAsync} that parses the resulting row
|
|
647
|
+
* (if any) with the given Zod schema. Returns either a single row or `null`.
|
|
639
648
|
*/
|
|
640
649
|
async queryValidatedZeroOrOneRow(query, params, model) {
|
|
641
650
|
const results = await this.queryZeroOrOneRowAsync(query, params);
|
|
@@ -648,7 +657,7 @@ class PostgresPool {
|
|
|
648
657
|
}
|
|
649
658
|
/**
|
|
650
659
|
* Wrapper around {@link queryAsync} that validates that only one column is
|
|
651
|
-
* returned and the data in it
|
|
660
|
+
* returned and parses the data in it with the given Zod schema. Returns only
|
|
652
661
|
* the single column of the query as an array.
|
|
653
662
|
*/
|
|
654
663
|
async queryValidatedSingleColumnRows(query, params, model) {
|
|
@@ -662,7 +671,7 @@ class PostgresPool {
|
|
|
662
671
|
}
|
|
663
672
|
/**
|
|
664
673
|
* Wrapper around {@link queryOneRowAsync} that validates that only one column
|
|
665
|
-
* is returned and the data in it
|
|
674
|
+
* is returned and parses the data in it with the given Zod schema. Returns
|
|
666
675
|
* only the single entry.
|
|
667
676
|
*/
|
|
668
677
|
async queryValidatedSingleColumnOneRow(query, params, model) {
|
|
@@ -675,8 +684,8 @@ class PostgresPool {
|
|
|
675
684
|
}
|
|
676
685
|
/**
|
|
677
686
|
* Wrapper around {@link queryZeroOrOneRowAsync} that validates that only one
|
|
678
|
-
* column is returned and the data in it
|
|
679
|
-
*
|
|
687
|
+
* column is returned and parses the data in it (if any) with the given Zod
|
|
688
|
+
* schema. Returns either the single row of the query or `null`.
|
|
680
689
|
*/
|
|
681
690
|
async queryValidatedSingleColumnZeroOrOneRow(query, params, model) {
|
|
682
691
|
const results = await this.queryZeroOrOneRowAsync(query, params);
|
|
@@ -692,25 +701,24 @@ class PostgresPool {
|
|
|
692
701
|
}
|
|
693
702
|
}
|
|
694
703
|
/**
|
|
695
|
-
* Wrapper around {@link callAsync} that
|
|
696
|
-
*
|
|
704
|
+
* Wrapper around {@link callAsync} that parses the resulting rows with the
|
|
705
|
+
* given Zod schema. Returns only the rows.
|
|
697
706
|
*/
|
|
698
707
|
async callValidatedRows(sprocName, params, model) {
|
|
699
708
|
const results = await this.callAsync(sprocName, params);
|
|
700
709
|
return zod_1.z.array(model).parse(results.rows);
|
|
701
710
|
}
|
|
702
711
|
/**
|
|
703
|
-
* Wrapper around {@link callOneRowAsync} that
|
|
704
|
-
*
|
|
712
|
+
* Wrapper around {@link callOneRowAsync} that parses the resulting rows with
|
|
713
|
+
* the given Zod schema. Returns only a single row.
|
|
705
714
|
*/
|
|
706
715
|
async callValidatedOneRow(sprocName, params, model) {
|
|
707
716
|
const results = await this.callOneRowAsync(sprocName, params);
|
|
708
717
|
return model.parse(results.rows[0]);
|
|
709
718
|
}
|
|
710
719
|
/**
|
|
711
|
-
* Wrapper around {@link callZeroOrOneRowAsync} that
|
|
712
|
-
*
|
|
713
|
-
* Returns at most a single row.
|
|
720
|
+
* Wrapper around {@link callZeroOrOneRowAsync} that parses the resulting row
|
|
721
|
+
* (if any) with the given Zod schema. Returns at most a single row.
|
|
714
722
|
*/
|
|
715
723
|
async callValidatedZeroOrOneRow(sprocName, params, model) {
|
|
716
724
|
const results = await this.callZeroOrOneRowAsync(sprocName, params);
|
|
@@ -721,6 +729,68 @@ class PostgresPool {
|
|
|
721
729
|
return model.parse(results.rows[0]);
|
|
722
730
|
}
|
|
723
731
|
}
|
|
732
|
+
/**
|
|
733
|
+
* Returns a {@link Cursor} for the given query. The cursor can be used to
|
|
734
|
+
* read results in batches, which is useful for large result sets.
|
|
735
|
+
*/
|
|
736
|
+
async queryCursorWithClient(client, sql, params) {
|
|
737
|
+
this._queryCount += 1;
|
|
738
|
+
debug('queryCursorWithClient()', 'sql:', debugString(sql));
|
|
739
|
+
debug('queryCursorWithClient()', 'params:', debugParams(params));
|
|
740
|
+
const { processedSql, paramsArray } = paramsToArray(sql, params);
|
|
741
|
+
lastQueryMap.set(client, processedSql);
|
|
742
|
+
return client.query(new pg_cursor_1.default(processedSql, paramsArray));
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* Returns an {@link CursorIterator} that can be used to iterate over the
|
|
746
|
+
* results of the query in batches, which is useful for large result sets.
|
|
747
|
+
*/
|
|
748
|
+
async queryCursor(sql, params) {
|
|
749
|
+
return this.queryValidatedCursorInternal(sql, params);
|
|
750
|
+
}
|
|
751
|
+
/**
|
|
752
|
+
* Returns an {@link CursorIterator} that can be used to iterate over the
|
|
753
|
+
* results of the query in batches, which is useful for large result sets.
|
|
754
|
+
* Each row will be parsed by the given Zod schema.
|
|
755
|
+
*/
|
|
756
|
+
async queryValidatedCursor(sql, params, model) {
|
|
757
|
+
return this.queryValidatedCursorInternal(sql, params, model);
|
|
758
|
+
}
|
|
759
|
+
async queryValidatedCursorInternal(sql, params, model) {
|
|
760
|
+
const client = await this.getClientAsync();
|
|
761
|
+
const cursor = await this.queryCursorWithClient(client, sql, params);
|
|
762
|
+
let iterateCalled = false;
|
|
763
|
+
return {
|
|
764
|
+
iterate: async function* (batchSize) {
|
|
765
|
+
// Safety check: if someone calls iterate multiple times, they're
|
|
766
|
+
// definitely doing something wrong.
|
|
767
|
+
if (iterateCalled) {
|
|
768
|
+
throw new Error('iterate() called multiple times');
|
|
769
|
+
}
|
|
770
|
+
iterateCalled = true;
|
|
771
|
+
try {
|
|
772
|
+
while (true) {
|
|
773
|
+
const rows = await cursor.read(batchSize);
|
|
774
|
+
if (rows.length === 0) {
|
|
775
|
+
break;
|
|
776
|
+
}
|
|
777
|
+
if (model) {
|
|
778
|
+
yield zod_1.z.array(model).parse(rows);
|
|
779
|
+
}
|
|
780
|
+
else {
|
|
781
|
+
yield rows;
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
}
|
|
785
|
+
catch (err) {
|
|
786
|
+
throw enhanceError(err, sql, params);
|
|
787
|
+
}
|
|
788
|
+
finally {
|
|
789
|
+
client.release();
|
|
790
|
+
}
|
|
791
|
+
},
|
|
792
|
+
};
|
|
793
|
+
}
|
|
724
794
|
/**
|
|
725
795
|
* Set the schema to use for the search path.
|
|
726
796
|
*
|
|
@@ -766,6 +836,22 @@ class PostgresPool {
|
|
|
766
836
|
await this.setSearchSchema(schema);
|
|
767
837
|
return schema;
|
|
768
838
|
}
|
|
839
|
+
/** The number of established connections. */
|
|
840
|
+
get totalCount() {
|
|
841
|
+
return this.pool?.totalCount ?? 0;
|
|
842
|
+
}
|
|
843
|
+
/** The number of idle connections. */
|
|
844
|
+
get idleCount() {
|
|
845
|
+
return this.pool?.idleCount ?? 0;
|
|
846
|
+
}
|
|
847
|
+
/** The number of queries waiting for a connection to become available. */
|
|
848
|
+
get waitingCount() {
|
|
849
|
+
return this.pool?.waitingCount ?? 0;
|
|
850
|
+
}
|
|
851
|
+
/** The total number of queries that have been executed by this pool. */
|
|
852
|
+
get queryCount() {
|
|
853
|
+
return this._queryCount;
|
|
854
|
+
}
|
|
769
855
|
}
|
|
770
856
|
exports.PostgresPool = PostgresPool;
|
|
771
857
|
//# sourceMappingURL=pool.js.map
|
package/dist/pool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prairielearn/postgres",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"devDependencies": {
|
|
11
11
|
"@prairielearn/tsconfig": "*",
|
|
12
12
|
"@types/mocha": "^10.0.1",
|
|
13
|
-
"@types/node": "^18.
|
|
13
|
+
"@types/node": "^18.14.2",
|
|
14
14
|
"mocha": "^10.2.0",
|
|
15
15
|
"ts-node": "^10.9.1",
|
|
16
16
|
"typescript": "^4.9.4"
|
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@types/debug": "^4.1.7",
|
|
20
20
|
"@types/lodash": "^4.14.191",
|
|
21
|
-
"
|
|
21
|
+
"@types/pg-cursor": "^2.7.0",
|
|
22
|
+
"pg": "^8.10.0",
|
|
23
|
+
"pg-cursor": "^2.9.0",
|
|
24
|
+
"pg-pool": "^3.6.0",
|
|
25
|
+
"zod": "^3.20.6"
|
|
22
26
|
}
|
|
23
27
|
}
|
package/src/default-pool.test.ts
CHANGED
|
@@ -3,35 +3,40 @@ import { PostgresPool } from './pool';
|
|
|
3
3
|
import * as pgPool from './default-pool';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Properties on {@link PostgresPool} that should not be available on the default
|
|
7
|
+
* pool's exports.
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
const HIDDEN_PROPERTIES = new Set([
|
|
10
|
+
// Private members
|
|
11
|
+
'pool',
|
|
12
|
+
'alsClient',
|
|
13
|
+
'searchSchema',
|
|
14
|
+
'_queryCount',
|
|
15
|
+
'queryValidatedCursorInternal',
|
|
16
|
+
// Getters
|
|
17
|
+
'totalCount',
|
|
18
|
+
'idleCount',
|
|
19
|
+
'waitingCount',
|
|
20
|
+
'queryCount',
|
|
21
|
+
]);
|
|
19
22
|
|
|
20
23
|
describe('sqldb', () => {
|
|
21
24
|
it('exports the full PostgresPool interface', () => {
|
|
22
25
|
const pool = new PostgresPool();
|
|
23
26
|
|
|
24
27
|
Object.getOwnPropertyNames(pool)
|
|
25
|
-
.filter((n) => !
|
|
28
|
+
.filter((n) => !HIDDEN_PROPERTIES.has(n))
|
|
26
29
|
.forEach((prop) => {
|
|
27
30
|
assert.property(pgPool, prop);
|
|
28
31
|
assert.ok((pgPool as any)[prop]);
|
|
29
32
|
});
|
|
30
33
|
|
|
31
|
-
Object.getOwnPropertyNames(Object.getPrototypeOf(pool))
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
Object.getOwnPropertyNames(Object.getPrototypeOf(pool))
|
|
35
|
+
.filter((n) => !HIDDEN_PROPERTIES.has(n))
|
|
36
|
+
.forEach((prop) => {
|
|
37
|
+
assert.property(pgPool, prop);
|
|
38
|
+
assert.ok((pgPool as any)[prop]);
|
|
39
|
+
});
|
|
35
40
|
});
|
|
36
41
|
|
|
37
42
|
it('should not have extra properties', () => {
|
package/src/default-pool.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { PostgresPool } from './pool';
|
|
2
2
|
|
|
3
3
|
const defaultPool = new PostgresPool();
|
|
4
|
+
export { defaultPool };
|
|
4
5
|
|
|
5
6
|
// We re-expose all functions from the default pool here to account for the
|
|
6
7
|
// default case of a shared global pool of clients. If someone want to create
|
|
@@ -61,6 +62,9 @@ export const queryValidatedSingleColumnZeroOrOneRow =
|
|
|
61
62
|
export const callValidatedRows = defaultPool.callValidatedRows.bind(defaultPool);
|
|
62
63
|
export const callValidatedOneRow = defaultPool.callValidatedOneRow.bind(defaultPool);
|
|
63
64
|
export const callValidatedZeroOrOneRow = defaultPool.callValidatedZeroOrOneRow.bind(defaultPool);
|
|
65
|
+
export const queryCursorWithClient = defaultPool.queryCursorWithClient.bind(defaultPool);
|
|
66
|
+
export const queryCursor = defaultPool.queryCursor.bind(defaultPool);
|
|
67
|
+
export const queryValidatedCursor = defaultPool.queryValidatedCursor.bind(defaultPool);
|
|
64
68
|
export const setSearchSchema = defaultPool.setSearchSchema.bind(defaultPool);
|
|
65
69
|
export const getSearchSchema = defaultPool.getSearchSchema.bind(defaultPool);
|
|
66
70
|
export const setRandomSearchSchema = defaultPool.setRandomSearchSchema.bind(defaultPool);
|