public PostgresNodeRepository()

in baremaps-core/src/main/java/org/apache/baremaps/openstreetmap/postgres/PostgresNodeRepository.java [84:126]


  public PostgresNodeRepository(DataSource dataSource, String tableName, String idColumn,
      String versionColumn, String uidColumn, String timestampColumn, String changesetColumn,
      String tagsColumn, String longitudeColumn, String latitudeColumn, String geometryColumn) {
    this.dataSource = dataSource;
    this.createTable = String.format("""
        CREATE TABLE %1$s
        (
            %2$s bigint PRIMARY KEY,
            %3$s int,
            %4$s int,
            %5$s timestamp without time zone,
            %6$s bigint,
            %7$s jsonb,
            %8$s float,
            %9$s float,
            %10$s geometry(point)
        )""", tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn,
        tagsColumn, longitudeColumn, latitudeColumn, geometryColumn);
    this.dropTable = String.format("DROP TABLE IF EXISTS %1$s CASCADE", tableName);
    this.truncateTable = String.format("TRUNCATE TABLE %1$s", tableName);
    this.select = String.format(
        "SELECT %2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, st_asbinary(%10$s) FROM %1$s WHERE %2$s = ?",
        tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
        longitudeColumn, latitudeColumn, geometryColumn);
    this.selectIn = String.format(
        "SELECT %2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, st_asbinary(%10$s) FROM %1$s WHERE %2$s = ANY (?)",
        tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
        longitudeColumn, latitudeColumn, geometryColumn);
    this.insert = String.format(
        "INSERT INTO %1$s (%2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, %10$s) "
            + "VALUES (?, ? ,? , ?, ?, cast (? AS jsonb), ?, ?, ?)"
            + "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, "
            + "%7$s = excluded.%7$s, " + "%8$s = excluded.%8$s, " + "%9$s = excluded.%9$s, "
            + "%10$s = excluded.%10$s",
        tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
        longitudeColumn, latitudeColumn, geometryColumn);
    this.delete = String.format("DELETE FROM %1$s WHERE %2$s = ?", tableName, idColumn);
    this.copy = String.format(
        "COPY %1$s (%2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, %10$s) FROM STDIN BINARY",
        tableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn, tagsColumn,
        longitudeColumn, latitudeColumn, geometryColumn);
  }