Index: doc/src/sgml/typeconv.sgml =================================================================== RCS file: /opt/src/cvs/pgsql-server/doc/src/sgml/typeconv.sgml,v retrieving revision 1.26 diff -c -r1.26 typeconv.sgml *** doc/src/sgml/typeconv.sgml 19 Feb 2003 04:06:28 -0000 1.26 --- doc/src/sgml/typeconv.sgml 8 Mar 2003 20:09:56 -0000 *************** *** 625,645 **** ! Substring Function Type Resolution ! There are two substr functions declared in pg_proc. However, ! only one takes two arguments, of types text and int4. ! If called with a string constant of unspecified type, the type is matched up directly with the only candidate function type: ! tgl=> SELECT substr('1234', 3); ! substr ! -------- ! 34 (1 row) --- 625,645 ---- ! Right-pad Function Type Resolution ! There are two rpad functions declared in pg_proc. However, ! only one takes three arguments, of types text, int4, and text. ! If called with the first string constant of unspecified type, the type is matched up directly with the only candidate function type: ! regression=# SELECT rpad('1234', 7, 'x'); ! rpad ! --------- ! 1234xxx (1 row) *************** *** 648,665 **** If the string is declared to be of type varchar, as might be the case if it comes from a table, then the parser will try to coerce it to become text: ! tgl=> SELECT substr(varchar '1234', 3); ! substr ! -------- ! 34 (1 row) which is transformed by the parser to become ! tgl=> SELECT substr(text(varchar '1234'), 3); ! substr ! -------- ! 34 (1 row) --- 648,665 ---- If the string is declared to be of type varchar, as might be the case if it comes from a table, then the parser will try to coerce it to become text: ! regression=# SELECT rpad(varchar '1234', 7, 'x'); ! rpad ! --------- ! 1234xxx (1 row) which is transformed by the parser to become ! regression=# SELECT rpad(text(varchar '1234'), 7, 'x'); ! rpad ! --------- ! 1234xxx (1 row) *************** *** 678,695 **** And, if the function is called with an int4, the parser will try to convert that to text: ! tgl=> SELECT substr(1234, 3); ! substr ! -------- ! 34 (1 row) which actually executes as ! tgl=> SELECT substr(text(1234), 3); ! substr ! -------- ! 34 (1 row) This succeeds because there is a conversion function text(int4) in the --- 678,695 ---- And, if the function is called with an int4, the parser will try to convert that to text: ! regression=# SELECT rpad(1234, 7, 'x'); ! rpad ! --------- ! 1234xxx (1 row) which actually executes as ! regression=# SELECT rpad(text(1234), 7, 'x'); ! rpad ! --------- ! 1234xxx (1 row) This succeeds because there is a conversion function text(int4) in the