Example in the Readme doesn't work out of the box in kodi 18.9

Hello, I have been trying to use the example in the Readme:
# -*- coding: utf-8 -*-
"""InputStream Helper Demo"""
from __future__ import absolute_import, division, unicode_literals
import sys
import inputstreamhelper
import xbmc
import xbmcgui
import xbmcplugin

PROTOCOL = 'mpd'
DRM = 'com.widevine.alpha'
STREAM_URL = 'https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-widevine.ism/.mpd'
MIME_TYPE = 'application/dash+xml'
LICENSE_URL = 'https://widevine-proxy.appspot.com/proxy'
KODI_VERSION_MAJOR = int(xbmc.getInfoLabel('System.BuildVersion').split('.')[0])

def run(addon_url):
    """Run InputStream Helper Demo"""

    # Play video
    if addon_url.endswith('/play'):
        is_helper = inputstreamhelper.Helper(PROTOCOL, drm=DRM)
        if is_helper.check_inputstream():
            play_item = xbmcgui.ListItem(path=STREAM_URL)
            play_item.setContentLookup(False)
            play_item.setMimeType(MIME_TYPE)

            if KODI_VERSION_MAJOR >= 19:
                play_item.setProperty('inputstream', is_helper.inputstream_addon)
            else:
                play_item.setProperty('inputstreamaddon', is_helper.inputstream_addon)

            play_item.setProperty('inputstream.adaptive.manifest_type', PROTOCOL)
            play_item.setProperty('inputstream.adaptive.license_type', DRM)
            play_item.setProperty('inputstream.adaptive.license_key', LICENSE_URL + '||R{SSM}|')
            xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, play_item)

    # Setup menu item
    else:
        xbmcplugin.setContent(int(sys.argv[1]), 'videos')
        list_item = xbmcgui.ListItem(label='InputStream Helper Demo')
        list_item.setProperty('IsPlayable', 'true')
        url = addon_url + '/play'
        xbmcplugin.addDirectoryItem(int(sys.argv[1]), url, list_item)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))

if __name__ == '__main__':
    run(sys.argv[0])

but it doesn't seem to be working out of the box on kodi 18.9. After a bit of trial and error I made it work adding:
list_item.setInfo('video', {})

Am I doing something wrong or is there a different example for my kodi version?

Thanks, you did nothing wrong, setInfo was indeed missing from the example. This is fixed now with https://github.com/emilsvennesson/script.module.inputstreamhelper/pull/423

Thanks, you did nothing wrong, setInfo was indeed missing from the example. This is fixed now with https://github.com/emilsvennesson/script.module.inputstreamhelper/pull/423


Why can't I find MDDataTable in Kivymd 2.3?

Is it removed for some reason? The kivymd.uix.datatables is absent from repo

You have to install kivymd
This is the repo : https://github.com/kivymd/KivyMD/


Installation warnings

Hi,
I am on Ubuntu 18.04.1 LTS 64 bit.
During the installation process, I have a lot of warnings :
src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
         h ^= data[2] << 16;
         ~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
     case 2:
     ^~~~
src/core/ngx_murmurhash.c:39:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
         h ^= data[1] << 8;
         ~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
     case 1:
     ^~~~
src/os/unix/ngx_process.c: In function ‘ngx_signal_handler’:
src/os/unix/ngx_process.c:407:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
             ngx_debug_quit = 1;
             ~~~~~~~~~~~~~~~^~~
src/os/unix/ngx_process.c:408:9: note: here
         case ngx_signal_value(NGX_SHUTDOWN_SIGNAL):
         ^~~~
src/http/ngx_http_parse.c: In function ‘ngx_http_parse_complex_uri’:
src/http/ngx_http_parse.c:1392:32: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 r->plus_in_uri = 1;
                 ~~~~~~~~~~~~~~~^~~
src/http/ngx_http_parse.c:1393:13: note: here
             default:
             ^~~~~~~
src/http/ngx_http_parse.c:1433:32: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 r->plus_in_uri = 1;
                 ~~~~~~~~~~~~~~~^~~
src/http/ngx_http_parse.c:1434:13: note: here
             default:
             ^~~~~~~
src/http/ngx_http_parse.c:1480:32: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 r->plus_in_uri = 1;
                 ~~~~~~~~~~~~~~~^~~
src/http/ngx_http_parse.c:1481:13: note: here
             default:
             ^~~~~~~
src/ngx_http_xss_util.c: In function ‘ngx_http_xss_test_callback’:
src/ngx_http_xss_util.c:51:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_xss_util.c:53:1: note: here
src/ngx_http_xss_util.c:68:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_xss_util.c:70:1: note: here
src/ngx_http_xss_util.c:87:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_xss_util.c:89:1: note: here
src/ngx_http_xss_util.c:96:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_xss_util.c:98:1: note: here
src/ngx_http_xss_util.c:103:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_xss_util.c:105:1: note: here
src/ngx_http_xss_util.c:117:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_xss_util.c:119:1: note: here
../set-misc-nginx-module-0.31/src/ngx_http_set_quote_sql.c: In function ‘ngx_http_pg_utf_islegal’:
../set-misc-nginx-module-0.31/src/ngx_http_set_quote_sql.c:98:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 if (a < 0x80 || a > 0xBF)
                    ^
../set-misc-nginx-module-0.31/src/ngx_http_set_quote_sql.c:100:13: note: here
             case 3:
             ^~~~
../set-misc-nginx-module-0.31/src/ngx_http_set_quote_sql.c:102:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 if (a < 0x80 || a > 0xBF)
                    ^
