Added the ability to get the last run query in R

This commit is contained in:
2020-11-09 12:35:10 +00:00
parent e5e02c40ec
commit 179cc28502
3 changed files with 25 additions and 0 deletions

View File

@@ -231,3 +231,9 @@ modb_use <- function(modb_name, override = FALSE, ...) {
res <- .Call(c_rmodb_use, conn_ref, modb_name, as.logical(override)) res <- .Call(c_rmodb_use, conn_ref, modb_name, as.logical(override))
return(res) return(res)
} }
modb_get_last_query <- function(...) {
conn_ref <- modb_conn_ref(args = list(...))
res <- .Call(c_rmodb_getLastQuery, conn_ref)
return(res)
}

View File

@@ -236,3 +236,20 @@ SEXP rmodb_use(SEXP r_conn_ref, SEXP r_name, SEXP r_override)
return Rf_ScalarLogical(TRUE); return Rf_ScalarLogical(TRUE);
} }
SEXP rmodb_getLastQuery(SEXP r_conn_ref)
{
stored_conn *sconn;
SEXP r_res;
if ((sconn = getConnectionByRef(r_conn_ref)) == 0) {
Rf_error("invalid connection reference\n");
}
r_res = Rf_allocVector(STRSXP, 1);
SET_STRING_ELT(r_res, 0, PROTECT(Rf_mkCharLen(sconn->last_qry, (int)sconn->last_qry_len)));
UNPROTECT(2);
return r_res;
}

View File

@@ -24,4 +24,6 @@ SEXP rmodb_destroy(SEXP r_conn_ref, SEXP r_name);
SEXP rmodb_use(SEXP r_conn_ref, SEXP r_name, SEXP r_override); SEXP rmodb_use(SEXP r_conn_ref, SEXP r_name, SEXP r_override);
SEXP rmodb_getLastQuery(SEXP r_conn_ref);
#endif // H__R_MODB_MANAGE__ #endif // H__R_MODB_MANAGE__