public HeaderRepository()

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);
  }