Bugs item #1850809, was opened at 2007-12-14 15:23
Message generated for change (Comment added) made by romulog
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=1850809&group_id=56967

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: SQL/Core
Group: SQL 2.20
>Status: Closed
>Resolution: Fixed
Priority: 5
Private: No
Submitted By: Romulo Goncalves (romulog)
Assigned to: Niels Nes (nielsnes)
Summary: create the same temp table after its drop...

Initial Comment:
The following SQL code crash the M5-SQL server:
Note: You need to run in this order and you need to run all the queries.

CREATE TEMP TABLE temptest(col int) ON COMMIT DELETE ROWS;
INSERT INTO temptest VALUES (1);
DROP TABLE temptest;
CREATE TEMP TABLE temptest(col int) ON COMMIT DROP;
INSERT INTO temptest VALUES (3);

The but it is really weird... If I remove the first insertion the mserver does 
not crash and I get:

MAPI  = [EMAIL PROTECTED]:50000
QUERY = INSERT INTO temptest VALUES (3);
ERROR = !INSERT INTO: no such table 'temptest'



If I do not remove any line I get:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1107310912 (LWP 1184)]
0x00002aaabc747410 in cs_find_name (cs=0x48, name=0x1aa2e88 "col") at 
/ufs/goncalve/MonetDB/Stable/sql/src/storage/sql_catalog.mx:25
25              return list_find_name(cs->set, name);
(gdb) up
#1  0x00002aaabc747727 in find_sql_column_node (t=0x0, cname=0x1aa2e88 "col", 
id=-1) at /ufs/goncalve/MonetDB/Stable/sql/src/storage/sql_catalog.mx:139
139                     return cs_find_name(&t->columns, cname);
(gdb)



It seems the cleaning is not done properly ;)

Regards,
Romulo

----------------------------------------------------------------------

>Comment By: Romulo Goncalves (romulog)
Date: 2007-12-18 13:25

Message:
Logged In: YES 
user_id=1498628
Originator: YES

When a temp table has the commit action different than DROP the cache
should be refreshed...

opt_on_commit: /* only for temporary tables */
    /* empty */                  { $$ = CA_DELETE; }
 |  ON COMMIT sqlDELETE ROWS     { $$ = CA_DELETE; }
 |  ON COMMIT PRESERVE ROWS      { $$ = CA_PRESERVE; }
 |  ON COMMIT DROP               { $$ = CA_DROP; }
 ;

The fix is in the check in :
[Monetdb-sql-checkins] sql/src/storage store.mx, SQL_2-20,
1.1.4.1,        1.1.4.2

Ro....

----------------------------------------------------------------------

Comment By: Romulo Goncalves (romulog)
Date: 2007-12-18 00:15

Message:
Logged In: YES 
user_id=1498628
Originator: YES

It seems we have here a cache problem...
It seems the first insert stays in cache and then it is not removed
properly when the table is dropped.

So in the next insertion the table does not exist (because after the
commit this temp table is removed). This error is seen at the MAL code
(produce by the SQL level) execution. When I do the bind of a column the
table is missing and at this stage we expect that the checks were already
done, so that's why the mserver crashes...

I decide to change the syntax of second insertion to avoid the cache:
Insert into temptest(col) values(3);

And it works...

Niels? 

----------------------------------------------------------------------

Comment By: Romulo Goncalves (romulog)
Date: 2007-12-16 23:38

Message:
Logged In: YES 
user_id=1498628
Originator: YES

O test to cover this bug is:
sql/src/test/BugTracker/Tests/create_same_temp_tab_after_its_drop.SF-1850809

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=482468&aid=1850809&group_id=56967

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Monetdb-bugs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-bugs

Reply via email to