Skip to content

Commit 2e60b4e

Browse files
committed
fix: read parameterStyle from DriverPlugin protocol at plugin load time
1 parent 9b95e98 commit 2e60b4e

5 files changed

Lines changed: 6 additions & 3 deletions

File tree

Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ final class DuckDBPlugin: NSObject, TableProPlugin, DriverPlugin {
2929
static let fileExtensions: [String] = ["duckdb", "ddb"]
3030
static let brandColorHex = "#FFD900"
3131
static let supportsDatabaseSwitching = false
32+
static let parameterStyle: ParameterStyle = .dollar
3233
static let systemDatabaseNames: [String] = ["information_schema", "pg_catalog"]
3334
static let databaseGroupingStrategy: GroupingStrategy = .flat
3435
static let columnTypesByCategory: [String: [String]] = [

Plugins/PostgreSQLDriverPlugin/PostgreSQLPlugin.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ final class PostgreSQLPlugin: NSObject, TableProPlugin, DriverPlugin {
6060
static let supportsCascadeDrop = true
6161
static let supportsForeignKeyDisable = false
6262
static let requiresReconnectForDatabaseSwitch = true
63+
static let parameterStyle: ParameterStyle = .dollar
6364

6465
static let sqlDialect: SQLDialectDescriptor? = SQLDialectDescriptor(
6566
identifierQuote: "\"",

Plugins/TableProPluginKit/DriverPlugin.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public protocol DriverPlugin: TableProPlugin {
5353
static var pathFieldRole: PathFieldRole { get }
5454
static var isDownloadable: Bool { get }
5555
static var postConnectActions: [PostConnectAction] { get }
56+
static var parameterStyle: ParameterStyle { get }
5657
}
5758

5859
public extension DriverPlugin {
@@ -110,6 +111,7 @@ public extension DriverPlugin {
110111
static var navigationModel: NavigationModel { .standard }
111112
static var explainVariants: [ExplainVariant] { [] }
112113
static var pathFieldRole: PathFieldRole { .database }
114+
static var parameterStyle: ParameterStyle { .questionMark }
113115
static var isDownloadable: Bool { false }
114116
static var postConnectActions: [PostConnectAction] { [] }
115117
}

TablePro/Core/Plugins/PluginManager.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,6 @@ final class PluginManager {
413413
}
414414

415415
// Self-register plugin metadata from the DriverPlugin protocol.
416-
// parameterStyle defaults to .questionMark; built-in defaults already have correct values.
417416
let snapshot = PluginMetadataRegistry.shared.buildMetadataSnapshot(
418417
from: driverType,
419418
isDownloadable: driverType.isDownloadable

TablePro/Core/Plugins/PluginMetadataRegistry.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -608,9 +608,9 @@ final class PluginMetadataRegistry: @unchecked Sendable {
608608
/// Used by PluginManager to self-register plugins at load time.
609609
func buildMetadataSnapshot(
610610
from driverType: any DriverPlugin.Type,
611-
isDownloadable: Bool = false,
612-
parameterStyle: ParameterStyle = .questionMark
611+
isDownloadable: Bool = false
613612
) -> PluginMetadataSnapshot {
613+
let parameterStyle = driverType.parameterStyle
614614
let schemes = driverType.urlSchemes
615615
let primaryScheme = schemes.first ?? driverType.databaseTypeId.lowercased()
616616

0 commit comments

Comments
 (0)