Evaluación del resultado
Busca un ajuste exacto con el resultado.
Si es necesario intenta convertir la expresión directamente al tipo del resultado.
Si el resultado es un tipo de longitud fija (por ejemplo char o varchar declarado con una longitud) entonces intenta encontrar una función que ajsute la longitud con el mismo nombre que el tipo de los dos argumentos, el primero el nombre del tipo y el segundo un entero con la longitud.
Para cada columna declarada como varchar(4) la siguiente consulta asegura que el resultado tiene el tamaño adecuado:
tgl=> CREATE TABLE vv (v varchar(4)); CREATE tgl=> INSERT INTO vv SELECT 'abc' || 'def'; INSERT 392905 1 tgl=> select * from vv; v ---- abcd (1 row)