El término corto común es simplemente "Valores de fila" . O "Comparación de valor de fila" para la operación que demuestras. Esa característica ha estado en el estándar SQL desde SQL-92 (!). Postgres es actualmente el único RDBMS importante que lo admite en todos los aspectos, especialmente también con soporte de índice óptimo.
En particular, la expresión (col1, col2) < (1, 2)
es solo una abreviatura de ROW(col1, col2) < ROW(1, 2)
en Postgres. La expresión ROW(col1, col2)
también se llama constructor de filas, al igual que ARRAY[col1, col2]
es un constructor de matrices.
Es convenientemente la abreviatura de la expresión equivalente más detallada:
col1 < 1 OR (col1 = 1 AND col2 < 2)
... y Postgres puede usar un índice en (col1, col2)
o (col1 DESC, col2 DESC)
por esto.
Y notablemente distinto de (!)
col1 < 1 AND AND col2 < 2
Considere el ejemplo:(1,1)
...
Aquí hay una presentación de Markus Winand que analiza la función de paginación en detalle:
"Paginación realizada al estilo de PostgreSQL" en use-the-index-luke.com.
La comparación de valores de fila comienza en la página 20. La matriz de soporte a la que me he estado refiriendo está en la página 45.
De ninguna manera estoy afiliado a ninguna de las fuentes que cité.