I am one of the developers on a very small team and have just found the following query

I would love to hear your ideas for what you think was being attempted here!

SELECT ... FROM client WHERE CAST(ABS(SIN(clientId)) AS BIT) = 0

  • Jimbabwe@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    5 months ago

    Well abs(sin(x)) is always going to return a value between 0 and 1, and I dunno how casting to bit works… if it rounds this might be used to consistently grab half the users. If CAST(anything except 0) as BIT —> 1, then this could be used to grab a very small subset of users? If their clientIds happen to be clientId%180 == 0

    • salvaria@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      5
      ·
      5 months ago

      You’re right in that any non-zero value casted to bit becomes 1, but that includes negative values, so I’m even more confused why you’d need ABS there…

      • Jimbabwe@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        5 months ago

        Well then, to answer OP’s question about intent, I don’t have much of a clue, but here’s some Idea Ore that maybe someone can refine into a plausible explanation:

        • clientId basically has to be sequential or none of this makes sense
        • conceptually, I believe this statement is equivalent to clientId%180 == 0
        • i can’t fathom CAST(ABS(SIN())) being more efficient than modular division, so maybe the dev was trying to be clever, hated the hardcoded 180, or some other unknown going on
        • a sine wave goes -∿- so this is where it hits the x-axis
        • given that, there has to be some periodic or cyclical purpose, relating to the why/how of the clientId creation. For example, when the results of this are graphed with a created_at timestamp, it might give useful insights to growth (or something)
    • ThreenOP
      link
      fedilink
      arrow-up
      3
      ·
      5 months ago

      I forgot to mention this is in SQL Server, so SIN operates on radians. So I THINK this can only ever cast to a 0 when clientId is also 0

      It certainly doesn’t for any of the 100,000 existing rows