[codeface] [PATCH 1/2] Add aggregate option to db query

  • From: Mitchell Joblin <mitchell.joblin.ext@xxxxxxxxxxx>
  • To: codeface@xxxxxxxxxxxxx
  • Date: Thu, 15 Oct 2015 10:48:19 +0200

- Retrieving the whole commit table is quite memory intensive
when one only wants the commit counts

Signed-off-by: Mitchell Joblin <mitchell.joblin.ext@xxxxxxxxxxx>
---
codeface/R/query.r | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/codeface/R/query.r b/codeface/R/query.r
index c8309e4..9142cb8 100644
--- a/codeface/R/query.r
+++ b/codeface/R/query.r
@@ -182,17 +182,29 @@ get.commits.by.ranges <- function(conf, subset=NULL,
FUN=NULL) {
}

get.commits.by.date.con <- function(con, pid, start.date, end.date,
- commit.date=TRUE) {
+ commit.date=TRUE,
+ commit.count=FALSE) {
if (commit.date==TRUE) {
date.type <- "commitDate"
} else {
date.type <- "authorDate"
}

- query <- str_c("SELECT * FROM commit",
+ if (commit.count==TRUE) {
+ select <- "SELECT author, COUNT(*) as freq"
+ group.by <- " GROUP BY author"
+ } else {
+ select <- "SELECT *"
+ group.by <- NULL
+ }
+
+ query <- str_c(select,
+ " FROM commit",
" WHERE projectId=", pid,
" AND ", date.type, ">=", sq(start.date),
- " AND ", date.type, "<", sq(end.date))
+ " AND ", date.type, "<", sq(end.date),
+ group.by)
+
dat <- dbGetQuery(con, query)

return(dat)
--
2.1.4


Other related posts: