Type: Package
Title: Append 'WITH (NOLOCK)' to 'SQL' Queries, Get Packages in Active Script
Version: 1.1.0
Description: Provides a suite of tools that can assist in enhancing the processing efficiency of 'SQL' and 'R' scripts. - The 'libr_unused()' retrieves a vector of package names that are called within an 'R' script but are never actually used in the script. - The 'libr_used()' retrieves a vector of package names actively utilized within an 'R' script; packages loaded using 'library()' but not actually used in the script will not be included. - The 'libr_called()' retrieves a vector of all package names which are called within an 'R' script. - 'nolock()' appends 'WITH (nolock)' to all tables in 'SQL' queries. This facilitates reading from databases in scenarios where non-blocking reads are preferable, such as in high-transaction environments.
License: GPL-3
Encoding: UTF-8
Imports: crayon, rstudioapi, utils, stringr, NCmisc
RoxygenNote: 7.2.3
NeedsCompilation: no
Packaged: 2023-11-15 04:35:32 UTC; apajda
Author: Arkadiusz W. Pajda [aut, cre, cph]
Maintainer: Arkadiusz W. Pajda <arkadiusz.pajda.97@onet.pl>
Repository: CRAN
Date/Publication: 2023-11-15 06:00:02 UTC

'Get Packages Called in the Active 'R' Script'

Description

Retrieves a vector of all package names which are called within an 'R' script.

Usage

  libr_called(script = NULL)

Arguments

script

Character vector. 'R' script to be processed. If NULL, an active 'R' script is used.

Value

Retrieves a vector of package names.

Examples

  script_content <- 'library(rstudioapi)
ActiveDocument <- getActiveDocumentContext()$path
min_c <- min(c(1,2,3))
require(dplyr)
pacman::p_load(tidymodels)'

  temp_script_path <- tempfile(fileext = ".R")
  writeLines(script_content, con = temp_script_path)

  libr_called(script = temp_script_path)

  unlink(temp_script_path)

'Get Unused Packages in the Active 'R' Script'

Description

Retrieves a vector of package names that are called within an 'R' script but are never actually used in the script.

Usage

  libr_unused(script = NULL)

Arguments

script

Character vector. 'R' script to be processed. If NULL, an active 'R' script is used.

Value

Retrieves a vector of package names which are never really used in the code.

Examples

  script_content <- 'library(rstudioapi)
ActiveDocument <- getActiveDocumentContext()$path
min_c <- min(c(1,2,3))
require(dplyr)
pacman::p_load(tidymodels)'

  temp_script_path <- tempfile(fileext = ".R")
  writeLines(script_content, con = temp_script_path)

  libr_unused(script = temp_script_path)

  unlink(temp_script_path)

'Get Packages Used in the Active Script'

Description

The 'libr_used()' retrieves a vector of package names actively utilized within an 'R' script; packages loaded using 'library()' but not actually used in the script will not be included.

Usage

libr_used(script = NULL)

Arguments

script

Character vector. 'R' script to be processed. If NULL, an active 'R' script is used.

Value

Returns the vector of all package names used in the active 'R' script, based on all the functions used in the script with fully loaded namespaces in the environment.

Examples

script_content <- 'library(rstudioapi)
ActiveDocument <- getActiveDocumentContext()$path
min_c <- min(c(1,2,3))
'

temp_script_path <- tempfile(fileext = ".R")
writeLines(script_content, con = temp_script_path)

libr_used(script = temp_script_path)

unlink(temp_script_path)

'Append WITH (NOLOCK) to SQL Queries'

Description

Automatically appends 'WITH (nolock)' to all tables in 'SQL' queries using a utility function. This facilitates reading from databases in scenarios where non-blocking reads are preferable, such as in high-transaction environments.

Usage

nolock(query = NULL)

Arguments

query

Character vector. 'SQL' query to be processed. If NULL, a temporary 'SQL' text document is opened for user input.

Value

Returns the processed 'SQL' query as a character vector with 'WITH (nolock)' added for each table in the query.

Examples


example_SQL <- "

WITH CTE AS (SELECT C.TABLE_NAME,
                    C.COLUMN_NAME,
                    T.TABLE_TYPE
             FROM INFORMATION_SCHEMA.COLUMNS AS C
                      JOIN INFORMATION_SCHEMA.TABLES T ON C.TABLE_NAME = T.TABLE_NAME)

SELECT *
FROM CTE;"

nolock(query = example_SQL)

## Not run: 
nolock()

## End(Not run)

mirror server hosted at Truenetwork, Russian Federation.