@@ -791,11 +791,11 @@ if (loaded[["DBI"]] && loaded[["RSQLite"]]) {
791791 # produce SQL statement
792792 # ln, rn: lhs names, rhs names, symmult: symmetric mult
793793 mult_all = function(tbl, cols, ...) sprintf(
794- "(\n SELECT %s FROM %s\n) %s",
794+ "(\n SELECT %s FROM %s \n) %s",
795795 paste(setdiff(cols,"row_id"), collapse=", "), tbl, tbl
796796 )
797797 mult_one = function(tbl, cols, on, mult) sprintf(
798- "(SELECT %s FROM (\n SELECT *, ROW_NUMBER() OVER (PARTITION BY %s ORDER BY row_id %s) AS rownum FROM %s\n) %s WHERE rownum=1) %s",
798+ "(SELECT %s FROM (\n SELECT *, ROW_NUMBER() OVER (PARTITION BY %s ORDER BY row_id %s) AS rownum FROM %s \n) %s WHERE rownum=1) %s",
799799 paste(setdiff(cols,c("row_id","rownum")), collapse=", "),
800800 paste(on, collapse=", "),
801801 if (mult=="first") "ASC" else "DESC",
@@ -806,7 +806,7 @@ if (loaded[["DBI"]] && loaded[["RSQLite"]]) {
806806 # building sql query
807807 if (how=="full") {
808808 return(sprintf(
809- "%s\nUNION ALL\n %s",
809+ "%s \n UNION ALL \n %s",
810810 sql("left", on, mult, ln, rn, symmult=mult%in%c("first","last")),
811811 sql("right", on, mult, ln, rn, symmult=mult%in%c("first","last"), notjoin=TRUE)
812812 ))
@@ -816,21 +816,21 @@ if (loaded[["DBI"]] && loaded[["RSQLite"]]) {
816816 using = sprintf("USING (%s)", paste(on, collapse=", "))
817817 lhs = "lhs"; rhs = "rhs"
818818 join = if (how=="inner") {
819- if (mult=="all") sprintf("%s\nINNER JOIN\n%s\n %s", mult_all(lhs, nm[[lhs]]), mult_all(rhs, nm[[rhs]]), using)
820- else sprintf("%s\nINNER JOIN\n%s\n %s", mult_one(lhs, nm[[lhs]], on, mult), mult_one(rhs, nm[[rhs]], on, mult), using)
819+ if (mult=="all") sprintf("%s \n INNER JOIN \n %s \n %s", mult_all(lhs, nm[[lhs]]), mult_all(rhs, nm[[rhs]]), using)
820+ else sprintf("%s \n INNER JOIN \n %s \n %s", mult_one(lhs, nm[[lhs]], on, mult), mult_one(rhs, nm[[rhs]], on, mult), using)
821821 } else if (how=="left") {
822- if (mult=="all") sprintf("%s\nLEFT JOIN\n%s\n %s", mult_all(lhs, nm[[lhs]]), mult_all(rhs, nm[[rhs]]), using)
823- else sprintf("%s\nLEFT JOIN\n%s\n %s", (if (symmult) mult_one else mult_all)(lhs, nm[[lhs]], on, mult), mult_one(rhs, nm[[rhs]], on, mult), using)
822+ if (mult=="all") sprintf("%s \n LEFT JOIN \n %s \n %s", mult_all(lhs, nm[[lhs]]), mult_all(rhs, nm[[rhs]]), using)
823+ else sprintf("%s \n LEFT JOIN \n %s \n %s", (if (symmult) mult_one else mult_all)(lhs, nm[[lhs]], on, mult), mult_one(rhs, nm[[rhs]], on, mult), using)
824824 } else if (how=="right") { ## lhs-rhs swap happens here, mult_one is applied on new rhs
825- if (mult=="all") sprintf("%s\nLEFT JOIN\n%s\n %s", mult_all(rhs, nm[[rhs]]), mult_all(lhs, nm[[lhs]]), using)
826- else sprintf("%s\nLEFT JOIN\n%s\n %s", (if (symmult) mult_one else mult_all)(rhs, nm[[rhs]], on, mult), mult_one(lhs, nm[[lhs]], on, mult), using)
825+ if (mult=="all") sprintf("%s \n LEFT JOIN \n %s \n %s", mult_all(rhs, nm[[rhs]]), mult_all(lhs, nm[[lhs]]), using)
826+ else sprintf("%s \n LEFT JOIN \n %s \n %s", (if (symmult) mult_one else mult_all)(rhs, nm[[rhs]], on, mult), mult_one(lhs, nm[[lhs]], on, mult), using)
827827 }
828828 if (how=="right") {lhs = "rhs"; rhs = "lhs"} ## this name swap is for notjoin and select below
829829 where = if (!notjoin) "" else sprintf("\nWHERE %s IS NULL", paste(rhs, on, sep="."))
830830 select = sprintf("%s, %s, %s", paste(lhs, on, sep="."),
831831 paste("lhs", setdiff(nm[["lhs"]], c("row_id",on)),sep=".",collapse=", "),
832832 paste("rhs", setdiff(nm[["rhs"]], c("row_id",on)),sep=".",collapse=", "))
833- sprintf("SELECT %s FROM\n %s%s", select, join, where)
833+ sprintf("SELECT %s FROM \n %s%s", select, join, where)
834834 }
835835
836836 # .conn SQLite connection, if provided it will use it instead of creating temporary one
0 commit comments