Changeset: c840f7c71292 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c840f7c71292
Modified Files:
        configure.ag
        sql/backends/monet5/sql.mx
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/vaults/fits.c
Branch: headless
Log Message:

Merge with default branch.


diffs (truncated from 2703 to 300 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -25,7 +25,7 @@
 
 BuildRequires: bison
 BuildRequires: bzip2-devel
-BuildRequires: cfitsio-devel
+# BuildRequires: cfitsio-devel
 BuildRequires: flex
 BuildRequires: geos-devel >= 2.2.0
 BuildRequires: libcurl-devel
@@ -376,7 +376,7 @@
 %exclude %{_libdir}/monetdb5/sql.mal
 %exclude %{_libdir}/monetdb5/sql_bpm.mal
 %{_libdir}/monetdb5/*.mal
-%{_libdir}/monetdb5/autoload/*_fits.mal
+# %{_libdir}/monetdb5/autoload/*_fits.mal
 %{_libdir}/monetdb5/autoload/*_vault.mal
 %exclude %{_libdir}/monetdb5/lib_geom.so
 # %exclude %{_libdir}/monetdb5/lib_rdf.so
@@ -527,6 +527,7 @@
         --enable-bits=%{bits} \
        --enable-java=no \
        --enable-rdf=no \
+       --enable-fits=no \
        --with-valgrind=no \
        --with-mseed=no \
         %{?oid32:--enable-oid32} \
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -146,6 +146,13 @@
        enable_rdf=$enableval,
        enable_rdf=$dft_rdf)
 
+dft_fits=no
+AC_ARG_ENABLE(fits,
+       AS_HELP_STRING([--enable-fits],
+               [enable support for FITS (default=no)]),
+       enable_fits=$enableval,
+       enable_fits=$dft_fits)
+
 dft_sql=auto
 AC_ARG_ENABLE(sql,
        AS_HELP_STRING([--enable-sql],
@@ -2349,18 +2356,18 @@
 AM_CONDITIONAL(HAVE_MSEED, test x"$have_mseed" != xno)
 
 # geos, only used in geom module
+have_geos=auto
+GEOS_INCS=''
+GEOS_LIBS=''
+AC_ARG_WITH(geos,
+       AS_HELP_STRING([--with-geos=DIR],
+               [geos library is installed in DIR]),
+       have_geos="$withval")
 case "$enable_geom" in
 yes|auto)
        GEOS_VERSION_REQUIRED_MIN=2.2.0
        dnl GEOS_VERSION_REQUIRED_MAX=3.0.0
-       have_geos=auto
        GEOS_CONFIG=''
-       GEOS_INCS=''
-       GEOS_LIBS=''
-       AC_ARG_WITH(geos,
-               AS_HELP_STRING([--with-geos=DIR],
-                       [geos library is installed in DIR]),
-               have_geos="$withval")
        if test "x$have_geos" != xno; then
                case "$have_geos" in
                yes|auto)
@@ -2368,74 +2375,45 @@
                        ;;
                *)
                        XPATH="$have_geos/bin"
+                       have_geos=yes
                        ;;
                esac
                AC_PATH_PROG(GEOS_CONFIG,geos-config,,$XPATH)
                if test "x$GEOS_CONFIG" = x; then
-                       AC_MSG_ERROR([geos-config not found in $XPATH])
-                       have_geos=no
+                       if test "x$have_geos" = "xyes" ; then
+                               AC_MSG_ERROR([geos-config not found in $XPATH])
+                       else
+                               have_geos=no
+                       fi
                fi
        fi
        if test "x$have_geos" != xno; then
-       dnl     AC_MSG_CHECKING([for Geos >= $GEOS_VERSION_REQUIRED_MIN, but < 
$GEOS_VERSION_REQUIRED_MAX])
-               AC_MSG_CHECKING([for Geos >= $GEOS_VERSION_REQUIRED_MIN])
+               AC_MSG_CHECKING([for geos >= $GEOS_VERSION_REQUIRED_MIN])
                GEOS_VERSION="`$GEOS_CONFIG --version`"
                AC_MSG_RESULT(found $GEOS_VERSION)
-               wrong=''
                if test MONETDB_VERSION_TO_NUMBER(echo $GEOS_VERSION) -lt 
MONETDB_VERSION_TO_NUMBER(echo $GEOS_VERSION_REQUIRED_MIN); then
-                       wrong="too old"
-               fi
-       dnl     if test MONETDB_VERSION_TO_NUMBER(echo $GEOS_VERSION) -ge 
MONETDB_VERSION_TO_NUMBER(echo $GEOS_VERSION_REQUIRED_MAX); then
-       dnl             wrong="not yet supported"
-       dnl     fi
-               if test "x$wrong" != x; then
-                       AC_MSG_ERROR([Geos version $GEOS_VERSION is $wrong])
-                       have_geos=no
+                       if test "x$have_geos" = "xyes" ; then
+                               AC_MSG_ERROR([geos version $GEOS_VERSION is too 
old])
+                       else
+                               have_geos=no
+                       fi
                fi
        fi
        if test "x$have_geos" != xno; then
-               case "$GCC-$CC-`$GEOS_CONFIG --prefix`-`$GEOS_CONFIG 
--includes`" in
-               -*icc*-/usr-/usr/include)
-                       dnl  icc complains about Geos' header file, at
-                       dnl  least if Geos is found in the default
-                       dnl  place and we set GEOS_INCS & GEOS_LIBS.
-                       dnl  Since setting GEOS_INCS & GEOS_LIBS is
-                       dnl  not strictly required in this case, we
-                       dnl  omit setting them in this case.
-                       ;;
-               *)
-                       dnl GEOS_INCS="-I`$GEOS_CONFIG --includes`"
-                       dnl GEOS_LIBS="`$GEOS_CONFIG --libs`"
-                       GEOS_INCS="`$GEOS_CONFIG --cflags`"
-                       GEOS_LIBS="`$GEOS_CONFIG --ldflags`"
-                       ;;
-               esac
-               save_CPPFLAGS="$CPPFLAGS"
-               CPPFLAGS="$CPPFLAGS $GEOS_INCS"
-               AC_CHECK_HEADER(geos_c.h, AC_DEFINE(HAVE_GEOS_C_H, 1, [Define 
to 1 if you have the <geos_c.h> header file.]), [AC_MSG_ERROR([geos_c.h not 
found]); have_geos=no])
-               CPPFLAGS="$save_CPPFLAGS"
+               GEOS_INCS="`$GEOS_CONFIG --cflags`"
+               GEOS_LIBS="`$GEOS_CONFIG --ldflags`"
        fi
-       if test "x$have_geos" != xno; then
-               save_LIBS="$LIBS"
-               LIBS="$LIBS $GEOS_LIBS"
-               AC_CHECK_LIB(geos_c, GEOSEnvelope, :, have_geos=no)
-               LIBS="$save_LIBS"
-       fi
-       if test "x$have_geos" != xno; then
-               GEOS_LIBS="$GEOS_LIBS -lgeos_c"
-               AC_DEFINE(HAVE_SQLGETPRIVATEPROFILESTRING, 1, [Define if you 
have the SQLGetPrivateProfileString function])
-       fi
-       AC_SUBST(GEOS_INCS)
-       AC_SUBST(GEOS_LIBS)
        if test "x$have_geos" = xno; then
                if test "x$enable_geom" = xyes; then
-                       AC_MSG_ERROR([No geos library found for geom module])
+                       AC_MSG_ERROR([geos library required for geom module])
                fi
                # no geos, so don't compile geom
                enable_geom=no
        fi
        ;;
 esac
+AC_SUBST(GEOS_INCS)
+AC_SUBST(GEOS_LIBS)
 
 dnl check for the performance counters library
 have_pcl=auto
@@ -2489,9 +2467,12 @@
 AC_SUBST(PCL_CFLAGS)
 AC_SUBST(PCL_LIBS)
 
-PKG_CHECK_MODULES([cfitsio], [cfitsio],
-       [have_cfitsio=yes; AC_DEFINE(HAVE_CFITSIO, 1, [Define if you have the 
cfitsio library])],
-       [have_cfitsio=no])
+have_cfitsio=no
+if test "x$enable_fits" != xno; then
+       PKG_CHECK_MODULES([cfitsio], [cfitsio],
+               [have_cfitsio=yes; AC_DEFINE(HAVE_CFITSIO, 1, [Define if you 
have the cfitsio library])],
+               [have_cfitsio=no; if test "x$enable_fits" = xyes; then 
AC_MSG_ERROR([cfitsio library required for FITS support]); fi])
+fi
 AM_CONDITIONAL(HAVE_CFITSIO, test x"$have_cfitsio" != xno)
 
 LIBGC_CFLAGS=
@@ -2945,11 +2926,11 @@
 AC_DEFINE(MX_CXX_SUFFIX, "cc", [Suffix for C++ files])
 
 dnl check dependencies (might need more than just SQL)
-if test x"$enable_sql" = xyes && test x"$enable_monetdb5" != x"yes" ; then
+if test x"$enable_sql" = xyes && test x"$enable_monetdb5" = x"no" ; then
        AC_MSG_ERROR([sql needs monetdb5]);
 fi
 if test x"$enable_sql" = xauto && test x"$enable_monetdb5" = x"no" ; then
-       enable_sql = no
+       enable_sql=no
 fi
 
 dnl     output
diff --git a/debian/control b/debian/control
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@
 Homepage: http://www.monetdb.org/
 Vcs-Browser: http://dev.monetdb.org/hg/MonetDB/
 Vcs-Hg: http://dev.monetdb.org/hg/MonetDB/
-Build-Depends: debhelper (>= 5), autotools-dev, cdbs, bison, flex, libbz2-dev, 
libcfitsio3-dev, libcurl4-gnutls-dev, libgeos-dev, libpcre3-dev, libperl-dev, 
libreadline5-dev, libssl-dev, libxml2-dev, perl, python, ruby, rubygems, swig, 
unixodbc-dev, uuid-dev, zlib1g-dev
+Build-Depends: debhelper (>= 5), autotools-dev, cdbs, bison, flex, libbz2-dev, 
libcurl4-gnutls-dev, libgeos-dev, libpcre3-dev, libperl-dev, libreadline5-dev, 
libssl-dev, libxml2-dev, perl, python, ruby, rubygems, swig, unixodbc-dev, 
uuid-dev, zlib1g-dev
 # Build-Depends: libraptor1-dev
 Standards-Version: 3.8.0
 
diff --git a/debian/monetdb5-server.install b/debian/monetdb5-server.install
--- a/debian/monetdb5-server.install
+++ b/debian/monetdb5-server.install
@@ -1,9 +1,7 @@
 debian/tmp/usr/bin/mserver5 usr/bin
 debian/tmp/usr/lib/libmonetdb5.so.* usr/lib
 debian/tmp/usr/lib/monetdb5/autoload/70_vault.mal usr/lib/monetdb5/autoload
-debian/tmp/usr/lib/monetdb5/autoload/72_fits.mal usr/lib/monetdb5/autoload
 debian/tmp/usr/lib/monetdb5/lib_crackers.so usr/lib/monetdb5
-debian/tmp/usr/lib/monetdb5/lib_fits.so usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/lib_mal_compiler.so usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/lib_vault.so usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/aggr.mal usr/lib/monetdb5
@@ -36,7 +34,6 @@
 debian/tmp/usr/lib/monetdb5/counters.mal usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/crackers.mal usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/factories.mal usr/lib/monetdb5
-debian/tmp/usr/lib/monetdb5/fits.mal usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/group.mal usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/groupby.mal usr/lib/monetdb5
 debian/tmp/usr/lib/monetdb5/histogram.mal usr/lib/monetdb5
diff --git a/debian/rules b/debian/rules
--- a/debian/rules
+++ b/debian/rules
@@ -3,4 +3,4 @@
 include /usr/share/cdbs/1/rules/debhelper.mk
 include /usr/share/cdbs/1/class/autotools.mk
 
-DEB_CONFIGURE_EXTRA_FLAGS := --enable-strict=no --enable-assert=no 
--enable-debug=no --enable-optimize=yes --enable-java=no --enable-rdf=no 
--with-valgrind=no --with-mseed=no --with-rubygem-dir=lib/ruby/gems/1.8
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-strict=no --enable-assert=no 
--enable-debug=no --enable-optimize=yes --enable-java=no --enable-rdf=no 
--enable-fits=no --with-valgrind=no --with-mseed=no 
--with-rubygem-dir=lib/ruby/gems/1.8
diff --git a/sql/backends/monet5/sql.mx b/sql/backends/monet5/sql.mx
--- a/sql/backends/monet5/sql.mx
+++ b/sql/backends/monet5/sql.mx
@@ -62,6 +62,14 @@
 address SQLcatalog
 comment "a catalog statement";
 
+pattern catalog(type:int,grantee:str,role:str):void
+address SQLcatalog
+comment "a grant/revoke role statement";
+
+pattern 
catalog(type:int,tname:str,grantee:str,privs:int,cname:str,grant:int,grantor:int):void
+address SQLcatalog
+comment "a grant/revoke privileges statement";
+
 pattern eval(cmd:str):void 
 address SQLstatement
 comment "Compile and execute a single sql statement";
@@ -1994,6 +2002,16 @@
 }
 
 
+static char *
+SaveArgReference(MalStkPtr stk, InstrPtr pci, int arg)
+{
+       char *val = *(str*)getArgReference(stk, pci, arg);
+
+       if (val && strcmp(val, str_nil) == 0)
+               val = NULL;
+       return val;
+}
+
 str
 SQLcatalog(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -2031,12 +2049,9 @@
                msg = drop_seq( sql, sname, name);
        }       break;
        case DDL_CREATE_SCHEMA: {
-               str name = *(str*) getArgReference(stk, pci, 3);
+               str name = SaveArgReference(stk, pci, 3);
                int auth_id = sql->role_id;
 
-               if (name && strcmp(name, str_nil) == 0)
-                       name = NULL;
-
                if (name && (auth_id = sql_find_auth(sql, name)) < 0) {
                        msg = sql_message("CREATE SCHEMA: no such authorization 
'%s'", name);
                }
@@ -2098,6 +2113,41 @@
 
                msg = drop_key( sql, sname, name, action);
        }       break;
+       case DDL_GRANT_ROLES: {
+               char *auth = SaveArgReference(stk, pci, 3);
+
+               msg = sql_grant_role( sql, sname /*grantee */, auth);
+       }       break;
+       case DDL_REVOKE_ROLES: {
+               char *auth = SaveArgReference(stk, pci, 3);
+
+               msg = sql_revoke_role( sql, sname /*grantee */, auth);
+       }       break;
+       case DDL_GRANT: {
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to