../set-misc-nginx-module-0.31/src/ngx_http_set_quote_sql.c:104:13: note: here
             case 2:
             ^~~~
In file included from ../ngx_lua-0.10.7/src/ngx_http_lua_common.h:20:0,
                 from ../ngx_lua-0.10.7/src/ngx_http_lua_socket_tcp.h:11,
                 from ../ngx_lua-0.10.7/src/ngx_http_lua_socket_tcp.c:13:
../ngx_lua-0.10.7/src/ngx_http_lua_socket_tcp.c: In function ‘ngx_http_lua_socket_tcp_connect’:
/opt/src/openresty-<IP_ADDRESS>/build/luajit-root/etc/nginx/luajit/include/luajit-2.1/lua.h:280:27: warning: this statement may fall through [-Wimplicit-fallthrough=]
 #define lua_tostring(L,i) lua_tolstring(L, (i), NULL)
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../ngx_lua-0.10.7/src/ngx_http_lua_socket_tcp.c:478:13: note: in expansion of macro ‘lua_tostring’
             lua_tostring(L, -1);
             ^~~~~~~~~~~~
../ngx_lua-0.10.7/src/ngx_http_lua_socket_tcp.c:480:9: note: here
         case LUA_TSTRING:
         ^~~~
src/ngx_http_memc_response.c: In function ‘parse_memc_storage’:
src/ngx_http_memc_response.c:703:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:705:1: note: here
src/ngx_http_memc_response.c:710:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:712:1: note: here
src/ngx_http_memc_response.c:717:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:719:1: note: here
src/ngx_http_memc_response.c:724:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:726:1: note: here
src/ngx_http_memc_response.c:731:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:733:1: note: here
src/ngx_http_memc_response.c:738:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:740:1: note: here
src/ngx_http_memc_response.c:745:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:747:1: note: here
src/ngx_http_memc_response.c:752:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:754:1: note: here
src/ngx_http_memc_response.c:759:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:761:1: note: here
src/ngx_http_memc_response.c:766:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:768:1: note: here
src/ngx_http_memc_response.c:773:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:775:1: note: here
src/ngx_http_memc_response.c:780:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:782:1: note: here
src/ngx_http_memc_response.c:787:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:789:1: note: here
src/ngx_http_memc_response.c:794:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:796:1: note: here
src/ngx_http_memc_response.c:856:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:858:1: note: here
src/ngx_http_memc_response.c:865:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:867:1: note: here
src/ngx_http_memc_response.c:872:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:874:1: note: here
src/ngx_http_memc_response.c:879:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:881:1: note: here
src/ngx_http_memc_response.c:886:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:888:1: note: here
src/ngx_http_memc_response.c:893:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:895:1: note: here
src/ngx_http_memc_response.c:900:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:902:1: note: here
src/ngx_http_memc_response.c:907:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:909:1: note: here
src/ngx_http_memc_response.c:914:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:916:1: note: here
src/ngx_http_memc_response.c:921:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:923:1: note: here
src/ngx_http_memc_response.c:928:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:930:1: note: here
src/ngx_http_memc_response.c:935:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:937:1: note: here
src/ngx_http_memc_response.c:942:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:944:1: note: here
src/ngx_http_memc_response.c:949:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:951:1: note: here
src/ngx_http_memc_response.c:956:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:958:1: note: here
src/ngx_http_memc_response.c:963:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:965:1: note: here
src/ngx_http_memc_response.c:972:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:974:1: note: here
src/ngx_http_memc_response.c:979:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:981:1: note: here
src/ngx_http_memc_response.c:986:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:988:1: note: here
src/ngx_http_memc_response.c:993:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:995:1: note: here
src/ngx_http_memc_response.c:1000:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1002:1: note: here
src/ngx_http_memc_response.c:1007:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1009:1: note: here
src/ngx_http_memc_response.c:1014:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1016:1: note: here
src/ngx_http_memc_response.c:1021:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1023:1: note: here
src/ngx_http_memc_response.c:1028:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1030:1: note: here
src/ngx_http_memc_response.c:1035:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1037:1: note: here
src/ngx_http_memc_response.c:1042:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1044:1: note: here
src/ngx_http_memc_response.c:1049:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1051:1: note: here
src/ngx_http_memc_response.c:1058:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1060:1: note: here
src/ngx_http_memc_response.c:1065:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1067:1: note: here
src/ngx_http_memc_response.c:1072:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1074:1: note: here
src/ngx_http_memc_response.c:1079:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1081:1: note: here
src/ngx_http_memc_response.c:1086:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1088:1: note: here
src/ngx_http_memc_response.c:1093:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1095:1: note: here
src/ngx_http_memc_response.c:1100:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1102:1: note: here
src/ngx_http_memc_response.c:1107:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1109:1: note: here
src/ngx_http_memc_response.c:1114:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1116:1: note: here
src/ngx_http_memc_response.c:1121:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1123:1: note: here
src/ngx_http_memc_response.c: In function ‘parse_memc_flush_all’:
src/ngx_http_memc_response.c:1223:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1225:1: note: here
src/ngx_http_memc_response.c:1230:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1232:1: note: here
src/ngx_http_memc_response.c:1237:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1239:1: note: here
src/ngx_http_memc_response.c:1244:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1246:1: note: here
src/ngx_http_memc_response.c:1251:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1253:1: note: here
src/ngx_http_memc_response.c:1258:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1260:1: note: here
src/ngx_http_memc_response.c:1265:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1267:1: note: here
src/ngx_http_memc_response.c:1272:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1274:1: note: here
src/ngx_http_memc_response.c:1279:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1281:1: note: here
src/ngx_http_memc_response.c:1286:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1288:1: note: here
src/ngx_http_memc_response.c:1293:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1295:1: note: here
src/ngx_http_memc_response.c:1300:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1302:1: note: here
src/ngx_http_memc_response.c:1307:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1309:1: note: here
src/ngx_http_memc_response.c:1314:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1316:1: note: here
src/ngx_http_memc_response.c:1350:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1352:1: note: here
src/ngx_http_memc_response.c:1357:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1359:1: note: here
src/ngx_http_memc_response.c:1364:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1366:1: note: here
src/ngx_http_memc_response.c:1371:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1373:1: note: here
src/ngx_http_memc_response.c:1378:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1380:1: note: here
src/ngx_http_memc_response.c:1385:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1387:1: note: here
src/ngx_http_memc_response.c:1392:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1394:1: note: here
src/ngx_http_memc_response.c:1399:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1401:1: note: here
src/ngx_http_memc_response.c:1406:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1408:1: note: here
src/ngx_http_memc_response.c:1413:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1415:1: note: here
src/ngx_http_memc_response.c:1420:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1422:1: note: here
src/ngx_http_memc_response.c:1427:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1429:1: note: here
src/ngx_http_memc_response.c:1434:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1436:1: note: here
src/ngx_http_memc_response.c:1441:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1443:1: note: here
src/ngx_http_memc_response.c: In function ‘parse_memc_version’:
src/ngx_http_memc_response.c:1519:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1521:1: note: here
src/ngx_http_memc_response.c:1526:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1528:1: note: here
src/ngx_http_memc_response.c:1533:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1535:1: note: here
src/ngx_http_memc_response.c:1540:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1542:1: note: here
src/ngx_http_memc_response.c:1547:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1549:1: note: here
src/ngx_http_memc_response.c:1554:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1556:1: note: here
src/ngx_http_memc_response.c:1561:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1563:1: note: here
src/ngx_http_memc_response.c:1568:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1570:1: note: here
src/ngx_http_memc_response.c:1575:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1577:1: note: here
src/ngx_http_memc_response.c:1582:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1584:1: note: here
src/ngx_http_memc_response.c:1589:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1591:1: note: here
src/ngx_http_memc_response.c:1596:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1598:1: note: here
src/ngx_http_memc_response.c:1603:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1605:1: note: here
src/ngx_http_memc_response.c:1610:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1612:1: note: here
src/ngx_http_memc_response.c:1639:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1641:1: note: here
src/ngx_http_memc_response.c:1646:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1648:1: note: here
src/ngx_http_memc_response.c:1653:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1655:1: note: here
src/ngx_http_memc_response.c:1660:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1662:1: note: here
src/ngx_http_memc_response.c:1667:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1669:1: note: here
src/ngx_http_memc_response.c:1674:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1676:1: note: here
src/ngx_http_memc_response.c:1681:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1683:1: note: here
src/ngx_http_memc_response.c:1688:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1690:1: note: here
src/ngx_http_memc_response.c:1695:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1697:1: note: here
src/ngx_http_memc_response.c:1702:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1704:1: note: here
src/ngx_http_memc_response.c:1709:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1711:1: note: here
src/ngx_http_memc_response.c:1716:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1718:1: note: here
src/ngx_http_memc_response.c:1723:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1725:1: note: here
src/ngx_http_memc_response.c:1730:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1732:1: note: here
src/ngx_http_memc_response.c:1737:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1739:1: note: here
src/ngx_http_memc_response.c:1744:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1746:1: note: here
src/ngx_http_memc_response.c:1751:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1753:1: note: here
src/ngx_http_memc_response.c:1758:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1760:1: note: here
src/ngx_http_memc_response.c:1765:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1767:1: note: here
src/ngx_http_memc_response.c:1772:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1774:1: note: here
src/ngx_http_memc_response.c:1779:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1781:1: note: here
src/memc_common.rl:27:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:29:1: note: here
src/ngx_http_memc_response.c:1803:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1805:1: note: here
src/ngx_http_memc_response.c: In function ‘parse_memc_stats’:
src/ngx_http_memc_response.c:1897:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1899:1: note: here
src/ngx_http_memc_response.c:1904:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1906:1: note: here
src/ngx_http_memc_response.c:1911:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1913:1: note: here
src/ngx_http_memc_response.c:1918:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1920:1: note: here
src/ngx_http_memc_response.c:1925:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1927:1: note: here
src/ngx_http_memc_response.c:1932:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1934:1: note: here
src/ngx_http_memc_response.c:1939:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1941:1: note: here
src/ngx_http_memc_response.c:1946:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1948:1: note: here
src/ngx_http_memc_response.c:1953:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1955:1: note: here
src/ngx_http_memc_response.c:1960:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1962:1: note: here
src/ngx_http_memc_response.c:1967:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1969:1: note: here
src/ngx_http_memc_response.c:1974:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1976:1: note: here
src/ngx_http_memc_response.c:1981:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1983:1: note: here
src/ngx_http_memc_response.c:1988:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:1990:1: note: here
src/ngx_http_memc_response.c:2024:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2026:1: note: here
src/ngx_http_memc_response.c:2033:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2035:1: note: here
src/ngx_http_memc_response.c:2040:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2042:1: note: here
src/ngx_http_memc_response.c:2047:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2049:1: note: here
src/ngx_http_memc_response.c:2054:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2056:1: note: here
src/ngx_http_memc_response.c:2061:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2063:1: note: here
src/ngx_http_memc_response.c:2068:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2070:1: note: here
src/ngx_http_memc_response.c:2075:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2077:1: note: here
src/ngx_http_memc_response.c:2082:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2084:1: note: here
src/ngx_http_memc_response.c:2089:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2091:1: note: here
src/ngx_http_memc_response.c:2098:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2100:1: note: here
src/ngx_http_memc_response.c:2105:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2107:1: note: here
src/ngx_http_memc_response.c:2112:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2114:1: note: here
src/ngx_http_memc_response.c:2119:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2121:1: note: here
src/ngx_http_memc_response.c:2126:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2128:1: note: here
src/ngx_http_memc_response.c:2133:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2135:1: note: here
src/ngx_http_memc_response.c:2140:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2142:1: note: here
src/ngx_http_memc_response.c:2147:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2149:1: note: here
src/ngx_http_memc_response.c:2154:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2156:1: note: here
src/ngx_http_memc_response.c:2161:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2163:1: note: here
src/ngx_http_memc_response.c:2170:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2172:1: note: here
src/ngx_http_memc_response.c:2179:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2181:1: note: here
src/ngx_http_memc_response.c:2188:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2190:1: note: here
src/ngx_http_memc_response.c:2197:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2199:1: note: here
src/ngx_http_memc_response.c:2204:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2206:1: note: here
src/memc_common.rl:27:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:29:1: note: here
src/ngx_http_memc_response.c:2230:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2232:1: note: here
src/ngx_http_memc_response.c: In function ‘parse_memc_delete’:
src/ngx_http_memc_response.c:2330:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2332:1: note: here
src/ngx_http_memc_response.c:2337:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2339:1: note: here
src/ngx_http_memc_response.c:2344:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2346:1: note: here
src/ngx_http_memc_response.c:2351:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2353:1: note: here
src/ngx_http_memc_response.c:2358:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2360:1: note: here
src/ngx_http_memc_response.c:2365:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2367:1: note: here
src/ngx_http_memc_response.c:2372:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2374:1: note: here
src/ngx_http_memc_response.c:2379:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2381:1: note: here
src/ngx_http_memc_response.c:2386:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2388:1: note: here
src/ngx_http_memc_response.c:2393:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2395:1: note: here
src/ngx_http_memc_response.c:2400:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2402:1: note: here
src/ngx_http_memc_response.c:2407:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2409:1: note: here
src/ngx_http_memc_response.c:2414:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2416:1: note: here
src/ngx_http_memc_response.c:2421:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2423:1: note: here
src/ngx_http_memc_response.c:2470:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2472:1: note: here
src/ngx_http_memc_response.c:2477:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2479:1: note: here
src/ngx_http_memc_response.c:2484:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2486:1: note: here
src/ngx_http_memc_response.c:2491:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2493:1: note: here
src/ngx_http_memc_response.c:2498:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2500:1: note: here
src/ngx_http_memc_response.c:2505:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2507:1: note: here
src/ngx_http_memc_response.c:2512:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2514:1: note: here
src/ngx_http_memc_response.c:2519:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2521:1: note: here
src/ngx_http_memc_response.c:2526:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2528:1: note: here
src/ngx_http_memc_response.c:2533:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2535:1: note: here
src/ngx_http_memc_response.c:2540:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2542:1: note: here
src/ngx_http_memc_response.c:2547:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2549:1: note: here
src/ngx_http_memc_response.c:2554:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2556:1: note: here
src/ngx_http_memc_response.c:2561:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2563:1: note: here
src/ngx_http_memc_response.c:2568:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2570:1: note: here
src/ngx_http_memc_response.c:2575:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2577:1: note: here
src/ngx_http_memc_response.c:2582:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2584:1: note: here
src/ngx_http_memc_response.c:2589:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2591:1: note: here
src/ngx_http_memc_response.c:2596:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2598:1: note: here
src/ngx_http_memc_response.c:2603:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2605:1: note: here
src/ngx_http_memc_response.c:2610:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2612:1: note: here
src/ngx_http_memc_response.c:2617:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2619:1: note: here
src/ngx_http_memc_response.c:2624:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2626:1: note: here
src/ngx_http_memc_response.c:2631:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2633:1: note: here
src/ngx_http_memc_response.c:2638:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2640:1: note: here
src/ngx_http_memc_response.c:2645:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2647:1: note: here
src/ngx_http_memc_response.c:2652:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2654:1: note: here
src/ngx_http_memc_response.c:2659:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2661:1: note: here
src/ngx_http_memc_response.c:2666:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_memc_response.c:2668:1: note: here
src/ngx_http_memc_response.c: In function ‘parse_memc_incr_decr’:
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/memc_common.rl:32:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/memc_common.rl:34:1: note: here
src/ngx_http_redis2_reply.c: In function ‘ngx_http_redis2_process_reply’:
src/ngx_http_redis2_reply.c:96:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:98:1: note: here
src/ngx_http_redis2_reply.c:107:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:109:1: note: here
src/ngx_http_redis2_reply.c:114:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:116:1: note: here
src/ngx_http_redis2_reply.c:123:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:125:1: note: here
src/ngx_http_redis2_reply.c:167:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:169:1: note: here
src/ngx_http_redis2_reply.c:176:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:178:1: note: here
src/ngx_http_redis2_reply.c:183:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:185:1: note: here
src/common.rl:24:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:26:1: note: here
src/ngx_http_redis2_reply.c:222:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:224:1: note: here
src/ngx_http_redis2_reply.c:229:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:231:1: note: here
src/common.rl:45:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:47:1: note: here
src/common.rl:77:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:79:1: note: here
src/common.rl:18:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:20:1: note: here
src/common.rl:77:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:79:1: note: here
src/common.rl:88:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:90:1: note: here
src/common.rl:95:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:97:1: note: here
src/common.rl:102:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:104:1: note: here
src/common.rl:109:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:111:1: note: here
src/multi_bulk_reply.rl:31:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:33:1: note: here
src/ngx_http_redis2_reply.c:527:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/ngx_http_redis2_reply.c:529:1: note: here
src/multi_bulk_reply.rl:20:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:22:1: note: here
src/multi_bulk_reply.rl:22:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:24:1: note: here
src/multi_bulk_reply.rl:22:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:24:1: note: here
src/multi_bulk_reply.rl:18:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:20:1: note: here
src/multi_bulk_reply.rl:20:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:22:1: note: here
src/multi_bulk_reply.rl:40:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:42:1: note: here
src/multi_bulk_reply.rl:22:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:24:1: note: here
src/multi_bulk_reply.rl:20:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:22:1: note: here
src/multi_bulk_reply.rl:22:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:24:1: note: here
src/multi_bulk_reply.rl:20:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:22:1: note: here
src/multi_bulk_reply.rl:18:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:20:1: note: here
src/common.rl:24:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:26:1: note: here
src/multi_bulk_reply.rl:20:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:22:1: note: here
src/multi_bulk_reply.rl:18:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:20:1: note: here
src/multi_bulk_reply.rl:17:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:19:1: note: here
src/multi_bulk_reply.rl:26:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:28:1: note: here
src/multi_bulk_reply.rl:40:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:42:1: note: here
src/multi_bulk_reply.rl:34:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:36:1: note: here
src/multi_bulk_reply.rl:39:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:41:1: note: here
src/multi_bulk_reply.rl:35:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:37:1: note: here
src/multi_bulk_reply.rl:36:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:38:1: note: here
src/multi_bulk_reply.rl:29:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:31:1: note: here
src/multi_bulk_reply.rl:28:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:30:1: note: here
src/multi_bulk_reply.rl:27:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:29:1: note: here
src/multi_bulk_reply.rl:40:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:42:1: note: here
src/multi_bulk_reply.rl:23:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:25:1: note: here
src/multi_bulk_reply.rl:40:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:42:1: note: here
src/multi_bulk_reply.rl:35:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:37:1: note: here
src/multi_bulk_reply.rl:33:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:35:1: note: here
src/common.rl:24:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common.rl:26:1: note: here
src/multi_bulk_reply.rl:36:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:38:1: note: here
src/multi_bulk_reply.rl:27:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:29:1: note: here
src/multi_bulk_reply.rl:40:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:42:1: note: here
src/multi_bulk_reply.rl:28:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:30:1: note: here
src/multi_bulk_reply.rl:28:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:30:1: note: here
src/multi_bulk_reply.rl:35:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/multi_bulk_reply.rl:37:1: note: here
../rds-csv-nginx-module-0.07/src/ngx_http_rds_csv_util.c: In function ‘ngx_http_rds_csv_escape_csv_str’:
../rds-csv-nginx-module-0.07/src/ngx_http_rds_csv_util.c:33:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
                     n++;
                     ~^~
