Changeset: 1db852feed78 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1db852feed78
Added Files:
        sql/test/BugTracker-2017/Tests/caching_stats_bug.6374.sql
        sql/test/BugTracker-2017/Tests/caching_stats_bug.6374.stable.err
        sql/test/BugTracker-2017/Tests/caching_stats_bug.6374.stable.out
        
sql/test/BugTracker-2017/Tests/extract_quarter_week_from_date.Bug-3831.sql
        
sql/test/BugTracker-2017/Tests/extract_quarter_week_from_date.Bug-3831.stable.err
        
sql/test/BugTracker-2017/Tests/extract_quarter_week_from_date.Bug-3831.stable.out
        sql/test/BugTracker-2017/Tests/name-interference.Bug-6348.stable.err
        sql/test/BugTracker-2017/Tests/name-interference.Bug-6348.stable.out
        sql/test/BugTracker-2017/Tests/parsererror.Bug-6381.sql
        sql/test/BugTracker-2017/Tests/spurious_error.Bug-6344.stable.err
        sql/test/BugTracker-2017/Tests/spurious_error.Bug-6344.stable.out
Modified Files:
        .hgtags
        ChangeLog
        MonetDB.spec
        NT/monetdb_config.h.in
        NT/rules.msc
        buildtools/ChangeLog-Archive
        buildtools/ChangeLog.Jul2017
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/mclient.c
        clients/mapiclient/stethoscope.c
        clients/mapilib/mapi.rc
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        common/utils/mutils.c
        configure.ag
        debian/changelog
        debian/monetdb5-sql.install
        gdk/ChangeLog-Archive
        gdk/ChangeLog.Jul2017
        gdk/gdk_bbp.c
        gdk/gdk_posix.c
        gdk/gdk_posix.h
        gdk/gdk_storage.c
        gdk/gdk_system.h
        gdk/gdk_utils.c
        gdk/libbat.rc
        libversions
        monetdb5/extras/rapi/rapi.c
        monetdb5/mal/Tests/tst2504.malC
        monetdb5/mal/Tests/tst2510.malC
        monetdb5/mal/Tests/tst2570.malC
        monetdb5/mal/mal.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_factory.c
        monetdb5/mal/mal_import.c
        monetdb5/mal/mal_interpreter.c
        monetdb5/mal/mal_linker.c
        monetdb5/mal/mal_listing.c
        monetdb5/mal/mal_private.h
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_readline.c
        monetdb5/mal/mal_resolve.c
        monetdb5/mal/mal_scenario.c
        monetdb5/mal/mal_session.c
        monetdb5/modules/atoms/blob.c
        monetdb5/modules/atoms/mcurl.c
        monetdb5/modules/atoms/mtime.c
        monetdb5/modules/atoms/mtime.h
        monetdb5/modules/atoms/mtime.mal
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/kernel/mmath.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_pipes.h
        monetdb5/tools/libmonetdb5.rc
        sql/NT/dump-restore.rst
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/backends/monet5/UDF/pyapi/pyheader.h
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/vaults/lidar/lidar.c
        sql/common/sql_list.c
        sql/common/sql_mem.c
        sql/common/sql_types.c
        sql/include/sql_mem.h
        sql/server/rel_dump.c
        sql/server/rel_optimizer.c
        sql/server/rel_rel.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/rel_semantic.c
        sql/server/rel_updates.c
        sql/server/sql_datetime.c
        sql/server/sql_datetime.h
        sql/server/sql_parser.y
        sql/server/sql_scan.c
        sql/storage/store.c
        sql/test/BugTracker-2010/Tests/join_problem.Bug-2694.sql
        sql/test/BugTracker-2010/Tests/join_problem.Bug-2694.stable.out
        sql/test/BugTracker-2017/Tests/All
        
sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.err
        
sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.out
        sql/test/BugTracker-2017/Tests/name-interference.Bug-6348.sql
        sql/test/Tests/systemfunctions.stable.out
        sql/test/Tests/systemfunctions.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade/Tests/check.stable.out
        sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/check.stable.out.int128
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/leaks/Tests/check1.stable.out.int128
        sql/test/leaks/Tests/check2.stable.out.int128
        sql/test/leaks/Tests/check3.stable.out.int128
        sql/test/leaks/Tests/check4.stable.out.int128
        sql/test/leaks/Tests/check5.stable.out.int128
        sql/test/leaks/Tests/select1.stable.out.int128
        sql/test/leaks/Tests/select2.stable.out.int128
        sql/test/leaks/Tests/temp1.stable.out.int128
        sql/test/pg_regress/Tests/alter_table.stable.err
        sql/test/pg_regress/Tests/date.sql
        sql/test/pg_regress/Tests/date.stable.err
        sql/test/pg_regress/Tests/date.stable.out
        sql/test/pg_regress/Tests/insert.stable.err
        sql/test/pg_regress/Tests/time.sql
        sql/test/pg_regress/Tests/time.stable.err
        sql/test/pg_regress/Tests/timestamp.sql
        sql/test/pg_regress/Tests/timestamp.stable.err
        sql/test/pg_regress/Tests/timestamp.stable.out
        sql/test/pg_regress/Tests/timestamptz.sql
        sql/test/pg_regress/Tests/timestamptz.stable.err
        sql/test/pg_regress/Tests/timestamptz.stable.out
        sql/test/pg_regress/Tests/timetz.sql
        sql/test/pg_regress/Tests/timetz.stable.err
        testing/malcheck.py
        tools/merovingian/ChangeLog-Archive
        tools/merovingian/ChangeLog.Jul2017
        tools/merovingian/daemon/Makefile.ag
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/handlers.c
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/utils/utils.c
        tools/mserver/mserver5.c
        tools/mserver/shutdowntest.c
        vertoo.data
Branch: malerrors
Log Message:

merged with default


