Changeset: 09ecfc046559 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=09ecfc046559
Added Files:
        sql/test/BugTracker-2018/Tests/concat-str-int.Bug-6583.sql
        sql/test/BugTracker-2018/Tests/concat-str-int.Bug-6583.stable.err
        sql/test/BugTracker-2018/Tests/concat-str-int.Bug-6583.stable.out
        
sql/test/BugTracker-2018/Tests/create-temp-table-ordered-index-error.Bug-6574.sql
        
sql/test/BugTracker-2018/Tests/create-temp-table-ordered-index-error.Bug-6574.stable.err
        
sql/test/BugTracker-2018/Tests/create-temp-table-ordered-index-error.Bug-6574.stable.out
        sql/test/BugTracker-2018/Tests/multiple-insertinto-table-Bug-6578.sql
        
sql/test/BugTracker-2018/Tests/multiple-insertinto-table-Bug-6578.stable.err
        
sql/test/BugTracker-2018/Tests/multiple-insertinto-table-Bug-6578.stable.out
        sql/test/BugTracker-2018/Tests/nested-merge-tables.Bug-6585.sql
        sql/test/BugTracker-2018/Tests/nested-merge-tables.Bug-6585.stable.err
        sql/test/BugTracker-2018/Tests/nested-merge-tables.Bug-6585.stable.out
        sql/test/BugTracker-2018/Tests/ordered-index-error.Bug-6572.stable.err
        sql/test/BugTracker-2018/Tests/ordered-index-error.Bug-6572.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-aritmetic-expressions-handling.Bug-6576.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-aritmetic-expressions-handling.Bug-6576.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-aritmetic-expressions-handling.Bug-6576.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-aritmetic-expressions-handling.Bug-6576.stable.out.int128
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-case-not-in-count.Bug-6587.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-case-not-in-count.Bug-6587.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-case-not-in-count.Bug-6587.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-coalesce-division-by-zero.Bug-6556.stable.out.int128
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case.Bug-6573.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-case.Bug-6573.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-expression.Bug-6589.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-expression.Bug-6589.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-complex-expression.Bug-6589.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-count-coalesce-nullif.Bug-6586.stable.out.int128
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-missing-bulk-implementation.Bug-6575.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-missing-bulk-implementation.Bug-6575.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-missing-bulk-implementation.Bug-6575.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-not-between-wrong.Bug-6569.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-not-between-wrong.Bug-6569.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.err
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-select-nullif-case.Bug-6579.stable.out.int128
Removed Files:
        
sql/test/BugTracker-2008/Tests/auto_coersion_bug.SF-2075157.stable.out.int128
Modified Files:
        NT/mkodbcwxs.py
        NT/mksqlwxs.py
        NT/monetdb_config.h.in
        NT/rules.msc
        buildtools/doc/windowsbuild.rst
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/dump.c
        gdk/gdk_batop.c
        gdk/gdk_project.c
        gdk/gdk_select.c
        monetdb5/modules/kernel/Tests/select.malC
        monetdb5/modules/kernel/Tests/select.stable.out
        monetdb5/modules/kernel/aggr.c
        monetdb5/modules/kernel/aggr.mal
        monetdb5/modules/kernel/aggr.mal.sh
        monetdb5/optimizer/opt_candidates.c
        monetdb5/optimizer/opt_mergetable.c
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_result.c
        sql/common/sql_types.c
        sql/common/sql_types.h
        sql/server/rel_dump.c
        sql/server/rel_optimizer.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/sql_mvc.c
        sql/server/sql_mvc.h
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/UNION_JOIN_vs_plain_set_UNION-2.SF-920585.stable.out
        sql/test/BugTracker-2008/Tests/auto_coersion_bug.SF-2075157.sql
        sql/test/BugTracker-2008/Tests/auto_coersion_bug.SF-2075157.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out
        sql/test/BugTracker-2011/Tests/crash_on_alias.Bug-2798.stable.out.int128
        sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
        sql/test/BugTracker-2015/Tests/schemadiff.Bug-3778.stable.out
        
sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
        sql/test/BugTracker-2018/Tests/All
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-coalesce-division-by-zero.Bug-6556.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-not-between-wrong.Bug-6569.sql
        sql/test/Dependencies/Tests/Dependencies.stable.out
        sql/test/Dependencies/Tests/Dependencies.stable.out.int128
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out
        sql/test/Tests/coalesce.stable.out
        sql/test/Tests/comment-on.sql
        sql/test/Tests/comment-on.stable.err
        sql/test/Tests/comment-on.stable.out
        sql/test/Tests/median_stdev.stable.out
        sql/test/Tests/string.stable.out
        sql/test/bugs/Tests/create_insert_select_aggr-bug-00001.stable.out
        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/mergetables/Tests/mergequery.stable.out
        sql/test/pg_regress/Tests/select_views.stable.out
        testing/Mtest.py.in
Branch: subjoin
Log Message:

merge with default


diffs (truncated from 8119 to 300 lines):

diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py
--- a/NT/mkodbcwxs.py
+++ b/NT/mkodbcwxs.py
@@ -34,9 +34,11 @@ def main():
     if makedefs['bits'] == '64':
         folder = r'ProgramFiles64Folder'
         arch = 'x64'
+        libcrypto = '-x64'
     else:
         folder = r'ProgramFilesFolder'
         arch = 'x86'
+        libcrypto = ''
     vs = os.getenv('vs')        # inherited from TestTools\common.bat
     features = []
     print(r'<?xml version="1.0"?>')
@@ -73,10 +75,9 @@ def main():
                r'lib\libMonetODBC.dll', r'lib\libMonetODBC.pdb',
                r'lib\libMonetODBCs.dll', r'lib\libMonetODBCs.pdb',
                r'lib\libstream.dll', r'lib\libstream.pdb',
-               r'%s\bin\iconv.dll' % makedefs['LIBICONV'],
+               r'%s\bin\iconv-2.dll' % makedefs['LIBICONV'],
                r'%s\bin\libbz2.dll' % makedefs['LIBBZIP2'],
-               r'%s\bin\libeay32.dll' % makedefs['LIBOPENSSL'],
-               r'%s\bin\ssleay32.dll' % makedefs['LIBOPENSSL'],
+               r'%s\bin\libcrypto-1_1%s.dll' % (makedefs['LIBOPENSSL'], 
libcrypto),
                r'%s\bin\zlib1.dll' % makedefs['LIBZLIB']])
     print(r'            </Directory>')
     id = comp(features, id, 12,
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -34,9 +34,11 @@ def main():
     if makedefs['bits'] == '64':
         folder = r'ProgramFiles64Folder'
         arch = 'x64'
+        libcrypto = '-x64'
     else:
         folder = r'ProgramFilesFolder'
         arch = 'x86'
+        libcrypto = ''
     vs = os.getenv('vs')        # inherited from TestTools\common.bat
     features = []
     print(r'<?xml version="1.0"?>')
@@ -84,12 +86,11 @@ def main():
                r'lib\libmapi.dll', r'lib\libmapi.pdb',
                r'lib\libmonetdb5.dll', r'lib\libmonetdb5.pdb',
                r'lib\libstream.dll', r'lib\libstream.pdb',
-               r'%s\bin\iconv.dll' % makedefs['LIBICONV'],
+               r'%s\bin\iconv-2.dll' % makedefs['LIBICONV'],
                r'%s\bin\libbz2.dll' % makedefs['LIBBZIP2'],
-               r'%s\bin\libeay32.dll' % makedefs['LIBOPENSSL'],
+               r'%s\bin\libcrypto-1_1%s.dll' % (makedefs['LIBOPENSSL'], 
libcrypto),
                r'%s\bin\libxml2.dll' % makedefs['LIBXML2'],
                r'%s\bin\pcre.dll' % makedefs['LIBPCRE'],
-               r'%s\bin\ssleay32.dll' % makedefs['LIBOPENSSL'],
                r'%s\bin\zlib1.dll' % makedefs['LIBZLIB']])
     print(r'            </Directory>')
     print(r'            <Directory Id="etc" Name="etc">')
@@ -125,12 +126,11 @@ def main():
                r'lib\libmapi.lib',
                r'lib\libmonetdb5.lib',
                r'lib\libstream.lib',
