Skip to content

Commit b77540e

Browse files
committed
Make compiler strict: -Xlint:all
Switch from deprecated RawSqlStatement to RawParameterizedSqlStatement
1 parent ce80d7b commit b77540e

10 files changed

+27
-23
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ bootRun {
3838

3939
tasks.withType(JavaCompile) {
4040
options.encoding = 'UTF-8'
41-
options.compilerArgs.addAll(['-Werror'])
41+
options.compilerArgs.addAll(['-Xlint:all', '-Werror'])
4242
}
4343

4444
test {

src/main/java/de/cronn/liquibase/ext/postgres/AddPostgresEnumValuesChange.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package de.cronn.liquibase.ext.postgres;
22

3-
import java.util.ArrayList;
43
import java.util.List;
54

65
import liquibase.change.ChangeMetaData;
@@ -9,7 +8,7 @@
98
import liquibase.database.Database;
109
import liquibase.exception.ValidationErrors;
1110
import liquibase.statement.SqlStatement;
12-
import liquibase.statement.core.RawSqlStatement;
11+
import liquibase.statement.core.RawParameterizedSqlStatement;
1312

1413
@DatabaseChange(name = "addPostgresEnumValues",
1514
description = "Adds enum values to an existing Postgres enum type",
@@ -61,10 +60,8 @@ public String getConfirmationMessage() {
6160

6261
@Override
6362
public SqlStatement[] generateStatements(Database database) {
64-
List<SqlStatement> statements = new ArrayList<>();
65-
for (String valueToAdd : valuesToAdd) {
66-
statements.add(new RawSqlStatement("alter type %s add value '%s'".formatted(enumTypeName, valueToAdd)));
67-
}
68-
return statements.toArray(SqlStatement[]::new);
63+
return valuesToAdd.stream()
64+
.map(valueToAdd -> new RawParameterizedSqlStatement("alter type %s add value '%s'".formatted(enumTypeName, valueToAdd)))
65+
.toArray(SqlStatement[]::new);
6966
}
7067
}

src/main/java/de/cronn/liquibase/ext/postgres/CreatePostgresEnumTypeChange.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import liquibase.database.Database;
1111
import liquibase.exception.ValidationErrors;
1212
import liquibase.statement.SqlStatement;
13-
import liquibase.statement.core.RawSqlStatement;
13+
import liquibase.statement.core.RawParameterizedSqlStatement;
1414

1515
@DatabaseChange(
1616
name = "createPostgresEnumType",
@@ -68,9 +68,9 @@ public String getConfirmationMessage() {
6868
public SqlStatement[] generateStatements(Database database) {
6969
String valuesForSql = values.stream().map(value -> "'" + value + "'").collect(Collectors.joining(", "));
7070
return new SqlStatement[] {
71-
new RawSqlStatement("create type %s as enum (%s)".formatted(name, valuesForSql)),
72-
new RawSqlStatement("create cast (varchar as %s) with inout as implicit".formatted(name)),
73-
new RawSqlStatement("create cast (%s as varchar) with inout as implicit".formatted(name))
71+
new RawParameterizedSqlStatement("create type %s as enum (%s)".formatted(name, valuesForSql)),
72+
new RawParameterizedSqlStatement("create cast (varchar as %s) with inout as implicit".formatted(name)),
73+
new RawParameterizedSqlStatement("create cast (%s as varchar) with inout as implicit".formatted(name))
7474
};
7575
}
7676
}

src/main/java/de/cronn/liquibase/ext/postgres/DropPostgresEnumTypeChange.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import liquibase.database.Database;
77
import liquibase.exception.ValidationErrors;
88
import liquibase.statement.SqlStatement;
9-
import liquibase.statement.core.RawSqlStatement;
9+
import liquibase.statement.core.RawParameterizedSqlStatement;
1010

1111
@DatabaseChange(name = "dropPostgresEnumType",
1212
description = "Drops a Postgres enum type",
@@ -46,9 +46,9 @@ public String getConfirmationMessage() {
4646
@Override
4747
public SqlStatement[] generateStatements(Database database) {
4848
return new SqlStatement[] {
49-
new RawSqlStatement("drop cast (varchar as %s)".formatted(name)),
50-
new RawSqlStatement("drop cast (%s as varchar)".formatted(name)),
51-
new RawSqlStatement("drop type %s".formatted(name))
49+
new RawParameterizedSqlStatement("drop cast (varchar as %s)".formatted(name)),
50+
new RawParameterizedSqlStatement("drop cast (%s as varchar)".formatted(name)),
51+
new RawParameterizedSqlStatement("drop type %s".formatted(name))
5252
};
5353
}
5454
}

src/main/java/de/cronn/liquibase/ext/postgres/ModifyPostgresEnumTypeChange.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import liquibase.exception.DatabaseException;
1818
import liquibase.exception.ValidationErrors;
1919
import liquibase.statement.SqlStatement;
20-
import liquibase.statement.core.RawSqlStatement;
20+
import liquibase.statement.core.RawParameterizedSqlStatement;
2121

2222
@DatabaseChange(
2323
name = "modifyPostgresEnumType",
@@ -96,7 +96,7 @@ public SqlStatement[] generateStatements(Database database) {
9696
// and https://stackoverflow.com/a/47305844/4308
9797

9898
String temporaryName = getName() + "_old";
99-
statements.add(new RawSqlStatement("alter type %s rename to %s".formatted(getName(), temporaryName)));
99+
statements.add(new RawParameterizedSqlStatement("alter type %s rename to %s".formatted(getName(), temporaryName)));
100100

101101
CreatePostgresEnumTypeChange createPostgresEnumTypeChange = new CreatePostgresEnumTypeChange(getName(), newValues);
102102
statements.addAll(Arrays.asList(createPostgresEnumTypeChange.generateStatements(database)));
@@ -109,7 +109,7 @@ public SqlStatement[] generateStatements(Database database) {
109109
String tableName = resultSet.getString("table_name");
110110
String columnName = resultSet.getString("column_name");
111111
statements.add(
112-
new RawSqlStatement("alter table %s alter column %s type %s using %s::text::%s"
112+
new RawParameterizedSqlStatement("alter table %s alter column %s type %s using %s::text::%s"
113113
.formatted(tableName, columnName, getName(), columnName, getName())));
114114
}
115115
} catch (SQLException | DatabaseException e) {

src/main/java/de/cronn/liquibase/ext/postgres/RenamePostgresEnumTypeChange.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import liquibase.database.Database;
77
import liquibase.exception.ValidationErrors;
88
import liquibase.statement.SqlStatement;
9-
import liquibase.statement.core.RawSqlStatement;
9+
import liquibase.statement.core.RawParameterizedSqlStatement;
1010

1111
@DatabaseChange(name = "renamePostgresEnumType", description = "Renames a Postgres enum type", priority = ChangeMetaData.PRIORITY_DEFAULT)
1212
public class RenamePostgresEnumTypeChange extends AbstractPostgresEnumChange {
@@ -47,6 +47,8 @@ public String getConfirmationMessage() {
4747

4848
@Override
4949
public SqlStatement[] generateStatements(Database database) {
50-
return new SqlStatement[] { new RawSqlStatement("alter type %s rename to %s".formatted(oldName, newName)) };
50+
return new SqlStatement[] {
51+
new RawParameterizedSqlStatement("alter type %s rename to %s".formatted(oldName, newName))
52+
};
5153
}
5254
}

src/main/java/de/cronn/liquibase/ext/postgres/RenamePostgresEnumValueChange.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import liquibase.database.Database;
77
import liquibase.exception.ValidationErrors;
88
import liquibase.statement.SqlStatement;
9-
import liquibase.statement.core.RawSqlStatement;
9+
import liquibase.statement.core.RawParameterizedSqlStatement;
1010

1111
@DatabaseChange(name = "renamePostgresEnumValue",
1212
description = "Renames an enum value of an existing Postgres enum type",
@@ -61,7 +61,7 @@ public String getConfirmationMessage() {
6161
@Override
6262
public SqlStatement[] generateStatements(Database database) {
6363
return new SqlStatement[] {
64-
new RawSqlStatement("alter type %s rename value '%s' to '%s'".formatted(enumTypeName, oldValue, newValue))
64+
new RawParameterizedSqlStatement("alter type %s rename value '%s' to '%s'".formatted(enumTypeName, oldValue, newValue))
6565
};
6666
}
6767
}

src/main/java/de/cronn/liquibase/ext/postgres/diff/AbstractPostgresEnumTypeChangeGenerator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@ public int getPriority(Class<? extends DatabaseObject> objectType, Database data
1414
}
1515

1616
@Override
17+
@SuppressWarnings({ "rawtypes", "unchecked" })
1718
public Class<? extends DatabaseObject>[] runAfterTypes() {
1819
return new Class[0];
1920
}
2021

2122
@Override
23+
@SuppressWarnings({ "rawtypes", "unchecked" })
2224
public Class<? extends DatabaseObject>[] runBeforeTypes() {
2325
return new Class[0];
2426
}

src/main/java/de/cronn/liquibase/ext/postgres/diff/MissingPostgresEnumTypeChangeGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public Change[] fixMissing(
2121
Database comparisonDatabase,
2222
ChangeGeneratorChain chain) {
2323
String name = missingObject.getName();
24+
@SuppressWarnings("unchecked")
2425
List<String> values = missingObject.getAttribute("values", List.class);
2526
return new Change[] { new CreatePostgresEnumTypeChange(name, values) };
2627
}

src/main/java/de/cronn/liquibase/ext/postgres/diff/PostgresEnumTypeSnapshotGenerator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import liquibase.structure.DatabaseObject;
1717
import liquibase.structure.core.Schema;
1818

19+
@SuppressWarnings("unchecked")
1920
public class PostgresEnumTypeSnapshotGenerator extends JdbcSnapshotGenerator {
2021

2122
@Language("PostgreSQL")
@@ -27,6 +28,7 @@ select t.typname as name, array_agg(distinct e.enumlabel) as values
2728
group by t.typname
2829
order by t.typname""";
2930

31+
@SuppressWarnings("rawtypes")
3032
public PostgresEnumTypeSnapshotGenerator() {
3133
super(PostgresEnumType.class, new Class[] { Schema.class });
3234
}

0 commit comments

Comments
 (0)