Changeset: 76ca14da7946 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=76ca14da7946
Added Files:
        sql/backends/monet5/timetrails/70_timetrails.mal
        sql/backends/monet5/timetrails/70_timetrails.sql
        sql/backends/monet5/timetrails/Makefile.ag
        sql/backends/monet5/timetrails/Makefile.am
        sql/backends/monet5/timetrails/Makefile.in
        sql/backends/monet5/timetrails/Makefile.msc
        sql/backends/monet5/timetrails/timetrails.c
        sql/backends/monet5/timetrails/timetrails.h
        sql/backends/monet5/timetrails/timetrails.mal
        sql/test/timetrails/Tests/All
        sql/test/timetrails/Tests/derivative.sql
        sql/test/timetrails/Tests/dictionary.sql
        sql/test/timetrails/Tests/dictionary.stable.err
        sql/test/timetrails/Tests/dictionary.stable.out
        sql/test/timetrails/Tests/labels.sql
        sql/test/timetrails/Tests/loaddb.sql
        sql/test/timetrails/Tests/loaddb.stable.err
        sql/test/timetrails/Tests/loaddb.stable.out
        sql/test/timetrails/Tests/microbatch.sql
        sql/test/timetrails/Tests/rieman.sql
        sql/test/timetrails/Tests/simple_queries.sql
        sql/test/timetrails/Tests/simple_queries.stable.err
        sql/test/timetrails/Tests/simple_queries.stable.out
        sql/test/timetrails/Tests/time_rollup.sql
        sql/test/timetrails/Tests/time_rollup.stable.err
        sql/test/timetrails/Tests/time_rollup.stable.out
        sql/test/timetrails/Tests/windowfunction.sql
Modified Files:
        sql/backends/monet5/Makefile.ag
Branch: timetrails
Log Message:

The basics for timeseries
The SQL catalog and support functions
and the collection of core queries required by Grafana


diffs (truncated from 2059 to 300 lines):

diff --git a/sql/backends/monet5/Makefile.ag b/sql/backends/monet5/Makefile.ag
--- a/sql/backends/monet5/Makefile.ag
+++ b/sql/backends/monet5/Makefile.ag
@@ -4,7 +4,7 @@
 #
 # Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
 
-SUBDIRS = NOT_WIN32?vaults UDF LSST generator 
+SUBDIRS = NOT_WIN32?vaults UDF LSST generator timetrails
 
 INCLUDES = ../../include ../../common ../../storage ../../server \
                   ../../../monetdb5/modules/atoms \
