Hi Josh, I found the problem and fixed it. You can pick up the fix by pulling the latest code from the master branch of the git repository (see source repository <http://code.google.com/p/hypertable/wiki/SourceCode?tm=4>) As it turns out, there was an existing regression test that should have caught this, but I did not carefully inspect the output when I initially checked it in. :( I've also added your test to the regression. Here's the new output (with a couple of additional insert statements):
[EMAIL PROTECTED] 0.9.0.10]$ ./bin/hypertable < ~/issues/max_version/problem_ex.hql Welcome to the hypertable command interpreter. For information about Hypertable, visit http://www.hypertable.org/ Type 'help' for a list of commands, or 'help shell' for a list of shell meta commands. hypertable> CREATE TABLE bug ( F MAX_VERSIONS=1 ); hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V1'); hypertable> SELECT * FROM bug; R F:Q V1 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V2'); hypertable> SELECT * FROM bug; R F:Q V2 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V3'); hypertable> SELECT * FROM bug; R F:Q V3 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V4'); hypertable> SELECT * FROM bug; R F:Q V4 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V5'); hypertable> SELECT * FROM bug; R F:Q V5 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V6'); hypertable> SELECT * FROM bug; R F:Q V6 hypertable> DROP TABLE bug; hypertable> CREATE TABLE bug ( F MAX_VERSIONS=2 ); hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V1'); hypertable> SELECT * FROM bug; R F:Q V1 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V2'); hypertable> SELECT * FROM bug; R F:Q V2 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V3'); hypertable> SELECT * FROM bug; R F:Q V3 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V4'); hypertable> SELECT * FROM bug; R F:Q V4 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V5'); hypertable> SELECT * FROM bug; R F:Q V5 hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; hypertable> SELECT * FROM bug; hypertable> INSERT INTO bug VALUES ('R','F:Q','V6'); hypertable> INSERT INTO bug VALUES ('R','F:Q','V7'); hypertable> SELECT * FROM bug; R F:Q V7 R F:Q V6 hypertable> INSERT INTO bug VALUES ('R','F:Q','V8'); hypertable> SELECT * FROM bug; R F:Q V8 R F:Q V7 hypertable> DROP TABLE bug; - Doug On Wed, Aug 27, 2008 at 6:06 PM, Joshua Taylor <[EMAIL PROTECTED]>wrote: > I'm seeing some strange behavior when setting and deleting cells in > Hypertable. When using MAX_VERSIONS, if I set and delete a cell a few times > I don't seem to be able to set it again. I was assuming that MAX_VERSIONS=K > would keep up to the latest K versions of cell in the table. In my case, > I'm only interested in keeping the latest version of each cell > (MAX_VERSIONS=1), but I want to be able to rewrite the cell as many times as > I'd like. Am I misinterpreting the parameter? > > Here's an example on Hypertable 0.9.0.10a with Hadoop 0.17.2 on a cluster > of 15 machines. The hypertable client process is running on a separate > machine outside the cluster. > > hypertable> CREATE TABLE bug ( F MAX_VERSIONS=1 ); > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V1'); > hypertable> SELECT * FROM bug; > R F:Q V1 > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V2'); > hypertable> SELECT * FROM bug; > R F:Q V2 > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V3'); > hypertable> SELECT * FROM bug; > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V4'); > hypertable> SELECT * FROM bug; > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V5'); > hypertable> SELECT * FROM bug; > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V6'); > hypertable> SELECT * FROM bug; > hypertable> DROP TABLE bug; > hypertable> > > hypertable> CREATE TABLE bug ( F MAX_VERSIONS=2 ); > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V1'); > hypertable> SELECT * FROM bug; > R F:Q V1 > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V2'); > hypertable> SELECT * FROM bug; > R F:Q V2 > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V3'); > hypertable> SELECT * FROM bug; > R F:Q V3 > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V4'); > hypertable> SELECT * FROM bug; > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V5'); > hypertable> SELECT * FROM bug; > hypertable> DELETE 'F:Q' FROM bug WHERE ROW = 'R'; > hypertable> SELECT * FROM bug; > hypertable> INSERT INTO bug VALUES ('R','F:Q','V6'); > hypertable> SELECT * FROM bug; > hypertable> DROP TABLE bug; > hypertable> > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Hypertable Development" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/hypertable-dev?hl=en -~----------~----~----~----~------~----~------~--~---
