Skip to content

Commit 401782a

Browse files
damar-blocksvc-squareup-copybara
authored andcommitted
Remove enclosing backticks from table/column names in
DeclarativeSchemaMigrator GitOrigin-RevId: 910a8598b07aa3a474852b84ad1a9865efdd19da
1 parent 73e2cd2 commit 401782a

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

misk-jdbc/src/main/kotlin/misk/jdbc/DeclarativeSchemaMigrator.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import java.util.regex.Pattern
88
import kotlin.reflect.KClass
99
import net.sf.jsqlparser.parser.CCJSqlParserUtil
1010
import net.sf.jsqlparser.statement.create.table.CreateTable
11+
import wisp.logging.getLogger
1112

1213
internal class DeclarativeSchemaMigrator(
1314
private val qualifier: KClass<out Annotation>,
@@ -17,6 +18,7 @@ internal class DeclarativeSchemaMigrator(
1718
private val connector: DataSourceConnector,
1819
private val skeemaWrapper: SkeemaWrapper,
1920
) : BaseSchemaMigrator(resourceLoader, dataSourceService, connector) {
21+
private val logger = getLogger<DeclarativeSchemaMigrator>()
2022

2123
override fun validateMigrationFile(migrationFile: MigrationFile): Boolean {
2224
return !Pattern.compile(connector.config().migrations_resources_regex)
@@ -58,6 +60,7 @@ internal class DeclarativeSchemaMigrator(
5860
actualTables: Map<String, Map<String, String>>,
5961
excludedTables: Set<String>
6062
) {
63+
logger.info { "Comparing expected tables $expectedTables to actual tables $actualTables in the database" }
6164
for ((expectedTable, expectedColumns) in expectedTables) {
6265
if (excludedTables.contains(expectedTable)) {
6366
continue
@@ -94,12 +97,12 @@ internal class DeclarativeSchemaMigrator(
9497

9598
// Check if the parsed statement is a CREATE TABLE statement
9699
if (statement is CreateTable) {
97-
val tableName = statement.table.name.lowercase()
100+
val tableName = statement.table.name.lowercase().removeSurrounding("`")
98101
val columns = mutableMapOf<String, String>()
99102

100103
// Iterate over columns to extract names and data types
101104
statement.columnDefinitions?.forEach { columnDefinition ->
102-
val columnName = columnDefinition.columnName.lowercase()
105+
val columnName = columnDefinition.columnName.lowercase().removeSurrounding("`")
103106
val columnType = columnDefinition.colDataType.dataType.lowercase()
104107

105108
// The type is returned in the format `type(precision, scale)`,

misk-jdbc/src/test/kotlin/misk/jdbc/DeclarativeSchemaMigratorTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ internal class DeclarativeSchemaMigratorTest {
195195
)
196196
resourceLoader.put(
197197
"$mainSource/t2.sql", """
198-
|CREATE TABLE table_2 (id bigint, PRIMARY KEY (id))
198+
|CREATE TABLE `table_2` (`id` bigint, PRIMARY KEY (id))
199199
|""".trimMargin()
200200
)
201201

0 commit comments

Comments
 (0)