Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/contrib/btree_gin/sql/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 575 B image not shown  

SSL bool_plperl.sql

  Sprache: SQL
 

CREATE EXTENSION bool_plperl CASCADE;

--- test transforming from perl

CREATE FUNCTION perl2int(int) RETURNS bool
LANGUAGE plperl
TRANSFORM FOR TYPE bool
AS $$
return shift;
$$;

CREATE FUNCTION perl2text(text) RETURNS bool
LANGUAGE plperl
TRANSFORM FOR TYPE bool
AS $$
return shift;
$$;

CREATE FUNCTION perl2undef() RETURNS bool
LANGUAGE plperl
TRANSFORM FOR TYPE bool
AS $$
return undef;
$$;

SELECT perl2int(1);
SELECT perl2int(0);
SELECT perl2text('foo');
SELECT perl2text('');
SELECT perl2undef() IS NULL AS p;

--- test transforming to perl

CREATE FUNCTION bool2perl(bool, bool, bool) RETURNS void
LANGUAGE plperl
TRANSFORM FOR TYPE bool, for type boolean  -- duplicate to test ruleutils
AS $$
my ($x, $y, $z) = @_;

die("NULL mistransformed"if (defined($z));
die("TRUE mistransformed to UNDEF"if (!defined($x));
die("FALSE mistransformed to UNDEF"if (!defined($y));
die("TRUE mistransformed"if (!$x);
die("FALSE mistransformed"if ($y);
$$;

SELECT bool2perl (truefalseNULL);

--- test ruleutils

\sf bool2perl

--- test selecting bool through SPI

CREATE FUNCTION spi_test()  RETURNS void
LANGUAGE plperl
TRANSFORM FOR TYPE bool
AS $$
my $rv = spi_exec_query('SELECT true t, false f, NULL n')->{rows}->[0];

die("TRUE mistransformed to UNDEF in SPI"if (!defined ($rv->{t}));
die("FALSE mistransformed to UNDEF in SPI"if (!defined ($rv->{f}));
die("NULL mistransformed in SPI"if (defined ($rv->{n}));
die("TRUE mistransformed in SPI"if (!$rv->{t});
die("FALSE mistransformed in SPI"if ($rv->{f});
$$;

SELECT spi_test();

DROP EXTENSION plperl CASCADE;

Messung V0.5 in Prozent
C=93 H=88 G=90

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.