-               r'%s\lib\iconv.lib' % makedefs['LIBICONV'],
+               r'%s\lib\iconv.dll.lib' % makedefs['LIBICONV'],
                r'%s\lib\libbz2.lib' % makedefs['LIBBZIP2'],
-               r'%s\lib\libeay32.lib' % makedefs['LIBOPENSSL'],
+               r'%s\lib\libcrypto.lib' % makedefs['LIBOPENSSL'],
                r'%s\lib\libxml2.lib' % makedefs['LIBXML2'],
                r'%s\lib\pcre.lib' % makedefs['LIBPCRE'],
-               r'%s\lib\ssleay32.lib' % makedefs['LIBOPENSSL'],
                r'%s\lib\zdll.lib' % makedefs['LIBZLIB']])
     print(r'            </Directory>')
     print(r'            <Directory Id="share" Name="share">')
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
@@ -600,7 +600,7 @@
 #endif
 
 /* Define as const if the declaration of iconv() needs const. */
-#define ICONV_CONST const
+#define ICONV_CONST /* const */
 
 /* Define as SQLLEN * or SQLPOINTER depending on the include file */
 #ifdef _WIN64
diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -39,12 +39,6 @@ BITSMCHN=X64
 !ENDIF
 
 !IFDEF DEBUG
-DEBUGLIB=d
-!ELSE
-DEBUGLIB=
-!ENDIF
-
-!IFDEF DEBUG
 # force W_CFLAGS off in debug builds: using icc, you get way more
 # warnings about casts which results in the code being uncompilable
 W_CFLAGS =
@@ -98,16 +92,16 @@ PYTHON_LIBDIR=$(PYTHON3_LIBDIR)
 !IFNDEF LIBPCRE
 LIBPCRE = C:\Program Files\PCRE
 !ENDIF
-pcre_LIBS = "$(LIBPCRE)\lib\pcre$(DEBUGLIB).lib"
+pcre_LIBS = "$(LIBPCRE)\lib\pcre.lib"
 pcre_CFLAGS = -DHAVE_LIBPCRE "-I$(LIBPCRE)\include"
 !ENDIF
 
 !IFDEF HAVE_OPENSSL
 # This is the location of the OpenSSL library
 !IFNDEF LIBOPENSSL
-LIBOPENSSL = C:\openssl-0.9.8k.win$(bits)
+LIBOPENSSL = C:\openssl-1.1.0g.win$(bits)
 !ENDIF
-openssl_LIBS = "$(LIBOPENSSL)\lib\ssleay32.lib" 
"$(LIBOPENSSL)\lib\libeay32.lib"
+openssl_LIBS = "$(LIBOPENSSL)\lib\libcrypto.lib"
 openssl_CFLAGS = -DHAVE_OPENSSL "-I$(LIBOPENSSL)\include"
 !ENDIF
 
@@ -116,7 +110,7 @@ openssl_CFLAGS = -DHAVE_OPENSSL "-I$(LIB
 !IFNDEF LIBICONV
 LIBICONV = C:\iconv-1.9.2.win$(bits)
 !ENDIF
-LTLIBICONV = "$(LIBICONV)\lib\iconv$(DEBUGLIB).lib"
+LTLIBICONV = "$(LIBICONV)\lib\iconv.dll.lib"
 ICONV_CFLAGS = -DHAVE_ICONV "-I$(LIBICONV)\include"
 !ENDIF
 
@@ -135,7 +129,7 @@ LIBZLIB = C:\zlib-1.2.3.win$(bits)
 !IFNDEF LIBZLIBFILE
 LIBZLIBFILE=zlib1
 !ENDIF
-zlib_LIBS = "$(LIBZLIB)\lib\$(LIBZLIBFILE)$(DEBUGLIB).lib"
+zlib_LIBS = "$(LIBZLIB)\lib\$(LIBZLIBFILE).lib"
 zlib_CFLAGS = -DHAVE_LIBZ "-I$(LIBZLIB)\include"
 !ENDIF
 
@@ -144,7 +138,7 @@ zlib_CFLAGS = -DHAVE_LIBZ "-I$(LIBZLIB)\
 !IFNDEF LIBBZIP2
 LIBBZIP2 = C:\bzip2-1.0.5.win$(bits)
 !ENDIF
