Changeset: bd366cf395c6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bd366cf395c6
Added Files:
        
sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.err.Windows
        
sql/test/BugTracker-2015/Tests/crash_timestamp_convert.Bug-3816.stable.out.Windows
        sql/test/BugTracker-2017/Tests/coalesc-limit.Bug-6316.stable.err
        sql/test/BugTracker-2017/Tests/coalesc-limit.Bug-6316.stable.out
        sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.sql
        sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.err
        sql/test/BugTracker-2017/Tests/crash-dce.Bug-6330.stable.out
        sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.sql
        
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.err
        
sql/test/BugTracker-2017/Tests/crash-select_after_MAL_error.Bug-6332.stable.out
        
sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.sql
        
sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.err
        
sql/test/BugTracker-2017/Tests/create_table_as-missing_not_null.Bug-6329.stable.out
        sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.sql
        
sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.err
        
sql/test/BugTracker-2017/Tests/delete_from_merge_table.Bug-3743.stable.out
        sql/test/BugTracker-2017/Tests/exist-bigint-missing.Bug-6315.stable.err
        sql/test/BugTracker-2017/Tests/exist-bigint-missing.Bug-6315.stable.out
        sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.err
        sql/test/BugTracker-2017/Tests/lateral.Bug-6310.stable.out
        sql/test/BugTracker-2017/Tests/lateral02.Bug-6314.stable.err
        sql/test/BugTracker-2017/Tests/lateral02.Bug-6314.stable.out
        sql/test/BugTracker-2017/Tests/limit.bug-6322.sql
        sql/test/BugTracker-2017/Tests/limit_clause.Bug-6312.stable.err
        sql/test/BugTracker-2017/Tests/limit_clause.Bug-6312.stable.out
        sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.sql
        sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.stable.err
        sql/test/BugTracker-2017/Tests/push_subslice.Bug-6322.stable.out
        sql/test/BugTracker-2017/Tests/simplify_math.Bug-6324.sql
        sql/test/BugTracker-2017/Tests/simplify_math.Bug-6324.stable.err
        sql/test/BugTracker-2017/Tests/simplify_math.Bug-6324.stable.out
        sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.sql
        
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.err
        
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.out
        
sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.err
        
sql/test/BugTracker-2017/Tests/type-resolution-error.Bugs-6313.stable.out
        sql/test/Tests/ifexists-views.sql
        sql/test/Tests/ifexists-views.stable.err
        sql/test/Tests/ifexists-views.stable.out
        sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.err
        sql/test/malloc_fail/Tests/setmemorylimit-fail2.stable.out
Modified Files:
        .hgtags
        MonetDB.spec
        NT/mkgeomwxs.py
        NT/mkodbcwxs.py
        NT/mksqlwxs.py
        buildtools/conf/monetdb.ico
        clients/ChangeLog.Dec2016
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/dump.c
        clients/mapiclient/mclient.c
        clients/mapiclient/mhelp.c
        clients/mapiclient/mhelp.h
        clients/mapiclient/tomograph.c
        clients/odbc/driver/SQLColumnPrivileges.c
        clients/odbc/driver/SQLColumns.c
        clients/odbc/driver/SQLExecute.c
        clients/odbc/driver/SQLSpecialColumns.c
        clients/odbc/driver/SQLTables.c
        common/stream/stream.c
        debian/changelog
        gdk/gdk_atoms.c
        gdk/gdk_bat.c
        gdk/gdk_bbp.c
        gdk/gdk_heap.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_private.h
        gdk/gdk_search.c
        gdk/gdk_select.c
        gdk/gdk_utils.c
        geom/monetdb5/geom_upgrade.c
        libversions
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_instruction.c
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_parser.c
        monetdb5/modules/kernel/status.c
        monetdb5/modules/mal/00_language_hge.mal
        monetdb5/modules/mal/bbp.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/inspect.c
        monetdb5/modules/mal/manifold.c
        monetdb5/modules/mal/manifold.h
        monetdb5/modules/mal/mdb.c
        monetdb5/optimizer/Tests/inline06.stable.out
        monetdb5/optimizer/opt_costModel.c
        monetdb5/optimizer/opt_dataflow.c
        monetdb5/optimizer/opt_evaluate.c
        monetdb5/optimizer/opt_mergetable.c
        monetdb5/optimizer/opt_multiplex.c
        monetdb5/optimizer/opt_pushselect.c
        monetdb5/optimizer/opt_support.c
        sql/backends/monet5/Tests/pyapi19.stable.err
        sql/backends/monet5/Tests/pyapi19.stable.out
        sql/backends/monet5/Tests/pyapi25.stable.err
        sql/backends/monet5/Tests/pyapi25.stable.err.Windows
        sql/backends/monet5/Tests/pyapi25.stable.out
        sql/backends/monet5/Tests/pyapi29.stable.err
        sql/backends/monet5/Tests/pyapi29.stable.out
        sql/backends/monet5/UDF/pyapi/connection.c
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/backends/monet5/UDF/pyapi/pyapi.mal
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.stable.err
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_19.stable.out
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.stable.err
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_25.stable.out
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.stable.err
        sql/backends/monet5/UDF/pyapi3/Tests/pyapi3_29.stable.out
        sql/backends/monet5/UDF/pyapi3/pyapi3.mal
        sql/backends/monet5/sql_assert.c
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_execute.c
        sql/backends/monet5/sql_statistics.c
        sql/backends/monet5/sql_upgrades.c
        sql/common/sql_types.c
        sql/include/sql_catalog.h
        sql/scripts/51_sys_schema_extension.sql
        sql/server/rel_optimizer.c
        sql/server/rel_rel.c
        sql/server/rel_rel.h
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/server/sql_parser.y
        sql/storage/store.c
        sql/test/BugTracker-2010/Tests/count-and-not.Bug-2663.stable.out
        
