Index: src/pl/plpython/feature.expected =================================================================== RCS file: /projects/cvsroot/pgsql/src/pl/plpython/feature.expected,v retrieving revision 1.9 diff -c -r1.9 feature.expected *** src/pl/plpython/feature.expected 30 Jun 2003 18:31:42 -0000 1.9 --- src/pl/plpython/feature.expected 24 Mar 2005 04:08:59 -0000 *************** *** 137,139 **** --- 137,157 ---- ---------------- (0 rows) + SELECT newline_lf(); + newline_lf + ------------ + 123 + (1 row) + + SELECT newline_cr(); + newline_cr + ------------ + 123 + (1 row) + + SELECT newline_crlf(); + newline_crlf + -------------- + 123 + (1 row) + Index: src/pl/plpython/plpython.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/pl/plpython/plpython.c,v retrieving revision 1.58 diff -c -r1.58 plpython.c *** src/pl/plpython/plpython.c 17 Dec 2004 02:14:48 -0000 1.58 --- src/pl/plpython/plpython.c 24 Mar 2005 04:09:00 -0000 *************** *** 1206,1215 **** while (*sp != '\0') { ! if (*sp == '\n') { ! *mp++ = *sp++; *mp++ = '\t'; } else *mp++ = *sp++; --- 1206,1219 ---- while (*sp != '\0') { ! if (*sp == '\r' && *(sp + 1) == '\n') ! sp++; ! ! if (*sp == '\n' || *sp == '\r') { ! *mp++ = '\n'; *mp++ = '\t'; + sp++; } else *mp++ = *sp++; Index: src/pl/plpython/plpython_function.sql =================================================================== RCS file: /projects/cvsroot/pgsql/src/pl/plpython/plpython_function.sql,v retrieving revision 1.6 diff -c -r1.6 plpython_function.sql *** src/pl/plpython/plpython_function.sql 30 Jun 2003 18:31:42 -0000 1.6 --- src/pl/plpython/plpython_function.sql 24 Mar 2005 04:09:00 -0000 *************** *** 306,308 **** --- 306,324 ---- open(args[0],"w").write(args[1]) return "Wrote to file: %s" % args[0] ' LANGUAGE plpythonu; + + -- + -- Universal Newline Support + -- + + CREATE OR REPLACE FUNCTION newline_lf() RETURNS integer AS + 'x = 100\ny = 23\nreturn x + y\n' + LANGUAGE plpythonu; + + CREATE OR REPLACE FUNCTION newline_cr() RETURNS integer AS + 'x = 100\ry = 23\rreturn x + y\r' + LANGUAGE plpythonu; + + CREATE OR REPLACE FUNCTION newline_crlf() RETURNS integer AS + 'x = 100\r\ny = 23\r\nreturn x + y\r\n' + LANGUAGE plpythonu; Index: src/pl/plpython/plpython_test.sql =================================================================== RCS file: /projects/cvsroot/pgsql/src/pl/plpython/plpython_test.sql,v retrieving revision 1.2 diff -c -r1.2 plpython_test.sql *** src/pl/plpython/plpython_test.sql 12 May 2001 17:49:32 -0000 1.2 --- src/pl/plpython/plpython_test.sql 24 Mar 2005 04:09:00 -0000 *************** *** 61,63 **** --- 61,70 ---- -- error in trigger -- + -- + -- Check Universal Newline Support + -- + + SELECT newline_lf(); + SELECT newline_cr(); + SELECT newline_crlf();