diffs (truncated from 6641 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -675,3 +675,8 @@ 8b3d3f7c487cb6e34dab1167797a61862cba2124
 8b3d3f7c487cb6e34dab1167797a61862cba2124 Dec2016_SP5_release
 e6552cdd3180bcd35f959954807cab986a6042a5 Jul2017_1
 e6552cdd3180bcd35f959954807cab986a6042a5 Jul2017_release
+1534ee14ff84fe5629becc6a5b5e2990b694d5a3 Jul2017_3
+1534ee14ff84fe5629becc6a5b5e2990b694d5a3 Jul2017_SP1_release
+269ab71a82190d6024b3a920837089d657893493 Jul2017_5
+1534ee14ff84fe5629becc6a5b5e2990b694d5a3 Jul2017_SP1_release
+269ab71a82190d6024b3a920837089d657893493 Jul2017_SP1_release
diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
 # ChangeLog file for devel
 # This file is updated with Maddlog
 
+* Thu Jul 20 2017 Martin van Dinther <[email protected]>
+- Added support for extracting the quarter (number between 1 and 4)
+  of a date (or timestamp or timestamp with timezone) in SQL:
+   EXTRACT ( QUARTER FROM my_date_expr ).
+  Added support for extracting the week (number between 1 and 53)
+  of a date (or timestamp or timestamp with timezone) in SQL:
+   EXTRACT ( WEEK FROM my_date_expr ).
+
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -132,7 +132,7 @@ Vendor: MonetDB BV <[email protected]>
 Group: Applications/Databases
 License: MPLv2.0
 URL: https://www.monetdb.org/
-Source: 
https://www.monetdb.org/downloads/sources/Jul2017/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Jul2017-SP1/%{name}-%{version}.tar.bz2
 
 # we need systemd for the _unitdir macro to exist
 # we need checkpolicy and selinux-policy-devel for the SELinux policy
@@ -1039,6 +1039,47 @@ done
 %postun -p /sbin/ldconfig
 
 %changelog
+* Thu Jul 27 2017 Sjoerd Mullender <[email protected]> - 11.27.5-20170727
+- Rebuilt.
+- BZ#6375: MAL profiler truncates JSON objects larger than 8192 characters
+
+* Tue Jul 25 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- Rebuilt.
+- BZ#6325: Merge table unusable in other connections
+- BZ#6328: Transactional/multi-connection issues with merge tables
+- BZ#6336: VALUES multiple inserts error
+- BZ#6339: Mserver5 crashes on nested SELECT
+- BZ#6340: sample operator takes effect after the execution of the query,
+  expected before
+- BZ#6341: MERGE TABLE issue: Cannot register
+- BZ#6342: MERGE TABLE issue: hang
+- BZ#6344: Spurious errors and assertions (SQLsmith)
+
+* Mon Jul 24 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- buildtools: The Debian and Ubuntu installers have been fixed: there was a 
file
+  missing in the Jul2017 release.
+
+* Fri Jul 14 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- buildtools: Added a new RPM called MonetDB-selinux which provides the SELinux
+  policy required to run MonetDB under systemd, especially on Fedora 26.
+
+* Fri Jul 14 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- merovingian: monetdbd was leaking open file descriptors to the mserver5 
process
+  it started.  This has been fixed.
+
+* Fri Jul  7 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- buildtools: The Windows installers (*.msi files) are now created using the 
WiX
+  Toolset.
+- buildtools: The Windows binaries are now built using Visual Studio 2015.  
Because of
+  this, you may need to install the Visual C++ Redistributable for Visual
+  Studio 2015 before being able to run MonetDB.
+
+* Fri Jul  7 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- gdk: Many functions in GDK are now annotated with the GCC attribute
+  __warn_unused_result__ meaning that the compiler will issue a warning
+  if the result of the function (usually an indication of an error)
+  is not used.
+
 * Wed Jul 05 2017 Sjoerd Mullender <[email protected]> - 11.27.1-20170705
 - Rebuilt.
 - BZ#3465: Request: add support for CREATE VIEW with ORDER BY clause
diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -347,9 +347,6 @@
 /* Define to 1 if you have the <malloc.h> header file. */
 #define HAVE_MALLOC_H 1
 
-/* Define to 1 if you have the `mallopt' function. */
-/* #undef HAVE_MALLOPT */
-
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
diff --git a/buildtools/ChangeLog-Archive b/buildtools/ChangeLog-Archive
--- a/buildtools/ChangeLog-Archive
+++ b/buildtools/ChangeLog-Archive
@@ -1,6 +1,21 @@
 # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
 # This file contains past ChangeLog entries
 
+* Mon Jul 24 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- The Debian and Ubuntu installers have been fixed: there was a file
+  missing in the Jul2017 release.
+
+* Fri Jul 14 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- Added a new RPM called MonetDB-selinux which provides the SELinux
+  policy required to run MonetDB under systemd, especially on Fedora 26.
+
+* Fri Jul  7 2017 Sjoerd Mullender <[email protected]> - 11.27.3-20170725
+- The Windows installers (*.msi files) are now created using the WiX
+  Toolset.
+- The Windows binaries are now built using Visual Studio 2015.  Because of
+  this, you may need to install the Visual C++ Redistributable for Visual
+  Studio 2015 before being able to run MonetDB.
+
 * Tue Dec  6 2016 Sjoerd Mullender <[email protected]> - 11.25.1-20161214
 - New packages MonetDB-python2 (Fedora) and monetdb-python2 (Debian/Ubuntu)
   have been created for Python 2 integration into MonetDB.
diff --git a/buildtools/ChangeLog.Jul2017 b/buildtools/ChangeLog.Jul2017
--- a/buildtools/ChangeLog.Jul2017
+++ b/buildtools/ChangeLog.Jul2017
@@ -1,14 +1,3 @@
 # ChangeLog file for buildtools
 # This file is updated with Maddlog
 
-* Fri Jul 14 2017 Sjoerd Mullender <[email protected]>
-- Added a new RPM called MonetDB-selinux which provides the SELinux
-  policy required to run MonetDB under systemd, especially on Fedora 26.
-
-* Fri Jul  7 2017 Sjoerd Mullender <[email protected]>
-- The Windows installers (*.msi files) are now created using the WiX
-  Toolset.
-- The Windows binaries are now built using Visual Studio 2015.  Because of
-  this, you may need to install the Visual C++ Redistributable for Visual
-  Studio 2015 before being able to run MonetDB.
-
diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -6073,6 +6073,7 @@ Ready.
 [ "batmtime",  "milliseconds", "command 
batmtime.milliseconds(d:bat[:daytime]):bat[:int] ",    
"MTIMEdaytime_extract_milliseconds_bulk;",      ""      ]
 [ "batmtime",  "minutes",      "command 
batmtime.minutes(d:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_minutes_bulk;",   ""      ]
 [ "batmtime",  "month",        "command batmtime.month(d:bat[:date]):bat[:int] 
",      "MTIMEdate_extract_month_bulk;",        ""      ]
+[ "batmtime",  "quarter",      "command 
batmtime.quarter(d:bat[:date]):bat[:int] ",    
"MTIMEdate_extract_quarter_bulk;",      ""      ]
 [ "batmtime",  "seconds",      "command 
batmtime.seconds(d:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_seconds_bulk;",   ""      ]
 [ "batmtime",  "sql_seconds",  "command 
batmtime.sql_seconds(d:bat[:daytime]):bat[:int] ",     
"MTIMEdaytime_extract_sql_seconds_bulk;",       ""      ]
 [ "batmtime",  "year", "command batmtime.year(d:bat[:date]):bat[:int] ",       
"MTIMEdate_extract_year_bulk;", ""      ]
@@ -8072,6 +8073,8 @@ Ready.
 [ "mtime",     "msec", "command mtime.msec():lng ",    "MTIMEmsec;",   "get 
time of day in msec since 1-1-1970."       ]
 [ "mtime",     "msecs",        "command mtime.msecs(d:int, h:int, m:int, 
s:int, ms:int):lng ", "MTIMEmsecs;",  "convert date components to milliseconds" 
      ]
 [ "mtime",     "prelude",      "command mtime.prelude():void ",        
"MTIMEprelude;",        ""      ]
+[ "mtime",     "quarter",      "command mtime.quarter(d:date):int ",   
"MTIMEdate_extract_quarter;",   "extracts quarter from date"    ]
+[ "mtime",     "quarter",      "command mtime.quarter(t:timestamp):int ",      
"MTIMEtimestamp_quarter;",      ""      ]
 [ "mtime",     "rule", "command mtime.rule(mo:int, d:int, wkday:int, 
mi:int):zrule ",  "MTIMErule_create;",    "create a DST start/end date rule."   
  ]
 [ "mtime",     "rule", "command mtime.rule(s:str):zrule ",     
"MTIMErule_fromstr;",   "create a rule from a  string." ]
 [ "mtime",     "seconds",      "command mtime.seconds(d:daytime):int ",        
"MTIMEdaytime_extract_seconds;",        "extracts seconds from daytime" ]
@@ -8105,6 +8108,7 @@ Ready.
 [ "mtime",     "timezone",     "command mtime.timezone(s:str):timezone ",      
"MTIMEtzone_fromstr;",  "Convert the string to a timezone."     ]
 [ "mtime",     "timezone_local",       "command 
mtime.timezone_local():timezone ",     "MTIMEtzone_get_local;",        "get the 
local timezone; which is used for printing timestamps" ]
 [ "mtime",     "timezone_local",       "command 
mtime.timezone_local(t:timezone):void ",       "MTIMEtzone_set_local;",        
"set the local timezone; which is used for printing timestamps" ]
+[ "mtime",     "week", "command mtime.week(d:date):int ",      
"MTIMEdate_extract_weekofyear;",        "Returns the week number in the year."  
]
 [ "mtime",     "weekday",      "command mtime.weekday(t:zrule):int ",  
"MTIMErule_extract_weekday;",   "extract weekday from rule."    ]
 [ "mtime",     "weekofyear",   "command mtime.weekofyear(d:date):int ",        
"MTIMEdate_extract_weekofyear;",        "Returns the week number in the year."  
]
 [ "mtime",     "year", "command mtime.year(d:date):int ",      
"MTIMEdate_extract_year;",      "extracts year from date (nonzero\n\tvalue 
between -5867411 and +5867411)."     ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -8039,6 +8039,7 @@ Ready.
 [ "batmtime",  "milliseconds", "command 
batmtime.milliseconds(d:bat[:daytime]):bat[:int] ",    
"MTIMEdaytime_extract_milliseconds_bulk;",      ""      ]
 [ "batmtime",  "minutes",      "command 
batmtime.minutes(d:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_minutes_bulk;",   ""      ]
 [ "batmtime",  "month",        "command batmtime.month(d:bat[:date]):bat[:int] 
",      "MTIMEdate_extract_month_bulk;",        ""      ]
+[ "batmtime",  "quarter",      "command 
batmtime.quarter(d:bat[:date]):bat[:int] ",    
"MTIMEdate_extract_quarter_bulk;",      ""      ]
 [ "batmtime",  "seconds",      "command 
batmtime.seconds(d:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_seconds_bulk;",   ""      ]
 [ "batmtime",  "sql_seconds",  "command 
batmtime.sql_seconds(d:bat[:daytime]):bat[:int] ",     
"MTIMEdaytime_extract_sql_seconds_bulk;",       ""      ]
 [ "batmtime",  "year", "command batmtime.year(d:bat[:date]):bat[:int] ",       
"MTIMEdate_extract_year_bulk;", ""      ]
@@ -10434,6 +10435,8 @@ Ready.
 [ "mtime",     "msec", "command mtime.msec():lng ",    "MTIMEmsec;",   "get 
time of day in msec since 1-1-1970."       ]
 [ "mtime",     "msecs",        "command mtime.msecs(d:int, h:int, m:int, 
s:int, ms:int):lng ", "MTIMEmsecs;",  "convert date components to milliseconds" 
      ]
 [ "mtime",     "prelude",      "command mtime.prelude():void ",        
"MTIMEprelude;",        ""      ]
+[ "mtime",     "quarter",      "command mtime.quarter(d:date):int ",   
"MTIMEdate_extract_quarter;",   "extracts quarter from date"    ]
+[ "mtime",     "quarter",      "command mtime.quarter(t:timestamp):int ",      
"MTIMEtimestamp_quarter;",      ""      ]
 [ "mtime",     "rule", "command mtime.rule(mo:int, d:int, wkday:int, 
mi:int):zrule ",  "MTIMErule_create;",    "create a DST start/end date rule."   
  ]
 [ "mtime",     "rule", "command mtime.rule(s:str):zrule ",     
"MTIMErule_fromstr;",   "create a rule from a  string." ]
 [ "mtime",     "seconds",      "command mtime.seconds(d:daytime):int ",        
"MTIMEdaytime_extract_seconds;",        "extracts seconds from daytime" ]
@@ -10467,6 +10470,7 @@ Ready.
 [ "mtime",     "timezone",     "command mtime.timezone(s:str):timezone ",      
"MTIMEtzone_fromstr;",  "Convert the string to a timezone."     ]
 [ "mtime",     "timezone_local",       "command 
mtime.timezone_local():timezone ",     "MTIMEtzone_get_local;",        "get the 
local timezone; which is used for printing timestamps" ]
 [ "mtime",     "timezone_local",       "command 
mtime.timezone_local(t:timezone):void ",       "MTIMEtzone_set_local;",        
"set the local timezone; which is used for printing timestamps" ]
+[ "mtime",     "week", "command mtime.week(d:date):int ",      
"MTIMEdate_extract_weekofyear;",        "Returns the week number in the year."  
]
 [ "mtime",     "weekday",      "command mtime.weekday(t:zrule):int ",  
"MTIMErule_extract_weekday;",   "extract weekday from rule."    ]
 [ "mtime",     "weekofyear",   "command mtime.weekofyear(d:date):int ",        
"MTIMEdate_extract_weekofyear;",        "Returns the week number in the year."  
]
 [ "mtime",     "year", "command mtime.year(d:date):int ",      
"MTIMEdate_extract_year;",      "extracts year from date (nonzero\n\tvalue 
between -5867411 and +5867411)."     ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -1415,6 +1415,8 @@ str MTIMEdate_extract_dayofweek(int *ret
 str MTIMEdate_extract_dayofyear(int *ret, const date *v);
 str MTIMEdate_extract_month(int *ret, const date *v);
 str MTIMEdate_extract_month_bulk(bat *ret, const bat *bid);
+str MTIMEdate_extract_quarter(int *ret, const date *v);
+str MTIMEdate_extract_quarter_bulk(bat *ret, const bat *bid);
 str MTIMEdate_extract_weekofyear(int *ret, const date *v);
 str MTIMEdate_extract_year(int *ret, const date *v);
 str MTIMEdate_extract_year_bulk(bat *ret, const bat *bid);
@@ -1505,6 +1507,7 @@ str MTIMEtimestamp_lng_bulk(bat *ret, ba
 str MTIMEtimestamp_milliseconds(int *ret, const timestamp *t);
 str MTIMEtimestamp_minutes(int *ret, const timestamp *t);
 str MTIMEtimestamp_month(int *ret, const timestamp *t);
+str MTIMEtimestamp_quarter(int *ret, const timestamp *t);
 str MTIMEtimestamp_seconds(int *ret, const timestamp *t);
 str MTIMEtimestamp_sql_seconds(int *ret, const timestamp *t);
 str MTIMEtimestamp_sub_month_interval_lng_wrap(timestamp *ret, const timestamp 
*t, const lng *months);
@@ -2264,6 +2267,7 @@ MT_Lock mal_copyLock;
 void mal_dataflow_reset(void) __attribute__((__visibility__("hidden")));
 MT_Lock mal_delayLock;
 void mal_exit(void);
+void mal_factory_reset(void) __attribute__((__visibility__("hidden")));
 int mal_init(void);
 void mal_instruction_reset(void);
 void mal_linker_reset(void) __attribute__((__visibility__("hidden")));
@@ -2368,6 +2372,7 @@ str openRef;
 int open_block_stream(Stream *S, Stream *is);
 str open_block_streamwrap(Stream *S, Stream *is);
 str operatorName(int i);
+void opt_pipes_reset(void);
 str optimizeMALBlock(Client cntxt, MalBlkPtr mb);
 int optimizerIsApplied(MalBlkPtr mb, str name);
 str optimizerRef;
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -390,12 +390,48 @@ utf8strlenmax(char *s, char *e, size_t m
                        if (--n == 0) {
                                /* last byte of a multi-byte character */
                                len++;
-                               /* the following code points are all East
-                                * Asian Fullwidth and East Asian Wide
-                                * characters as defined in Unicode 8.0 */
+                               /* this list was created by combining
+                                * the code points marked as
+                                * Emoji_Presentation in
+                                * /usr/share/unicode/emoji/emoji-data.txt
+                                * and code points marked either F or
+                                * W in EastAsianWidth.txt; this list
+                                * is up-to-date with Unicode 9.0 */
                                if ((0x1100 <= c && c <= 0x115F) ||
-                                   c == 0x2329 ||
-                                   c == 0x232A ||
+                                   (0x231A <= c && c <= 0x231B) ||
+                                   (0x2329 <= c && c <= 0x232A) ||
+                                   (0x23E9 <= c && c <= 0x23EC) ||
+                                   c == 0x23F0 ||
+                                   c == 0x23F3 ||
+                                   (0x25FD <= c && c <= 0x25FE) ||
+                                   (0x2614 <= c && c <= 0x2615) ||
+                                   (0x2648 <= c && c <= 0x2653) ||
+                                   c == 0x267F ||
+                                   c == 0x2693 ||
+                                   c == 0x26A1 ||
+                                   (0x26AA <= c && c <= 0x26AB) ||
+                                   (0x26BD <= c && c <= 0x26BE) ||
+                                   (0x26C4 <= c && c <= 0x26C5) ||
+                                   c == 0x26CE ||
+                                   c == 0x26D4 ||
+                                   c == 0x26EA ||
+                                   (0x26F2 <= c && c <= 0x26F3) ||
+                                   c == 0x26F5 ||
+                                   c == 0x26FA ||
+                                   c == 0x26FD ||
+                                   c == 0x2705 ||
+                                   (0x270A <= c && c <= 0x270B) ||
+                                   c == 0x2728 ||
+                                   c == 0x274C ||
+                                   c == 0x274E ||
+                                   (0x2753 <= c && c <= 0x2755) ||
+                                   c == 0x2757 ||
+                                   (0x2795 <= c && c <= 0x2797) ||
+                                   c == 0x27B0 ||
+                                   c == 0x27BF ||
+                                   (0x2B1B <= c && c <= 0x2B1C) ||
+                                   c == 0x2B50 ||
+                                   c == 0x2B55 ||
                                    (0x2E80 <= c && c <= 0x2E99) ||
                                    (0x2E9B <= c && c <= 0x2EF3) ||
                                    (0x2F00 <= c && c <= 0x2FD5) ||
@@ -409,7 +445,8 @@ utf8strlenmax(char *s, char *e, size_t m
                                    (0x31C0 <= c && c <= 0x31E3) ||
                                    (0x31F0 <= c && c <= 0x321E) ||
                                    (0x3220 <= c && c <= 0x3247) ||
-                                   (0x3250 <= c && c <= 0x4DBF) ||
+                                   (0x3250 <= c && c <= 0x32FE) ||
+                                   (0x3300 <= c && c <= 0x4DBF) ||
                                    (0x4E00 <= c && c <= 0xA48C) ||
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to