sql/test/BugTracker-2010/Tests/not-in-union-except-union.Bug-2577.stable.out
        sql/test/BugTracker-2017/Tests/All
        sql/test/BugTracker-2017/Tests/lateral.Bug-6310.sql
        sql/test/BugTracker-2017/Tests/nestedoperators.Bug-6292.stable.err
        sql/test/Tests/All
        sql/test/Tests/copy-into-fwf.sql.in
        sql/test/emptydb-upgrade-chain-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/check.stable.out
        sql/test/emptydb-upgrade/Tests/check.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/check.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb/Tests/check.SQL.py
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check1.stable.out.int128
        sql/test/leaks/Tests/check2.stable.out
        sql/test/leaks/Tests/check2.stable.out.int128
        sql/test/leaks/Tests/check3.stable.out
        sql/test/leaks/Tests/check3.stable.out.int128
        sql/test/leaks/Tests/check4.stable.out
        sql/test/leaks/Tests/check4.stable.out.int128
        sql/test/leaks/Tests/check5.stable.out
        sql/test/leaks/Tests/check5.stable.out.int128
        sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.sql
        sql/test/sys-schema/Tests/check_AlternateKey_uniqueness.stable.out
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/utils/control.c
Branch: data-vaults
Log Message:

Merge with default


diffs (truncated from 37500 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -671,3 +671,5 @@ 54a8c9d99dc3621a02579db0c59309781caceb54
 05f4e62bc67911a25f19be7fe742009ab1ee41c7 Dec2016_21
 c57454c6c6f6e77fbbdf70de32a7cc845b67d1dd Dec2016_SP4_release
 05f4e62bc67911a25f19be7fe742009ab1ee41c7 Dec2016_SP4_release
+8b3d3f7c487cb6e34dab1167797a61862cba2124 Dec2016_23
+8b3d3f7c487cb6e34dab1167797a61862cba2124 Dec2016_SP5_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -132,7 +132,7 @@ Vendor: MonetDB BV <i...@monetdb.org>
 Group: Applications/Databases
 License: MPLv2.0
 URL: https://www.monetdb.org/
-Source: 
https://www.monetdb.org/downloads/sources/Dec2016-SP4/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Dec2016-SP5/%{name}-%{version}.tar.bz2
 
 # we need systemd for the _unitdir macro to exist
 %if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
@@ -311,6 +311,11 @@ MonetDB, you will very likely need this 
 Summary: MonetDB - Monet Database Management System Client Programs
 Group: Applications/Databases
 Requires: %{name}-client%{?_isa} = %{version}-%{release}
+%if (0%{?fedora} >= 22)
+# tomograph executes these two:
+Recommends: /usr/bin/gs
+Recommends: /usr/bin/gnuplot
+%endif
 
 %description client-tools
 MonetDB is a database management system that is developed from a
@@ -953,6 +958,24 @@ rm -f %{buildroot}%{_bindir}/Maddlog
 %postun -p /sbin/ldconfig
 
 %changelog
+* Mon May 29 2017 Panagiotis Koutsourakis <kutsu...@monetdbsolutions.com> - 
11.25.23-20170529
+- Rebuilt.
+- BZ#6290: Crash (and assertion failure) with a correlated subquery with
+  NOT IN in the select-list
+- BZ#6291: crash if executes a function with sample operator
+- BZ#6294: Sqlitelogictest crash
+- BZ#6296: Another sqllitelogictest crash :(
+- BZ#6297: 7th sqllitelogictest crash :(
+- BZ#6300: Protect against missing BATs (sqlsmith)
+- BZ#6314: Lateral crash report (sqlsmith)
+- BZ#6315: Exist operator on type bigint missing (sqlsmith)
+- BZ#6316: Coalesc and limit error (sqlsmith)
+- BZ#6317: Two-column integer aggregation extremely slow
+- BZ#6318: Daemon crashes if .merovignian_properties for a database
+  contains more than 42 entries
+- BZ#6320: The daemon ignores all but the last entry in the
+  .merovignian_properties file when spawning mserver5
+
 * Tue Apr 25 2017 Sjoerd Mullender <sjo...@acm.org> - 11.25.21-20170425
 - Rebuilt.
 - BZ#6260: Sqlitelogictest crash
diff --git a/NT/mkgeomwxs.py b/NT/mkgeomwxs.py
--- a/NT/mkgeomwxs.py
+++ b/NT/mkgeomwxs.py
@@ -46,7 +46,11 @@ def main():
     print(r'      <RegistrySearch Id="MonetDBRegistry" 
Key="Software\[Manufacturer]\MonetDB5" Name="InstallPath" Root="HKLM" 
Type="raw"/>')
     print(r'    </Property>')
     print(r'    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>')
+    print(r'    <Property Id="ARPPRODUCTICON" Value="monetdb.ico"/>')
     print(r'    <Media Id="1" Cabinet="monetdb.cab" EmbedCab="yes"/>')
+    print(r'    <Condition Message="MonetDB5-SQL needs to be installed 
first.">')
+    print(r'      INSTALLDIR')
+    print(r'    </Condition>')
     print(r'    <Directory Id="TARGETDIR" Name="SourceDir">')
     print(r'      <Merge Id="VCRedist" DiskId="1" Language="0" 
SourceFile="C:\Program Files (x86)\Common Files\Merge 
Modules\Microsoft_VC%s0_CRT_%s.msm"/>' % (vs, arch))
     print(r'      <Directory Id="%s">' % folder)
@@ -82,8 +86,46 @@ def main():
         print(r'      <ComponentRef Id="%s"/>' % f)
     print(r'      <MergeRef Id="VCRedist"/>')
     print(r'    </Feature>')
-    print(r'    <UIRef Id="WixUI_InstallDir"/>')
+    # the <UI> section was lifted from
+    # ...\SDK\wixui\WixUI_InstallDir.wxs and modified to remove the
+    # InstallDirDlg subsection
+    # see 
http://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations.html
+    print(r'    <UI Id="MyWixUI_InstallDir">')
+    print(r'      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" 
Size="8"/>')
+    print(r'      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" 
Size="12"/>')
+    print(r'      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" 
Bold="yes"/>')
+    print(r'      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal"/>')
+    print(r'      <Property Id="WixUI_Mode" Value="InstallDir"/>')
+    print(r'      <DialogRef Id="BrowseDlg"/>')
+    print(r'      <DialogRef Id="DiskCostDlg"/>')
+    print(r'      <DialogRef Id="ErrorDlg"/>')
+    print(r'      <DialogRef Id="FatalError"/>')
+    print(r'      <DialogRef Id="FilesInUse"/>')
+    print(r'      <DialogRef Id="MsiRMFilesInUse"/>')
+    print(r'      <DialogRef Id="PrepareDlg"/>')
+    print(r'      <DialogRef Id="ProgressDlg"/>')
+    print(r'      <DialogRef Id="ResumeDlg"/>')
+    print(r'      <DialogRef Id="UserExit"/>')
+    print(r'      <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" 
Value="WixUIValidatePath" Order="3">1</Publish>')
+    print(r'      <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" 
Value="InvalidDirDlg" Order="4"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND 
WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>')
+    print(r'      <Publish Dialog="ExitDialog" Control="Finish" 
Event="EndDialog" Value="Return" Order="999">1</Publish>')
+    print(r'      <Publish Dialog="WelcomeDlg" Control="Next" 
Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>')
+    print(r'      <Publish Dialog="WelcomeDlg" Control="Next" 
Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>')
+    print(r'      <Publish Dialog="LicenseAgreementDlg" Control="Back" 
Event="NewDialog" Value="WelcomeDlg">1</Publish>')
+    print(r'      <Publish Dialog="LicenseAgreementDlg" Control="Next" 
Event="NewDialog" Value="VerifyReadyDlg">LicenseAccepted = "1"</Publish>')
+    print(r'      <Publish Dialog="VerifyReadyDlg" Control="Back" 
Event="NewDialog" Value="LicenseAgreementDlg" Order="1">NOT 
Installed</Publish>')
+    print(r'      <Publish Dialog="VerifyReadyDlg" Control="Back" 
Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT 
PATCH</Publish>')
+    print(r'      <Publish Dialog="VerifyReadyDlg" Control="Back" 
Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>')
+    print(r'      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" 
Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>')
+    print(r'      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>')
+    print(r'      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" 
Event="NewDialog" Value="VerifyReadyDlg">1</Publish>')
+    print(r'      <Publish Dialog="MaintenanceTypeDlg" Control="Back" 
Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>')
+    print(r'      <Property Id="ARPNOMODIFY" Value="1"/>')
+    print(r'    </UI>')
+    print(r'    <UIRef Id="WixUI_Common"/>')
+    print(r'    <UIRef Id="MyWixUI_InstallDir"/>')
     print(r'    <UIRef Id="WixUI_ErrorProgressText"/>')
+    print(r'    <Icon Id="monetdb.ico" SourceFile="monetdb.ico"/>')
     print(r'  </Product>')
     print(r'</Wix>')
 
diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py
--- a/NT/mkodbcwxs.py
+++ b/NT/mkodbcwxs.py
@@ -46,6 +46,7 @@ def main():
     print(r'    <WixVariable Id="WixUIBannerBmp" Value="banner.bmp"/>')
     # print(r'    <WixVariable Id="WixUIDialogBmp" 
Value="backgroundRipple.bmp"/>')
     print(r'    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>')
+    print(r'    <Property Id="ARPPRODUCTICON" Value="monetdb.ico"/>')
     print(r'    <Media Id="1" Cabinet="monetdb.cab" EmbedCab="yes"/>')
     print(r'    <CustomAction Id="driverinstall" FileKey="odbcinstall" 
ExeCommand="/Install" Execute="deferred" Impersonate="no"/>')
     print(r'    <CustomAction Id="driveruninstall" FileKey="odbcinstall" 
ExeCommand="/Uninstall" Execute="deferred" Impersonate="no"/>')
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -49,6 +49,7 @@ def main():
     print(r'      <RegistrySearch Id="MonetDBRegistry" 
Key="Software\[Manufacturer]\[ProductName]" Name="InstallPath" Root="HKLM" 
Type="raw"/>')
     print(r'    </Property>')
     print(r'    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>')
+    print(r'    <Property Id="ARPPRODUCTICON" Value="monetdb.ico"/>')
     print(r'    <Media Id="1" Cabinet="monetdb.cab" EmbedCab="yes"/>')
     print(r'    <Directory Id="TARGETDIR" Name="SourceDir">')
     print(r'      <Merge Id="VCRedist" DiskId="1" Language="0" 
SourceFile="C:\Program Files (x86)\Common Files\Merge 
Modules\Microsoft_VC%s0_CRT_%s.msm"/>' % (vs, arch))
diff --git a/buildtools/conf/monetdb.ico b/buildtools/conf/monetdb.ico
index 
fad690d3c111db967da3cf2e65cb6df338355064..1cd666db49c02edb3012cae55f0c257c359a9359
GIT binary patch
literal 16958
zc%1E8ZD?C%6n?TUO_QNj{1`H|L#7sC>MT~BN=s3h4z+EXqRjcj!G8IHqPBBwbGuE{
zsXsRM!~Kvsrh=6Tej%c=R5w&qL{P*p7O5W_qK!Idx}|x2&b>GFCQF)|w7GAm_bI0*
zP44@i^PKm*=lw{50Ds!s!QYF~+yR^ppqawAV8D9chYue<eE9I;!-o$a|1Gow^Qq?P
z_CqIn8nCJ-jBd!W=YNV=1lwa_?72CNvvm8S11&(XH;nfghjGTCN4GyZ5Uocuxu+>v
z#^P?>{^&q&1RE(zgmqy+w?AIvdf-IPfnRemh&5ofZlAmc`EQ!y&-oAy<1*boc?nqq
zIR7UdG5C^s5z_6KmmvSWIsRr0A{f@~lb7I__dEGB9)EL#bcSxfyaH=~dmevT55jm<
zw_jf2M&Q&!{+t5`V?dp5-#kLVSpyyGVViEpyn?KKMfeZt_R9+}&%=e>?K=2^Zr{8>
ztR72C@E_Ifn-^f7uPMf#bK+fPV3e{=4PvQoKWhcn`d3Tve_6$`gZz~(Y0Bq(Zwuqm
zqTBD;068vVo*yZ}f3sSPAo)%>V&Ie`lyCU?(`r3hb#ti(<i54&+_(65$us0QRD!=#
zvT8_<l*bRcg1CqrkCv!?hqy0_<enwJpIpS?$K3Nb0Sle&=Nhg97I5BwR&wkk*zSCu
z`Mum6<8m>G<KbKz?xAnN9K2_heJ#g*_cVDw(cOTi!gl1g(?t$UvNkTW?KJj8uwgEp
zr`v(~9GB-yaWA*;BfkSKV(^FRL!&$|ab!H7lQV{ABujwB>=gR)&a~Xa*eCbHrTS3)
zSVDeBUBqBa)(&aY*?`4z$H2J9yknb>SO_b~ZEQO3^l^We_3vTRf^~kCt6E?nnTx?n
z;AGa6*JQ8J9mFNIXKaDImyp-Uw7jix|1LM@rPh_}m$l$Ym-X<VdI$^cW&zr{lk%s;
z!5otsov~@7RpwpE^(}wg_sV)@@-on=2F&lr%7WZ>yT}2N!|d}Khi_*)YS00`-VzPr
z2C0`-^JN^n!?>LN8FGhNma{eH8M)_S+j^UO2j%Tb?DF|HT*e^Fc;&6B(IA%5hnJ@A
z9;lfYpVFsY!lSnVw=qYq<=@Mr^|+9)&yNLhG22`rdo#%;i5+!<&;Ra*vvbV5Be-;m
zhc%~vbL46zF?hvg46OMuh^w9L<qlfb9P&t3#Gwk2GhH+yS6&YPW&ds<!x*frl)EDa
z+g#SfTrPYlYe_*j0mh+2_T*BJW|8w4`+P!jC(mb|S!B;@`+Z-v+#NAkYsS%SE?9Oy
zRvU0-vHm!p&!peCGRGh1ym(V$B6GG(ULUgewL97Fu2?-TDB|Zilzp~+Ik&`T%H7fT
zc`o-zh57Ic^;V9_qB17tv0j}f-{0ExqgBo^te@w00w+!D+YnaM#utt}om9iPXSTTK
z*|PS^lNH9{-&n-)I{jUv?#F_vePAtPAARiWBlcT(hCeLzel|HDV}Bi*Y5S`R>O!eG
zl4d_+=3J3lJA|jGH!C@p590yqet!NKWfxz|oz)LE-(q&NW;`Cm3AN;&7l#3?pv~`R
z7>C)A6s6ZI-p9m&b&mEwsB&J+M8=sj>vi!igt`}D`ZGwszOG>`GR(P8Xh++b%MBFQ
zd?kBs10$4g>GNMz&XY-VZ)M;u%I#|8`2FtAymK8yi^;>lCfPSrKWm;h;^v+7i~Rc;
zxohHccNE!2`S9VxhYue<eE9I;qY5ZbF=6YBt+R1kx7lwr*}BozkJx&nt>3ftXc?U-
z)V2Ym&en$YMj+8-Ytv#jkPMmr)g?pXS~`@f+e4iSr33q^lZ_etEX|uTSjWfFmc><V
zDuq6U#(+X#Tp6Jx5Za*<fi%!0pT&(pCa%(;g%rEyc~A|r4;~B?;!T31AjVVF;#4*_
NDhY%vXKOh~{{Y9z6uSTb

diff --git a/clients/ChangeLog.Dec2016 b/clients/ChangeLog.Dec2016
--- a/clients/ChangeLog.Dec2016
+++ b/clients/ChangeLog.Dec2016
@@ -1,3 +1,7 @@
 # ChangeLog file for clients
 # This file is updated with Maddlog
 
+* Mon Jun 12 2017 Sjoerd Mullender <sjo...@acm.org>
+- A bug was fixed in the implementation of the functions SQLTables in
+  the ODBC driver where not enough memory was allocated.
+
diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -456,13 +456,13 @@ Ready.
 [ "aggr",      "variancep",    "command aggr.variancep(b:bat[:lng], 
g:bat[:oid], e:bat[:any_1]):bat[:dbl] ",   "AGGRvariancep3_dbl;",  "Grouped 
tail variance (population/biased) on lng"      ]
 [ "aggr",      "variancep",    "command aggr.variancep(b:bat[:sht], 
g:bat[:oid], e:bat[:any_1]):bat[:dbl] ",   "AGGRvariancep3_dbl;",  "Grouped 
tail variance (population/biased) on sht"      ]
 [ "aggr",      "variancep",    "command aggr.variancep(b:bat[:any_2]):dbl ",   
"ALGvariancep;",        "Gives the variance of all tail values" ]
-[ "alarm",     "ctime",        "command alarm.ctime():str ",   "ALARMctime;",  
"Return the current time as a C-time string."   ]
+[ "alarm",     "ctime",        "unsafe command alarm.ctime():str ",    
"ALARMctime;",  "Return the current time as a C-time string."   ]
 [ "alarm",     "epilogue",     "command alarm.epilogue():void ",       
"ALARMepilogue;",       "Finalize alarm module."        ]
-[ "alarm",     "epoch",        "command alarm.epoch():int ",   "ALARMepoch;",  
"Return the current time as UNIX epoch."        ]
+[ "alarm",     "epoch",        "unsafe command alarm.epoch():int ",    
"ALARMepoch;",  "Return the current time as UNIX epoch."        ]
 [ "alarm",     "prelude",      "command alarm.prelude():void ",        
"ALARMprelude;",        "Initialize alarm module."      ]
-[ "alarm",     "sleep",        "command alarm.sleep(secs:int):void ",  
"ALARMsleep;",  "Sleep a few seconds"   ]
-[ "alarm",     "time", "command alarm.time():int ",    "ALARMtime;",   "Return 
time in milliseconds."  ]
-[ "alarm",     "usec", "command alarm.usec():lng ",    "ALARMusec;",   "Return 
time in microseconds."  ]
+[ "alarm",     "sleep",        "unsafe command alarm.sleep(secs:int):void ",   
"ALARMsleep;",  "Sleep a few seconds"   ]
+[ "alarm",     "time", "unsafe command alarm.time():int ",     "ALARMtime;",   
"Return time in milliseconds."  ]
+[ "alarm",     "usec", "unsafe command alarm.usec():lng ",     "ALARMusec;",   
"Return time in microseconds."  ]
 [ "algebra",   "antijoin",     "function algebra.antijoin(l:bat[:any_1], 
r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], nil_matches:bit, estimate:lng) 
(X_0:bat[:oid], X_1:bat[:oid]);",   "",     ""      ]
 [ "algebra",   "bandjoin",     "command algebra.bandjoin(l:bat[:any_1], 
r:bat[:any_1], sl:bat[:oid], sr:bat[:oid], c1:any_1, c2:any_1, li:bit, hi:bit, 
estimate:lng) (X_0:bat[:oid], X_1:bat[:oid]) ", "ALGbandjoin;", "Band join: 
values in l and r match if r - c1 <[=] l <[=] r + c2"       ]
 [ "algebra",   "copy", "command algebra.copy(b:bat[:any_1]):bat[:any_1] ",     
"ALGcopy;",     "Returns physical copy of a BAT."       ]
@@ -6076,11 +6076,11 @@ Ready.
 [ "batmtime",  "seconds",      "command 
batmtime.seconds(d:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_seconds_bulk;",   ""      ]
 [ "batmtime",  "sql_seconds",  "command 
batmtime.sql_seconds(d:bat[:daytime]):bat[:int] ",     
"MTIMEdaytime_extract_sql_seconds_bulk;",       ""      ]
 [ "batmtime",  "year", "command batmtime.year(d:bat[:date]):bat[:int] ",       
"MTIMEdate_extract_year_bulk;", ""      ]
-[ "batpyapi",  "eval", "pattern batpyapi.eval(fptr:ptr, expr:str, 
arg:any...):any... ",        "PYAPI2PyAPIevalStd;",  "Execute a simple Python 
script value"  ]
-[ "batpyapi",  "eval_aggr",    "pattern batpyapi.eval_aggr(fptr:ptr, expr:str, 
arg:any...):any... ",   "PYAPI2PyAPIevalAggr;", "grouped aggregates through 
Python"     ]
-[ "batpyapi",  "eval_loader",  "pattern batpyapi.eval_loader(fptr:ptr, 
expr:str):any... ",     "PYAPI2PyAPIevalLoader;",       "loader functions 
through Python"       ]
-[ "batpyapi",  "eval_loader",  "pattern batpyapi.eval_loader(fptr:ptr, 
expr:str, arg:any...):any... ", "PYAPI2PyAPIevalLoader;",       "loader 
functions through Python"       ]
-[ "batpyapi",  "subeval_aggr", "pattern batpyapi.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",        "PYAPI2PyAPIevalAggr;", "grouped 
aggregates through Python"     ]
+[ "batpyapi",  "eval", "unsafe pattern batpyapi.eval(fptr:ptr, expr:str, 
arg:any...):any... ", "PYAPI2PyAPIevalStd;",  "Execute a simple Python script 
value"  ]
+[ "batpyapi",  "eval_aggr",    "unsafe pattern batpyapi.eval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ",    "PYAPI2PyAPIevalAggr;", "grouped aggregates 
through Python"     ]
+[ "batpyapi",  "eval_loader",  "unsafe pattern batpyapi.eval_loader(fptr:ptr, 
expr:str):any... ",      "PYAPI2PyAPIevalLoader;",       "loader functions 
through Python"       ]
+[ "batpyapi",  "eval_loader",  "unsafe pattern batpyapi.eval_loader(fptr:ptr, 
expr:str, arg:any...):any... ",  "PYAPI2PyAPIevalLoader;",       "loader 
functions through Python"       ]
+[ "batpyapi",  "subeval_aggr", "unsafe pattern batpyapi.subeval_aggr(fptr:ptr, 
expr:str, arg:any...):any... ", "PYAPI2PyAPIevalAggr;", "grouped aggregates 
through Python"     ]
 [ "batpyapimap",       "eval", "pattern batpyapimap.eval(fptr:ptr, expr:str, 
arg:any...):any... ",     "PYAPI2PyAPIevalStdMap;",       "Execute a simple 
Python script value"  ]
 [ "batpyapimap",       "eval_aggr",    "pattern 
batpyapimap.eval_aggr(fptr:ptr, expr:str, arg:any...):any... ",        
"PYAPI2PyAPIevalAggrMap;",      "grouped aggregates through Python"     ]
 [ "batpyapimap",       "subeval_aggr", "pattern 
batpyapimap.subeval_aggr(fptr:ptr, expr:str, arg:any...):any... ",     
"PYAPI2PyAPIevalAggrMap;",      "grouped aggregates through Python"     ]
@@ -6204,9 +6204,9 @@ Ready.
 [ "blob",      "toblob",       "command blob.toblob(v:str):blob ",     
"BLOBtoblob;",  "store a string as a blob."     ]
 [ "blob",      "tostring",     "command blob.tostring(v:blob):str ",   
"BLOBfromblob;",        "get the bytes from blob as a string, till\n\tthe first 
0 byte or the end of the blob"  ]
 [ "blob",      "tostring",     "command blob.tostring(v:blob, index:int):str 
",        "BLOBfromidx;", "get the bytes from blob as a string,\n\t starting at 
byte 'index' till the first\n\t0 byte or the end of the blob."    ]
-[ "bstream",   "create",       "command bstream.create(s:streams, 
bufsize:int):bstream ",      "bstream_create_wrapwrap;",     "create a buffered 
stream"      ]
-[ "bstream",   "destroy",      "command bstream.destroy(s:bstream):void ",     
"bstream_destroy_wrapwrap;",    "destroy bstream"       ]
-[ "bstream",   "read", "command bstream.read(s:bstream, size:int):int ",       
"bstream_read_wrapwrap;",       "read at least size bytes into the buffer of s" 
]
+[ "bstream",   "create",       "unsafe command bstream.create(s:streams, 
bufsize:int):bstream ",       "bstream_create_wrapwrap;",     "create a 
buffered stream"      ]
+[ "bstream",   "destroy",      "unsafe command bstream.destroy(s:bstream):void 
",      "bstream_destroy_wrapwrap;",    "destroy bstream"       ]
+[ "bstream",   "read", "unsafe command bstream.read(s:bstream, size:int):int 
",        "bstream_read_wrapwrap;",       "read at least size bytes into the 
buffer of s" ]
 [ "calc",      "!=",   "pattern calc.!=(l:json, r:json):bit ", "CMDvarNE;",    
"Return V1 != V2"       ]
 [ "calc",      "!=",   "pattern calc.!=(l:uuid, r:uuid):bit ", "CMDvarNE;",    
"Return V1 != V2"       ]
 [ "calc",      "!=",   "pattern calc.!=(v1:bit, v2:bit):bit ", "CMDvarNE;",    
"Return V1 != V2"       ]
@@ -7835,20 +7835,20 @@ Ready.
 [ "json",      "unfold",       "pattern json.unfold(val:json) (o:bat[:oid], 
k:bat[:str], v:bat[:json]) ",      "JSONunfold;",  "Expands the outermost JSON 
object into key-value pairs."       ]
 [ "json",      "valuearray",   "command json.valuearray(val:json):json ",      
"JSONvalueArray;",      "Expands the outermost JSON object values into a JSON 
value array."     ]
 [ "json",      "values",       "command json.values(val:json):bat[:json] ",    
"JSONvalueTable;",      "Expands the outermost JSON values."    ]
-[ "language",  "assert",       "command language.assert(v:bit, term:str):void 
",       "MALassertBit;",        ""      ]
-[ "language",  "assert",       "command language.assert(v:int, term:str):void 
",       "MALassertInt;",        ""      ]
-[ "language",  "assert",       "command language.assert(v:lng, term:str):void 
",       "MALassertLng;",        ""      ]
-[ "language",  "assert",       "command language.assert(v:oid, term:str):void 
",       "MALassertOid;",        ""      ]
-[ "language",  "assert",       "command language.assert(v:sht, term:str):void 
",       "MALassertSht;",        ""      ]
-[ "language",  "assert",       "command language.assert(v:str, term:str):void 
",       "MALassertStr;",        ""      ]
-[ "language",  "assert",       "pattern language.assert(v:any_1, pname:str, 
oper:str, val:any_2):void ",       "MALassertTriple;",     "Assertion test."    
   ]
+[ "language",  "assert",       "unsafe command language.assert(v:bit, 
term:str):void ",        "MALassertBit;",        ""      ]
+[ "language",  "assert",       "unsafe command language.assert(v:int, 
term:str):void ",        "MALassertInt;",        ""      ]
+[ "language",  "assert",       "unsafe command language.assert(v:lng, 
term:str):void ",        "MALassertLng;",        ""      ]
+[ "language",  "assert",       "unsafe command language.assert(v:oid, 
term:str):void ",        "MALassertOid;",        ""      ]
+[ "language",  "assert",       "unsafe command language.assert(v:sht, 
term:str):void ",        "MALassertSht;",        ""      ]
+[ "language",  "assert",       "unsafe command language.assert(v:str, 
term:str):void ",        "MALassertStr;",        ""      ]
+[ "language",  "assert",       "unsafe pattern language.assert(v:any_1, 
pname:str, oper:str, val:any_2):void ",        "MALassertTriple;",     
"Assertion test."       ]
 [ "language",  "block",        "pattern language.block(v:int, w:any...):int ", 
"deblockdataflow;",     "Block on availability of all variables w, and then 
pass on v"  ]
 [ "language",  "call", "pattern language.call(s:bat[:str]):void ",     
"CMDcallBAT;",  "Evaluate a program stored in a BAT."   ]
 [ "language",  "call", "pattern language.call(m:str, f:str):void ",    
"CMDcallFunction;",     ""      ]
 [ "language",  "call", "pattern language.call(s:str):void ",   
"CMDcallString;",       "Evaluate a MAL string program."        ]
 [ "language",  "dataflow",     "pattern language.dataflow():bit ",     
"MALstartDataflow;",    "The current guarded block is executed using dataflow 
control. "        ]
 [ "language",  "pass", "pattern language.pass(v:any_1):void ", "MALpass;",     
"Cheap instruction to disgard storage while retaining the dataflow dependency"  
]
-[ "language",  "raise",        "command language.raise(msg:str):str ", 
"CMDraise;",    "Raise an exception labeled \n\twith a specific message."       
]
+[ "language",  "raise",        "unsafe command language.raise(msg:str):str ",  
"CMDraise;",    "Raise an exception labeled \n\twith a specific message."       
]
 [ "language",  "register",     "pattern language.register(m:str, f:str, 
code:str, help:str):void ",    "CMDregisterFunction;", "Compile the code string 
to MAL and register it as a function." ]
 [ "language",  "sink", "pattern language.sink(v:any...):void ",        
"MALgarbagesink;",      "Variables to be considered together when triggering 
garbage collection.\nUsed in the dataflow blocks to avoid early release of 
values."        ]
 [ "language",  "source",       "pattern language.source(f:str):void ", 
"CMDevalFile;", "Merge the instructions stored in the file with the current 
program."   ]
@@ -8022,8 +8022,8 @@ Ready.
 [ "mmath",     "pow",  "command mmath.pow(x:flt, y:flt):flt ", 
"MATHbinary_POWflt;",   ""      ]
 [ "mmath",     "radians",      "command mmath.radians(x:dbl):dbl ",    
"MATHunary_RADIANSdbl;",        "The radians() function converts degrees into 
radians"  ]
 [ "mmath",     "radians",      "command mmath.radians(x:flt):flt ",    
"MATHunary_RADIANSflt;",        ""      ]
-[ "mmath",     "rand", "command mmath.rand():int ",    "MATHrandint;", "return 
a random number"        ]
-[ "mmath",     "rand", "command mmath.rand(v:int):int ",       
"MATHrandintarg;",      "return a random number"        ]
+[ "mmath",     "rand", "unsafe command mmath.rand():int ",     "MATHrandint;", 
"return a random number"        ]
+[ "mmath",     "rand", "unsafe command mmath.rand(v:int):int ",        
"MATHrandintarg;",      "return a random number"        ]
 [ "mmath",     "round",        "command mmath.round(x:dbl, y:int):dbl ",       
"MATHbinary_ROUNDdbl;", "The round(n, m) returns n rounded to m places to the 
right \n        of the decimal point; if m is omitted, to 0 places. m can be 
\n\tnegative to round off digits left of the decimal point. \n        m must be 
an integer." ]
 [ "mmath",     "round",        "command mmath.round(x:flt, y:int):flt ",       
"MATHbinary_ROUNDflt;", ""      ]
 [ "mmath",     "sin",  "command mmath.sin(x:dbl):dbl ",        
"MATHunary_SINdbl;",    "The sin(x) function returns the cosine of x, where x 
is given in \n        radians. The return value is between -1 and 1."     ]
@@ -8099,7 +8099,7 @@ Ready.
 [ "mtime",     "month",        "command mtime.month(t:timestamp):int ",        
"MTIMEtimestamp_month;",        ""      ]
 [ "mtime",     "monthname",    "command mtime.monthname(month:int):str ",      
"MTIMEmonth_to_str;",   "Returns month name from a number\n\tbetween [1-12], 
str(nil) otherwise."       ]
 [ "mtime",     "monthnum",     "command mtime.monthnum(month:str):int ",       
"MTIMEmonth_from_str;", "Returns month number [1-12] from a string\n\t or nil 
if does not match any."   ]
-[ "mtime",     "msec", "command mtime.msec():lng ",    "MTIMEmsec;",   "get 
time of day in msec since 1-1-1970."       ]
+[ "mtime",     "msec", "unsafe command mtime.msec():lng ",     "MTIMEmsec;",   
"get time of day in msec since 1-1-1970."       ]
 [ "mtime",     "msecs",        "command mtime.msecs(d:int, h:int, m:int, 
s:int, ms:int):lng ", "MTIMEmsecs;",  "convert date components to milliseconds" 
      ]
 [ "mtime",     "prelude",      "command mtime.prelude():void ",        
"MTIMEprelude;",        ""      ]
 [ "mtime",     "rule", "command mtime.rule(mo:int, d:int, wkday:int, 
mi:int):zrule ",  "MTIMErule_create;",    "create a DST start/end date rule."   
  ]
@@ -8144,14 +8144,14 @@ Ready.
 [ "netcdf",    "importvar",    "command netcdf.importvar(filename:str, 
varid:int):str ",       "NCDFimportVarStmt;",   "Import variable: compose 
create array string"  ]
 [ "netcdf",    "importvariable",       "pattern 
netcdf.importvariable(fileid:int, varname:str):void ", "NCDFimportVariable;",  
"Import variable: create array and load data from variable varname of file 
fileid"      ]
 [ "netcdf",    "test", "command netcdf.test(filename:str):int ",       
"NCDFtest;",    "Returns number of variables in a given NetCDF dataset (file)"  
]
-[ "oltp",      "disable",      "pattern oltp.disable():void ", "OLTPdisable;", 
"Disable the OLTP delay monitor"        ]
-[ "oltp",      "enable",       "pattern oltp.enable():void ",  "OLTPenable;",  
"Enable the OLTP delay monitor" ]
-[ "oltp",      "init", "pattern oltp.init():void ",    "OLTPinit;",    
"Initialize the lock table"     ]
-[ "oltp",      "isenabled",    "command oltp.isenabled():int ",        
"OLTPis_enabled;",      "Query the OLTP state"  ]
-[ "oltp",      "lock", "pattern oltp.lock(lck:int...):void ",  "OLTPlock;",    
"Wait for all write locks needed"       ]
-[ "oltp",      "release",      "pattern oltp.release(lck:int...):void ",       
"OLTPrelease;", "Release for all write locks needed"    ]
-[ "oltp",      "reset",        "pattern oltp.reset():void ",   "OLTPreset;",   
"Reset the OLTP lock table"     ]
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to