diff --git a/sql/backends/monet5/timetrails/70_timetrails.mal 
b/sql/backends/monet5/timetrails/70_timetrails.mal
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/timetrails/70_timetrails.mal
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
+
+# This announces the UDF module to the MAL interpreter
+
+include timetrails;
+
diff --git a/sql/backends/monet5/timetrails/70_timetrails.sql 
b/sql/backends/monet5/timetrails/70_timetrails.sql
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/timetrails/70_timetrails.sql
@@ -0,0 +1,85 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
+
+
+CREATE SCHEMA timetrails;
+
+CREATE TABLE timetrails.metrics (
+     name  string PRIMARY KEY,
+     auth  string,        --(for later) The owner ticket for this metric
+     credit integer,     --(for later)The volume of data allowed for this 
metric
+     precision string , --time stamp precision 
{millisecond,second,minute,hour,day,month,year, null}
+     retention string,  --time stamp interval 
{millisecond,second,minute,hour,day,month,year, null}
+     threshold integer, --max rows delayed in the Guardian cache
+     heartbeat integer, -- maximum delay (in ms) before forwarding
+     frozen boolean,    --once defined its structure can not be changed
+     title string,            --informative title
+     description string --short explanation
+);
+
+
+--Return the names of all known metric relations
+CREATE FUNCTION timetrails.metrics()
+RETURNS TABLE (metric string)
+BEGIN
+    RETURN SELECT m.name FROM timetrails.metrics m ORDER BY m.name;
+END;
+
+--Return the tags associated with a metric relation
+CREATE FUNCTION timetrails.tags(metric string)
+RETURNS TABLE (colname string)
+BEGIN
+   RETURN SELECT o.name AS colname
+       FROM sys.objects o, sys.tables t, sys.keys k
+       WHERE o.id = k.id AND k.table_id = t.id AND t.name = metric ORDER BY 
o.nr;
+END;
+
+--Return the measure names for a metric relation
+CREATE FUNCTION timetrails.fields(metric string)
+RETURNS TABLE (colname string)
+BEGIN
+   RETURN SELECT c.name
+        FROM sys.columns c, sys.tables t
+        WHERE t.name= metric AND t.id = c.table_id AND
+              c.name NOT IN (SELECT o.name AS colname
+                        FROM sys.objects o, sys.tables tt, sys.keys k WHERE 
o.id = k.id AND k.table_id = tt.id AND tt.name = metric );
+END;
+
+--Return the preferred message layout and their type
+CREATE FUNCTION timetrails.getLayout(metric string)
+RETURNS TABLE( name string, type string)
+BEGIN
+   RETURN SELECT c.name, c.type FROM timetrails.metrics m, sys.tables t, 
sys.columns c WHERE m.name = metric AND t.name = m.name and c.table_id= t.id;
+END;
+
+--Return the time precision for a metric relation
+CREATE FUNCTION timetrails.getPrecision(metric string)
+RETURNS string
+BEGIN
+   RETURN SELECT m.precision FROM timetrails.metrics m WHERE m.name = metric;
+END;
+
+--Return the retention period of a metric relation
+CREATE FUNCTION timetrails.getRetention(metric string)
+RETURNS string
+BEGIN
+   RETURN SELECT m.retention FROM timetrails.metrics m WHERE m.name = metric;
+END;
+
+--Return the title annotation
+CREATE FUNCTION timetrails.getTitle(metric string)
+RETURNS string
+BEGIN
+   RETURN SELECT m.title FROM timetrails.metrics m WHERE m.name = metric;
+END;
+
+--Return the short help on a metric relation
+CREATE FUNCTION timetrails.getDescription(metric string)
+RETURNS string
+BEGIN
+   RETURN SELECT m.description FROM timetrails.metrics m WHERE m.name = metric;
+END;
+
diff --git a/sql/backends/monet5/timetrails/Makefile.ag 
b/sql/backends/monet5/timetrails/Makefile.ag
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/timetrails/Makefile.ag
@@ -0,0 +1,47 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0.  If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# Copyright 1997 - July 2008 CWI, August 2008 - 2017 MonetDB B.V.
+
+INCLUDES = .. \
+       ../../../include \
+       ../../../common \
+       ../../../storage \
+       ../../../server \
+       ../../../../monetdb5/modules/atoms \
+       ../../../../monetdb5/modules/kernel \
+       ../../../../monetdb5/mal \
+       ../../../../monetdb5/modules/mal \
+       ../../../../monetdb5/optimizer \
+       ../../../../common/options \
+       ../../../../common/stream \
+       ../../../../gdk
+
+lib__timetrails = {
+       MODULE
+       DIR = libdir/monetdb5
+       SOURCES = timetrails.c timetrails.h 
+       LIBS = ../../../../monetdb5/tools/libmonetdb5 \
+                  ../../../../gdk/libbat
+}
+
+headers_mal = {
+       HEADERS = mal
+       DIR = libdir/monetdb5
+       SOURCES = timetrails.mal
+}
+
+headers_sql = {
+       HEADERS = sql
+       DIR = libdir/monetdb5/createdb
+       SOURCES = 70_timetrails.sql
+}
+
+headers_autoload = {
+       HEADERS = mal
+       DIR = libdir/monetdb5/autoload
+       SOURCES = 70_timetrails.mal
+}
+
+EXTRA_DIST_DIR = Tests
diff --git a/sql/backends/monet5/timetrails/Makefile.am 
b/sql/backends/monet5/timetrails/Makefile.am
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/timetrails/Makefile.am
@@ -0,0 +1,53 @@
+
+## This file is generated by autogen.py, do not edit
+## Process this file with automake to produce Makefile.in
+## autogen includes dependencies so automake doesn't need to generated them
+
+AUTOMAKE_OPTIONS = no-dependencies 1.4 foreign
+
+install-exec-local-70_timetrails.mal: 70_timetrails.mal
+       -mkdir -p $(DESTDIR)$(libdir)/monetdb5/autoload
+       -$(RM) $(DESTDIR)$(libdir)/monetdb5/autoload/70_timetrails.mal
+       $(INSTALL_DATA) $< 
$(DESTDIR)$(libdir)/monetdb5/autoload/70_timetrails.mal
+
+uninstall-local-70_timetrails.mal: 
+       $(RM) $(DESTDIR)$(libdir)/monetdb5/autoload/70_timetrails.mal
+
+timetrails.o timetrails.lo: timetrails.c timetrails.h 
../../../include/sql_mem.h ../mal_backend.h ../../../server/sql_mvc.h 
../../../server/../include/sql_mem.h ../../../../gdk/gdk.h 
../../../server/../../gdk/gdk.h ../../../../gdk/gdk_system.h 
../../../../gdk/gdk_atomic.h ../../../../gdk/gdk_posix.h 
../../../../common/stream/stream.h ../../../../gdk/gdk_delta.h 
../../../../gdk/gdk_hash.h ../../../../gdk/gdk_atoms.h 
../../../../gdk/gdk_bbp.h ../../../../gdk/gdk_utils.h 
../../../../gdk/../common/options/monet_options.h ../../../../gdk/gdk_calc.h 
../../../server/sql_scan.h ../../../server/../include/sql_list.h 
../../../include/sql_hash.h ../../../server/../../common/stream/stream.h 
../../../server/../common/sql_types.h ../../../include/sql_list.h 
../../../common/sql_string.h ../../../include/sql_catalog.h 
../../../storage/sql_storage.h ../../../storage/../include/sql_catalog.h 
../../../storage/../../gdk/gdk_logger.h ../../../server/../common/sql_backend.h 
../../../include/sql_relation.
 h ../../../common/sql_types.h ../../../common/../include/sql_mem.h 