../rds-csv-nginx-module-0.07/src/ngx_http_rds_csv_util.c:35:17: note: here
                 case '\r':
                 ^~~~

Closing. Not related to evilginx2.


Avoid overflow errors with timestamps

Some comparisons with timestamp values are not safe. This comparisons can trigger errors that were found in other Apache projects, e.g. KAFKA-4290.
I changed those comparisons according to what the Java documentation recommends to help preventing such errors.

@franz1981  I add some tests that cover some of those classes ;)


[BREAKING] Change order of arguments

Codecov Report
Attention: Patch coverage is 18.45638% with 243 lines in your changes missing coverage. Please review.

Project coverage is 10.34%. Comparing base (7c60378) to head (0fcb4ce).

Files with missing lines
Patch %
Lines

...ifferentiationInterface/src/fallbacks/no_extras.jl
40.90%
26 Missing :warning:

...ntiationInterfacePolyesterForwardDiffExt/onearg.jl
0.00%
19 Missing :warning:

...ext/DifferentiationInterfaceSymbolicsExt/onearg.jl
0.00%
15 Missing :warning:

...entiationInterfaceFastDifferentiationExt/onearg.jl
0.00%
13 Missing :warning:

...xt/DifferentiationInterfaceFiniteDifferencesExt.jl
0.00%
13 Missing :warning:

