CREATE FUNCTION testHVToJsonb() RETURNS jsonb
LANGUAGE plperl
TRANSFORM FOR TYPE jsonb AS $$
$val = {a => 1, b => 'boo', c => undef}; return $val;
$$;
SELECT testHVToJsonb();
CREATE FUNCTION testAVToJsonb() RETURNS jsonb
LANGUAGE plperl
TRANSFORM FOR TYPE jsonb AS $$
$val = [{a => 1, b => 'boo', c => undef}, {d => 2}]; return $val;
$$;
SELECT testAVToJsonb();
CREATE FUNCTION testSVToJsonb() RETURNS jsonb
LANGUAGE plperl
TRANSFORM FOR TYPE jsonb AS $$
$val = 1; return $val;
$$;
SELECT testSVToJsonb();
CREATE FUNCTION testUVToJsonb() RETURNS jsonb
LANGUAGE plperl
TRANSFORM FOR TYPE jsonb as $$
$val = ~0; return $val;
$$;
-- this might produce either 18446744073709551615 or 4294967295 SELECT testUVToJsonb() IN ('18446744073709551615'::jsonb, '4294967295'::jsonb);
-- this revealed a bug in the original implementation CREATE FUNCTION testRegexpResultToJsonb() RETURNS jsonb
LANGUAGE plperl
TRANSFORM FOR TYPE jsonb AS $$ return ('1' =~ m(0\t2));
$$;
SELECT testRegexpResultToJsonb();
-- this revealed a different bug CREATE FUNCTION testTextToJsonbObject(text) RETURNS jsonb
LANGUAGE plperl
TRANSFORM FOR TYPE jsonb AS $$
my $x = shift; return {a => $x};
$$;
CREATE FUNCTION roundtrip(val jsonb, ref text = '') RETURNS jsonb
LANGUAGE plperl
TRANSFORM FOR TYPE jsonb AS $$
# can't use Data::Dumper, but let's at least checkfor unexpected ref type
die 'unexpected '.(ref($_[0]) || 'not a').' reference' if ref($_[0]) ne $_[1]; return $_[0];
$$;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.