../../../common/../include/sql_list.h ../../../common/../include/sql_catalog.h 
../../../common/../storage/sql_storage.h ../../../../gdk/gdk_logger.h 
../../../common/../../common/stream/stream.h 
../../../server/../include/sql_catalog.h 
../../../server/../include/sql_relation.h 
../../../server/../storage/sql_storage.h 
../../../server/../include/sql_keyword.h ../../../server/sql_atom.h 
../../../server/../include/sql_query.h ../../../common/sql_backend.h 
../../../common/../include/sql_relation.h 
../../../../monetdb5/mal/mal_session.h ../../../../monetdb5/mal/mal_scenario.h 
../../../../monetdb5/mal/mal_import.h ../../../../monetdb5/mal/mal_function.h 
../../../../monetdb5/mal/mal_instruction.h ../../../../monetdb5/mal/mal_type.h 
../../../../monetdb5/mal/mal.h ../../../../monetdb5/mal/../../gdk/gdk.h 
../../../../monetdb5/mal/../../gdk/gdk_system.h 
../../../../monetdb5/mal/../../gdk/gdk_posix.h ../../../../monetdb5/mal/../..
 /common/stream/stream.h ../../../../monetdb5/mal/../../gdk/gdk_delta.h 
../../../../monetdb5/mal/../../gdk/gdk_hash.h 
../../../../monetdb5/mal/../../gdk/gdk_atoms.h 
../../../../monetdb5/mal/../../gdk/gdk_bbp.h 
../../../../monetdb5/mal/../../gdk/gdk_utils.h 
../../../../common/options/monet_options.h 
../../../../monetdb5/mal/../../gdk/gdk_calc.h 
../../../../monetdb5/mal/mal_stack.h ../../../../monetdb5/mal/mal_namespace.h 
../../../../monetdb5/mal/mal_module.h ../../../../monetdb5/mal/mal_resolve.h 
../../../../monetdb5/mal/mal_exception.h ../../../../monetdb5/mal/mal_errors.h 
../../../../monetdb5/mal/mal_listing.h 
../../../../monetdb5/mal/mal_interpreter.h 
../../../../monetdb5/mal/mal_client.h ../../../../monetdb5/mal/mal_profiler.h 
../../../../monetdb5/mal/mal_factory.h 
../../../../monetdb5/modules/mal/tablet.h 
../../../../monetdb5/modules/atoms/streams.h 
../../../../monetdb5/modules/atoms/../../mal/mal.h 
../../../../monetdb5/modules/atoms/../../../common/stream/stream_socket.h 
../../.
 ./../monetdb5/modules/atoms/mtime.h 
