Skip to content

Commit 12bbb5a

Browse files
fix: provide driver for delete / drop methods in JDBC Connector (#200)
* fix: provide driver for delete / drop methods in JDBC Connector * feat: add unit tests to jdbc connector conf * fix: unit tests * feat: add jdbc driver doc Co-authored-by: Marouane Felja <marouane.felja@idemia.com>
1 parent a338669 commit 12bbb5a

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

docs/data_access_layer/configuration_example.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,8 @@ cassandra {
211211
| user | <user_input> |
212212
| password | <user_input> |
213213
| saveMode | `ErrorIfExists` |
214+
| driver | <user_input> |
215+
214216

215217
For other options, please refer to [the Spark documentation](https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html)
216218

@@ -224,6 +226,7 @@ jdbcExample {
224226
saveMode = "Overwrite"
225227
user = "postgres"
226228
password = "postgres"
229+
driver = "org.postgresql.Driver"
227230
}
228231
```
229232

src/main/scala/io/github/setl/config/JDBCConnectorConf.scala

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ class JDBCConnectorConf extends ConnectorConf {
5757

5858
def getTruncate: Option[String] = get(TRUNCATE)
5959

60+
def setDriver(driver: String): this.type = set(DRIVER, driver)
61+
62+
def getDriver: Option[String] = get(DRIVER)
63+
6064
def getFormat: Option[String] = Option(FORMAT)
6165

6266
override def getReaderConf: Map[String, String] = {
@@ -75,7 +79,8 @@ class JDBCConnectorConf extends ConnectorConf {
7579
JDBCConnectorConf.USER,
7680
JDBCConnectorConf.PASSWORD,
7781
JDBCConnectorConf.URL,
78-
JDBCConnectorConf.DB_TABLE
82+
JDBCConnectorConf.DB_TABLE,
83+
JDBCConnectorConf.DRIVER
7984
).collect {
8085
case key: String if this.has(key) => key -> this.get(key).get
8186
}.toMap
@@ -103,5 +108,6 @@ object JDBCConnectorConf {
103108
val PARTITION_COLUMN: String = "partitionColumn"
104109
val LOWER_BOUND: String = "lowerBound"
105110
val UPPER_BOUND: String = "upperBound"
111+
val DRIVER: String = "driver"
106112

107113
}

src/test/scala/io/github/setl/config/JDBCConnectorConfSuite.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class JDBCConnectorConfSuite extends AnyFunSuite {
1717
val fetchSize = "fetchsize"
1818
val batchSize = "batchsize"
1919
val truncate = "truncate"
20+
val driver = "driver"
2021

2122
test("Set JDBCConnectorConf") {
2223
assert(conf.get(url) === None)
@@ -69,6 +70,10 @@ class JDBCConnectorConfSuite extends AnyFunSuite {
6970
assert(conf.get(truncate) === None)
7071
conf.setTruncate(truncate)
7172
assert(conf.get(truncate).get === truncate)
73+
74+
assert(conf.get(driver) === None)
75+
conf.setDriver(driver)
76+
assert(conf.get(driver).get === driver)
7277
}
7378

7479
test("Getters of JDBCConnectorConf") {
@@ -84,5 +89,6 @@ class JDBCConnectorConfSuite extends AnyFunSuite {
8489
assert(conf.getFetchSize === Some(fetchSize))
8590
assert(conf.getBatchSize === Some(batchSize))
8691
assert(conf.getTruncate === Some(truncate))
92+
assert(conf.getDriver === Some(driver))
8793
}
8894
}

0 commit comments

Comments
 (0)