Skip to content

Commit bead9a4

Browse files
committed
filter certain tables from cache
1 parent 489537a commit bead9a4

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Sources/PostgreSQL/Connection/PostgreSQLConnection+TableNameCache.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@ private struct PGClass: PostgreSQLTable {
22
static let sqlTableIdentifierString = "pg_class"
33
var oid: UInt32
44
var relname: String
5+
var relnamespace: String?
6+
}
7+
8+
private struct PGNamespace: PostgreSQLTable {
9+
static let sqlTableIdentifierString = "pg_namespace"
10+
var oid: UInt32
11+
var nspname: String
512
}
613

714
extension PostgreSQLConnection {
@@ -53,7 +60,7 @@ extension PostgreSQLConnection {
5360
if let existing = tableNameCache, !refresh {
5461
return future(existing)
5562
} else {
56-
return select().column("oid").column("relname").from(PGClass.self).all().map { rows in
63+
return select().column(\PGClass.oid).column("relname").from(PGClass.self).join(\PGClass.relnamespace, to: \PGNamespace.oid).where(\PGNamespace.nspname, .notLike, "fdw%").all().map { rows in
5764
let rows = try rows.map { try self.decode(PGClass.self, from: $0, table: nil) }
5865
let new = TableNameCache(rows)
5966
self.tableNameCache = new

0 commit comments

Comments
 (0)