Parcourir la source

Lisatud funktsioonidele disconnect

Ardo Kubjas il y a 5 ans
Parent
commit
f115b04b11
5 fichiers modifiés avec 65 ajouts et 0 suppressions
  1. 5 0
      NAMESPACE
  2. 2 0
      R/db_all_schemas.R
  3. 2 0
      R/db_create_new_schema.R
  4. 34 0
      R/db_table_colnames.R
  5. 22 0
      man/db_table_colnames.Rd

+ 5 - 0
NAMESPACE

@@ -2,5 +2,10 @@
 
 export(cat_function)
 export(copy_polygon_to_db)
+export(db_all_schemas)
+export(db_connect)
+export(db_create_new_schema)
+export(db_is_shema_exist)
+export(db_table_colnames)
 export(get_config)
 export(pk_bbox)

+ 2 - 0
R/db_all_schemas.R

@@ -8,5 +8,7 @@
 db_all_schemas <- function() {
   conn <- ruut::db_connect()
   all_schemas <- DBI::dbGetQuery(conn, "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA")
+  # Disconnect
+  lapply(DBI::dbListConnections(RPostgreSQL::PostgreSQL()), DBI::dbDisconnect)
   return(all_schemas$schema_name)
 }

+ 2 - 0
R/db_create_new_schema.R

@@ -14,6 +14,8 @@ db_create_new_schema <- function(conf) {
       "-- DROP SCHEMA x_matsalu;
 CREATE SCHEMA %s AUTHORIZATION %s;", conf$schema, conf$user
     ))
+    # Disconnect
+    lapply(DBI::dbListConnections(RPostgreSQL::PostgreSQL()), DBI::dbDisconnect)
   }
 }
 # conf <- ruut::get_config()

+ 34 - 0
R/db_table_colnames.R

@@ -0,0 +1,34 @@
+#' Database table columns info
+#'
+#' Andmebaasi tabel veergude nimekiri.
+#' @param conf	list List of configuration data. Rewrite it.
+#' @keywords database, table
+#' @export
+#' @examples
+#' config <- get_config()
+#' config$schema <- "public"
+#' config$table <- "spatial_ref_sys"
+#' db_table_colnames(conf = config)
+db_table_colnames <- function(conf) {
+  conn <- ruut::db_connect()
+  q <- sprintf("SELECT
+    pg_attribute.attname AS column_name,
+    pg_catalog.format_type(pg_attribute.atttypid, pg_attribute.atttypmod) AS data_type
+FROM
+    pg_catalog.pg_attribute
+INNER JOIN
+    pg_catalog.pg_class ON pg_class.oid = pg_attribute.attrelid
+INNER JOIN
+    pg_catalog.pg_namespace ON pg_namespace.oid = pg_class.relnamespace
+WHERE
+    pg_attribute.attnum > 0
+    AND NOT pg_attribute.attisdropped
+    AND pg_namespace.nspname = '%s'
+    AND pg_class.relname = '%s'
+ORDER BY
+    attnum ASC;", conf$schema, conf$table)
+  res <- DBI::dbGetQuery(conn, q)
+  # Disconnect
+  lapply(DBI::dbListConnections(RPostgreSQL::PostgreSQL()), DBI::dbDisconnect)
+  res
+}

+ 22 - 0
man/db_table_colnames.Rd

@@ -0,0 +1,22 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/db_table_colnames.R
+\name{db_table_colnames}
+\alias{db_table_colnames}
+\title{Database table columns info}
+\usage{
+db_table_colnames(conf)
+}
+\arguments{
+\item{conf}{list List of configuration data. Rewrite it.}
+}
+\description{
+Andmebaasi tabel veergude nimekiri.
+}
+\examples{
+config <- get_config()
+config$schema <- "public"
+config$table <- "spatial_ref_sys"
+db_table_colnames(conf = config)
+}
+\keyword{database,}
+\keyword{table}