-BZ_LIBS = "$(LIBBZIP2)\lib\libbz2$(DEBUGLIB).lib"
+BZ_LIBS = "$(LIBBZIP2)\lib\libbz2.lib"
 BZ_CFLAGS = -DHAVE_LIBBZ2 "-I$(LIBBZIP2)\include"
 !ENDIF
 
@@ -154,17 +148,13 @@ BZ_CFLAGS = -DHAVE_LIBBZ2 "-I$(LIBBZIP2)
 LIBXML2 = C:\libxml2-2.6.30.win$(bits)
 !ENDIF
 libxml2_CFLAGS = -DHAVE_LIBXML "-I$(LIBXML2)\include" $(zlib_CFLAGS) 
$(ICONV_CFLAGS)
-libxml2_LIBS = "$(LIBXML2)\lib\libxml2$(DEBUGLIB).lib" $(zlib_LIBS) 
$(ICONV_LIBS)
+libxml2_LIBS = "$(LIBXML2)\lib\libxml2.lib" $(zlib_LIBS) $(ICONV_LIBS)
 !ENDIF
 
 !IFNDEF LIBGEOS
 LIBGEOS = C:\geos-3.0.win$(bits)
 !ENDIF
-!IFDEF DEBUG
-GEOS_LIBS = $(LIBGEOS)\lib\geos_c_i$(GEOSDEBUGLIB).lib
-!ELSE
 GEOS_LIBS = $(LIBGEOS)\lib\geos_c_i.lib
-!ENDIF
 GEOS_INCS = -I$(LIBGEOS)\include
 
 !IFDEF HAVE_LIBR
diff --git a/buildtools/doc/windowsbuild.rst b/buildtools/doc/windowsbuild.rst
--- a/buildtools/doc/windowsbuild.rst
+++ b/buildtools/doc/windowsbuild.rst
@@ -18,7 +18,7 @@ architecture, but there are notes throug
 on a 64-bit architecture which is indicated with Windows64.  We have
 successfully built on Windows XP, Windows Server, and Windows 7.
 
-.. _MonetDB: http://dev.monetdb.org/hg/MonetDB/
+.. _MonetDB: https://dev.monetdb.org/hg/MonetDB/
 
 __ MonetDB_
 
@@ -132,7 +132,7 @@ using the command
 
 ::
 
- hg clone http://dev.monetdb.org/hg/MonetDB/
+ hg clone https://dev.monetdb.org/hg/MonetDB/
 
 This will create a folder ``MonetDB`` that contains everything.
 
@@ -154,25 +154,23 @@ Compiler
 
 The suite can be compiled using one of the following compilers:
 
-- Microsoft Visual Studio .NET 2003 (also known as Microsoft Visual Studio 7);
-- Microsoft Visual Studio 2005 (also known as Microsoft Visual Studio 8);
-- Microsoft Visual Studio 2008 (also known as Microsoft Visual Studio 9.0);
-- Microsoft Visual Studio 2010 (also known as Microsoft Visual Studio 10.0);
-- Intel(R) C++ Compiler 9.1 (which actually needs one of the above);
-- Intel(R) C++ Compiler 10.1 (which also needs one of the Microsoft compilers);
-- Intel(R) C++ Compiler 11.1 (which also needs one of the Microsoft compilers).
+- Microsoft Visual Studio 2015 or newer;
+- Intel(R) C++ Compiler 9.1;
+- Intel(R) C++ Compiler 10.1;
+- Intel(R) C++ Compiler 11.1.
 
-Not supported anymore (but probably still possible) are the GNU C
-Compiler gcc under Cygwin__.  Using that, it (probably still) is
-possible to build a version that runs using the Cygwin DLLs, but also
-a version that uses the MinGW__ (Minimalist GNU for Windows) package.
-This is not supported and not further described here (in either case,
-the build process would be much more like Unix than what is described
-here).
+Not supported anymore are the GNU C Compiler gcc under Cygwin__.
+Using that, it would be possible to build a version that runs using
+the Cygwin DLLs, but also a version that uses the MinGW__ (Minimalist
+GNU for Windows) package.  This is not supported and not further
+described here (in either case, the build process would be much more
+like Unix than what is described here).
 
