keeping the BAT open (I always use "bat("name").XXX", or keep a ref
variable in a block. So, as far as I can tell, I should not have 7500 BATs
open at once.
Am I misunderstanding? Or is there some underlying component/module
keeping the BATs open? Or is this just the amount of memory MonetDB will
use? I do not have a BAT of BATs (as I was sure that this would cause
problems, and from your description, will indeed).
Thanks!
Ed
columns in a BAT (ie, BAT[OID, any]), is this just the first BUN?
For update operations, does this mean that in the middle of inserting into
a set of BATs, that as the BUN count is different, a concurrent query may
not realize that the two BATs are synced? (this gets back to multiple
client isolation for changes)
Thanks for your time!
Regards!
Ed
"For BAT-sets that contain exactly the same sets of OIDs, those
OID-columns can be marked synced(). This information is then used to use
positional lookup (the i-th element in BAT1 corresponds with the i-th in
BAT2) and to turn semijoin- into very cheap copy-operations, etc."
almost makes it sound as if you need synched() to actual test and set this
bit. Is this true? How is the "syncedness" ensured when I have a BAT[OID,
any], or determined?
The MonetDB team at MonetDB BV is pleased to announce a feature release
of the MonetDB JDBC driver (monetdb-jdbc-3.2.jre8.jar) and JdbcClient
CLI program (jdbcclient.jre8.jar).
The new release adds the capability to use the SQL:
COPY ... INTO ... ON CLIENT
statements via Java from the client side. This allows users and
programmers to use the much faster COPY statements to load large data
sets into MonetDB from a local client side CSV file or stream.
The JDBC MonetConnection API has been extended with methods to register
and use Upload and Download Handlers to stream the data from the Java
client application to the server and/or from the server to the Java
client. See <https://www.monetdb.org/downloads/Java/onclient.txt> for
details.
The new functionality has also been added to the JdbcClient CLI program,
so you can now also use COPY ... INTO ... ON CLIENT statements from this
CLI program, provided you have started it with a --csvdir argument. The
CSV data files may also be gzip compressed (file name ends with: .gz).
Besides this new functionality we also improved both the JDBC driver and
JdbcClient to work optimal with the new MonetDB Jan2022 server release.
For a list of all changes please read:
<https://www.monetdb.org/downloads/Java/ChangeLog>.
We recommend all users of MonetDB JDBC driver and/or JdbcClient program
to upgrade to this new release. Especially if you use the new MonetDB
Jan2022 server release, you should use the new jar files. The download
location is as usual: <https://www.monetdb.org/downloads/Java/>.
For information and tips on using the MonetDB JDBC driver, read:
<https://www.monetdb.org/downloads/Java/release.txt>.
Reminder: as of release monetdb-jdbc-3.0.jre8.jar the MonetDB JDBC
Driver class name has been changed to: org.monetdb.jdbc.MonetDriver
It used to be nl.cwi.monetdb.jdbc.MonetDriver which is marked as
deprecated. Please use the new driver class name asap in your
configuration files/scripts and/or Java code.
The old driver class name is currently still included in the jdbc jar
file but only to ease the transition for existing deployments. The old
driver class will be removed in a future release of the MonetDB JDBC driver.
The MonetDB team at MonetDB BV is pleased to announce the
Jan2022 feature release of the MonetDB suite of programs.
More information about MonetDB can be found on our website at
<https://www.monetdb.org/>.
For details on this release, please see the release notes at
<https://www.monetdb.org/Downloads/ReleaseNotes>.
As usual, the download location is <https://www.monetdb.org/downloads/>.
## Jan2022 Feature Release (11.43.5)
###
- A couple of concurrency issues have been fixed.
### Windows Packaging
- We now build Windows binaries using Visual Studio 2022.
### Client Package
- A new output formatting mode was added to mclient. Use -fcsv-noquote
to produce a CSV (comma-separated values) output where the quote
characters have not been escapes. This can be useful when producing
a single column string output that should be saved as is, e.g. when
using the sys.dump_database() function.
### MonetDB Common
- Implement string imprints (strimps for short) a pre-filter structure
for strings in order to accelerate LIKE queries. If a strimp exists
for a specific string column the strings are pre-filtered, rejecting
strings that cannot possibly match, before the more expensive and
accurate matching algorithms run.
- On Windows, files and directories we create now get the attribute
FILE_ATTIBUTE_NOT_CONTENT_INDEXED, meaning that they should not be
indexed by indexing or search services.
- Many (most) low level functions that could take a long time (such as
BATjoin) can now be aborted with a timeout. When the function takes too
long, the function will fail, and hence the whole SQL query will fail.
- At some point in the past, string heaps were created where the
hash value of the string was stored in the heap before the string.
This hasn't been used in a long time. Now the code that could still
read those old heaps has been removed. Bats that used the old format
are converted automatically.
- Some small interface changes to the atom functions: the atomPut function
now returns (var_t) -1 on error instead of 0; the atomHeap function
now returns success or failure as a gdk_return value.
### General
- Reliance on the OpenSSL library has been removed. OpenSSL was used
for the hash algorithms it contained (e.g. SHA512 and RIPEMD160) and
for producing random numbers. The hash functions have been replaced
by the original published functions, and random numbers are generated
using system-specific random sources (i.e. not simply pseudo-random
number generators).
### MonetDB5 Server
- The storage cleanup in the 11.41.5 (Jul2021) release made the OLTP
optimizer pipeline obsolete, thus it was removed.
### SQL Frontend
- Add string imprints to the existing imprints index creation syntax. On
string column "col" of a table "tbl" marked read only ("ALTER TABLE tbl
SET READ ONLY") the user can create a string imprint using the syntax:
"CREATE IMPRINTS INDEX index_name ON tbl(col);".
- With the storage cleanup in the 11.41.5 (Jul2021) release, the ANALYZE
statement was updated to accomodate those changes. The SAMPLE parameter
is now ignored because ANALYZE generated statistics used by
relational operators, are required to be precise.
- In order to mitigate the I/O required to update the 'statistics' table,
this table is no longer persisted. Alternately, it was changed into a
computed view every time when queried. The 'stamp' and 'sample' fields
were removed for the aforementioned reasons. The 'schema', 'table' and
'column' fields were added for convenience.
- In previous versions there was no check that the INCREMENT BY value of
a SEQUENCE was not zero. During the automatic upgrade of a database,
INCREMENT BY values that are zero are set to one.
- The method to compute the 'side_effect' effect property was changed
for SQL functions defined in the backend engine (eg. ``CREATE FUNCTION
... EXTERNAL NAME "module"."function"''). It was changed from being
computed by the SQL layer to the backend engine itself. As a consequence,
the computed 'side_effect' value may be different, thus bringing
incompatibilities. After an upgrade, if a 'side_effect' incompatibility
arises, either the 'side_effect' value in the backend should be changed or
the function should be re-created in SQL.
- Removed deprecated system view sys.systemfunctions. It was marked
as deprecated from release Apr2019 (11.33.3). Use query:
select id as function_id from sys.functions where system;
to get the same data as the old view.
- Extended SQL system catalog with lookup table sys.fkey_actions and
view sys.fkeys to provide user friendly querying of existing foreign
keys and their ON UPDATE and ON DELETE referential action specifications.
- Many improvements were done for REMOTE table plans. As a consequence,
master or slave servers from this feature release are not compatible
with older releases.
- The view sys.ids has been changed to give more information about the
objects in the system. In particular, there is an extra column
added at the end that indicates whether the object is a system
object.
- The example modules opt_sql_append and udf are no longer loaded by
default and no longer part of the binary release. If installed,
they can be loaded using the --loadmodule option.
- The built-in SQL functions to produce a dump that were added as a
proof-of-concept in the previous release have been improved and are
now usable. Use the query ``SELECT stmt FROM sys.dump_database(FALSE)
ORDER BY o'' to produce a dump. The dump code built into mclient and
msqldump is probably still more efficient, though.
- The sys.epoch function has always been confusing. There are two
versions, one with an INTEGER argument, and one with a BIGINT
argument. The former accepted values as seconds, whereas the
latter expected milliseconds. Also, the construct EXTRACT(EPOCH
FROM value) returns a BIGINT with millisecond precision. This has
now been overhauled. There is no longer a function sys.epoch with
BIGINT argument, but instead there is a new function sys.epoch with
DECIMAL(18,3) argument. The argument is seconds, but with 3 decimals,
it provides millisecond accuracy. Also the EXTRACT(EPOCH FROM value)
now returns a DECIMAL(18,3), again seconds with 3 decimals giving
millisecond accuracy. Note that the internal, binary representation
of DECIMAL(18,3) interpreted as seconds with 3 decimals and BIGINT
with millisecond precision is exactly the same.
### Merovingian
- Disabled logging into merovingian.log of next info message types:
- proxying client <host>:<port> for database '<dbname>' to <url>
- target connection is on local UNIX domain socket, passing on filedescriptor instead of proxying
These messages were written to the log file at each connection. In most
cases this information is not used. The disabling reduces the log file size.
- Removed the deprecated monetdb commands `profilerstart` and
`profilerstop`.
### Bug Fixes
- [7168](https://github.com/MonetDB/MonetDB/issues/7168): Loosing the documentation
- [7180](https://github.com/MonetDB/MonetDB/issues/7180): GROUP BY-subquery crashes MonetDb
- [7182](https://github.com/MonetDB/MonetDB/issues/7182): Queries against sys.querylog_catalog, sys.querylog_calls or sys.querylog_history fail after restore of a db created using call sys.hot_snapshot(R'\path\file.tar');
- [7201](https://github.com/MonetDB/MonetDB/issues/7201): Selection of a subquery with a LEFT JOIN returns the wrong result set
- [7202](https://github.com/MonetDB/MonetDB/issues/7202): DISTINCT does not work when sorting by additional columns
- [7215](https://github.com/MonetDB/MonetDB/issues/7215): ODBC Driver SQLStatistics returns duplicate rows/rows for other tables
Hi there,
I'm moving some code to Jul2021, and I got a bit stuck on this.
The issue can be simplified to this (make a copy and, append another bat,
and make the result read-only):
bn = COLcopy(b, b->ttype, true, TRANSIENT);
ret = BATappend(bn,u, s, force ? *force : false);
bn = BATsetaccess(bn, BAT_READ);
The only superficial difference from Oct2020 is that now BATaccess returns
the modified bat instead of a gdk_return.
The issue I see is that BATsetaccess() returns NULL, due to m1 ==
STORE_INVALID.
Am I using this wrong? Any help is appreciated.
Cheers, Roberto
Hi all,
Not really a bug report because I did not manage to figure out the cause.
However, after upgrading from FC31 to FC32 I could not login any more, due
to SELinux problems. Auto-relabeling did not work, nothing really...
... until I did dnf uninstall MonetDB-selinux.
I came to this point because trying to give systemd services the correct
labels with restorecon failed with an error referencing a monetdb specific
file.
I do not have the details unfortunately, but if you get problems, beware
that MonetDB SELinux package and systemd may interfere in some way beyond
my knowledge of these services.
Best regards,
Arjen
PS: Some output from logs:
sudo ausearch -c monetdb -m AVC,SELINUX_ERR
[..]
----
time->Sat May 2 20:57:01 2020
type=AVC msg=audit(1588445821.693:203): avc: denied { open } for
pid=1232 comm="monetdbd" path="/etc/resolv.conf" dev="dm-0" ino=3409775
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:default_t:s0 tclass=file permissive=1
----
time->Sat May 2 21:12:56 2020
type=AVC msg=audit(1588446776.043:1194): avc: denied { execute } for
pid=2861 comm="(monetdbd)" name="monetdbd" dev="dm-0" ino=2147256
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:unlabeled_t:s0 tclass=file permissive=1
trawcon="unconfined_u:object_r:monetdbd_exec_t:s0"
----
time->Sat May 2 21:12:56 2020
type=AVC msg=audit(1588446776.043:1195): avc: denied { execute_no_trans }
for pid=2861 comm="(monetdbd)" path="/usr/bin/monetdbd" dev="dm-0"
ino=2147256 scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:unlabeled_t:s0 tclass=file permissive=1
trawcon="unconfined_u:object_r:monetdbd_exec_t:s0"
----
time->Sat May 2 21:12:56 2020
type=AVC msg=audit(1588446776.044:1196): avc: denied { map } for
pid=2861 comm="monetdbd" path="/usr/bin/monetdbd" dev="dm-0" ino=2147256
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:unlabeled_t:s0 tclass=file permissive=1
trawcon="unconfined_u:object_r:monetdbd_exec_t:s0"
----
time->Sat May 2 21:12:56 2020
type=AVC msg=audit(1588446776.714:1197): avc: denied { remove_name } for
pid=1232 comm="monetdbd" name="merovingian.pid" dev="tmpfs" ino=34369
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:unlabeled_t:s0 tclass=dir permissive=1
trawcon="system_u:object_r:monetdbd_var_run_t:s0"
----
time->Sat May 2 21:12:56 2020
type=AVC msg=audit(1588446776.714:1198): avc: denied { unlink } for
pid=1232 comm="monetdbd" name="merovingian.pid" dev="tmpfs" ino=34369
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:unlabeled_t:s0 tclass=file permissive=1
----
time->Sat May 2 21:12:56 2020
type=AVC msg=audit(1588446776.714:1199): avc: denied { write } for
pid=1232 comm="monetdbd" name=".merovingian_lock" dev="dm-0" ino=5899443
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:unlabeled_t:s0 tclass=file permissive=1
trawcon="system_u:object_r:monetdbd_lock_t:s0"
----
time->Sat May 2 21:13:15 2020
type=AVC msg=audit(1588446795.214:1209): avc: denied { read } for
pid=2925 comm="(monetdbd)" name="passwd" dev="dm-0" ino=524514
scontext=system_u:system_r:init_t:s0 tcontext=system_u:object_r:var_t:s0
tclass=file permissive=1
----
time->Sat May 2 21:13:15 2020
type=AVC msg=audit(1588446795.214:1210): avc: denied { open } for
pid=2925 comm="(monetdbd)" path="/var/lib/sss/mc/passwd" dev="dm-0"
ino=524514 scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:var_t:s0 tclass=file permissive=1
----
time->Sat May 2 21:13:15 2020
type=AVC msg=audit(1588446795.214:1211): avc: denied { map } for
pid=2925 comm="(monetdbd)" path="/var/lib/sss/mc/passwd" dev="dm-0"
ino=524514 scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:var_t:s0 tclass=file permissive=1
----
time->Sat May 2 21:14:24 2020
type=AVC msg=audit(1588446864.487:1281): avc: denied { read } for
pid=3072 comm="(monetdbd)" name="passwd" dev="dm-0" ino=524514
scontext=system_u:system_r:init_t:s0 tcontext=system_u:object_r:var_t:s0
tclass=file permissive=1
----
time->Sat May 2 21:14:24 2020
type=AVC msg=audit(1588446864.487:1282): avc: denied { open } for
pid=3072 comm="(monetdbd)" path="/var/lib/sss/mc/passwd" dev="dm-0"
ino=524514 scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:var_t:s0 tclass=file permissive=1
----
time->Sat May 2 21:14:24 2020
type=AVC msg=audit(1588446864.487:1283): avc: denied { map } for
pid=3072 comm="(monetdbd)" path="/var/lib/sss/mc/passwd" dev="dm-0"
ino=524514 scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:var_t:s0 tclass=file permissive=1
--
====================================================================
ICIS, office M1.00.05 Radboud University
Mercator 1 Faculty of Science
Toernooiveld 212 arjen(a)cs.ru.nl
NL-6525 EC Nijmegen, The Netherlands +31-(0)24-365 2354
===================== http://www.informagus.nl/ ====================
--
====================================================================
ICIS, office M1.00.05 Radboud University
Mercator 1 Faculty of Science
Toernooiveld 212 arjen(a)cs.ru.nl
NL-6525 EC Nijmegen, The Netherlands +31-(0)24-365 2354
===================== http://www.informagus.nl/ ====================
The MonetDB team at MonetDB BV is pleased to announce the
Jul2021-SP2 bugfix release of the MonetDB suite of programs.
More information about MonetDB can be found on our website at
<https://www.monetdb.org/>.
For details on this release, please see the release notes at
<https://www.monetdb.org/Downloads/ReleaseNotes>.
As usual, the download location is <https://www.monetdb.org/downloads/>.
Jul2021-SP2 Bugfix Release (11.41.13)
Client Package
* Dumping the database now also dumps the read-only and insert-only
states of tables.
MonetDB Common
* Sometimes when the server was restarted, it wouldn't start anymore
due to an error from BBPcheckbats. We finally found and fixed a
(hopefully "the") cause of this problem.
SQL Frontend
* Number parsing for SQL was fixed. If a number was immediately
followed by letters (i.e. without a space), the number was accepted
and the alphanumeric string starting with the letter was
interpreted as an alias (if aliases were allowed in that position).
Bug Fixes
* 7163: Multiple sql.mvc() invocations in the same query
* 7167: sys.shutdown() problems
* 7184: Insert into query blocks all other queries
* 7185: GROUPING SETS on groups with aliases provided in the SELECT
returns empty result
* 7186: data files created with COPY SELECT .. INTO 'file.csv' fail
to be loaded using COPY INTO .. FROM 'file.csv' when double quoted
string data contains the field values delimiter character
* 7191: [MonetDBe] monetdbe_cleanup_statement() with bound NULLs on
variable-sized types bug
* 7196: BATproject2: does not match always
* 7198: Suboptimal query plan for query containing JSON access filter
and two negative string comparisons
* 7200: PRIMARY KEY unique constraint is violated with concurrent
inserts
* 7206: Python UDF fails when returning an empty table as a
dictionary