Changeset: aafe85f05aa3 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aafe85f05aa3
Added Files:
sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.stable.err
sql/test/BugTracker-2018/Tests/sqlitelogictest-cast-null-not-in.Bug-6605.stable.out
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-coalesce-error-message.Bug-6608.sql
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-coalesce-error-message.Bug-6608.stable.out
Modified Files:
MonetDB.spec
buildtools/selinux/monetdb.te
gdk/gdk_aggr.c
sql/test/BugTracker-2018/Tests/All
sql/test/orderidx/Tests/simpletable.sql
sql/test/orderidx/Tests/simpletable.stable.out
sql/test/orderidx/Tests/simpletable.stable.out.32bit
sql/test/orderidx/Tests/smalltable.sql
sql/test/orderidx/Tests/smalltable.stable.out
sql/test/orderidx/Tests/smalltable.stable.out.32bit
sql/test/pg_regress/Tests/vacuum.sql
sql/test/pg_regress/Tests/vacuum.stable.out
Branch: default
Log Message:
Merge with Mar2018 branch.
diffs (truncated from 1147 to 300 lines):
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -640,7 +640,6 @@ fi
%exclude %{_libdir}/monetdb5/fits.mal
%exclude %{_libdir}/monetdb5/autoload/*_fits.mal
%exclude %{_libdir}/monetdb5/createdb/*_fits.sql
-%exclude %{_libdir}/monetdb5/lib_fits.so
%endif
%if %{?with_geos:1}%{!?with_geos:0}
%exclude %{_libdir}/monetdb5/geom.mal
@@ -674,25 +673,16 @@ fi
%endif
%exclude %{_libdir}/monetdb5/autoload/??_sql*.mal
%{_libdir}/monetdb5/autoload/*.mal
-%if %{?with_geos:1}%{!?with_geos:0}
-%exclude %{_libdir}/monetdb5/lib_geom.so
-%endif
-%if %{?with_lidar:1}%{!?with_lidar:0}
-%exclude %{_libdir}/monetdb5/lib_lidar.so
-%endif
-%if %{?with_pyintegration:1}%{!?with_pyintegration:0}
-%exclude %{_libdir}/monetdb5/lib_pyapi.so
-%endif
-%if %{?with_rintegration:1}%{!?with_rintegration:0}
-%exclude %{_libdir}/monetdb5/lib_rapi.so
-%endif
%if %{?with_samtools:1}%{!?with_samtools:0}
%exclude %{_libdir}/monetdb5/bam.mal
%exclude %{_libdir}/monetdb5/autoload/*_bam.mal
-%exclude %{_libdir}/monetdb5/lib_bam.so
%endif
-%exclude %{_libdir}/monetdb5/lib_sql.so
-%{_libdir}/monetdb5/*.so
+%{_libdir}/monetdb5/lib_capi.so
+%{_libdir}/monetdb5/lib_generator.so
+%{_libdir}/monetdb5/lib_lsst.so
+%{_libdir}/monetdb5/lib_opt_sql_append.so
+%{_libdir}/monetdb5/lib_udf.so
+%{_libdir}/monetdb5/lib_vault.so
%doc %{_mandir}/man1/mserver5.1.gz
%dir %{_datadir}/doc/MonetDB
%docdir %{_datadir}/doc/MonetDB
diff --git a/buildtools/selinux/monetdb.te b/buildtools/selinux/monetdb.te
--- a/buildtools/selinux/monetdb.te
+++ b/buildtools/selinux/monetdb.te
@@ -1,7 +1,24 @@
-policy_module(monetdb, 0.2)
+policy_module(monetdb, 0.3)
# The above line declares that this file is a SELinux policy file. Its
# name is monetdb, so the file should be saved as monetdb.te
+# Declare the system types and classes we're using.
+require {
+ type proc_net_t;
+ type tmp_t;
+ type var_t;
+ class dir { read };
+ class fd { use };
+ class fifo_file { getattr read write };
+ class file { entrypoint execute getattr manage_file_perms map open read
};
+ class netlink_selinux_socket create_socket_perms;
+ class process { rlimitinh siginh signal transition };
+ class tcp_socket create_stream_socket_perms;
+ class udp_socket create_stream_socket_perms;
+ class unix_dgram_socket create_socket_perms;
+ class unix_stream_socket { connectto create_stream_socket_perms getopt
read shutdown write };
+}
+
# First, we declare the monetdbd_t domain, used for the "monetdbd"
# process. Because it is launched by systemd, we tell the policy that
# monetdbd_exec_t (the context of monetdbd), when launched by systemd,
@@ -79,6 +96,7 @@ allow monetdbd_t self:udp_socket create_
allow monetdbd_t self:unix_dgram_socket create_socket_perms;
allow monetdbd_t self:unix_stream_socket { create_stream_socket_perms
connectto };
allow monetdbd_t self:netlink_selinux_socket create_socket_perms;
+allow monetdbd_t proc_net_t:file read;
manage_dirs_pattern(monetdbd_t, tmp_t, tmp_t)
manage_sock_files_pattern(monetdbd_t, tmp_t, tmp_t)
manage_sock_files_pattern(monetdbd_t, mserver5_db_t, mserver5_db_t)
diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -147,7 +147,7 @@ BATgroupaggrinit(BAT *b, BAT *g, BAT *e,
/* ---------------------------------------------------------------------- */
/* sum */
-static inline int
+static inline bool
samesign(double x, double y)
{
return (x >= 0) == (y >= 0);
@@ -182,13 +182,13 @@ static BUN
dofsum(const void *restrict values, oid seqb, BUN start, BUN end,
void *restrict results, BUN ngrp, int tp1, int tp2,
const oid *restrict cand, const oid *candend, const oid *restrict gids,
- oid min, oid max, int skip_nils, int abort_on_error,
- int nil_if_empty, const char *func)
+ oid min, oid max, bool skip_nils, bool abort_on_error,
+ bool nil_if_empty, const char *func)
{
struct pergroup {
int npartials;
int maxpartials;
- int valseen;
+ bool valseen;
#ifdef INFINITES_ALLOWED
float infs;
#else
@@ -224,7 +224,7 @@ dofsum(const void *restrict values, oid
return BUN_NONE;
for (grp = 0; grp < ngrp; grp++) {
pergroup[grp].npartials = 0;
- pergroup[grp].valseen = 0;
+ pergroup[grp].valseen = false;
pergroup[grp].maxpartials = 2;
pergroup[grp].infs = 0;
pergroup[grp].partials = GDKmalloc(pergroup[grp].maxpartials *
sizeof(double));
@@ -268,7 +268,7 @@ dofsum(const void *restrict values, oid
}
continue;
}
- pergroup[grp].valseen = 1;
+ pergroup[grp].valseen = true;
#ifdef INFINITES_ALLOWED
if (isinf(x)) {
pergroup[grp].infs += x;
@@ -476,7 +476,7 @@ dofsum(const void *restrict values, oid
goto overflow); \
} \
} else { \
- int seenval = 0; \
+ bool seenval = false; \
for (i = start; i < end && nils == 0; i++) { \
x = vals[i]; \
if (is_##TYPE1##_nil(x)) { \
@@ -490,7 +490,7 @@ dofsum(const void *restrict values, oid
TYPE2, sum, \
GDK_##TYPE2##_max, \
goto overflow); \
- seenval = 1; \
+ seenval = true; \
} \
} \
*seen = seenval; \
@@ -500,7 +500,7 @@ dofsum(const void *restrict values, oid
} else if (ngrp == 1) { \
/* single group, with candidate list */ \
TYPE2 sum; \
- int seenval = 0; \
+ bool seenval = false; \
ALGODEBUG fprintf(stderr, \
"#%s: with candidates, no groups; " \
"start " BUNFMT ", end " BUNFMT \
@@ -523,7 +523,7 @@ dofsum(const void *restrict values, oid
TYPE2, sum, \
GDK_##TYPE2##_max, \
goto overflow); \
- seenval = 1; \
+ seenval = true; \
} \
} \
if (seenval) \
@@ -609,11 +609,11 @@ dofsum(const void *restrict values, oid
} while (0)
static BUN
-dosum(const void *restrict values, int nonil, oid seqb, BUN start, BUN end,
+dosum(const void *restrict values, bool nonil, oid seqb, BUN start, BUN end,
void *restrict results, BUN ngrp, int tp1, int tp2,
const oid *restrict cand, const oid *candend, const oid *restrict gids,
- oid min, oid max, int skip_nils, int abort_on_error,
- int nil_if_empty, const char *func)
+ oid min, oid max, bool skip_nils, bool abort_on_error,
+ bool nil_if_empty, const char *func)
{
BUN nils = 0;
BUN i;
@@ -810,7 +810,7 @@ BATgroupsum(BAT *b, BAT *g, BAT *e, BAT
nils = dosum(Tloc(b, 0), b->tnonil, b->hseqbase, start, end,
Tloc(bn, 0), ngrp, b->ttype, tp,
cand, candend, gids, min, max,
- skip_nils, abort_on_error, 1, "BATgroupsum");
+ skip_nils, abort_on_error, true, "BATgroupsum");
if (nils < BUN_NONE) {
BATsetcount(bn, ngrp);
@@ -936,7 +936,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
if (BATcount(b) == 0)
return GDK_SUCCEED;
nils = dosum(Tloc(b, 0), b->tnonil, b->hseqbase, start, end,
- res, 1, b->ttype, tp, cand, candend, &min, min, max,
+ res, true, b->ttype, tp, cand, candend, &min, min, max,
skip_nils, abort_on_error, nil_if_empty, "BATsum");
return nils < BUN_NONE ? GDK_SUCCEED : GDK_FAIL;
}
@@ -947,8 +947,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
#define AGGR_PROD(TYPE1, TYPE2, TYPE3) \
do { \
const TYPE1 *restrict vals = (const TYPE1 *) values; \
- assert(gidincr == 0 || gidincr == 1); \
- gid = 0; /* doesn't change if gidincr == 0 */ \
+ gid = 0; /* doesn't change if gidincr == false */ \
for (;;) { \
if (cand) { \
if (cand == candend) \
@@ -961,7 +960,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
if (i == end) \
break; \
} \
- if (gids == NULL || gidincr == 0 || \
+ if (gids == NULL || !gidincr || \
(gids[i] >= min && gids[i] <= max)) { \
if (gidincr) { \
if (gids) \
@@ -998,8 +997,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
#define AGGR_PROD_HGE(TYPE) \
do { \
const TYPE *vals = (const TYPE *) values; \
- assert(gidincr == 0 || gidincr == 1); \
- gid = 0; /* doesn't change if gidincr == 0 */ \
+ gid = 0; /* doesn't change if gidincr == false */ \
for (;;) { \
if (cand) { \
if (cand == candend) \
@@ -1012,7 +1010,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
if (i == end) \
break; \
} \
- if (gids == NULL || gidincr == 0 || \
+ if (gids == NULL || !gidincr || \
(gids[i] >= min && gids[i] <= max)) { \
if (gidincr) { \
if (gids) \
@@ -1044,8 +1042,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
#define AGGR_PROD_LNG(TYPE) \
do { \
const TYPE *restrict vals = (const TYPE *) values; \
- assert(gidincr == 0 || gidincr == 1); \
- gid = 0; /* doesn't change if gidincr == 0 */ \
+ gid = 0; /* doesn't change if gidincr == false */ \
for (;;) { \
if (cand) { \
if (cand == candend) \
@@ -1058,7 +1055,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
if (i == end) \
break; \
} \
- if (gids == NULL || gidincr == 0 || \
+ if (gids == NULL || !gidincr || \
(gids[i] >= min && gids[i] <= max)) { \
if (gidincr) { \
if (gids) \
@@ -1094,8 +1091,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
#define AGGR_PROD_FLOAT(TYPE1, TYPE2) \
do { \
const TYPE1 *restrict vals = (const TYPE1 *) values; \
- assert(gidincr == 0 || gidincr == 1); \
- gid = 0; /* doesn't change if gidincr == 0 */ \
+ gid = 0; /* doesn't change if gidincr == false */ \
for (;;) { \
if (cand) { \
if (cand == candend) \
@@ -1108,7 +1104,7 @@ BATsum(void *res, int tp, BAT *b, BAT *s
if (i == end) \
break; \
} \
- if (gids == NULL || gidincr == 0 || \
+ if (gids == NULL || !gidincr || \
(gids[i] >= min && gids[i] <= max)) { \
if (gidincr) { \
if (gids) \
@@ -1146,8 +1142,8 @@ BATsum(void *res, int tp, BAT *b, BAT *s
static BUN
doprod(const void *restrict values, oid seqb, BUN start, BUN end, void
*restrict results,
BUN ngrp, int tp1, int tp2, const oid *restrict cand, const oid
*candend,
- const oid *restrict gids, int gidincr, oid min, oid max,
- int skip_nils, int abort_on_error, int nil_if_empty, const char *func)
+ const oid *restrict gids, bool gidincr, oid min, oid max,
+ bool skip_nils, bool abort_on_error, bool nil_if_empty, const char
*func)
{
BUN nils = 0;
BUN i;
@@ -1412,8 +1408,8 @@ BATgroupprod(BAT *b, BAT *g, BAT *e, BAT
nils = doprod(Tloc(b, 0), b->hseqbase, start, end,
Tloc(bn, 0), ngrp, b->ttype, tp,
- cand, candend, gids, 1, min, max,
- skip_nils, abort_on_error, 1, "BATgroupprod");
+ cand, candend, gids, true, min, max,
+ skip_nils, abort_on_error, true, "BATgroupprod");
if (nils < BUN_NONE) {
BATsetcount(bn, ngrp);
@@ -1476,8 +1472,8 @@ BATprod(void *res, int tp, BAT *b, BAT *
}
if (BATcount(b) == 0)
return GDK_SUCCEED;
- nils = doprod(Tloc(b, 0), b->hseqbase, start, end, res, 1,
- b->ttype, tp, cand, candend, &min, 0, min, max,
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list