[Monetdb-developers] Problems with SQL module...

Romulo Goncalves R.A.Goncalves at cwi.nl
Thu Oct 12 14:51:43 CEST 2006


Dear all,

I founded some problems in SQL module. Maybe they are not problems just 
a misunderstood.

To see the problems in your computer just start a mserver5, load sql 
module, and sql.start();
Then start a mclient -lsql.

First Problem:

Execute this two queries in the mclient:

CREATE FUNCTION zero(id int)
RETURNS int
BEGIN
	IF id > 0
		THEN RETURN 1;
		ELSE RETURN 0;
	END IF;
END;

CREATE FUNCTION TEST()
RETURNS BOOLEAN
BEGIN
	DECLARE x int;
	SET x = zero(1);
	IF x > 0
		THEN RETURN TRUE;
		ELSE RETURN FALSE;
	END IF;
END;

UNTIL now you should not find any problems.
Lets see the first problem:

In the mclient execute:
SELECT test();

I got this error:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1098918240 (LWP 14589)]
0x00002aaaaaaba2c1 in idcmp (n=0x2aaab485227b "destroy", m=0x0)
     at /ufs/goncalve/MonetDB/MonetDB5/monet5/src/mal/mal_type.mx:251
251             if (* n == * m)
(gdb) up
#1  0x00002aaab483ab94 in isUpdated (mb=0xf59548, pc=9)
     at 
/ufs/goncalve/MonetDB/MonetDB5/monet5/src/optimizer/opt_support.mx:885
885                                     if (idcmp("destroy", 
getFunctionId(q)) = = 0)
(gdb) up
#2  0x00002aaab483f287 in OPTcommonTermsImplementation (mb=0xf59548, 
stk=0x0,
     pci=0x0)
     at 
/ufs/goncalve/MonetDB/MonetDB5/monet5/src/optimizer/opt_commonTerms.mx:17 6
176                                     if (hasSameSignature(p, q) &&
(gdb) up
#3  0x00002aaab483f718 in OPTcommonTerms (mb=0xf59548, stk=0x0, p=0x0)
     at 
/ufs/goncalve/MonetDB/MonetDB5/monet5/src/optimizer/opt_commonTerms.mx:24 9
Line number 249 out of range; 
/ufs/goncalve/MonetDB/MonetDB5/monet5/src/optimize r/opt_commonTerms.mx 
has 220 lines.
(gdb) up
#4  0x00002aaab4efb73a in addQueryToCache (c=0x503a10)
     at 
/ufs/goncalve/MonetDB/SQL/sql/src/backends/monet5/sql_optimizer.mx:434
434                     OPTcommonTerms(mb,0,0); /* common terms */
(gdb) up
#5  0x00002aaab4efa84e in backend_create_func (be=0x10e1218, f=0x10e80b8)
     at 
/ufs/goncalve/MonetDB/SQL/sql/src/backends/monet5/sql_gencode.mx:1938
1938            addQueryToCache(c);

If you want all the details, run your mserver with gdb (I know that you 
know the procedures for debugging). ;)

Second problem:

If I restart the mclient and restart the mserver:
The mclient can see the functions in the table sys.functions, but the 
client started in the server by sql.start() does see the functions created.


Third problem:
Just execute the following query:
select * from functions where name like 'hash';

Why they are so many rows with the same information for the function hash?


Fourth problem:

Just create the following function:

CREATE FUNCTION niels(id_val int)
RETURNS TABLE (id int)
         BEGIN
         DECLARE TABLE roro(id int);
         RETURN TABLE (SELECT id from functions where id = id_val order 
by id);
END;

I will try to correct this bugs, but until there I will appreciate some 
help.

This problems are delaying the translation of Skyserver functions and 
also the my implementation of Dependency Control table.

Best Regards,
Romulo Goncalves








More information about the developers-list mailing list