in baremaps-postgres/src/main/java/org/apache/baremaps/postgres/openstreetmap/HeaderRepository.java [91:139]
public HeaderRepository(
DataSource dataSource,
String schema,
String table,
String replicationSequenceNumberColumn,
String replicationTimestampColumn,
String replicationUrlColumn,
String sourceColumn,
String writingProgramColumn) {
var fullTableName = String.format("%1$s.%2$s", schema, table);
this.dataSource = dataSource;
this.createTable = String.format("""
CREATE TABLE IF NOT EXISTS %1$s (
%2$s bigint PRIMARY KEY,
%3$s timestamp without time zone,
%4$s text,
%5$s text,
%6$s text
)""", fullTableName, replicationSequenceNumberColumn, replicationTimestampColumn,
replicationUrlColumn, sourceColumn, writingProgramColumn);
this.dropTable = String.format("DROP TABLE IF EXISTS %1$s CASCADE", fullTableName);
this.truncateTable = String.format("TRUNCATE TABLE %1$s", fullTableName);
this.selectLatest =
String.format("SELECT %2$s, %3$s, %4$s, %5$s, %6$s FROM %1$s ORDER BY %2$s DESC",
fullTableName,
replicationSequenceNumberColumn, replicationTimestampColumn, replicationUrlColumn,
sourceColumn, writingProgramColumn);
this.select = String.format("SELECT %2$s, %3$s, %4$s, %5$s, %6$s FROM %1$s WHERE %2$s = ?",
fullTableName, replicationSequenceNumberColumn, replicationTimestampColumn,
replicationUrlColumn, sourceColumn, writingProgramColumn);
this.selectIn =
String.format("SELECT %2$s, %3$s, %4$s, %5$s, %6$s FROM %1$s WHERE %2$s = ANY (?)",
fullTableName, replicationSequenceNumberColumn, replicationTimestampColumn,
replicationUrlColumn, sourceColumn, writingProgramColumn);
this.insert = String.format("""
INSERT INTO %1$s (%2$s, %3$s, %4$s, %5$s, %6$s)
VALUES (?, ?, ?, ?, ?)
ON CONFLICT (%2$s) DO UPDATE SET
%3$s = excluded.%3$s,
%4$s = excluded.%4$s,
%5$s = excluded.%5$s,
%6$s = excluded.%6$s""", fullTableName, replicationSequenceNumberColumn,
replicationTimestampColumn, replicationUrlColumn, sourceColumn, writingProgramColumn);
this.delete = String.format("DELETE FROM %1$s WHERE %2$s = ?", fullTableName,
replicationSequenceNumberColumn);
this.copy = String.format("COPY %1$s (%2$s, %3$s, %4$s, %5$s, %6$s) FROM STDIN BINARY",
fullTableName, replicationSequenceNumberColumn, replicationTimestampColumn,
replicationUrlColumn, sourceColumn, writingProgramColumn);
}