2026/04/12

From Woozle Writes Code
Jump to navigation Jump to search
Sunday, April 12, 2026 (#102)
Saturday Sunday Monday posts:prev <this> next

References

  • 08:33 It may be both -- a very elegant trainwreck.
  • 15:57 The "trainwreck" part has emerged: the SQL is being sent, but (once again) nothing is coming back.
    • How did I debug this before, and why isn't it easier yet.
  • 16:31 It would make sense* if the problem is that it's detecting EoS too soon, since altering that was the whole point of the latest rearrangement.
    • *Therefore it's probably something else, but it seems worth checking anyway.
  • 20:07 The cluckerfusting continues: Updater objects are created by the Starter Command. Syntax Commands can access the Updater via OStarter() (I think), but at what point do they get to make that change?
    • I guess there's got to be an event I can override, but... what, exactly. Brain is protesting at having to research this.
  • 20:28 Overriding OEngine(), when the Engine-pointer gets set, seems like a reasonable choice. Code to configure the Updater:
    • $this->OSession()->QOUpdater()->GetIt()->EndCueString($this->CueString());
  • 20:46 That needed to be done, but it didn't fix the problem. The end-checker is actually receiving only an empty string, so far -- and yet the loop is terminating. The question becomes (or remains, I forget): what is causing the loop to terminate, if not the end-checker?
  • 20:55 So, IsRunning() is FALSE -- but also doBreak is TRUE. I have to hope that the latter is causing the former, because any other cause is going to be harder to debug... but what is setting the latter??
  • 20:59 It seems to be happening inside Canal::ConveyCheck(), but there's nothing that obviously could be causing it. This means I have to figure out how to access Session->doBreak so I can see where it changes. ...or maybe put a WhoCalledMe() in the DoBreak() function?
  • 21:24 Apparently str_ends_with("","") returns TRUE. If there's no data but also the cue (somehow) hasn't been set, then it thinks EoF has happened.
    • It seems reasonable to override that (at least for now) by saying that if there's no content, then that pre-empts the check (although the cue should never be empty, either).
  • 21:39 doBreak is no longer being set, but IsRunning() is still getting cleared. So now I have to figure out where/why/how that is happening. "My worst fears were confirmed: my watch was in my back pocket."