...faceZygoteExt/DifferentiationInterfaceZygoteExt.jl
53.84%
12 Missing :warning:

...fferentiationInterface/src/first_order/jacobian.jl
0.00%
12 Missing :warning:

DifferentiationInterface/src/sparse/jacobian.jl
0.00%
10 Missing :warning:

...ntiationInterfacePolyesterForwardDiffExt/twoarg.jl
0.00%
9 Missing :warning:

DifferentiationInterface/src/second_order/hvp.jl
0.00%
9 Missing :warning:

... and 26 more

:exclamation:  There is a different number of reports uploaded between BASE (7c60378) and HEAD (0fcb4ce). Click for more details.
HEAD has 50 uploads less than BASE

Flag
BASE (7c60378)
HEAD (0fcb4ce)

DI
41
1

DIT
10
0

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #435       +/-   ##
===========================================
- Coverage   93.63%   10.34%   -83.29%
===========================================
  Files         102       65       -37
  Lines        4885     2581     -2304
===========================================
- Hits         4574      267     -4307
- Misses        311     2314     +2003

Flag
Coverage Δ

DI
10.34% <18.45%> (-88.93%)
:arrow_down:

DIT
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Added dummy user initialization for UWP

Added option to skip authentication in UWP version to ease testing.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: prkhandelwal sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.


