spatial_indeksite_lisamine.R 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # ruut::db_schema_tablenames()
  2. # ## Schemade nimekiri
  3. # ruut::db_all_schemas()
  4. # schema = "pk_hiiumaa"
  5. # tabel = tabels_list[139]
  6. # tabels_list = tabels_list[-3]
  7. ## Spatial indeksite lisamine
  8. lisa_spatial_indeksid <- function(schema = schema) {
  9. conf <- ruut::get_config()
  10. conf$schema <- schema
  11. tabels_list <- ruut::db_schema_tablenames(conf = conf)
  12. conn <- ruut::db_connect()
  13. for (tabel in tabels_list) {
  14. print(tabel)
  15. # q <- sprintf("SELECT * FROM %s.%s LIMIT 1;", schema, tabel)
  16. # cat(sprintf("\n-----------------\n%s\n\n", q))
  17. # DBI::dbGetQuery(conn, q)
  18. ## ---------- Vacuum -----------
  19. q <-
  20. sprintf("VACUUM (FULL) \"%s\".\"%s\";", schema, tabel)
  21. cat(sprintf("\n-----------------\n%s\n\n", q))
  22. DBI::dbSendQuery(conn, q)
  23. ## ---------- Drop spatial index -----------
  24. q <-
  25. sprintf("drop index if exists \"%s\".\"%s_geom_idx\";",
  26. schema,
  27. tabel)
  28. cat(sprintf("\n-----------------\n%s\n\n", q))
  29. DBI::dbSendQuery(conn, q)
  30. ## ---------- Add spatial index -----------
  31. # If geom column exists
  32. q <- sprintf(
  33. "SELECT EXISTS (SELECT 1
  34. FROM information_schema.columns
  35. WHERE table_schema='%s' AND table_name='%s' AND column_name='geom');",
  36. schema,
  37. tabel
  38. )
  39. cat(sprintf("\n-----------------\n%s\n\n", q))
  40. res <- DBI::dbGetQuery(conn, q)[1,1]
  41. if (res) {
  42. q <-
  43. sprintf(
  44. "create index \"%s_geom_idx\" on \"%s\".\"%s\" using GIST (geom);",
  45. tabel,
  46. schema,
  47. tabel
  48. )
  49. cat(sprintf("\n-----------------\n%s\n\n", q))
  50. DBI::dbSendQuery(conn, q)
  51. }
  52. }
  53. DBI::dbDisconnect(conn)
  54. }
  55. # lisa_spatial_indeksid(schema = "eesti")
  56. # lisa_spatial_indeksid(schema = "teeregister_wfs")
  57. # lisa_spatial_indeksid(schema = "maaamet")
  58. # lisa_spatial_indeksid(schema = "osm_shp")
  59. # lisa_spatial_indeksid(schema = "gtfs")
  60. #
  61. # lisa_spatial_indeksid(schema = "pk_hiiumaa")