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
