The common short term is just “Row values”. Or “Row value comparison” for the operation you demonstrate. That feature has been in the SQL standard since SQL-92 (!). Postgres is currently the only major RDBMS that supports it in all aspects – especially also with optimal index support.
In particular, the expression (col1, col2) < (1, 2)
is just shorthand for ROW(col1, col2) < ROW(1, 2)
in Postgres.
The expression ROW(col1, col2)
is also called row constructor – just like ARRAY[col1, col2]
is an array constructor.
It is conveniently short for the more verbose, equivalent expression:
col1 < 1 OR (col1 = 1 AND col2 < 2)
… and Postgres can use an index on (col1, col2)
or (col1 DESC, col2 DESC)
for this.
And notably distinct from: (!)
col1 < 1 AND AND col2 < 2
Consider example: (1,1)
…
Here is a presentation by Markus Winand that discusses the feature for pagination in detail:
“Pagination done the PostgreSQL way” on use-the-index-luke.com.
Row value comparison starts on page 20. The support matrix I have been referring to is on page 45.
I am in no way affiliated to Markus Winand.