Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

With this approach you can't have page numbers on the front-end, just first, prev, next and maybe last. You can't jump to particular page. It is old technique and I like it, but if it would be usable it would be used by everyone but it is not.


What is the purpose of having pages numbers and jumping to a particular page?


For example you have a forum post with 1000 messages starting in 2007, and you are dying to know what happened in the discourse in 2011. So basically you need to jump in the middle by bisection.

1000 is tiny by DB standards but solutions like this one are often bolted without considerations.


That's a great example. I understand the use case now.

I note this use case can be solved using keyset pagination instead of offset/limit, because the ordering of messages is stable: messages are never inserted in the middle of the list; they are appended at the end. We can attribute a number to each message, and use this message to filter and sort.


But what if a message gets deleted from middle of the list? This happens with forum messages.


You keep it and mark it "deleted", and you show "deleted" in place of the message. This is what most forums do already, independently of the underlying pagination mechanism.


So basically I'm pretty sure now that we need a new kind of SQL INDEX, as in, pagination index.

To do that aforedescribed accounting for us, and more.


It wont't be a new kind of index. It would be a new interpretation of OFFSET and LIMIT, which would ignore deleted rows.


Why would it? It will be rebuilt when a row is deleted or even marked deleted.

If we have an pagination index over (topicId, deleted) on postTime asc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: