timestamp | uri | current_uri ----------------------------- 00 | A | A 10 | A | A 20 | A | A 30 | B | B 40 | C | C 50 | A | A
move A to T at 35 timestamp | uri | current_uri ----------------------------- 00 | A | T 10 | A | T 20 | A | T 30 | B | B 35* | A | T 40 | C | C 50 | A | A move T to L at 15 timestamp | uri | current_uri ----------------------------- 00 | A | L 10 | A | L 15* | A | L 20 | A | T 30 | B | B 35* | A | T 40 | C | C 50 | A | A Problem: 1) we can not trace the origin of 20 since how is the origin uri. A while the current uri is T without having an A -> T or L -> T before 20 occurs 2) the Move event 35* if once is trying to reproduce the event timeline is invalid since A was moved to L already so we need to modify the move event -- You received this bug notification because you are a member of Zeitgeist Framework Team, which is subscribed to Zeitgeist Framework. https://bugs.launchpad.net/bugs/778140 Title: Time warp problem in MOVE_EVENT handling Status in Zeitgeist Framework: Triaged Bug description: <RainCT> seiflotfy: the query updating current_uri on MOVE_EVENT should only change stuff with timestamp<move_event_timestamp <seiflotfy> RainCT, true <seiflotfy> good catch <RainCT> seiflotfy: there's also another ugly case <seiflotfy> RainCT, do tell <RainCT> seiflotfy: Imagine you insert event: 0. A, 1. A, 2. A, 3. B, 4. C, 5. A. Then with timestamp between events 3 and 4 you get A->T, so now you have "T, T, T, B, C, A" [...] <seiflotfy> i see the problem <seiflotfy> the last A should be a T <RainCT> no, the last A is fine <RainCT> because it is a new file with the same name [...] <seiflotfy> yeah ok <RainCT> seiflotfy: now you get A-L with timestamp between 1 and 2, so it should have "L, L, T, B, C, A", but since the current_uri of the first is already L you won't see it. for this it'd need to check the original URI instead of the current_uri <RainCT> are you with me so far? <seiflotfy> trying to <seiflotfy> RainCT, ok i cont get your last point <seiflotfy> A-L wont change the T <seiflotfy> because A has been move to T <seiflotfy> you can not move A again <seiflotfy> you need to move T <seiflotfy> thus its does not work <RainCT> yeah, but it should, because you're being told that it was moved before that <seiflotfy> unless you really want to you will have to look for all "MOVE_EVENTS" with A and figure out what A is now <seiflotfy> its doable <RainCT> so the move that happened later in time didn't affect those events, only the later ones <seiflotfy> RainCT, true <RainCT> the easy way to solve this is checking subj_id instead of subj_id_current <seiflotfy> RainCT, i think we should raise an exception <RainCT> but now when it gets really messed up is if there was even another move event before that <RainCT> which was already logged <seiflotfy> "You tried to move and event after it was used in a new location" <seiflotfy> RainCT, actually we also have the MOVE_EVENT logged <seiflotfy> you can then try to figrue out the patch of A <RainCT> yes, that's the solution <seiflotfy> the path <seiflotfy> RainCT, but i highly discourage that <RainCT> you can find the previos move event and set timestamp>previous_move_event.timestamp <seiflotfy> RainCT, exactly <seiflotfy> i am +- 0 on that tbh <seiflotfy> not sure <RainCT> ok, I don't dislike finding the previous timestamp <RainCT> i'll open a bug To manage notifications about this bug go to: https://bugs.launchpad.net/zeitgeist/+bug/778140/+subscriptions _______________________________________________ Mailing list: https://launchpad.net/~zeitgeist Post to : [email protected] Unsubscribe : https://launchpad.net/~zeitgeist More help : https://help.launchpad.net/ListHelp