Remove outdated rspec files

These files seems to be no longer needed.

@cosmo0920
.rspec file is also no longer needed ?

Oops, you are right.
I'll remove it.


Surface render problem.

Hi,
I'm facing a problem rendering the Surface component.
Here is my component:
export default class RangeBar extends React.Component {
  render() {
    return (
      <div style={{ width: '300px', height: '100px' }}>
        <Surface
          width={300}
          height={100}
          style={{ cursor: 'pointer' }}>
            <Group x={0} y={0}>
              <Shape fill="#7BC7BA" d="M0 0 h 100 v 5 h -100 Z" />
            </Group>
        </Surface>
      </div>
    );
  }
}

What happens is that I get this error:
Uncaught TypeError: element.getContext is not a function
Class.initialize	@	surface.js:25
proto.constructor	@	class.js:10
React.createClass.componentDidMount	@	ReactART.js:190

Looking at https://github.com/reactjs/react-art/blob/master/src/ReactART.js#L190 the this.domNode passed to Mode.Surface() isn't a dom node, but a react element.
Is this a bug or am I missing something?
Thanks :)

Make sure you're on React (and ReactDOM) 0.14 too. If you're still on 0.13, React ART 0.13.1 should work.


Fix ConcurrentModificationException for getStats Op

If the result of MemcachedClient.getStats() is immediately iterated
over, a ConcurrentModificationException can be thrown if the
operationTimeout value has been exceeded before mutations to the
Map have completed.
Example:

