Changeset: d9f74d6e37de for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d9f74d6e37de Modified Files: clients/Tests/exports.stable.out sql/backends/monet5/sql_gencode.c Branch: no_type_bat Log Message:
merged with default diffs (truncated from 12953 to 300 lines): diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -16,51 +16,120 @@ jobs: strategy: fail-fast: false # don't stop other jobs matrix: - branch: [ master ] - os: [ ubuntu-latest, macos-latest ] + os: [ ubuntu-latest, macos-latest, windows-latest ] + c_compiler: [ gcc, clang, cl ] + include: + - os: windows-latest + c_compiler: cl + - os: macos-latest + c_compiler: clang + - os: macos-latest + c_compiler: gcc-12 + - os: ubuntu-latest + c_compiler: gcc + - os: ubuntu-latest + c_compiler: clang + exclude: + - os: windows-latest + c_compiler: gcc + - os: windows-latest + c_compiler: clang + - os: macos-latest + c_compiler: cl + - os: macos-latest + c_compiler: gcc + - os: ubuntu-latest + c_compiler: cl runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v3 with: - ref: ${{ matrix.branch }} + ref: ${{ github.ref }} + + - name: install pymonetdb cryptography + run: pip3 install pymonetdb cryptography - name: make MonetDB on linux run: | mkdir build cd build - cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/${{ matrix.branch }} -DPY3INTEGRATION=OFF -DCMAKE_BUILD_TYPE=Release -DASSERT=OFF -DRINTEGRATION=OFF \ + cmake .. \ + -DCMAKE_INSTALL_PREFIX=$HOME/MDB \ + -DPY3INTEGRATION=OFF \ + -DRINTEGRATION=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DASSERT=OFF \ + -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \ -DCMAKE_SUMMARY=ON make install -j3 if: runner.os == 'Linux' - - - name: brew packages + + - name: brew packages run: brew install bison if: runner.os == 'macOS' + - name: make MonetDB on macos run: | mkdir build cd build - cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/${{ matrix.branch }} -DPY3INTEGRATION=OFF -DCMAKE_BUILD_TYPE=Release -DASSERT=OFF -DRINTEGRATION=OFF \ - -DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison -DCMAKE_SUMMARY=ON + cmake .. \ + -DCMAKE_INSTALL_PREFIX=$HOME/MDB \ + -DPY3INTEGRATION=OFF \ + -DRINTEGRATION=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DASSERT=OFF \ + -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \ + -DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison \ + -DCMAKE_SUMMARY=ON make install -j3 if: runner.os == 'macOS' + + - name: choco packages + run: | + choco install winflexbison3 + vcpkg install libiconv bzip2 libxml2 pcre zlib getopt + if: runner.os == 'Windows' + + - name: make MonetDB on Windows + shell: pwsh + run: | + mkdir build + cd build + cmake .. -DCMAKE_INSTALL_PREFIX=C:\MDB -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DPY3INTEGRATION=OFF -DRINTEGRATION=OFF -DCMAKE_BUILD_TYPE=Release -DASSERT=OFF -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DCMAKE_SUMMARY=ON + cmake --build . --target install + if: runner.os == 'Windows' + - name: ctest run: | cd build - cmake --build . --target test - - name: install pymonetdb - run: pip3 install pymonetdb - - name: which python - run: - head -n 1 $HOME/${{ matrix.branch }}/bin/Mtest.py + cmake --build . --target ${{ runner.os == 'Windows' && 'RUN_TESTS' || 'test' }} + if: runner.os != 'Windows' + - name: mtest run: | - #cd build - #cmake --build . --target mtest - PATH=$HOME/${{ matrix.branch }}/bin:$PATH $HOME/${{ matrix.branch }}/bin/Mtest.py -r --debug=0 --ci --no-html + PATH=$HOME/MDB/bin:$PATH $HOME/MDB/bin/Mtest.py -r --debug=0 --ci --no-html --TSTTRGBASE=. + if: runner.os != 'Windows' + + - name: ctest + shell: pwsh + run: | + $env:PATH = 'C:\MDB\lib;C:\MDB\lib\monetdb5;C:\MDB\bin;C:\vcpkg\installed\x64-windows\bin;C:\vcpkg\installed\x64-windows\debug\bin;' + $env:PATH + cd build + cmake --build . --target ${{ runner.os == 'Windows' && 'RUN_TESTS' || 'test' }} + if: runner.os == 'Windows' + + - name: mtest + shell: pwsh + run: | + $env:PATH = 'C:\MDB\lib;C:\MDB\lib\monetdb5;C:\MDB\bin;C:\vcpkg\installed\x64-windows\bin;C:\vcpkg\installed\x64-windows\debug\bin;' + $env:PATH + python C:\MDB\bin\Mtest.py -r --debug=0 --ci --no-html --TSTTRGBASE=. + if: runner.os == 'Windows' + + - name: Tar files + run: tar -cvf mtests.tar mTests - name: Publish mtest results uses: actions/upload-artifact@v3 with: - name: mtest-${{ matrix.branch }} - path: ${{ matrix.branch }}/mTests/* + name: mtest-${{ github.sha }}-${{ matrix.os }}-${{ matrix.c_compiler }} + path: mtests.tar diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -813,3 +813,5 @@ ce63ebe9a78c52ef0cbe8fd6f2159d2637f0387c 1efa83c6409769d13b2ee30e497d5f7ab42fa955 Jun2023_9 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_11 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_SP2_release +e6eb06773c17035954ac5d001cfe1f09ff3425cc Jun2023_13 +5683fd900f28d65ad7c98d1ed1efd992023a7fa4 Jun2023_15 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -89,7 +89,7 @@ Group: Applications/Databases License: MPL-2.0 URL: https://www.monetdb.org/ BugURL: https://github.com/MonetDB/MonetDB/issues -Source: https://www.monetdb.org/downloads/sources/Jun2023-SP2/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Jun2023-SP3/%{name}-%{version}.tar.bz2 # The Fedora packaging document says we need systemd-rpm-macros for # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7 @@ -867,6 +867,37 @@ fi %endif %changelog +* Thu Nov 09 2023 Sjoerd Mullender <sjo...@acm.org> - 11.47.15-20231109 +- Rebuilt. +- GH#7410: SIGSEGV cause database corruption + +* Tue Nov 7 2023 Sjoerd Mullender <sjo...@acm.org> - 11.47.15-20231109 +- gdk: When saving the SQL catalog during a low-level commit, we should + only save the part of the catalog that corresponds to the part of the + write-ahead log that has been processed. What we did was save more, + which resulted in the catalog containing references to tables and + columns whose disk presence is otherwise only in the write-ahead log. + +* Fri Nov 03 2023 Sjoerd Mullender <sjo...@acm.org> - 11.47.13-20231103 +- Rebuilt. +- GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions +- GH#7324: string_distance('method',str1, str2) as a generic distance + function +- GH#7409: Numpy table returning UDFs with variadic arguments + +* Thu Nov 2 2023 Sjoerd Mullender <sjo...@acm.org> - 11.47.13-20231103 +- sql: Added a missing interface function sys.timestamp_to_str with + a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. + The missing interface caused error messages being produced when the + function was called with a TIMESTAMP argument, although it did give + the correct result. + +* Tue Oct 31 2023 Sjoerd Mullender <sjo...@acm.org> - 11.47.13-20231103 +- gdk: A bug was fixed where the administration of which bats were in use was + interpreted incorrectly during startup, causing problems later. One + symptom that has been observed was failure to startup with a message + that the catalog tables could not be loaded. + * Fri Sep 29 2023 Sjoerd Mullender <sjo...@acm.org> - 11.47.11-20230929 - Rebuilt. diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out --- a/clients/Tests/exports.stable.out +++ b/clients/Tests/exports.stable.out @@ -730,9 +730,10 @@ msettings_error msetting_set_named(msett const char *msetting_string(const msettings *mp, mparm parm); long msettings_connect_binary(const msettings *mp); const char *msettings_connect_certhash_digits(const msettings *mp); +const char *msettings_connect_clientcert(const msettings *mp); +const char *msettings_connect_clientkey(const msettings *mp); long msettings_connect_port(const msettings *mp); bool msettings_connect_scan(const msettings *mp); -const char *msettings_connect_sockdir(const msettings *mp); const char *msettings_connect_tcp(const msettings *mp); enum msetting_tls_verify msettings_connect_tls_verify(const msettings *mp); const char *msettings_connect_unix(const msettings *mp); diff --git a/clients/examples/C/testsfile.c b/clients/examples/C/testsfile.c --- a/clients/examples/C/testsfile.c +++ b/clients/examples/C/testsfile.c @@ -235,6 +235,10 @@ handle_expect_command(const char *locati return expect_string(location, MP_UNKNOWN, msettings_connect_certhash_digits, value); if (strcmp("connect_binary", key) == 0) return expect_long(location, MP_UNKNOWN, msettings_connect_binary, value); + if (strcmp("connect_clientkey", key) == 0) + return expect_string(location, MP_UNKNOWN, msettings_connect_clientkey, value); + if (strcmp("connect_clientcert", key) == 0) + return expect_string(location, MP_UNKNOWN, msettings_connect_clientcert, value); const mparm parm = mparm_parse(key); if (parm == MP_UNKNOWN) { diff --git a/clients/examples/python/mclient-python3.py b/clients/examples/python/mclient-python3.py --- a/clients/examples/python/mclient-python3.py +++ b/clients/examples/python/mclient-python3.py @@ -65,7 +65,7 @@ def main() : line = fi.readline() if encoding != 'utf-8': prompt = str(prompt, 'utf-8').encode(encoding, 'replace') - while line and line != "\q\n": + while line and line != "\\q\n": if encoding != 'utf-8': line = str(line, encoding).encode('utf-8') res = s.cmd('s' + line) diff --git a/clients/mapiclient/mclient.1 b/clients/mapiclient/mclient.1 --- a/clients/mapiclient/mclient.1 +++ b/clients/mapiclient/mclient.1 @@ -212,7 +212,7 @@ The possible values are .BR expanded , .BR x , .BR csv , -.BR csv-noquote , +.BR csv\-noquote , .BR tab , .BR raw , .BR xml , @@ -221,7 +221,7 @@ and .BR rowcount . .B csv is comma-separated values; -.B csv-noquote +.B csv\-noquote is comma-separated values without escaping any quotes; .B tab is tab-separated values; @@ -248,7 +248,7 @@ is a variation on where only the number of affected rows is printed. Normal \fBcsv\fP and \fBtab\fP formatting will use double quotes around any fields that contain double quotes, white space or the -separator. The \fBcsv-noquote\fP format will prevent that and dump +separator. The \fBcsv\-noquote\fP format will prevent that and dump the contents of the field without any interpretation. In addition to plain \fBcsv\fP, two other forms are possible. \fBcsv=\fP\fIc\fP uses \fIc\fP as column separator; \fBcsv+\fP\fIc\fP @@ -539,7 +539,7 @@ in the above query can also be a URL. I .IR e . g ., .IR https://www.example.org/dumpdata.csv . .PP -See https://www.monetdb.org/documentation/user-guide/sql-manual/data-loading/copy-from/ +See https://www.monetdb.org/documentation/user\-guide/sql\-manual/data\-loading/copy\-from/ for more information about the COPY INTO query. .SH SEE ALSO .IR msqldump (1), diff --git a/clients/mapilib/Tests/systemcertificates.py b/clients/mapilib/Tests/systemcertificates.py --- a/clients/mapilib/Tests/systemcertificates.py +++ b/clients/mapilib/Tests/systemcertificates.py @@ -25,13 +25,20 @@ HOST = 'python.org' # Run mclient cmd = ['mclient', '-L-', '-d', f"monetdbs://{HOST}:443/demo"] proc = subprocess.run(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE) -assert proc.returncode == 2, f"mclient is supposed to exit with status 2, not {proc.returncode}" +if proc.returncode != 2: + msg = str(proc.stderr, 'utf-8') + print(f"mclient is supposed to exit with status 2, not {proc.returncode}.\n--- stderr ---\n{msg}\n---end stderr ---", file=sys.stderr) + exit(1) -# We expect the server to send something like 'HTTP/1.1 400 Bad Request' -# libmapi will interpret the first two bytes as a block header. +# After the TLS handshake succeeds we expect the server to send something like +# 'HTTP/1.1 400 Bad Request' because we're sending \x00\x00 instead of an HTTP +# request. libmapi will interpret the first two bytes 'H' and 'T' as an invalid _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org