On Mon, Jan 03, 2005 at 03:11:05AM +0000, David Bowen wrote: > test=# select crosstab(1); > ERROR: array value must start with "{" or dimension information > CONTEXT: PL/pgSQL function "crosstab" line 5 at block variables > initialization > $ cat /home1/dmb/crosstab > CREATE OR REPLACE FUNCTION crosstab (integer) RETURNS integer[] AS ' > DECLARE > contestant ALIAS FOR $1; > row scores%ROWTYPE; > s integer[3]:= (-1,-1,-1);
See "Array Value Input" in the "Arrays" section of the "Data Types" chapter in the documentation; see also "Array Constructors" in the "Value Expressions" section of the "SQL Syntax" chapter. Either of the following should work: s integer[3]:= ARRAY[-1,-1,-1]; s integer[3]:= ''{-1,-1,-1}''; Since you're running 8.0, consider using dollar quotes around the function body if backward compatibility isn't necessary -- that way you don't have to escape single quotes that are inside the function. See "Dollar-Quoted String Constants" in the "SQL Syntax" chapter. -- Michael Fuhr http://www.fuhr.org/~mfuhr/ ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]