blatch.await(operationTimeout, TimeUnit.MILLISECONDS); returns
false after waiting operationTimeout, resulting in
MemcachedClient.getStats() returning the rv Map.
While the caller starts to iterate over the Map, the
StatsOperation.Callback's gotStat mutates the Map, resulting in
a ConcurrentModificationException.

How to Reproduce:
public static void main(String[] args) throws Exception {
  ConnectionFactory connectionFactory = new ConnectionFactoryBuilder()
    .setProtocol(Protocol.TEXT)
    .setFailureMode(FailureMode.Cancel)
    .setOpTimeout(1)
    .build();
  MemcachedClient client = new MemcachedClient(
    connectionFactory, AddrUtil.getAddresses("localhost:11211"));
  while(true) {
    Map<SocketAddress, Map<String, String>> allStats = client.getStats();
    if (allStats.isEmpty()) continue;
    Map<String, String> stats = allStats.entrySet().iterator().next().getValue();
    for(Entry<String,String> stat : stats.entrySet()) {
      System.out.println(stat.getKey() + " => " + stat.getValue());
    }
  }
}

Output:
2017-11-02 14:37:52.269 WARN net.spy.memcached.MemcachedClient:  Unsuccessful stat fetch: {OperationStatus success=false:  timed out}
Exception in thread "main" java.util.ConcurrentModificationException
	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:922)
	at java.util.HashMap$EntryIterator.next(HashMap.java:962)
	at java.util.HashMap$EntryIterator.next(HashMap.java:960)
	at com.xxx.xxx.xxx.xxx.xxx.StatsBug.main(StatsBug.java:31)

Notes:

Written in a way to be completely backwards compatible.
Guarantees that the caller only sees the entire stats result for a
SocketAddress, or no result at all. Converting the Maps to
ConcurrentHashMaps alone would result in partially complete
Maps.

@ingenthr @daschl Hey there, checking in to see if there's been any progress in reviewing this (and the other open) pull requests? Thanks!

hey @amcrn - sorry for the delay, haven't forgotten but also haven't gotten to look recently.  Thanks for the ping though-- will look asap!

@ingenthr Re-bumping given that it's been about 2 months since your last reply. Thanks!

  Sorry about that @amcrn.  Been busy with the vulcan release lately... but I should stop offering excuses.  I just need to dedicate some time.   I've just blocked off some time in the calendar to work through this later this week.  Bear with me!

Merged over at http://review.couchbase.org/#/c/91953/


implied-repo improvements, standardized repo-creation scripts, repo-creation origin metadata

retest this please

retest this please

retest this please

retest this please

retest this please

retest this please


Ordering is getting taken into consideration while doing json match

I am using hoverfly v1.1.5 and the body is :
"body" : [ {
"matcher" : "json",
"value" : "[15028,14806]"
} ]
But when i change the order to "[14806,15028"] it does not match.

Hoverfly is actually doing the right thing, because according to the JSON spec https://www.rfc-editor.org/rfc/rfc7159.txt
An object is an unordered collection of zero or more name/value
   pairs, where a name is a string and a value is a string, number,
   boolean, null, object, or array.

   An array is an ordered sequence of zero or more values.

The json array should preserve the order of elements

Hoverfly is actually doing the right thing, because according to the JSON spec https://www.rfc-editor.org/rfc/rfc7159.txt
An object is an unordered collection of zero or more name/value
   pairs, where a name is a string and a value is a string, number,
   boolean, null, object, or array.

   An array is an ordered sequence of zero or more values.

The json array should preserve the order of elements


Issue with Backward Compatibility in Version Updates

I recently encountered an issue where a change in the code, specifically modifying the check from
if key == "type" to if key == "__type__", caused my locally saved data to break. This is not the first time a version update has led to similar issues...
Please consider implementing changes that maintain backward compatibility or provide a smoother transition for users with existing local data to prevent disruptions.
Thank you for your attention :+1:

100% Thanks for the feedback!


Allow for clipart creation with center pivot point

