Changeset: c79656ade7f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c79656ade7f8
Modified Files:
        sql/backends/monet5/sql_rank.c
Branch: window-tunning
Log Message:

Removed obsolete error messages and duplciated code


diffs (truncated from 435 to 300 lines):

diff --git a/sql/backends/monet5/sql_rank.c b/sql/backends/monet5/sql_rank.c
--- a/sql/backends/monet5/sql_rank.c
+++ b/sql/backends/monet5/sql_rank.c
@@ -36,6 +36,17 @@ unfix_inputs(int nargs, ...)
        va_end(valist);
 }
 
+static void
+finalize_output(bat *res, BAT *r, str msg)
+{
+       if (r && !msg) {
+               r->tsorted = BATcount(r) <= 1;
+               r->trevsorted = BATcount(r) <= 1;
+               BBPkeepref(*res = r->batCacheid);
+       } else if (r)
+               BBPreclaim(r);
+}
+
 str
 SQLdiff(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -719,24 +730,19 @@ SQLntile(Client cntxt, MalBlkPtr mb, Mal
 
 bailout:
        unfix_inputs(3, b, p, n);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return MAL_SUCCEED;
 }
 
 static str
 SQLanalytics_args(BAT **r, BAT **b, int *frame_type, BAT **p, BAT **o, BAT 
**s, BAT **e, Client cntxt,
                                  MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, 
int rtype, bool has_bounds,
-                                 int max_arg, const char *mod, const char *err)
+                                 int max_arg, const char *mod)
 {
        (void) cntxt;
        if ((has_bounds && pci->argc != max_arg && pci->argc != max_arg - 1) ||
                (!has_bounds && pci->argc != max_arg && pci->argc != max_arg - 
1 && pci->argc != max_arg + 1))
-               throw(SQL, mod, "%s: wrong number of arguments to function %s", 
err, err);
+               throw(SQL, mod, "%s: wrong number of arguments to function %s", 
mod, mod);
 
        if (isaBatType(getArgType(mb, pci, 1)) && !(*b = 
BATdescriptor(*getArgReference_bat(stk, pci, 1))))
                throw(SQL, mod, SQLSTATE(HY005) "Cannot access column 
descriptor");
@@ -763,12 +769,12 @@ SQLanalytics_args(BAT **r, BAT **b, int 
 }
 
 static str
-SQLanalytical_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, 
bool has_bounds, int max_arg, const char *op, const char *err,
+SQLanalytical_func(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, 
bool has_bounds, int max_arg, const char *op,
                                   gdk_return (*func)(BAT *, BAT *, BAT *, BAT 
*, BAT *, BAT *, int, int))
 {
        int tpe = getArgType(mb, pci, 1), frame_type;
        BAT *r = NULL, *b = NULL, *p = NULL, *o = NULL, *s = NULL, *e = NULL;
-       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, 0, has_bounds, max_arg, op, err);
+       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, 0, has_bounds, max_arg, op);
        bat *res = NULL;
 
        if (msg)
@@ -788,17 +794,12 @@ SQLanalytical_func(Client cntxt, MalBlkP
 
 bailout:
        unfix_inputs(5, b, p, o, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return msg;
 }
 
 static str
-do_limit_value(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, const 
char *op, const char *err,
+do_limit_value(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci, const 
char *op,
                           gdk_return (*func)(BAT *, BAT *, BAT *, BAT *, int))
 {
        int tpe = getArgType(mb, pci, 1);
@@ -809,7 +810,7 @@ do_limit_value(Client cntxt, MalBlkPtr m
        (void) cntxt;
        if (pci->argc != 4 || (getArgType(mb, pci, 2) != TYPE_lng && 
getBatType(getArgType(mb, pci, 2)) != TYPE_lng) ||
                (getArgType(mb, pci, 3) != TYPE_lng && 
getBatType(getArgType(mb, pci, 3)) != TYPE_lng)) {
-               throw(SQL, op, "%s", err);
+               throw(SQL, op, SQLSTATE(42000) "wrong number of arguments to 
function %s", op);
        }
        tpe = getArgType(mb, pci, 1);
 
@@ -847,25 +848,20 @@ do_limit_value(Client cntxt, MalBlkPtr m
 
 bailout:
        unfix_inputs(3, b, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return MAL_SUCCEED;
 }
 
 str
 SQLfirst_value(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       return do_limit_value(cntxt, mb, stk, pci, "sql.first_value", 
SQLSTATE(42000) "first_value(:any_1,:lng,:lng)", GDKanalyticalfirst);
+       return do_limit_value(cntxt, mb, stk, pci, "sql.first_value", 
GDKanalyticalfirst);
 }
 
 str
 SQLlast_value(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       return do_limit_value(cntxt, mb, stk, pci, "sql.last_value", 
SQLSTATE(42000) "last_value(:any_1,:lng,:lng)", GDKanalyticallast);
+       return do_limit_value(cntxt, mb, stk, pci, "sql.last_value", 
GDKanalyticallast);
 }
 
 #define NTH_VALUE_SINGLE_IMP(TPE) \
@@ -966,12 +962,7 @@ SQLnth_value(Client cntxt, MalBlkPtr mb,
 
 bailout:
        unfix_inputs(4, b, l, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return msg;
 }
 
@@ -1137,25 +1128,25 @@ SQLlead(Client cntxt, MalBlkPtr mb, MalS
 str
 SQLmin_global(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       return SQLanalytical_func(cntxt, mb, stk, pci, false, 4, "sql.min", 
SQLSTATE(42000) "min(:any_1,:lng,:lng)", GDKanalyticalmin);
+       return SQLanalytical_func(cntxt, mb, stk, pci, false, 4, "sql.min", 
GDKanalyticalmin);
 }
 
 str
 SQLmin(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       return SQLanalytical_func(cntxt, mb, stk, pci, true, 6, "sql.min", 
SQLSTATE(42000) "min(:any_1,:lng,:lng)", GDKanalyticalmin);
+       return SQLanalytical_func(cntxt, mb, stk, pci, true, 6, "sql.min", 
GDKanalyticalmin);
 }
 
 str
 SQLmax_global(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       return SQLanalytical_func(cntxt, mb, stk, pci, false, 4, "sql.max", 
SQLSTATE(42000) "max(:any_1,:lng,:lng)", GDKanalyticalmax);
+       return SQLanalytical_func(cntxt, mb, stk, pci, false, 4, "sql.max", 
GDKanalyticalmax);
 }
 
 str
 SQLmax(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       return SQLanalytical_func(cntxt, mb, stk, pci, true, 6, "sql.max", 
SQLSTATE(42000) "max(:any_1,:lng,:lng)", GDKanalyticalmax);
+       return SQLanalytical_func(cntxt, mb, stk, pci, true, 6, "sql.max", 
GDKanalyticalmax);
 }
 
 static str
@@ -1170,7 +1161,7 @@ do_count(Client cntxt, MalBlkPtr mb, Mal
        (void) cntxt;
        if ((has_bounds && pci->argc != max_arg && pci->argc != max_arg - 1) ||
                (!has_bounds && pci->argc != max_arg && pci->argc != max_arg - 
1 && pci->argc != max_arg + 1))
-               throw(SQL, "sql.count", "wrong number of arguments to function 
count");
+               throw(SQL, "sql.count", SQLSTATE(42000) "wrong number of 
arguments to function count");
        tpe = getArgType(mb, pci, 1);
        ignore_nils = *getArgReference_bit(stk, pci, 2);
        frame_type = *getArgReference_int(stk, pci, 3);
@@ -1221,12 +1212,7 @@ do_count(Client cntxt, MalBlkPtr mb, Mal
 
 bailout:
        unfix_inputs(5, b, p, o, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return msg;
 }
 
@@ -1254,7 +1240,7 @@ do_analytical_sumprod(Client cntxt, MalB
        (void) cntxt;
        if ((has_bounds && pci->argc != max_arg && pci->argc != max_arg - 1) ||
                (!has_bounds && pci->argc != max_arg && pci->argc != max_arg - 
1 && pci->argc != max_arg + 1))
-               throw(SQL, op, "wrong number of arguments to function %s", op);
+               throw(SQL, op, SQLSTATE(42000) "wrong number of arguments to 
function %s", op);
        tp1 = getArgType(mb, pci, 1);
        frame_type = *getArgReference_int(stk, pci, 2);
 
@@ -1369,12 +1355,7 @@ do_analytical_sumprod(Client cntxt, MalB
 
 bailout:
        unfix_inputs(5, b, p, o, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return msg;
 }
 
@@ -1407,8 +1388,7 @@ do_avg(Client cntxt, MalBlkPtr mb, MalSt
 {
        int tpe = getArgType(mb, pci, 1), frame_type;
        BAT *r = NULL, *b = NULL, *p = NULL, *o = NULL, *s = NULL, *e = NULL;
-       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, TYPE_dbl, has_bounds,
-                                                               max_arg, 
"sql.avg", SQLSTATE(42000) "avg(:any_1,:lng,:lng)");
+       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, TYPE_dbl, has_bounds, max_arg, "sql.avg");
        bat *res = NULL;
 
        if (msg)
@@ -1459,12 +1439,7 @@ do_avg(Client cntxt, MalBlkPtr mb, MalSt
 
 bailout:
        unfix_inputs(5, b, p, o, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return msg;
 }
 
@@ -1485,8 +1460,7 @@ do_avginteger(Client cntxt, MalBlkPtr mb
 {
        int tpe = getArgType(mb, pci, 1), frame_type;
        BAT *r = NULL, *b = NULL, *p = NULL, *o = NULL, *s = NULL, *e = NULL;
-       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, 0, has_bounds,
-                                                               max_arg, 
"sql.avg", SQLSTATE(42000) "avg(:any_1,:lng,:lng)");
+       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, 0, has_bounds, max_arg, "sql.avg");
        bat *res = NULL;
 
        if (msg)
@@ -1521,12 +1495,7 @@ do_avginteger(Client cntxt, MalBlkPtr mb
 
 bailout:
        unfix_inputs(5, b, p, o, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return msg;
 }
 
@@ -1543,12 +1512,12 @@ SQLavginteger(Client cntxt, MalBlkPtr mb
 }
 
 static str
-do_stddev_and_variance(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci, const char *op, const char *err,
+do_stddev_and_variance(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci, const char *op,
                                           gdk_return (*func)(BAT *, BAT *, BAT 
*, BAT *, BAT *, BAT *, int, int), bool has_bounds, int max_arg)
 {
        int tpe = getArgType(mb, pci, 1), frame_type;
        BAT *r = NULL, *b = NULL, *p = NULL, *o = NULL, *s = NULL, *e = NULL;
-       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, TYPE_dbl, has_bounds, max_arg, op, err);
+       str msg = SQLanalytics_args(&r, &b, &frame_type, &p, &o, &s, &e, cntxt, 
mb, stk, pci, TYPE_dbl, has_bounds, max_arg, op);
        bat *res = NULL;
 
        if (msg)
@@ -1584,69 +1553,56 @@ do_stddev_and_variance(Client cntxt, Mal
 
 bailout:
        unfix_inputs(5, b, p, o, s, e);
-       if (r && !msg) {
-               r->tsorted = BATcount(r) <= 1;
-               r->trevsorted = BATcount(r) <= 1;
-               BBPkeepref(*res = r->batCacheid);
-       } else if (r)
-               BBPreclaim(r);
+       finalize_output(res, r, msg);
        return msg;
 }
 
 str
 SQLstddev_samp_global(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       return do_stddev_and_variance(cntxt, mb, stk, pci, "sql.stdev", 
SQLSTATE(42000) "stddev(:any_1,:lng,:lng)",
-                                                                 
GDKanalytical_stddev_samp, false, 4);
+       return do_stddev_and_variance(cntxt, mb, stk, pci, "sql.stdev", 
GDKanalytical_stddev_samp, false, 4);
 }
 
 str
 SQLstddev_pop_global(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to