Hi,
I am getting some strange exceptions using MonetDB JDBC 1.8/1.9, and I
decided to look into the code. While inspecting the code I came across
these strange lines in MonetConnection.executeQuery(String[] templ,
String query) method
(http://dev.monetdb.org/hg/MonetDB/file/718da8ca0a1a/java/src/nl/cwi/monetdb…).
In my case, these lines are executed for sure when doing a batch
insert. So, suppose that the batch contains the following commands (as
constructed by the MonetStatement.executeBatch() method):
exec 1(1, 957339737330229055);
exec 1(2, 278262503670654331);
exec 1(805306369, 3763943296910752235)
The lines in question take the above commands as a string, prepend a
's' character and append a ';' at the end. The resulting commands,
which are written in the server's socket, are the following:
sexec 1(1, 957339737330229055);
exec 1(2, 278262503670654331);
exec 1(805306369, 3763943296910752235);
First of all, I am not familiar with the internals of JDBC drivers.
Taking this into account, is this what it should be? From a symmetric
point of view, I would assume that the correct would be the following:
sexec 1(1, 957339737330229055);
sexec 1(2, 278262503670654331);
sexec 1(805306369, 3763943296910752235);
That is, it should prepend a 's' character before an exec command.
Last, are these exec commands (with or without a prepending 's')
specific to MonetDB? In either case, is there any documentation to get
familiar with their meaning?
Thanks a lot,
Babis
Hallo MonetDB-Team,
I have been trying to understand MonetDB-MAL better.
I have prepared a table called TEST1.
sql>SELECT * FROM TEST1;
+-----+
| een |
+=====+
+-----+
0 tuples (1.452ms)
In order to see the internal process I use the command EXPLAIN.
sql>EXPLAIN SELECT * FROM TEST1;
+---------------------------------------------------------------------------------------------------+
| mal
|
+===================================================================================================+
| function user.s3_2{autoCommit=true}():void;
|
| barrier _32 := language.dataflow();
|
| _2 := sql.mvc();
|
| _12:bat[:oid,:str] := sql.bind(_2,"sys","test1","een",0);
|
| _10:bat[:oid,:str] := sql.bind(_2,"sys","test1","een",2);
|
| _14 := algebra.kdifference(_12,_10);
|
| _15 := algebra.kunion(_14,_10);
|
| _9:bat[:oid,:str] := sql.bind(_2,"sys","test1","een",1);
|
| _16 := algebra.kunion(_15,_9);
|
| _5:bat[:oid,:oid] := sql.bind_dbat(_2,"sys","test1",1);
|
| _8 := bat.reverse(_5);
|
| _17 := algebra.kdifference(_16,_8);
|
| exit _32;
|
| _18 := sql.resultSet(1,1,_17);
|
| sql.rsColumn(_18,"sys.test1","een","char",2,0,_17);
|
| _22 := io.stdout();
|
| sql.exportResult(_22,_18);
|
| end s3_2;
|
+---------------------------------------------------------------------------------------------------+
18 tuples (1.240ms)
Then I have tried to run the command from the lower level.
Basically it is almost a copy of the above result.
mal>function user.abc{autoCommit=true}():void;
mal>barrier _32 := language.dataflow();
mal>_2 := sql.mvc();
mal>_12:bat[:oid,:str] := sql.bind(_2,"sys","test1","een",0);
mal>_10:bat[:oid,:str] := sql.bind(_2,"sys","test1","een",2);
mal>_14 := algebra.kdifference(_12,_10);
mal>_15 := algebra.kunion(_14,_10);
mal>_9:bat[:oid,:str] := sql.bind(_2,"sys","test1","een",1);
mal>_16 := algebra.kunion(_15,_9);
mal>_5:bat[:oid,:oid] := sql.bind_dbat(_2,"sys","test1",1);
mal>_8 := bat.reverse(_5);
mal>_17 := algebra.kdifference(_16,_8);
mal>exit _32;
mal>_18 := sql.resultSet(1,1,_17);
mal>sql.rsColumn(_18,"sys.test1","een","char",2,0,_17);
mal>_22 := io.stdout();
mal>sql.exportResult(_22,_18);
mal>end abc;
MAPI = (monetdb) /tmp/.s.monetdb.50000
QUERY = end abc;
ERROR = !TypeException:user.abc[13]:'X17' may not be used before being
initialized
!TypeException:user.abc[14]:'X17' may not be used before being
initialized
I expected to get a result like this:
+-----+
| een |
+=====+
+-----+
But instead, I got an error message.
Is there probably anyone who could tell me what the error message means and
what I need to change in the MAL-syntax?
Another question: Maybe you could give a hint where I can find good
references about SQL-MAL correlation.
Thank you in advance!
Kind regards,
Liang Bing
--
View this message in context: http://old.nabble.com/SQL-MAL-correlation-tp32557812p32557812.html
Sent from the monetdb-users mailing list archive at Nabble.com.
The MonetDB team at CWI/MonetDB BV is pleased to announce the
Aug2011-SP1 bugfix release of the MonetDB suite of programs.
More information about MonetDB can be found on our website at
http://www.monetdb.org/.
For details on this release, please see the release notes at
<http://www.monetdb.org/Downloads/ReleaseNotes>.
As usual, the download location is <http://dev.monetdb.org/downloads/>.
Aug 2011-SP1 bugfix release
SQL * Fixed a bug when using default values for interval
columns. Bug 2877.
* A bug was fixed where deleted rows weren't properly
accounted for in all operations. This was bug 2882.
* A bug was fixed which caused an update to an internal
table to happen too soon. The bug could be observed on
a multicore system with a query INSERT INTO t (SELECT
* FROM t) when the table t is "large enough". This was
bug 2883.
Client Package * Fixed Perl DBD rowcount for larger results, bug #2889
* Perl: We now distinguish properly between TABLE and
GLOBAL TEMPORARY (the latter are recognized by being
in the "tmp" schema).
* Perl: fixed a bunch of syntax errors. This fixes bug
2884. With thanks to Rémy Chibois.
* Perl: Fixed DBD::monetdb table_info and
tabletype_info. This fixes bug 2885. With thanks to
Rémy Chibois.
* mclient: fix display of varchar columns with only NULL
values.
* Fixed a bug in mclient/msqldump where an internal
error occurred during dump when there are GLOBAL
TEMPORARY tables.
MonetDB5 Server * Fixed a problem where MAL variables weren't properly
cleared before reuse of the data strucutre. This
problem could cause the data flow scheduler to
generate dependencies between instructions that didn't
actually exist, which in turn could cause circular
dependencies among instructions with deadlock as a
result. Bugs 2865 and 2888.
Bug Fixes * 2865: mserver5 --set gdk_nr_threads=2 --forcemito:
deadlock during first SQL client connect on virgin
(empty) DB
* 2877: assertion failed when creating table with
default interval
* 2879: A SELECT query fails to produce some results
* 2882: Delete of some records don't work on Monetdb
* 2883: insert into t (select * from t) bogus in
multithreaded execution
* 2884: Mapi.pm and GetInfo.pm syntax fixes for array
usage
* 2885: DBD::monetdb table_info error
* 2887: Division by zero error, when should not divide
at 0
* 2888: test/null/null_in_case.sql hangs server
* 2889: Mapi::getBlock is erasing query count on second
call
Hi,
I have table t1(f1 integer)
I can copy to it by executing this file via mclient:
$ cat /tmp/f1.sql
copy into t1 from stdin;
1
2
3
But I can't copy to it by this perl script:
$ cat /tmp/f1.pl
#!/usr/bin/perl -w
use DBI;
my $dbh = DBI->connect('dbi:monetdb:database=db', 'dbadmin', "dbpwd");
$dbh->do("copy into t1 from stdin;\n1\n2\n3\n");
I got:
Missing argument in sprintf at /usr/lib64/perl5/DBD/monetdb/GetInfo.pm line 25.
No query result at /usr/lib64/perl5/MonetDB/CLI/MapiLib.pm line 80.
Use of uninitialized value in die at
/usr/lib64/perl5/MonetDB/CLI/MapiLib.pm line 180.
(in cleanup) Died at /usr/lib64/perl5/MonetDB/CLI/MapiLib.pm line 180.
Why can it be?
--
Thanks,
Eugene Prokopiev
Hi,
I try to use CSV Data Fault (Documented here
http://www.monetdb.org/Documentation/Cookbooks/SQLrecipies/CSVvault) without
great succes...
Just quick question is CSV Data Fault function still included in last
version of MonetDB ?
Except that MonetDB is really fantastic software. Thanks for sharing it !
Regards,
--
*Stéphane NOUHAUD*
*
*
I have a large table with about 50 billion records. The files to be loaded
are not in CSV format. The files are processed in java and the data uploaded
to the database using COPY INTO through the MapiSocket interface.
I do not have the record count readily available.
My question is this: If I open multiple MapiSockets and upload multiple
streams of data at the same time to the same table, is this supported and
stable?
I am asking because the database appears to become unresponsive after the
bulk load. (mclient seems to hang on connect)
If I stop and the start the database after the bulk load, I get:
"failed to fork mserver: database 'test_db' has inconsistent state (sabaoth
administration reports running, but process seems gone)"
--
View this message in context: http://old.nabble.com/Parallel-COPY-INTO-tp32503834p32503834.html
Sent from the monetdb-users mailing list archive at Nabble.com.
Does Monetdb supports basic table partitioning using MAPI? I need to split
one large table into smaller physical pieces and improve query performance.
I didn't find help in documentation.
Thanks for help
--
View this message in context: http://old.nabble.com/Partitioning-on-Monetdb-tp32493404p32493404.html
Sent from the monetdb-users mailing list archive at Nabble.com.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi,
The new logo is online on the new website for a while now, is there
any EPS/SVG or other vector format available?
Stefan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEAREKAAYFAk547rYACgkQYH1+F2Rqwn14VwCgioRrllvOlEUwHJke6eLxdXca
rm0An2CwkBr1KoUWmgYewB64U5B49GtS
=ef+A
-----END PGP SIGNATURE-----