I think it could be useful having the ability (an option for) to have a clipart create around the click instead of using the click pixel as the 0,0 coordinate. What I mean is if there is a square clipart 100px wide and tall, when this option was enabled you would click on the screen and it would create drawing 50px to the left, and 50px to the right instead of being drawn to the bottom right of the click.
Different sizes could work still the same. Dragging the box bottom right would draw it right side up, and up left would draw it left side down.

In order to match Oval/Rectangle tools, I propose to use right click to center the clipart.

on a touchscreen, long click with the finger engages right click no way to do the same on tablet ?

You are correct. There are a few different function methods for the pen with my tablet software and I thought the one I was using didn't support this but it turns out it does. It is definitely not essential/necessary such an option in that case. Good catch!

I would like to add an additional suggestion for having the ability to right click without dragging for cliparts to appear at their original size around the pointer the same way left click currently makes them appear to the bottom right.

It was part of my thoughts 😄

Can you check this version
ppInk64_CtrClip20a.zip

It works well! For whatever reason holding the pen down triggers right click on all other programs but here it just spawns the clipart normally. I can do right-click drag, but I can't seem to draw the clipart around the cursor when right clicking with the pen. I'm not sure if it is related to ppink or if there's anything that you can do, but I can also just bind the right click to a pen button and remap the function I had on that one to something else on the keyboard so it's definitely not a big issue anyway. Here's the video to demonstrate.
https://user-images.githubusercontent.com/19545604/126381909-9cb80310-77ac-4e79-aaa0-97a1d696c4ac.mp4

This also works pretty good. The issue I had with the pen can be worked around by using one of the pen buttons for the right click or just switching to mouse for this action specifically.


simply testing

Description
This is a test PR

Fixes #(issue number)

Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Tests update

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] My changes generate no new warnings
[ ] New and existing unit tests pass locally with my changes
[ ] I have maintained a clean commit history by using the necessary Git commands
[ ] I have checked that my code does not cause any merge conflicts

Screenshots (if applicable)
Add screenshots to help explain the changes (if necessary).

Closing this to avoid accidents. The test was successful.

@aslams2020 this was the test PR which I raised to check her code


Moved larimer Q puller. Review/help needed on download_q function

moved the .R file to an RMD so that it is easier to understand structure and organize ideas.
Ran into bug on download_q function. Any help would be appreciated if anyone is inspired by API things
When I run the inside of the function with a indv site url and number it runs fine(lines 158-159). After removing those, I try to use the function with same stuff (lines 160) and it won't create discharge_data obj so it errors. When I run in inside individually, then try to map over the two sites in the clp_data_url_test (line 177), it won't go past the length of the original discharge_data which was from a previous site and errors. I think once this is figured out when I can create a function for any site and any parameter on this website which would fill me with joy

I can try to help with this! I'll put this q_downloader on my to-do list for this week.

Thank you Katie!! I'm at capacity with other things - if you need me to review/help/get stuck, let me know, but a thoughtful and thorough review is probably not in the cards for me this week. Sorry and thank you!!

@kathryn-willi I can also help if you need it, just lmk!

No progress on download_q but modified some code in cap rod cleaning to work with Kampf data. More on this later


Hosted docs

📚 Documentation
I think now would be a good time for us to start hosting our API docs on a public site. I view this as complimentary to, but connected to our current tutorials page
Using readthedocs is fine with me, I don't know if CZI will pay to remove adds, but that would be reasonable. Alternatively there is https://github.com/freeman-lab/minidocs made by our very own @freeman-lab or direct integration with our tutorials page.
Thoughts @kne42 @AhmetCanSolak @jni?

There was a recent discussion around hosted docs on twitter that might be of interest too.

I use doctr for the skan docs and really like it:
https://jni.github.io/skan/
That would be my recommendation. The only thing I haven't set up yet is multiple hosted versions, but I think that's not hard to do.

doctr looks super awesome but unfortunately we do not use travis, although i suppose we could set it up for this purpose. it's also not terribly difficult to replicate this functionality ourselves. i am definitely in favor of self-hosting our docs if possible :)
since there are a number of issues with our docs' formatting and content, i would advise focusing on that prior to hosting them
sidenote: @jni are you the one who owns napari.org? we'll need your help to properly set up the GH pages on that domain :)

@kne42 Is Doctr really travis only? Could we not adapt it to other CIs? And anyway, as you mention, we can have Travis just for docs, I don't think that's a big deal.
Yes I own napari.org, happy to change that to our gh-pages site once it's up and running!

@jni Yes, I inspected the code and it's only compatible with travis due to its reliance on its environment variables. We may define these in our config as a hack but that's not guaranteed to work.


More docs on custom functions

The current example of custom functions is a simple add2 function which only interacts with the arguments given. Could we get more realistic examples that actually operate on data from the database?
Specifically, I'm looking for a way to order by lat/long distance (a la https://stackoverflow.com/questions/3168904/sql-query-to-query-nearby-points-of-interest-based-on-lat-long-sqlite).
I'm also curious of the performance implications of having the function written in JavaScript rather than C.

The current example of custom functions is a simple add2 function which only interacts with the arguments given. Could we get more realistic examples that actually operate on data from the database?

Not sure I understand the problem. The distance function from the SO post also "only interacts with the arguments given". You can use the add2 function like this SELECT * FROM Locations ORDER BY add2(Latitude, Longitude) too. So creating a distance function is no different from add2 in the docs, but it takes four instead of two arguments.

I'm also curious of the performance implications of having the function written in JavaScript rather than C.