-We currently use Microsoft Visual Studio 2010 and Intel(R) C++
-Compiler XE 13.1.2.190, the latter using Microsoft Visual Studio
-10.0.  Older versions haven't been tried in a long time.
+We currently use Microsoft Visual Studio Community 2015, Microsoft
+Visual Studio Community 2017, and Intel(R) C++ Compiler XE 13.1.2.190,
+the latter using Microsoft Visual Studio Community 2015.  Older
+versions of Visual Studio will not work since they do not support the
+C-99 standard.
 
 __ http://www.cygwin.com/
 __ http://www.mingw.org/
@@ -185,13 +183,12 @@ compiler uses to determine which files t
 downloaded from http://www.python.org/.  Just download and install the
 Windows binary distribution.
 
+.. Say something about pyintegration.
+
 Note that you can use either or both Python2 and Python3, and on 64
 bit architectures, either the 32 bit or 64 bit version of Python.  All
-these versions are fine for building the MonetDB suite.  However, if
-you want to create an installer for the Python component using
-``python setup.py bdist_wininst``, you need to use the version of
-Python for which you're building the installer.  It is possible to
-install all versions.  Using Chocolatey_ you can do::
+these versions are fine for building the MonetDB suite.  It is
+possible to install all versions.  Using Chocolatey_ you can do::
 
   choco install python2 python3 
   choco install python2-x86_32 python3-x86_32
@@ -248,14 +245,14 @@ of MonetDB.  The PCRE library is require
 
 Download the source from http://www.pcre.org/.  In order to build the
 library, you will need a program called ``cmake`` which you can
-download from http://www.cmake.org/.  Follow the Download link and get
-the Win32 Installer, install it, and run it.  It will come up with a
-window where you have to fill in the location of the source code and
-where to build the binaries.  Fill in where you extracted the PCRE
-sources, and some other folder (I used a ``build`` folder which I
-created within the PCRE source tree), then click on the Configure
-button.  This pops up a dialog to choose the compiler.  I chose Visual
-Studio 10 2010.
+download from http://www.cmake.org/ or by using Chocolatey_.  Follow
+the Download link and get the Win32 Installer, install it, and run it.
+It will come up with a window where you have to fill in the location
+of the source code and where to build the binaries.  Fill in where you
+extracted the PCRE sources, and some other folder (I used a ``build``
+folder which I created within the PCRE source tree), then click on the
+Configure button.  This pops up a dialog to choose the compiler.  I
+chose Visual Studio 14 2015.
 
 You need to configure some PCRE build options.  I chose to do build
 shared libs, to match newlines with the ``ANYCRLF`` option, and to do
@@ -267,7 +264,7 @@ Release if you want to build a releasabl
 suite.  By default the library will be installed in ``C:\Program
 Files\PCRE``.
 
-For Windows64, select the correct compiler (``Visual Studio 10 2010
+For Windows64, select the correct compiler (``Visual Studio 14 2015
 Win64``) and proceed normally.  When building the 32 bit version on
 Windows64, choose ``C:/Program Files (x86)/PCRE`` for the
 ``CMAKE_INSTALL_PREFIX`` value, otherwise choose ``C:/Program
@@ -280,8 +277,8 @@ contents of the file are::
  #include <Windows.h>
  LANGUAGE              LANG_ENGLISH, SUBLANG_ENGLISH_US
  VS_VERSION_INFO       VERSIONINFO
- FILEVERSION           8,37,0,0        // change as appropriate
- PRODUCTVERSION                8,37,0,0        // change as appropriate
+ FILEVERSION           8,41,0,0        // change as appropriate
+ PRODUCTVERSION                8,41,0,0        // change as appropriate
  FILEFLAGSMASK         0x3fL
  FILEFLAGS             0
  FILEOS                        VOS_NT_WINDOWS32
@@ -299,29 +296,25 @@ OpenSSL
 -------
 
 The OpenSSL__ library is used during authentication of a MonetDB
-client program with the MonetDB server.  The OpenSSL library is
-required for the MonetDB5 component, and hence implicitly required for
-the clients component when it needs to talk to a MonetDB5 server.
+client program with the MonetDB server.  The only part of the OpenSSL
+library that is used is some of the hash functions, it is not used to
+secure communication between client and server processes.  The OpenSSL
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to