public RelationRepository()

in baremaps-postgres/src/main/java/org/apache/baremaps/postgres/openstreetmap/RelationRepository.java [102:166]


  public RelationRepository(
      DataSource dataSource,
      String schema,
      String table,
      String idColumn,
      String versionColumn,
      String uidColumn,
      String timestampColumn,
      String changesetColumn,
      String tagsColumn,
      String memberRefs,
      String memberTypes,
      String memberRoles,
      String geometryColumn) {
    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 int,
          %4$s int,
          %5$s timestamp without time zone,
          %6$s bigint,
          %7$s jsonb,
          %8$s bigint[],
          %9$s int[],
          %10$s text[],
          %11$s geometry
        )""", fullTableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn,
        tagsColumn, memberRefs, memberTypes, memberRoles, geometryColumn);
    this.dropTable = String.format("DROP TABLE IF EXISTS %1$s CASCADE", fullTableName);
    this.truncateTable = String.format("TRUNCATE TABLE %1$s", fullTableName);
    this.select = String.format(
        "SELECT %2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, %10$s, st_asewkb(%11$s) FROM %1$s WHERE %2$s = ?",
        fullTableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn,
        tagsColumn,
        memberRefs, memberTypes, memberRoles, geometryColumn);
    this.selectIn = String.format(
        "SELECT %2$s, %3$s, %4$s, %5$s, %6$s, %7$s, %8$s, %9$s, %10$s, st_asewkb(%11$s) FROM %1$s WHERE %2$s = ANY (?)",
        fullTableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn,
        tagsColumn,
        memberRefs, memberTypes, memberRoles, 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, %11$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,
        %11$s = excluded.%11$s""", fullTableName, idColumn, versionColumn, uidColumn,
        timestampColumn,
        changesetColumn, tagsColumn, memberRefs, memberTypes, memberRoles, geometryColumn);
    this.delete = String.format("DELETE FROM %1$s WHERE %2$s = ?", fullTableName, idColumn);
    this.deleteIn = String.format("DELETE FROM %1$s WHERE %2$s = ANY (?)", fullTableName, 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, %11$s) FROM STDIN BINARY",
        fullTableName, idColumn, versionColumn, uidColumn, timestampColumn, changesetColumn,
        tagsColumn,
        memberRefs, memberTypes, memberRoles, geometryColumn);
  }