This seems to be a psql(?) bug:
test.sql
--------
create or replace function test1() returns void as $$
declare
var1 integer;
var2 integer;
var3 integer;
begin
end;
$$ language plpgsql;
miano=3D> \i test.sql=20
psql:test.sql:3: ERROR: unterminated dollar-quoted string at or near "$$=
=20=20=20
declare
var1 integer;" at character 52
psql:test.sql:4: ERROR: syntax error at or near "var2" at character 3
psql:test.sql:5: ERROR: syntax error at or near "var3" at character 3
psql:test.sql:7: ERROR: syntax error at or near "end" at character 7
psql:test.sql:8: ERROR: unterminated dollar-quoted string at or near "$$ l=
anguage plpgsql;" at character 1
It compiles when run from the PgAdmin III Query tool, but fails when run fr=
om psql (see above output).
miano=3D> select version();
version=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20
---------------------------------------------------------------------------=
------------------------
PostgreSQL 8.1.3 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.4 200=
50721 (Red Hat 3.4.4-2)
(1 row)