My gut feeling says that when you're doing non-indexed sorting that the time SQLite spends actually sorting the rows (including IO to read them) is at least an order of magnitude larger than the execution time of the comparator function (no matter the language it's written in). But I don't have any benchmarks to back that up, maybe you can benchmark your specific use-case and share the results?

Hi @Prinzhorn,
Thanks for taking the time to respond. I'm sorry for my confusion. That makes sense. I guess it would be handy to have something in the docs that demonstrates using the function with data from the database rather than hard-coded args in the query.
And thank you for the tip on perf challenges. If I do end up trying both and comparing, I will for sure report back on that (not sure I'll have time to try them both since C scares me 😅).

I guess it would be handy to have something in the docs that demonstrates using the function with data from the database rather than hard-coded args in the query.

Fair point, it is somewhat confusing to newcomers that the docs basically use the function in SQLite for a round-trip back to JS without doing anything with the value on SQLite's end. Maybe something like a distance function could be added as an example.

not sure I'll have time to try them both since C scares me sweat_smile

It do be like that :smile:

That makes sense. I guess it would be handy to have something in the docs that demonstrates using the function with data from the database rather than hard-coded args in the query.

A valid suggestion. Thanks!

What am I doing wrong, or rather, not understanding correctly?

User-defined functions in SQLite are completely different from something like stored procedures in other database engines.
The user-defined functions are pure functions. They receive arguments and return a value, with no side-effects. You are returning a string from them expecting it to be evaluated as SQL in the context of your query. That's not happening. You need to pass all required arguments to the function and then return a constant value (string in your case). You need to  move all the Substring and concat || logic to the JavaScript world.

ok, thanks for the clear explanation that what I am trying to do is not possible. It might be worth adding your explanation to the document text so user-expectations are aligned correctly. :)

Edit: I hadn't looked at your SQL at all, the snippet(@q)  part doesn't make sense, I assume you wanted to pass one of the columns as arguments? snippet(@q)  would be constant for every row, since @q is constant for the given execution.

The snippet(@q)  part is just the label (the key in the returned object) that better-sqlite3 adds to the result. Yes, @q is constant for every row just as cssClass and buffers are, much like the args 12 and 4 are in the documentation of add2(). I provide the args and the query returns the snippet for every row. At least, that is what I was (wrongly) expecting.

I was approaching this all wrong. If I make my function completely in JavaScript, it does work (within limits). Here is an example:
const db = new Database('./test.sqlite');
db.prepare('CREATE TABLE IF NOT EXISTS t (a)').run();
db.prepare("INSERT INTO t VALUES ('something more')").run();
db.prepare("INSERT INTO t VALUES ('one, two and three')").run();
db.prepare("INSERT INTO t VALUES ('this and that and what else')").run();

const params = { q1: 'two', q2: '%two%' };
let res = db.prepare("SELECT a FROM t WHERE a LIKE @q2").all(params);
console.log(res);

// [
//     { a: 'one,two,three' },
//     { a: 'one,two,three' },
//     { a: 'one, two and three' },
//     { a: 'one, two and three' }
// ]

db.function('snippet', (str, cssClass, substr) => str.replace(substr, `<b class="${cssClass}">${substr}</b>`));

res = db.prepare("SELECT snippet(a, 'foo', @q1) AS snip FROM t WHERE a LIKE @q2").all(params);
console.log(res);

// [
//     { snip: 'one,two,three' },
//     { snip: 'one,two,three' },
//     { snip: 'one, two and three' },
//     { snip: 'one, two and three' }
// ]

The following, that is, a function with default params, doesn't work
db.function('snippet', (str, cssClass = 'hilite', substr) => str.replace(substr, `<b class="${cssClass}">${substr}</b>`));

SqliteError: unable to use function snippet in the requested context


Is there functionality for going from a correctly-formatted opening_hours string to an "absolute" version?

I am poking around in the library right now and I thought that I would be able to go in the opposite direction as usual, that is to say to take the string for opening_hours as it appears on OSM and convert it into a list of more "absolute" values, like individual intervals for each day of the week.
Something like:
Mo-Fr 09:00-12:00, 14:00-18:30; Sa 09:00-12:00, 14:00-17:00

would be converted into
[
  {"monday": [
    {"open": "09:00", "close": "12:00"},
    {"open": "14:00", "close": "18:30"}
  },
  "tuesday": [
    {"open": "09:00", "close": "12:00"},
    {"open": "14:00", "close": "18:30"}
  },
  ...
]

It doesn't have to explicitly be a JSON, it's just meant to illustrate the idea of going from this single string to a series of absolute time intervals. I realize there would also be considerations regarding public holidays and other exceptions.
Is this handled in this library? Or is it not meant for this use case?

There is a 'companion' eval library that is not well used because of issues with the timezone library it uses, but in a desktop/server environment it works https://github.com/goodudetheboy/OpeningHoursEvaluator


Issue-1014: The artifact ordering when browsing is incorrect.

Fixes #1014.

Thanks for fixing this Pablo! :)


Logo + Name?

I have added an entry for Mentat in my encyclopedia of databases:
https://dbdb.io/db/project-mentat
I have two questions:

Is there a logo for 'Project Mentat'?

Is the name of the database 'Project Mentat' or just 'Mentat'?

Thanks.
-- Andy

Hi Andy, thanks for adding us.

Is there a logo for 'Project Mentat'?

We got a little ways down this path in https://github.com/mozilla/mentat/issues/348 but haven't committed.

Is the name of the database 'Project Mentat' or just 'Mentat'?

Let's say "Mentat".  The project appellation was a little piece of Mozilla politics that doesn't seem quite so relevant now.
Thanks again!