mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
e07e2a40bd
Ensure that the type name is mentioned in all cases (bare "syntax error" isn't that helpful). Avoid using the term "level", since that's not used in the documentation. Phrase error position reports as "at character N" not "in position N"; the latter seems ambiguous, and it's certainly not how we say it elsewhere. For the same reason, make the character position values be 1-based not 0-based. Provide a position in more cases. (I continued to leave that out of messages complaining about end-of-input, where it seemed pointless, as well as messages complaining about overall input complexity, where fingering any one part of the input would be arbitrary.) Discussion: https://postgr.es/m/15582.1585529626@sss.pgh.pa.us
44 lines
940 B
Plaintext
44 lines
940 B
Plaintext
CREATE EXTENSION ltree_plpython2u CASCADE;
|
|
NOTICE: installing required extension "plpython2u"
|
|
CREATE FUNCTION test1(val ltree) RETURNS int
|
|
LANGUAGE plpythonu
|
|
TRANSFORM FOR TYPE ltree
|
|
AS $$
|
|
plpy.info(repr(val))
|
|
return len(val)
|
|
$$;
|
|
SELECT test1('aa.bb.cc'::ltree);
|
|
INFO: ['aa', 'bb', 'cc']
|
|
test1
|
|
-------
|
|
3
|
|
(1 row)
|
|
|
|
CREATE FUNCTION test1n(val ltree) RETURNS int
|
|
LANGUAGE plpython2u
|
|
TRANSFORM FOR TYPE ltree
|
|
AS $$
|
|
plpy.info(repr(val))
|
|
return len(val)
|
|
$$;
|
|
SELECT test1n('aa.bb.cc'::ltree);
|
|
INFO: ['aa', 'bb', 'cc']
|
|
test1n
|
|
--------
|
|
3
|
|
(1 row)
|
|
|
|
CREATE FUNCTION test2() RETURNS ltree
|
|
LANGUAGE plpythonu
|
|
TRANSFORM FOR TYPE ltree
|
|
AS $$
|
|
return ['foo', 'bar', 'baz']
|
|
$$;
|
|
-- plpython to ltree is not yet implemented, so this will fail,
|
|
-- because it will try to parse the Python list as an ltree input
|
|
-- string.
|
|
SELECT test2();
|
|
ERROR: ltree syntax error at character 1
|
|
CONTEXT: while creating return value
|
|
PL/Python function "test2"
|