With a very simple test, I get the 'mkey.bulk_rotate_xor_hash' exception. After this error, the only way I have found to recover is to drop the table, re-create and repopulate it.
* System parameters:
o MonetDB-11.3.1
o x86-64 ( note: build was missing a shared library that was subsequently )
o Solaris 10.
o 96 GB memory
* I create a simple table.
create table fluid (
fluid bigint not null,
userID int not null default 0,
relativeUser bigint not null,
typeID tinyint default 127,
updateTime timestamp(0) default now(),
constraint fluid_pk primary key( fluid, userID ),
constraint user_fk1 foreign key ( userID ) references fuser ( userID )
);
create index rel_user_idx1 on fluid ( relativeUser );
create index userID_idx2 on fluid ( userID );
create index rel_user_user_idx1 on fluid ( relativeUser, userID );
create index update_idx1 on fluid ( updateTime );
* Populate it with records ( Note: the number of records does not seem to matter ).
* Delete records. It does not appear to matter how many records I delete. Deleting 1 record or deleting all records seems to have the same effect.
* Drop the primary key
* Do "set optimizer='nov2009_pipe';"
* Add the primary key. I always get the mkey.bulk_rotate_xor_hash exception.
Here is a snapshot including a trace of a successful 'alter table drop constraint ...' command after NO records have been deleted. When I delete 1 ( or more records ), I get the exception with no trace output.
sql>alter table fluid drop constraint fluid_pk;
operation successful
sql>set optimizer='nov2009_pipe';
sql>trace alter table fluid add constraint fluid_pk primary key( fluid, userID );
operation successful
+------+--------------------------------------------------------------------------------------------------------------+
| tick | stmt |
: s : :
+======+==============================================================================================================+
| 7 | _2 := sql.mvc(); |
| 451 | sql.catalog(29,"FLDB",42302696,0); |
| 32 | _16:bat[:oid,:lng]