Skip to content

Commit 66bf69a

Browse files
committed
#706 Fix PR suggestions.
1 parent 7236739 commit 66bf69a

2 files changed

Lines changed: 12 additions & 9 deletions

File tree

pramen/core/src/main/scala/za/co/absa/pramen/core/bookkeeper/BookkeeperJdbc.scala

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,13 @@ class BookkeeperJdbc(db: Database, profile: JdbcProfile, batchId: Long) extends
178178

179179
override def deleteTable(tableName: String): Seq[String] = {
180180
val hasWildcard = tableName.contains("*")
181-
val tableNameEscaped = if (hasWildcard)
182-
tableName.trim.replace("%", "\\%").replace('*', '%')
183-
else
184-
tableName.trim.replace("%", "\\%")
181+
182+
val escape = '\\'
183+
val baseEscaped = tableName.trim
184+
.replace("\\", "\\\\")
185+
.replace("%", "\\%")
186+
187+
val tableNameEscaped = if (hasWildcard) baseEscaped.replace("*", "%") else baseEscaped
185188

186189
val likePattern = if (!hasWildcard)
187190
tableNameEscaped + "->%"
@@ -194,7 +197,7 @@ class BookkeeperJdbc(db: Database, profile: JdbcProfile, batchId: Long) extends
194197
s"'$tableNameEscaped' or '$likePattern'"
195198

196199
val listQuery = BookkeepingRecords.records
197-
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern))
200+
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern, escape))
198201
.map(_.pramenTableName)
199202
.distinct
200203

@@ -212,19 +215,19 @@ class BookkeeperJdbc(db: Database, profile: JdbcProfile, batchId: Long) extends
212215
log.info(s"Deleted $deletedBkCount records from the bookkeeping table for tables matching $patternForLogging: ${tablesToDelete.mkString(", ")}")
213216

214217
val deletedSchemaCount = SlickUtils.executeAction(db, SchemaRecords.records
215-
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern))
218+
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern, escape))
216219
.delete
217220
)
218221
log.info(s"Deleted $deletedSchemaCount records from the schemas table.")
219222

220223
val deletedOffsetsCount = SlickUtils.executeAction(db, OffsetRecords.records
221-
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern))
224+
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern, escape))
222225
.delete
223226
)
224227
log.info(s"Deleted $deletedOffsetsCount records from the offsets table.")
225228

226229
val deletedMetadataCount = SlickUtils.executeAction(db, MetadataRecords.records
227-
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern))
230+
.filter(r => r.pramenTableName === tableNameEscaped || r.pramenTableName.like(likePattern, escape))
228231
.delete
229232
)
230233
log.info(s"Deleted $deletedMetadataCount records from the metadata table.")

pramen/core/src/test/scala/za/co/absa/pramen/core/mocks/bookkeeper/SyncBookkeeperMock.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class SyncBookkeeperMock(batchId: Long = 123L) extends Bookkeeper {
164164
tableName.trim.replace(".", "\\.").replace("%", "\\%").replace("*", "\\*")
165165

166166
val likePattern = if (!hasWildcard)
167-
tableNameEscaped + "->%"
167+
tableNameEscaped + "->*."
168168
else
169169
tableNameEscaped
170170

0 commit comments

Comments
 (0)