Skip to content

Commit 4d680d7

Browse files
committed
cache pg-meta connections on new routes
1 parent 4a66ba1 commit 4d680d7

File tree

11 files changed

+9
-44
lines changed

11 files changed

+9
-44
lines changed

src/server/routes/columns.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
import { FastifyInstance } from 'fastify'
2-
import { PostgresMeta } from '../../lib/index.js'
3-
import { DEFAULT_POOL_CONFIG } from '../constants.js'
42
import PgMetaCache from '../pgMetaCache.js'
53
import { extractRequestForLogging } from '../utils.js'
64

@@ -67,7 +65,6 @@ export default async (fastify: FastifyInstance) => {
6765
limit: Number(limit),
6866
offset: Number(offset),
6967
})
70-
await pgMeta.end()
7168
if (error) {
7269
request.log.error({ error, request: extractRequestForLogging(request) })
7370
reply.code(500)
@@ -82,9 +79,8 @@ export default async (fastify: FastifyInstance) => {
8279
} = request
8380
const ordinalPosition = ordinalPositionWithDot.slice(1)
8481

85-
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
82+
const pgMeta = PgMetaCache.get(connectionString)
8683
const { data, error } = await pgMeta.columns.retrieve({ id: `${tableId}.${ordinalPosition}` })
87-
await pgMeta.end()
8884
if (error) {
8985
request.log.error({ error, request: extractRequestForLogging(request) })
9086
reply.code(400)
@@ -151,7 +147,6 @@ export default async (fastify: FastifyInstance) => {
151147

152148
const pgMeta = PgMetaCache.get(connectionString)
153149
const { data, error } = await pgMeta.columns.remove(request.params.id, { cascade })
154-
await pgMeta.end()
155150
if (error) {
156151
request.log.error({ error, request: extractRequestForLogging(request) })
157152
reply.code(400)

src/server/routes/foreign-tables.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { FastifyPluginAsyncTypebox } from '@fastify/type-provider-typebox'
22
import { Type } from '@sinclair/typebox'
3-
import { PostgresMeta } from '../../lib/index.js'
43
import { postgresForeignTableSchema } from '../../lib/types.js'
5-
import { DEFAULT_POOL_CONFIG } from '../constants.js'
4+
import PgMetaCache from '../pgMetaCache.js'
65
import { extractRequestForLogging } from '../utils.js'
76

87
const route: FastifyPluginAsyncTypebox = async (fastify) => {
@@ -32,9 +31,8 @@ const route: FastifyPluginAsyncTypebox = async (fastify) => {
3231
const offset = request.query.offset
3332
const includeColumns = request.query.include_columns
3433

35-
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
34+
const pgMeta = PgMetaCache.get(connectionString)
3635
const { data, error } = await pgMeta.foreignTables.list({ limit, offset, includeColumns })
37-
await pgMeta.end()
3836
if (error) {
3937
request.log.error({ error, request: extractRequestForLogging(request) })
4038
reply.code(500)
@@ -67,9 +65,8 @@ const route: FastifyPluginAsyncTypebox = async (fastify) => {
6765
const connectionString = request.headers.pg
6866
const id = request.params.id
6967

70-
const pgMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
68+
const pgMeta = PgMetaCache.get(connectionString)
7169
const { data, error } = await pgMeta.foreignTables.retrieve({ id })
72-
await pgMeta.end()
7370
if (error) {
7471
request.log.error({ error, request: extractRequestForLogging(request) })
7572
reply.code(404)

src/server/routes/functions.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ export default async (fastify: FastifyInstance) => {
2929
limit,
3030
offset,
3131
})
32-
await pgMeta.end()
3332
if (error) {
3433
request.log.error({ error, request: extractRequestForLogging(request) })
3534
reply.code(500)
@@ -67,7 +66,6 @@ export default async (fastify: FastifyInstance) => {
6766

6867
const pgMeta = PgMetaCache.get(connectionString)
6968
const { data, error } = await pgMeta.functions.create(request.body as any)
70-
await pgMeta.end()
7169
if (error) {
7270
request.log.error({ error, request: extractRequestForLogging(request) })
7371
reply.code(400)
@@ -88,7 +86,6 @@ export default async (fastify: FastifyInstance) => {
8886

8987
const pgMeta = PgMetaCache.get(connectionString)
9088
const { data, error } = await pgMeta.functions.update(id, request.body as any)
91-
await pgMeta.end()
9289
if (error) {
9390
request.log.error({ error, request: extractRequestForLogging(request) })
9491
reply.code(400)

src/server/routes/generators/typescript.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import type { FastifyInstance } from 'fastify'
2-
import { PostgresMeta } from '../../../lib/index.js'
3-
import { DEFAULT_POOL_CONFIG } from '../../constants.js'
2+
import PgMetaCache from '../../pgMetaCache.js'
43
import { extractRequestForLogging } from '../../utils.js'
54
import { apply as applyTypescriptTemplate } from '../../templates/typescript.js'
65

@@ -18,7 +17,7 @@ export default async (fastify: FastifyInstance) => {
1817
const includedSchemas =
1918
request.query.included_schemas?.split(',').map((schema) => schema.trim()) ?? []
2019

21-
const pgMeta: PostgresMeta = new PostgresMeta({ ...DEFAULT_POOL_CONFIG, connectionString })
20+
const pgMeta = PgMetaCache.get(connectionString)
2221
const { data: schemas, error: schemasError } = await pgMeta.schemas.list()
2322
const { data: tables, error: tablesError } = await pgMeta.tables.list()
2423
const { data: views, error: viewsError } = await pgMeta.views.list()
@@ -27,7 +26,6 @@ export default async (fastify: FastifyInstance) => {
2726
includeArrayTypes: true,
2827
includeSystemSchemas: true,
2928
})
30-
await pgMeta.end()
3129

3230
if (schemasError) {
3331
request.log.error({ error: schemasError, request: extractRequestForLogging(request) })

src/server/routes/policies.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ export default async (fastify: FastifyInstance) => {
2929
limit,
3030
offset,
3131
})
32-
await pgMeta.end()
3332
if (error) {
3433
request.log.error({ error, request: extractRequestForLogging(request) })
3534
reply.code(500)
@@ -67,7 +66,6 @@ export default async (fastify: FastifyInstance) => {
6766

6867
const pgMeta = PgMetaCache.get(connectionString)
6968
const { data, error } = await pgMeta.policies.create(request.body as any)
70-
await pgMeta.end()
7169
if (error) {
7270
request.log.error({ error, request: extractRequestForLogging(request) })
7371
reply.code(400)
@@ -89,7 +87,6 @@ export default async (fastify: FastifyInstance) => {
8987

9088
const pgMeta = PgMetaCache.get(connectionString)
9189
const { data, error } = await pgMeta.policies.update(id, request.body as any)
92-
await pgMeta.end()
9390
if (error) {
9491
request.log.error({ error, request: extractRequestForLogging(request) })
9592
reply.code(400)

src/server/routes/publications.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ export default async (fastify: FastifyInstance) => {
5353

5454
const pgMeta = PgMetaCache.get(connectionString)
5555
const { data, error } = await pgMeta.publications.create(request.body as any)
56-
await pgMeta.end()
5756
if (error) {
5857
request.log.error({ error, request: extractRequestForLogging(request) })
5958
reply.code(400)
@@ -75,7 +74,6 @@ export default async (fastify: FastifyInstance) => {
7574

7675
const pgMeta = PgMetaCache.get(connectionString)
7776
const { data, error } = await pgMeta.publications.update(id, request.body as any)
78-
await pgMeta.end()
7977
if (error) {
8078
request.log.error({ error, request: extractRequestForLogging(request) })
8179
reply.code(400)

src/server/routes/roles.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ export default async (fastify: FastifyInstance) => {
5050
limit,
5151
offset,
5252
})
53-
await pgMeta.end()
5453
if (error) {
5554
request.log.error({ error, request: extractRequestForLogging(request) })
5655
reply.code(500)
@@ -90,7 +89,6 @@ export default async (fastify: FastifyInstance) => {
9089

9190
const pgMeta = PgMetaCache.get(connectionString)
9291
const { data, error } = await pgMeta.roles.retrieve({ id })
93-
await pgMeta.end()
9492
if (error) {
9593
request.log.error({ error, request: extractRequestForLogging(request) })
9694
reply.code(404)
@@ -125,7 +123,6 @@ export default async (fastify: FastifyInstance) => {
125123

126124
const pgMeta = PgMetaCache.get(connectionString)
127125
const { data, error } = await pgMeta.roles.create(request.body)
128-
await pgMeta.end()
129126
if (error) {
130127
request.log.error({ error, request: extractRequestForLogging(request) })
131128
reply.code(400)
@@ -170,7 +167,6 @@ export default async (fastify: FastifyInstance) => {
170167

171168
const pgMeta = PgMetaCache.get(connectionString)
172169
const { data, error } = await pgMeta.roles.update(id, request.body)
173-
await pgMeta.end()
174170
if (error) {
175171
request.log.error({ error, request: extractRequestForLogging(request) })
176172
reply.code(400)
@@ -217,7 +213,6 @@ export default async (fastify: FastifyInstance) => {
217213

218214
const pgMeta = PgMetaCache.get(connectionString)
219215
const { data, error } = await pgMeta.roles.remove(id)
220-
await pgMeta.end()
221216
if (error) {
222217
request.log.error({ error, request: extractRequestForLogging(request) })
223218
reply.code(400)

src/server/routes/tables.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ const route: FastifyPluginAsyncTypebox = async (fastify) => {
5151
offset,
5252
includeColumns,
5353
})
54-
await pgMeta.end()
5554
if (error) {
5655
request.log.error({ error, request: extractRequestForLogging(request) })
5756
reply.code(translateErrorToResponseCode(error, 500))
@@ -86,7 +85,6 @@ const route: FastifyPluginAsyncTypebox = async (fastify) => {
8685

8786
const pgMeta = PgMetaCache.get(connectionString)
8887
const { data, error } = await pgMeta.tables.retrieve({ id })
89-
await pgMeta.end()
9088
if (error) {
9189
request.log.error({ error, request: extractRequestForLogging(request) })
9290
reply.code(404)
@@ -118,7 +116,6 @@ const route: FastifyPluginAsyncTypebox = async (fastify) => {
118116

119117
const pgMeta = PgMetaCache.get(connectionString)
120118
const { data, error } = await pgMeta.tables.create(request.body)
121-
await pgMeta.end()
122119
if (error) {
123120
request.log.error({ error, request: extractRequestForLogging(request) })
124121
reply.code(400)
@@ -157,7 +154,6 @@ const route: FastifyPluginAsyncTypebox = async (fastify) => {
157154

158155
const pgMeta = PgMetaCache.get(connectionString)
159156
const { data, error } = await pgMeta.tables.update(id, request.body)
160-
await pgMeta.end()
161157
if (error) {
162158
request.log.error({ error, request: extractRequestForLogging(request) })
163159
reply.code(400)
@@ -200,7 +196,6 @@ const route: FastifyPluginAsyncTypebox = async (fastify) => {
200196

201197
const pgMeta = PgMetaCache.get(connectionString)
202198
const { data, error } = await pgMeta.tables.remove(id, { cascade })
203-
await pgMeta.end()
204199
if (error) {
205200
request.log.error({ error, request: extractRequestForLogging(request) })
206201
reply.code(400)

src/server/routes/triggers.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ export default async (fastify: FastifyInstance) => {
2929
limit,
3030
offset,
3131
})
32-
await pgMeta.end()
3332
if (error) {
3433
request.log.error({ error, request: extractRequestForLogging(request) })
3534
reply.code(500)
@@ -67,7 +66,6 @@ export default async (fastify: FastifyInstance) => {
6766

6867
const pgMeta = PgMetaCache.get(connectionString)
6968
const { data, error } = await pgMeta.triggers.create(request.body as any)
70-
await pgMeta.end()
7169
if (error) {
7270
request.log.error({ error, request: extractRequestForLogging(request) })
7371
reply.code(400)
@@ -89,7 +87,6 @@ export default async (fastify: FastifyInstance) => {
8987

9088
const pgMeta = PgMetaCache.get(connectionString)
9189
const { data, error } = await pgMeta.triggers.update(id, request.body as any)
92-
await pgMeta.end()
9390
if (error) {
9491
request.log.error({ error, request: extractRequestForLogging(request) })
9592
reply.code(400)

src/server/routes/types.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ export default async (fastify: FastifyInstance) => {
3232
limit,
3333
offset,
3434
})
35-
await pgMeta.end()
3635
if (error) {
3736
request.log.error({ error, request: extractRequestForLogging(request) })
3837
reply.code(500)

0 commit comments

Comments
 (0)