../../../../monetdb5/modules/atoms/../../../gdk/gdk.h 
../../../../monetdb5/modules/atoms/../../mal/mal_exception.h 
../../../../monetdb5/modules/atoms/blob.h 
../../../../monetdb5/modules/mal/mkey.h 
../../../../monetdb5/modules/atoms/str.h ../../../server/sql_privileges.h 
../../../server/sql_decimal.h ../../../server/sql_qc.h 
../../../server/sql_symbol.h ../../../server/sql_env.h 
../../../server/sql_parser.h ../sql_statement.h 
../../../../monetdb5/modules/mal/querylog.h ../../../storage/bat/bat_storage.h 
../../../storage/bat/bat_utils.h ../sql_cast.h ../sql.h
+install-exec-local-timetrails.mal: timetrails.mal
+       -mkdir -p $(DESTDIR)$(libdir)/monetdb5
+       -$(RM) $(DESTDIR)$(libdir)/monetdb5/timetrails.mal
+       $(INSTALL_DATA) $< $(DESTDIR)$(libdir)/monetdb5/timetrails.mal
+
+uninstall-local-timetrails.mal: 
+       $(RM) $(DESTDIR)$(libdir)/monetdb5/timetrails.mal
+
+AM_CPPFLAGS = -I$(srcdir) -I.. -I$(srcdir)/.. -I../../../include 
-I$(srcdir)/../../../include -I../../../common -I$(srcdir)/../../../common 
-I../../../storage -I$(srcdir)/../../../storage -I../../../server 
-I$(srcdir)/../../../server -I../../../../monetdb5/modules/atoms 
-I$(srcdir)/../../../../monetdb5/modules/atoms 
-I../../../../monetdb5/modules/kernel 
-I$(srcdir)/../../../../monetdb5/modules/kernel -I../../../../monetdb5/mal 
-I$(srcdir)/../../../../monetdb5/mal -I../../../../monetdb5/modules/mal 
-I$(srcdir)/../../../../monetdb5/modules/mal -I../../../../monetdb5/optimizer 
-I$(srcdir)/../../../../monetdb5/optimizer -I../../../../common/options 
-I$(srcdir)/../../../../common/options -I../../../../common/stream 
-I$(srcdir)/../../../../common/stream -I../../../../gdk 
-I$(srcdir)/../../../../gdk
+install-exec-local-70_timetrails.sql: 70_timetrails.sql
+       -mkdir -p $(DESTDIR)$(libdir)/monetdb5/createdb
+       -$(RM) $(DESTDIR)$(libdir)/monetdb5/createdb/70_timetrails.sql
+       $(INSTALL_DATA) $< 
$(DESTDIR)$(libdir)/monetdb5/createdb/70_timetrails.sql
+
+uninstall-local-70_timetrails.sql: 
+       $(RM) $(DESTDIR)$(libdir)/monetdb5/createdb/70_timetrails.sql
+
+dist-hook:
+       mkdir -p $(distdir)/Tests
+       cp -pR $(srcdir)/Tests/* $(distdir)/Tests
+lib_timetrails_la_CFLAGS=-DLIBTIMETRAILS $(AM_CFLAGS)
+timetrailsdir = $(libdir)/monetdb5
+lib_timetrails_la_LIBADD = ../../../../monetdb5/tools/libmonetdb5.la 
../../../../gdk/libbat.la
+$(do)install-timetrailsLTLIBRARIES : 
+lib_timetrails_la-timetrails.lo: timetrails.c timetrails.h 
../../../include/sql_mem.h ../mal_backend.h ../../../server/sql_mvc.h 
../../../server/../include/sql_mem.h ../../../../gdk/gdk.h 
../../../server/../../gdk/gdk.h ../../../../gdk/gdk_system.h 
../../../../gdk/gdk_atomic.h ../../../../gdk/gdk_posix.h 
../../../../common/stream/stream.h ../../../../gdk/gdk_delta.h 
../../../../gdk/gdk_hash.h ../../../../gdk/gdk_atoms.h 
../../../../gdk/gdk_bbp.h ../../../../gdk/gdk_utils.h 
../../../../gdk/../common/options/monet_options.h ../../../../gdk/gdk_calc.h 
../../../server/sql_scan.h ../../../server/../include/sql_list.h 
../../../include/sql_hash.h ../../../server/../../common/stream/stream.h 
../../../server/../common/sql_types.h ../../../include/sql_list.h 
../../../common/sql_string.h ../../../include/sql_catalog.h 
../../../storage/sql_storage.h ../../../storage/../include/sql_catalog.h 
../../../storage/../../gdk/gdk_logger.h ../../../server/../common/sql_backend.h 
../../../include/sql_rela
 tion.h ../../../common/sql_types.h ../../../common/../include/sql_mem.h 
../../../common/../include/sql_list.h ../../../common/../include/sql_catalog.h 
../../../common/../storage/sql_storage.h ../../../../gdk/gdk_logger.h 
../../../common/../../common/stream/stream.h 
../../../server/../include/sql_catalog.h 
../../../server/../include/sql_relation.h 
../../../server/../storage/sql_storage.h 
../../../server/../include/sql_keyword.h ../../../server/sql_atom.h 
../../../server/../include/sql_query.h ../../../common/sql_backend.h 
../../../common/../include/sql_relation.h 
../../../../monetdb5/mal/mal_session.h ../../../../monetdb5/mal/mal_scenario.h 
../../../../monetdb5/mal/mal_import.h ../../../../monetdb5/mal/mal_function.h 
../../../../monetdb5/mal/mal_instruction.h ../../../../monetdb5/mal/mal_type.h 
../../../../monetdb5/mal/mal.h ../../../../monetdb5/mal/../../gdk/gdk.h 
../../../../monetdb5/mal/../../gdk/gdk_system.h 
../../../../monetdb5/mal/../../gdk/gdk_posix.h ../../../../monetdb5/mal/
 ../../common/stream/stream.h ../../../../monetdb5/mal/../../gdk/gdk_delta.h 
../../../../monetdb5/mal/../../gdk/gdk_hash.h 
../../../../monetdb5/mal/../../gdk/gdk_atoms.h 
../../../../monetdb5/mal/../../gdk/gdk_bbp.h 
../../../../monetdb5/mal/../../gdk/gdk_utils.h 
../../../../common/options/monet_options.h 
../../../../monetdb5/mal/../../gdk/gdk_calc.h 
../../../../monetdb5/mal/mal_stack.h ../../../../monetdb5/mal/mal_namespace.h 
../../../../monetdb5/mal/mal_module.h ../../../../monetdb5/mal/mal_resolve.h 
../../../../monetdb5/mal/mal_exception.h ../../../../monetdb5/mal/mal_errors.h 
../../../../monetdb5/mal/mal_listing.h 
../../../../monetdb5/mal/mal_interpreter.h 
../../../../monetdb5/mal/mal_client.h ../../../../monetdb5/mal/mal_profiler.h 
../../../../monetdb5/mal/mal_factory.h 
../../../../monetdb5/modules/mal/tablet.h 
../../../../monetdb5/modules/atoms/streams.h 
../../../../monetdb5/modules/atoms/../../mal/mal.h 
../../../../monetdb5/modules/atoms/../../../common/stream/stream_socket.h ..
 /../../../monetdb5/modules/atoms/mtime.h 
../../../../monetdb5/modules/atoms/../../../gdk/gdk.h 
../../../../monetdb5/modules/atoms/../../mal/mal_exception.h 
../../../../monetdb5/modules/atoms/blob.h 
../../../../monetdb5/modules/mal/mkey.h 
../../../../monetdb5/modules/atoms/str.h ../../../server/sql_privileges.h 
../../../server/sql_decimal.h ../../../server/sql_qc.h 
../../../server/sql_symbol.h ../../../server/sql_env.h 
../../../server/sql_parser.h ../sql_statement.h 
../../../../monetdb5/modules/mal/querylog.h ../../../storage/bat/bat_storage.h 
../../../storage/bat/bat_utils.h ../sql_cast.h ../sql.h
+       $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_timetrails_la_CFLAGS) $(CFLAGS) 
$(timetrails_CFLAGS) -c -o lib_timetrails_la-timetrails.lo `test -f 
'timetrails.c' || echo '$(srcdir)/'`timetrails.c
+nodist_lib_timetrails_la_SOURCES =
+dist_lib_timetrails_la_SOURCES = timetrails.c timetrails.h
+lib_timetrails_la_LDFLAGS = -module -avoid-version
+BUILT_SOURCES =
+MOSTLYCLEANFILES =
+EXTRA_DIST = Makefile.ag Makefile.msc 70_timetrails.mal 70_timetrails.sql 
timetrails.c timetrails.h timetrails.mal
+timetrails_LTLIBRARIES = lib_timetrails.la
+uninstall-local: uninstall-local-70_timetrails.mal 
uninstall-local-70_timetrails.sql uninstall-local-timetrails.mal
+install-exec-local: install-exec-local-70_timetrails.mal 
install-exec-local-70_timetrails.sql install-exec-local-timetrails.mal
+
+  include $(top_srcdir)/buildtools/conf/rules.mk
diff --git a/sql/backends/monet5/timetrails/Makefile.in 
b/sql/backends/monet5/timetrails/Makefile.in
new file mode 100644
--- /dev/null
+++ b/sql/backends/monet5/timetrails/Makefile.in
@@ -0,0 +1,861 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to