Common scidb operations

Details

Please access this singleton instance via arrayop::dbutils. No instance creation is needed.

The default connection is used. So we need to call arrayop::db_connect first before any of the dbutils db related function is available.

We can call dbutils$set_conn(another_scidb_connection_obj) to set a different ScidbConnection object, which should be extremely rare.

Methods


Method random_array_name()

Generate a random array name so it does not collides with existing array names

Usage

DBUtils$random_array_name(prefix = "Rarrayop_", n = 10L)

Arguments

prefix

A string used as the prefix of generated array name

n

An integer, length of the random characters in array name excluding the prefix

Returns

A string of 'prefix' + n random chars


Method random_field_name()

Generate a random field name

Usage

DBUtils$random_field_name(n = 10L)

Arguments

n

An integer, length of the random characters in the field name

Returns

A string


Method set_conn()

Set a ScidbConnection object that dbutils uses for db operations

No need to set the connection in most cases. The default conneciton object is used.

Usage

DBUtils$set_conn(new_conn)

Arguments

new_conn

A ScidbConnection object

Returns

NULL


Method get_conn()

Get the ScidbConnection object the dbutils is using

If no set_conn call is made, by default it returns the default ScidbConnection object, identical to get_default_connection()

Usage

DBUtils$get_conn()

Returns

A ScidbConnection object


Method clear_cache()

Clear cached arrayOp instances

For performance concerns, dbutils caches every arrayOp it retrieves from scidb.

Call this function if there are array changes in scidb after the scidb connection is established

Usage

DBUtils$clear_cache()

Returns

NULL


Method list_arrays_in_ns()

Returns an ArrayOp instance of the "list arrays" opeartion in a scidb namespace

Implemented by scidb list(ns:myNamespace).

Throw an error if the namespace does not exist in scidb.

Usage

DBUtils$list_arrays_in_ns(ns = "public")

Arguments

ns

String, a scidb namespace

Returns

An ArrayOp instance


Method load_array_ops_from_namespace()

Return a list of arrayOp instances from a namespace

Usage

DBUtils$load_array_ops_from_namespace(ns = "public")

Arguments

ns

String, a scidb namespace

Returns

A named list of arrayOp instances where names are array names (without namespace prefix) and values are arrayOp instances


Method sanitize_names()

Sanitize (data frame or scidb array) names

First replace any non-alphanumerical letter to _ Then trim off any leading or trailing underscores.

This is useful when data frames or files contain characters not supported as scidb field names.

Usage

DBUtils$sanitize_names(original_names)

Arguments

original_names

A string vector

Returns

A string vector of sanitized names

Examples

\dontrun{
names(myDataFrame) <- dbutils$sanitize_names(names(myDataFrame))
}


Method sanitize_names_for()

Sanitize names for an R object

sanitize_names_for(myObj) is equvilant to names(myObj) <- sanitize_names(names(myObj))

Usage

DBUtils$sanitize_names_for(obj)

Arguments

obj

An R object whose names are not NULL. Applicable to data frames and any R object that meets the requirement !is.null(names(obj))

Returns

The same obj with sanitized names (in-place modification)


Method db_namespaces()

Return an ArrayOp instance that encapsualtes all namespaces in scidb

The namespaces visible to us is determined by our scidb role and previlige.

Usage

DBUtils$db_namespaces()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_namespace()$to_df()
}


Method db_users()

Return an ArrayOp instance that encapsualtes all users in scidb

The scidb users visible to us is determined by our scidb role and previlige.

Usage

DBUtils$db_users()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_users()$to_df()
}


Method db_roles()

Return an ArrayOp instance that encapsualtes all user roles in scidb

The roles visible to us is determined by our scidb role and previlige.

Usage

DBUtils$db_roles()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_roles()$to_df()
}


Method db_operators()

Return an ArrayOp instance that encapsualtes all scidb operators

Usage

DBUtils$db_operators()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_operators()$to_df()
}


Method db_instances()

Return an ArrayOp instance that encapsualtes scidb instances

Usage

DBUtils$db_instances()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_instances()$to_df()
}


Method db_queries()

Return an ArrayOp instance that encapsualtes running scidb queries

Usage

DBUtils$db_queries()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_queries()$to_df()
}


Method db_macros()

Return an ArrayOp instance that encapsualtes all scidb macros

Usage

DBUtils$db_macros()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_macros()$to_df()
}


Method db_types()

Return an ArrayOp instance that encapsualtes all scidb data types

Usage

DBUtils$db_types()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_types()$to_df()
}


Method db_libraries()

Return an ArrayOp instance that encapsualtes all scidb libraries

Usage

DBUtils$db_libraries()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_libraries()$to_df()
}


Method db_aggregates()

Return an ArrayOp instance that encapsualtes all scidb aggregate functions

Usage

DBUtils$db_aggregates()

Returns

An arrayOp instance

Examples

\dontrun{
dbutils$db_aggregates()$to_df()
}

Examples


## ------------------------------------------------
## Method `DBUtils$sanitize_names`
## ------------------------------------------------

if (FALSE) { # \dontrun{
names(myDataFrame) <- dbutils$sanitize_names(names(myDataFrame))
} # }


## ------------------------------------------------
## Method `DBUtils$db_namespaces`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_namespace()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_users`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_users()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_roles`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_roles()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_operators`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_operators()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_instances`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_instances()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_queries`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_queries()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_macros`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_macros()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_types`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_types()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_libraries`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_libraries()$to_df()
} # }


## ------------------------------------------------
## Method `DBUtils$db_aggregates`
## ------------------------------------------------

if (FALSE) { # \dontrun{
dbutils$db_aggregates()$to_df()
} # }