Обсуждение: Unable to use '-' in column names in PLPGSQL
CREATE FUNCTION is_parent(INTEGER, INTEGER) RETURNS BOOLEAN AS ' DECLARE parent ALIAS FOR $1; tull ALIAS for $2; kidINTEGER; BEGIN kid := tull; LOOP SELECT INTO kid "dir-id" FROM dir WHERE id = kid; IF kid = parent THEN RETURN TRUE; END IF; IF kid IS NULL THEN RETURN FALSE; END IF; END LOOP; END; ' LANGUAGE 'plpgsql'; Will cause the following compilation error: NOTICE: plpgsql: ERROR during compile of is_parent near line 8 ERROR: unterminated " If I change the column name to dir_id it works fine. It does not matter whether or not I use quotes. Aasmund Midttun Godal aasmund@godal.com - http://www.godal.com/ +47 40 45 20 46
On Jue 15 Nov 2001 10:38, you wrote: > CREATE FUNCTION is_parent(INTEGER, INTEGER) RETURNS BOOLEAN AS ' > DECLARE > parent ALIAS FOR $1; > tull ALIAS for $2; > kid INTEGER; > BEGIN > kid := tull; > LOOP > SELECT INTO kid "dir-id" FROM dir WHERE id = kid; > IF kid = parent THEN > RETURN TRUE; > END IF; > IF kid IS NULL THEN > RETURN FALSE; > END IF; > END LOOP; > END; > ' LANGUAGE 'plpgsql'; You shoun't use '-' in column names. Use '_' instead. Saludos... :-) P.D.: Doesn't it give you an error when you try to create the table with does column names? -- Porqué usar una base de datos relacional cualquiera, si podés usar PostgreSQL? ----------------------------------------------------------------- Martín Marqués | mmarques@unl.edu.ar Programador, Administrador, DBA | Centro de Telematica Universidad Nacional del Litoral -----------------------------------------------------------------
"Aasmund Midttun Godal" <postgresql@envisity.com> writes: > SELECT INTO kid "dir-id" FROM dir WHERE id = kid; plpgsql has a fairly brain-dead notion of what a double-quoted identifier can be: in fact, it really has *no* notion of it, but expects the same set of identifier characters that would be allowed in unquoted identifiers. I've had a TODO note to do something about that ... but not yet gotten to it. regards, tom lane