db_table_colnames.R 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. #' Database table columns info
  2. #'
  3. #' Andmebaasi tabel veergude nimekiri.
  4. #' @param conf list List of configuration data. Rewrite it.
  5. #' @keywords database, table
  6. #' @export
  7. #' @examples
  8. #' config <- get_config()
  9. #' config$schema <- "public"
  10. #' config$table <- "spatial_ref_sys"
  11. #' db_table_colnames(conf = config)
  12. db_table_colnames <- function(conf) {
  13. conn <- ruut::db_connect()
  14. q <- sprintf("SELECT
  15. pg_attribute.attname AS column_name,
  16. pg_catalog.format_type(pg_attribute.atttypid, pg_attribute.atttypmod) AS data_type
  17. FROM
  18. pg_catalog.pg_attribute
  19. INNER JOIN
  20. pg_catalog.pg_class ON pg_class.oid = pg_attribute.attrelid
  21. INNER JOIN
  22. pg_catalog.pg_namespace ON pg_namespace.oid = pg_class.relnamespace
  23. WHERE
  24. pg_attribute.attnum > 0
  25. AND NOT pg_attribute.attisdropped
  26. AND pg_namespace.nspname = '%s'
  27. AND pg_class.relname = '%s'
  28. ORDER BY
  29. attnum ASC;", conf$schema, conf$table)
  30. res <- DBI::dbGetQuery(conn, q)
  31. # Disconnect
  32. lapply(DBI::dbListConnections(RPostgreSQL::PostgreSQL()), DBI::dbDisconnect)
  33. res
  34. }