Често срещаният краткосрочен термин е просто „Стойности на редове“ . Или „Сравнение на стойностите на редове“ за операцията, която демонстрирате. Тази функция е в SQL стандарта от SQL-92 (!). Понастоящем Postgres е единствената голяма RDBMS, която я поддържа във всички аспекти – особено с оптимална поддръжка на индекси.
По-специално, изразът (col1, col2) < (1, 2)
е просто стенография за ROW(col1, col2) < ROW(1, 2)
в Postgres. Изразът ROW(col1, col2)
се нарича още конструктор на редове - точно като ARRAY[col1, col2]
е конструктор на масив.
Той е удобно съкратен за по-подробния, еквивалентен израз:
col1 < 1 OR (col1 = 1 AND col2 < 2)
... и Postgres могат да използват индекс на (col1, col2)
или (col1 DESC, col2 DESC)
за това.
И забележително различен от (!)
col1 < 1 AND AND col2 < 2
Помислете за пример:(1,1)
...
Ето презентация на Маркус Уинанд, която обсъжда подробно функцията за пагинация:
„Пагинацията е извършена по начина на PostgreSQL“ на use-the-index-luke.com.
Сравнението на стойностите на редовете започва на страница 20. Матрицата за поддръжка, която споменах, е на страница 45.
По никакъв начин не съм свързан с нито един от източниците, които цитирах.