http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/plperl.control ---------------------------------------------------------------------- diff --git a/src/pl/plperl/plperl.control b/src/pl/plperl/plperl.control new file mode 100644 index 0000000..6faace1 --- /dev/null +++ b/src/pl/plperl/plperl.control @@ -0,0 +1,7 @@ +# plperl extension +comment = 'PL/Perl procedural language' +default_version = '1.0' +module_pathname = '$libdir/plperl' +relocatable = false +schema = pg_catalog +superuser = false
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/plperl.h ---------------------------------------------------------------------- diff --git a/src/pl/plperl/plperl.h b/src/pl/plperl/plperl.h new file mode 100644 index 0000000..96bc14c --- /dev/null +++ b/src/pl/plperl/plperl.h @@ -0,0 +1,133 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/*------------------------------------------------------------------------- + * + * plperl.h + * Common include file for PL/Perl files + * + * This should be included _AFTER_ postgres.h and system include files + * + * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group + * Portions Copyright (c) 1995, Regents of the University of California + * + * src/pl/plperl/plperl.h + */ + +#ifndef PL_PERL_H +#define PL_PERL_H + +/* stop perl headers from hijacking stdio and other stuff on Windows */ +#ifdef WIN32 +#define WIN32IO_IS_STDIO +/* + * isnan is defined in both the perl and mingw headers. We don't use it, + * so this just clears up the compile warning. + */ +#ifdef isnan +#undef isnan +#endif +#endif + +/* + * Supply a value of PERL_UNUSED_DECL that will satisfy gcc - the one + * perl itself supplies doesn't seem to. + */ +#if defined(__GNUC__) +#define PERL_UNUSED_DECL __attribute__ ((unused)) +#endif + +/* + * Sometimes perl carefully scribbles on our *printf macros. + * So we undefine them here and redefine them after it's done its dirty deed. + */ + +#ifdef USE_REPL_SNPRINTF +#undef snprintf +#undef vsnprintf +#endif + +#define list_head sys_list_head +#define list_tail sys_list_tail + +/* required for perl API */ +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" +#include "ppport.h" + +#undef list_head +#undef list_tail + + +/* put back our snprintf and vsnprintf */ +#ifdef USE_REPL_SNPRINTF +#ifdef snprintf +#undef snprintf +#endif +#ifdef vsnprintf +#undef vsnprintf +#endif +#ifdef __GNUC__ +#define vsnprintf(...) pg_vsnprintf(__VA_ARGS__) +#define snprintf(...) pg_snprintf(__VA_ARGS__) +#else +#define vsnprintf pg_vsnprintf +#define snprintf pg_snprintf +#endif /* __GNUC__ */ +#endif /* USE_REPL_SNPRINTF */ + +/* perl version and platform portability */ +#define NEED_eval_pv +#define NEED_newRV_noinc +#define NEED_sv_2pv_flags +#include "ppport.h" + +/* perl may have a different width of "bool", don't buy it */ +#ifdef bool +#undef bool +#endif + +/* supply HeUTF8 if it's missing - ppport.h doesn't supply it, unfortunately */ +#ifndef HeUTF8 +#define HeUTF8(he) ((HeKLEN(he) == HEf_SVKEY) ? \ + SvUTF8(HeKEY_sv(he)) : \ + (U32)HeKUTF8(he)) +#endif + +/* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */ +#ifndef GvCV_set +#define GvCV_set(gv, cv) (GvCV(gv) = cv) +#endif + +/* declare routines from plperl.c for access by .xs files */ +HV *plperl_spi_exec(char *, int); +void plperl_return_next(SV *); +SV *plperl_spi_query(char *); +SV *plperl_spi_fetchrow(char *); +SV *plperl_spi_prepare(char *, int, SV **); +HV *plperl_spi_exec_prepared(char *, HV *, int, SV **); +SV *plperl_spi_query_prepared(char *, int, SV **); +void plperl_spi_freeplan(char *); +void plperl_spi_cursor_close(char *); +char *plperl_sv_to_literal(SV *, char *); + + + +#endif /* PL_PERL_H */ http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/plperl_helpers.h ---------------------------------------------------------------------- diff --git a/src/pl/plperl/plperl_helpers.h b/src/pl/plperl/plperl_helpers.h new file mode 100644 index 0000000..a0e2cf2 --- /dev/null +++ b/src/pl/plperl/plperl_helpers.h @@ -0,0 +1,91 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + +#ifndef PL_PERL_HELPERS_H +#define PL_PERL_HELPERS_H + +/* + * convert from utf8 to database encoding + */ +static inline char * +utf_u2e(const char *utf8_str, size_t len) +{ + char *ret = (char *) pg_do_encoding_conversion((unsigned char *) utf8_str, len, PG_UTF8, GetDatabaseEncoding()); + + if (ret == utf8_str) + ret = pstrdup(ret); + return ret; +} + +/* + * convert from database encoding to utf8 + */ +static inline char * +utf_e2u(const char *str) +{ + char *ret = (char *) pg_do_encoding_conversion((unsigned char *) str, strlen(str), GetDatabaseEncoding(), PG_UTF8); + + if (ret == str) + ret = pstrdup(ret); + return ret; +} + + +/* + * Convert an SV to a char * in the current database encoding + */ +static inline char * +sv2cstr(SV *sv) +{ + char *val; + STRLEN len; + + /* + * get a utf8 encoded char * out of perl. *note* it may not be valid utf8! + */ + val = SvPVutf8(sv, len); + + /* + * we use perls length in the event we had an embedded null byte to ensure + * we error out properly + */ + return utf_u2e(val, len); +} + +/* + * Create a new SV from a string assumed to be in the current database's + * encoding. + */ + +static inline SV * +cstr2sv(const char *str) +{ + SV *sv; + char *utf8_str = utf_e2u(str); + + sv = newSVpv(utf8_str, 0); + SvUTF8_on(sv); + + pfree(utf8_str); + + return sv; +} + +#endif /* PL_PERL_HELPERS_H */ http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/plperl_opmask.pl ---------------------------------------------------------------------- diff --git a/src/pl/plperl/plperl_opmask.pl b/src/pl/plperl/plperl_opmask.pl new file mode 100644 index 0000000..3e9ecaa --- /dev/null +++ b/src/pl/plperl/plperl_opmask.pl @@ -0,0 +1,58 @@ +#!perl -w + +use strict; +use warnings; + +use Opcode qw(opset opset_to_ops opdesc); + +my $plperl_opmask_h = shift + or die "Usage: $0 <output_filename.h>\n"; + +my $plperl_opmask_tmp = $plperl_opmask_h."tmp"; +END { unlink $plperl_opmask_tmp } + +open my $fh, ">", "$plperl_opmask_tmp" + or die "Could not write to $plperl_opmask_tmp: $!"; + +printf $fh "#define PLPERL_SET_OPMASK(opmask) \\\n"; +printf $fh " memset(opmask, 1, MAXO);\t/* disable all */ \\\n"; +printf $fh " /* then allow some... */ \\\n"; + +my @allowed_ops = ( + # basic set of opcodes + qw[:default :base_math !:base_io sort time], + # require is safe because we redirect the opcode + # entereval is safe as the opmask is now permanently set + # caller is safe because the entire interpreter is locked down + qw[require entereval caller], + # These are needed for utf8_heavy.pl: + # dofile is safe because we redirect the opcode like require above + # print is safe because the only writable filehandles are STDOUT & STDERR + # prtf (printf) is safe as it's the same as print + sprintf + qw[dofile print prtf], + # Disallow these opcodes that are in the :base_orig optag + # (included in :default) but aren't considered sufficiently safe + qw[!dbmopen !setpgrp !setpriority], + # custom is not deemed a likely security risk as it can't be generated from + # perl so would only be seen if the DBA had chosen to load a module that + # used it. Even then it's unlikely to be seen because it's typically + # generated by compiler plugins that operate after PL_op_mask checks. + # But we err on the side of caution and disable it + qw[!custom], +); + +printf $fh " /* ALLOWED: @allowed_ops */ \\\n"; + +foreach my $opname (opset_to_ops(opset(@allowed_ops))) { + printf $fh qq{ opmask[OP_%-12s] = 0;\t/* %s */ \\\n}, + uc($opname), opdesc($opname); +} +printf $fh " /* end */ \n"; + +close $fh + or die "Error closing $plperl_opmask_tmp: $!"; + +rename $plperl_opmask_tmp, $plperl_opmask_h + or die "Error renaming $plperl_opmask_tmp to $plperl_opmask_h: $!"; + +exit 0; http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/plperlu--1.0.sql ---------------------------------------------------------------------- diff --git a/src/pl/plperl/plperlu--1.0.sql b/src/pl/plperl/plperlu--1.0.sql new file mode 100644 index 0000000..025f795 --- /dev/null +++ b/src/pl/plperl/plperlu--1.0.sql @@ -0,0 +1,9 @@ +/* src/pl/plperl/plperlu--1.0.sql */ + +/* + * Currently, all the interesting stuff is done by CREATE LANGUAGE. + * Later we will probably "dumb down" that command and put more of the + * knowledge into this script. + */ + +CREATE PROCEDURAL LANGUAGE plperlu; http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/plperlu--unpackaged--1.0.sql ---------------------------------------------------------------------- diff --git a/src/pl/plperl/plperlu--unpackaged--1.0.sql b/src/pl/plperl/plperlu--unpackaged--1.0.sql new file mode 100644 index 0000000..bc62d36 --- /dev/null +++ b/src/pl/plperl/plperlu--unpackaged--1.0.sql @@ -0,0 +1,7 @@ +/* src/pl/plperl/plperlu--unpackaged--1.0.sql */ + +ALTER EXTENSION plperlu ADD PROCEDURAL LANGUAGE plperlu; +-- ALTER ADD LANGUAGE doesn't pick up the support functions, so we have to. +ALTER EXTENSION plperlu ADD FUNCTION plperlu_call_handler(); +ALTER EXTENSION plperlu ADD FUNCTION plperlu_inline_handler(internal); +ALTER EXTENSION plperlu ADD FUNCTION plperlu_validator(oid); http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/plperlu.control ---------------------------------------------------------------------- diff --git a/src/pl/plperl/plperlu.control b/src/pl/plperl/plperlu.control new file mode 100644 index 0000000..69473ca --- /dev/null +++ b/src/pl/plperl/plperlu.control @@ -0,0 +1,7 @@ +# plperlu extension +comment = 'PL/PerlU untrusted procedural language' +default_version = '1.0' +module_pathname = '$libdir/plperl' +relocatable = false +schema = pg_catalog +superuser = true http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/.gitignore ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/.gitignore b/src/pl/plperl/po/.gitignore new file mode 100644 index 0000000..621b8ee --- /dev/null +++ b/src/pl/plperl/po/.gitignore @@ -0,0 +1,8 @@ +de.mo +es.mo +fr.mo +it.mo +ja.mo +pt_BR.mo +tr.mo + http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/.p4ignore ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/.p4ignore b/src/pl/plperl/po/.p4ignore new file mode 100644 index 0000000..621b8ee --- /dev/null +++ b/src/pl/plperl/po/.p4ignore @@ -0,0 +1,8 @@ +de.mo +es.mo +fr.mo +it.mo +ja.mo +pt_BR.mo +tr.mo + http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/de.po ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/de.po b/src/pl/plperl/po/de.po new file mode 100755 index 0000000..4ea354e --- /dev/null +++ b/src/pl/plperl/po/de.po @@ -0,0 +1,105 @@ +# German message translation file for plperl +# Copyright (C) 2009 PostgreSQL Global Development Group +# This file is distributed under the same license as the PostgreSQL package. +# Peter Eisentraut <[email protected]>, 2009. +# +# pgtranslation Id: plperl.po,v 1.2 2009/02/20 10:39:49 petere Exp $ +# +# Use these quotes: »%s« +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 8.4\n" +"Report-Msgid-Bugs-To: [email protected]\n" +"POT-Creation-Date: 2009-02-20 09:06+0000\n" +"PO-Revision-Date: 2009-02-20 12:37+0200\n" +"Last-Translator: Peter Eisentraut <[email protected]>\n" +"Language-Team: German <[email protected]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: plperl.c:202 +msgid "" +"If true, trusted and untrusted Perl code will be compiled in strict mode." +msgstr "Wenn wahr, dann wird vertrauenswürdiger und nicht vertrauenswürdiger Perl-Code im »strict«-Modus kompiliert." + +#: plperl.c:606 plperl.c:799 +#, c-format +msgid "Perl hash contains nonexistent column \"%s\"" +msgstr "Perl-Hash enthält nicht existierende Spalte »%s«" + +#: plperl.c:775 +msgid "$_TD->{new} does not exist" +msgstr "$_TD->{new} existiert nicht" + +#: plperl.c:779 +msgid "$_TD->{new} is not a hash reference" +msgstr "$_TD->{new} ist keine Hash-Referenz" + +#: plperl.c:916 plperl.c:1615 +#, c-format +msgid "PL/Perl functions cannot return type %s" +msgstr "PL/Perl-Funktionen können keinen Rückgabetyp %s haben" + +#: plperl.c:928 plperl.c:1662 +#, c-format +msgid "PL/Perl functions cannot accept type %s" +msgstr "PL/Perl-Funktionen können Typ %s nicht annehmen" + +#: plperl.c:1004 +#, c-format +msgid "creation of Perl function \"%s\" failed: %s" +msgstr "Erzeugen der Perl-Funktion »%s« fehlgeschlagen: %s" + +#: plperl.c:1134 plperl.c:1192 +#, c-format +msgid "error from Perl function \"%s\": %s" +msgstr "Fehler aus Perl-Funktion »%s«: %s" + +#: plperl.c:1240 +msgid "set-valued function called in context that cannot accept a set" +msgstr "" +"Funktion mit Mengenergebnis in einem Zusammenhang aufgerufen, der keine " +"Mengenergebnisse verarbeiten kann" + +#: plperl.c:1283 +msgid "" +"set-returning PL/Perl function must return reference to array or use " +"return_next" +msgstr "PL/Perl-Funktionen mit Mengenergebnis müssen eine Referenz auf ein Array zurückgeben oder return_next verwenden" + +#: plperl.c:1316 +msgid "composite-returning PL/Perl function must return reference to hash" +msgstr "PL/Perl-Funktion, die einen zusammengesetzten Typ zurückgibt, muss eine Referenz auf ein Hash zurückgeben" + +#: plperl.c:1325 +msgid "" +"function returning record called in context that cannot accept type record" +msgstr "Funktion, die einen Record zurückgibt, in einem Zusammenhang aufgerufen, der Typ record nicht verarbeiten kann" + +#: plperl.c:1441 +msgid "ignoring modified row in DELETE trigger" +msgstr "geänderte Zeile im DELETE-Trigger wird ignoriert" + +#: plperl.c:1449 +msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" +msgstr "Ergebnis einer PL/Perl-Triggerfunktion muss undef, »SKIP« oder »MODIFY« sein" + +#: plperl.c:1549 +msgid "out of memory" +msgstr "Speicher aufgebraucht" + +#: plperl.c:1606 +msgid "trigger functions can only be called as triggers" +msgstr "Triggerfunktionen können nur als Trigger aufgerufen werden" + +#: plperl.c:1899 +msgid "cannot use return_next in a non-SETOF function" +msgstr "return_next kann nur in einer Funktion mit SETOF-Rückgabetyp verwendet werden" + +#: plperl.c:1905 +msgid "" +"SETOF-composite-returning PL/Perl function must call return_next with " +"reference to hash" +msgstr "PL/Perl-Funktion, die SETOF eines zusammengesetzten Typs zurückgibt, muss return_next mit einer Referenz auf ein Hash aufrufen" http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/es.po ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/es.po b/src/pl/plperl/po/es.po new file mode 100755 index 0000000..53c1af2 --- /dev/null +++ b/src/pl/plperl/po/es.po @@ -0,0 +1,115 @@ +# Spanish message translation file for plperl +# This file is put in the public domain. +# Emanuel Calvo Franco <[email protected]>, 2008. +# Alvaro Herrera <[email protected]>, 2009 +# +# +msgid "" +msgstr "" +"Project-Id-Version: 8.4\n" +"Report-Msgid-Bugs-To: [email protected]\n" +"POT-Creation-Date: 2009-04-09 19:21+0000\n" +"PO-Revision-Date: 2009-04-09 17:25-0400\n" +"Last-Translator: Ãlvaro Herrera <[email protected]>\n" +"Language-Team: PgSQL-es-Ayuda <[email protected]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: plperl.c:202 +msgid "" +"If true, trusted and untrusted Perl code will be compiled in strict mode." +msgstr "" +"Si es verdadero, se compilará código Perl confiable y no confiable en modo " +"«strict»." + +#: plperl.c:606 plperl.c:799 +#, c-format +msgid "Perl hash contains nonexistent column \"%s\"" +msgstr "el hash de Perl contiene el columna inexistente «%s»" + +#: plperl.c:775 +msgid "$_TD->{new} does not exist" +msgstr "$_TD->{new} no existe" + +#: plperl.c:779 +msgid "$_TD->{new} is not a hash reference" +msgstr "$_TD->{new} no es una referencia a un hash" + +#: plperl.c:916 plperl.c:1615 +#, c-format +msgid "PL/Perl functions cannot return type %s" +msgstr "las funciones en PL/Perl no pueden retornar el tipo %s" + +#: plperl.c:928 plperl.c:1662 +#, c-format +msgid "PL/Perl functions cannot accept type %s" +msgstr "funciones de PL/Perl no pueden aceptar el tipo %s" + +#: plperl.c:1004 +#, c-format +msgid "creation of Perl function \"%s\" failed: %s" +msgstr "la creación de la función Perl «%s» falló: %s" + +#: plperl.c:1134 plperl.c:1192 +#, c-format +msgid "error from Perl function \"%s\": %s" +msgstr "error en la función de Perl «%s»: %s" + +#: plperl.c:1240 +msgid "set-valued function called in context that cannot accept a set" +msgstr "" +"se llamó a una función que retorna un conjunto en un contexto que no puede " +"aceptarlo" + +#: plperl.c:1283 +msgid "" +"set-returning PL/Perl function must return reference to array or use " +"return_next" +msgstr "" +"una función PL/Perl que retorna un conjunto debe retornar una referencia a un " +"array o usar return_next" + +#: plperl.c:1316 +msgid "composite-returning PL/Perl function must return reference to hash" +msgstr "" +"una función Perl que retorna un tipo compuesto debe retornar una referencia " +"a un hash" + +#: plperl.c:1325 +msgid "" +"function returning record called in context that cannot accept type record" +msgstr "" +"se llamó una función que retorna un registro en un contexto que no puede " +"aceptarlo" + +#: plperl.c:1441 +msgid "ignoring modified row in DELETE trigger" +msgstr "ignorando la tupla modificada en el disparador DELETE" + +#: plperl.c:1449 +msgid "" +"result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" +msgstr "" +"el resultado de la función disparadora en PL/Perl debe ser undef, «SKIP» o " +"«MODIFY»" + +#: plperl.c:1549 +msgid "out of memory" +msgstr "memoria agotada" + +#: plperl.c:1606 +msgid "trigger functions can only be called as triggers" +msgstr "las funciones disparadoras sólo pueden ser llamadas como disparadores" + +#: plperl.c:1899 +msgid "cannot use return_next in a non-SETOF function" +msgstr "no se puede utilizar return_next en una función sin SETOF" + +#: plperl.c:1905 +msgid "" +"SETOF-composite-returning PL/Perl function must call return_next with " +"reference to hash" +msgstr "" +"una función Perl que retorna SETOF de un tipo compuesto debe invocar " +"return_next con una referencia a un hash" http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/fr.po ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/fr.po b/src/pl/plperl/po/fr.po new file mode 100755 index 0000000..3654283 --- /dev/null +++ b/src/pl/plperl/po/fr.po @@ -0,0 +1,115 @@ +# translation of plperl.po to fr_fr +# french message translation file for plperl +# +# $PostgreSQL: pgsql/src/pl/plperl/po/fr.po,v 1.1 2009/04/09 19:38:53 petere Exp $ +# +# Use these quotes: � %s � +# Guillaume Lelarge <[email protected]>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 8.4\n" +"Report-Msgid-Bugs-To: [email protected]\n" +"POT-Creation-Date: 2009-04-05 05:22+0000\n" +"PO-Revision-Date: 2009-04-05 13:39+0100\n" +"Last-Translator: Guillaume Lelarge <[email protected]>\n" +"Language-Team: French <[email protected]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#: plperl.c:202 +msgid "If true, trusted and untrusted Perl code will be compiled in strict mode." +msgstr "" +"Si true, le code Perl de confiance et sans confiance sera compil� en mode\n" +"strict." + +#: plperl.c:606 +#: plperl.c:799 +#, c-format +msgid "Perl hash contains nonexistent column \"%s\"" +msgstr "Le hachage Perl contient la colonne � %s � inexistante" + +#: plperl.c:775 +msgid "$_TD->{new} does not exist" +msgstr "$_TD->{new} n'existe pas" + +#: plperl.c:779 +msgid "$_TD->{new} is not a hash reference" +msgstr "$_TD->{new} n'est pas une r�f�rence de hachage" + +#: plperl.c:916 +#: plperl.c:1615 +#, c-format +msgid "PL/Perl functions cannot return type %s" +msgstr "Les fonctions PL/perl ne peuvent pas renvoyer le type %s" + +#: plperl.c:928 +#: plperl.c:1662 +#, c-format +msgid "PL/Perl functions cannot accept type %s" +msgstr "Les fonctions PL/perl ne peuvent pas accepter le type %s" + +#: plperl.c:1004 +#, c-format +msgid "creation of Perl function \"%s\" failed: %s" +msgstr "�chec de la cr�ation de la fonction Perl � %s � : %s" + +#: plperl.c:1134 +#: plperl.c:1192 +#, c-format +msgid "error from Perl function \"%s\": %s" +msgstr "�chec dans la fonction Perl � %s � : %s" + +#: plperl.c:1240 +msgid "set-valued function called in context that cannot accept a set" +msgstr "" +"fonction renvoyant un ensemble appel�e dans un contexte qui ne peut pas\n" +"accepter un ensemble" + +#: plperl.c:1283 +msgid "set-returning PL/Perl function must return reference to array or use return_next" +msgstr "" +"la fonction PL/perl renvoyant des ensembles doit renvoyer la r�f�rence �\n" +"un tableau ou utiliser return_next" + +#: plperl.c:1316 +msgid "composite-returning PL/Perl function must return reference to hash" +msgstr "" +"la fonction PL/perl renvoyant des valeurs composites doit renvoyer la\n" +"r�f�rence � un hachage" + +#: plperl.c:1325 +msgid "function returning record called in context that cannot accept type record" +msgstr "" +"fonction renvoyant le type record appel�e dans un contexte qui ne peut pas\n" +"accepter le type record" + +#: plperl.c:1441 +msgid "ignoring modified row in DELETE trigger" +msgstr "ignore la ligne modifi�e dans le trigger DELETE" + +#: plperl.c:1449 +msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" +msgstr "" +"le r�sultat de la fonction trigger PL/perl doit �tre undef, � SKIP � ou\n" +"� MODIFY �" + +#: plperl.c:1549 +msgid "out of memory" +msgstr "m�moire �puis�e" + +#: plperl.c:1606 +msgid "trigger functions can only be called as triggers" +msgstr "les fonctions trigger peuvent seulement �tre appel�es par des triggers" + +#: plperl.c:1899 +msgid "cannot use return_next in a non-SETOF function" +msgstr "ne peut pas utiliser return_next dans une fonction non SETOF" + +#: plperl.c:1905 +msgid "SETOF-composite-returning PL/Perl function must call return_next with reference to hash" +msgstr "" +"une fonction PL/perl renvoyant des lignes composites doit appeler\n" +"return_next avec la r�f�rence � un hachage" + http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/it.po ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/it.po b/src/pl/plperl/po/it.po new file mode 100755 index 0000000..b84bf11 --- /dev/null +++ b/src/pl/plperl/po/it.po @@ -0,0 +1,113 @@ +# +# Translation of plperl to Italian +# PostgreSQL Project +# +# Associazione Culturale ITPUG - Italian PostgreSQL Users Group +# http://www.itpug.org/ - [email protected] +# +# Traduttori: +# * Emanuele Zamprogno <[email protected]> +# +# Revisori: +# * Gabriele Bartolini <[email protected]> +# +# Copyright (c) 2009, Associazione Culturale ITPUG +# Distributed under the same license of the PostgreSQL project +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 8.4\n" +"Report-Msgid-Bugs-To: [email protected]\n" +"POT-Creation-Date: 2009-07-11 05:48+0000\n" +"PO-Revision-Date: 2009-07-18 03:10:24+0200\n" +"Last-Translator: Gabriele Bartolini <[email protected]>\n" +"Language-Team: Gruppo traduzioni ITPUG <[email protected]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Italian\n" +"X-Poedit-Country: ITALY\n" +"X-Poedit-SourceCharset: utf-8\n" + +#: plperl.c:202 +msgid "If true, trusted and untrusted Perl code will be compiled in strict mode." +msgstr "Se vero, il codice Perl affidabile e non affidabile sarà compilato in modalità strict" + +#: plperl.c:624 +#: plperl.c:817 +#, c-format +msgid "Perl hash contains nonexistent column \"%s\"" +msgstr "La struttura hash in Perl contiene la colonna inesistente \"%s\"" + +#: plperl.c:793 +msgid "$_TD->{new} does not exist" +msgstr "$_TD->{new} non esiste" + +#: plperl.c:797 +msgid "$_TD->{new} is not a hash reference" +msgstr "$_TD->{new} non è un riferimento ad un hash" + +#: plperl.c:934 +#: plperl.c:1633 +#, c-format +msgid "PL/Perl functions cannot return type %s" +msgstr "la funzione PL/Perl non può ritornare il tipo %s" + +#: plperl.c:946 +#: plperl.c:1680 +#, c-format +msgid "PL/Perl functions cannot accept type %s" +msgstr "la funzione PL/Perl non può accettare il tipo %s" + +#: plperl.c:1022 +#, c-format +msgid "creation of Perl function \"%s\" failed: %s" +msgstr "creazione della funzione Perl \"%s\" fallita: %s" + +#: plperl.c:1152 +#: plperl.c:1210 +#, c-format +msgid "error from Perl function \"%s\": %s" +msgstr "errore dalla funzione Perl \"%s\": %s" + +#: plperl.c:1258 +msgid "set-valued function called in context that cannot accept a set" +msgstr "la funzione set-valued è stata chiamata all'interno di un contesto che non può accettare un set" + +#: plperl.c:1301 +msgid "set-returning PL/Perl function must return reference to array or use return_next" +msgstr "la funzione PL/Perl di tipo \"set-returning\" deve ritornare un riferimento ad un array o usare return_next" + +#: plperl.c:1334 +msgid "composite-returning PL/Perl function must return reference to hash" +msgstr "la funzione PL/Perl \"composite-returning\" deve ritornare un riferimento all'hash" + +#: plperl.c:1343 +msgid "function returning record called in context that cannot accept type record" +msgstr "la funzione che restituisce un record è chiamata all'interno di un contesto che non può accettare il tipo record" + +#: plperl.c:1459 +msgid "ignoring modified row in DELETE trigger" +msgstr "ignorata la riga modificata all'interno del trigger DELETE" + +#: plperl.c:1467 +msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" +msgstr "il risultato della funzione trigger PL/Perl deve essere undef, \"SKIP\" oppure \"MODIFY\"" + +# in teoria non servirebbe tradurre +#: plperl.c:1567 +msgid "out of memory" +msgstr "memoria esaurita" + +#: plperl.c:1624 +msgid "trigger functions can only be called as triggers" +msgstr "le funzioni trigger possono solo essere chiamate come trigger" + +#: plperl.c:1917 +msgid "cannot use return_next in a non-SETOF function" +msgstr "non si può usare return_next in una funzione non-SETOF" + +#: plperl.c:1923 +msgid "SETOF-composite-returning PL/Perl function must call return_next with reference to hash" +msgstr "la funzione PL/Perl SETOF-composite-returning deve chiamare return_next con riferimento all'hash" + http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/ja.po ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/ja.po b/src/pl/plperl/po/ja.po new file mode 100755 index 0000000..5bddc1b --- /dev/null +++ b/src/pl/plperl/po/ja.po @@ -0,0 +1,100 @@ +# LANGUAGE message translation file for plperl +# Copyright (C) 2009 PostgreSQL Global Development Group +# This file is distributed under the same license as the PostgreSQL package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 8.4\n" +"Report-Msgid-Bugs-To: [email protected]\n" +"POT-Creation-Date: 2009-04-13 07:10+0000\n" +"PO-Revision-Date: 2009-04-13 22:15+0900\n" +"Last-Translator: Shigehiro Honda <[email protected]>\n" +"Language-Team: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: plperl.c:202 +msgid "" +"If true, trusted and untrusted Perl code will be compiled in strict mode." +msgstr "çãªãã°ä¿¡é ¼ããä¿¡é ¼ãããªãPerlã®ã³ã¼ãã¯strictã¢ã¼ãã§ã³ã³ãã¤ã«ããã¾ãã" + +#: plperl.c:606 plperl.c:799 +#, c-format +msgid "Perl hash contains nonexistent column \"%s\"" +msgstr "Perlããã·ã¥ã«åå¨ããªãå\"%s\"ãå«ã¾ãã¾ã" + +#: plperl.c:775 +msgid "$_TD->{new} does not exist" +msgstr "$_TD->{new}ã¯åå¨ãã¾ãã" + +#: plperl.c:779 +msgid "$_TD->{new} is not a hash reference" +msgstr "$_TD->{new}ã¯ããã·ã¥ã¸ã®åç §ã§ã¯ããã¾ãã" + +#: plperl.c:916 plperl.c:1615 +#, c-format +msgid "PL/Perl functions cannot return type %s" +msgstr "PL/Perl颿°ã¯%såãè¿ããã¨ãã§ãã¾ãã" + +#: plperl.c:928 plperl.c:1662 +#, c-format +msgid "PL/Perl functions cannot accept type %s" +msgstr "PL/Perl颿°ã¯%såãåãä»ãããã¾ãã" + +#: plperl.c:1004 +#, c-format +msgid "creation of Perl function \"%s\" failed: %s" +msgstr "Perl颿°\"%s\"ã®ä½æã«å¤±æãã¾ãã: %s" + +#: plperl.c:1134 plperl.c:1192 +#, c-format +msgid "error from Perl function \"%s\": %s" +msgstr "Perl颿°\"%s\"ã§ã¨ã©ã¼ãããã¾ã: %s" + +#: plperl.c:1240 +msgid "set-valued function called in context that cannot accept a set" +msgstr "ãã®ã³ã³ããã¹ãã§éåå¤ã®é¢æ°ã¯éåãåãä»ãããã¾ãã" + +#: plperl.c:1283 +msgid "" +"set-returning PL/Perl function must return reference to array or use " +"return_next" +msgstr "éåãè¿ãPL/Perl颿°ã¯é åã¸ã®åç §ãè¿ããã¾ãã¯ãreturn_nextã使ç¨ããå¿ è¦ãããã¾ã" + +#: plperl.c:1316 +msgid "composite-returning PL/Perl function must return reference to hash" +msgstr "è¤ååãè¿ãPL/Perl颿°ã¯ããã·ã¥ã¸ã®åç §ãè¿ãå¿ è¦ãããã¾ã" + +#: plperl.c:1325 +msgid "" +"function returning record called in context that cannot accept type record" +msgstr "ã¬ã³ã¼ãåãåãä»ããããªãã³ã³ããã¹ãã§ã¬ã³ã¼ããè¿ã颿°ãå¼ã³åºããã¾ãã" + +#: plperl.c:1441 +msgid "ignoring modified row in DELETE trigger" +msgstr "DELETEããªã¬ã«ã¦å¤æ´ãããè¡ãç¡è¦ãã¾ã" + +#: plperl.c:1449 +msgid "" +"result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" +msgstr "PL/Perlããªã¬é¢æ°ã®çµæã¯\"SKIP\"ã¾ãã¯\"MODIFY\"ã§ãªããã°ãªãã¾ãã" + +#: plperl.c:1549 +msgid "out of memory" +msgstr "ã¡ã¢ãªä¸è¶³ã§ã" + +#: plperl.c:1606 +msgid "trigger functions can only be called as triggers" +msgstr "ããªã¬ã¼é¢æ°ã¯ããªã¬ã¼ã¨ãã¦ã®ã¿ã³ã¼ã«ã§ãã¾ã" + +#: plperl.c:1899 +msgid "cannot use return_next in a non-SETOF function" +msgstr "SETOF颿°ä»¥å¤ã§ã¯return_nextã使ç¨ãããã¨ã¯ã§ãã¾ãã" + +#: plperl.c:1905 +msgid "" +"SETOF-composite-returning PL/Perl function must call return_next with " +"reference to hash" +msgstr "è¤ååã®SETOFãè¿ãPL/Perl颿°ã¯ããã·ã¥ã¸ã®åç §ãæã¤return_nextãå¼ã³åºããªããã°ãªãã¾ãã" http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/pt_BR.po ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/pt_BR.po b/src/pl/plperl/po/pt_BR.po new file mode 100755 index 0000000..2e6a5af --- /dev/null +++ b/src/pl/plperl/po/pt_BR.po @@ -0,0 +1,105 @@ +# Brazilian Portuguese message translation file for plperl +# Copyright (C) 2009 PostgreSQL Global Development Group +# This file is distributed under the same license as the PostgreSQL package. +# Euler Taveira de Oliveira <[email protected]>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 8.4\n" +"Report-Msgid-Bugs-To: [email protected]\n" +"POT-Creation-Date: 2009-05-06 19:47-0300\n" +"PO-Revision-Date: 2009-05-10 01:12-0300\n" +"Last-Translator: Euler Taveira de Oliveira <[email protected]>\n" +"Language-Team: Brazilian Portuguese <[email protected]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: plperl.c:202 +msgid "" +"If true, trusted and untrusted Perl code will be compiled in strict mode." +msgstr "" +"Se verdadeiro, código Perl confiável e não-confiável será compilado em modo estrito." + +#: plperl.c:606 plperl.c:799 +#, c-format +msgid "Perl hash contains nonexistent column \"%s\"" +msgstr "hash Perl contém coluna inexistente \"%s\"" + +#: plperl.c:775 +msgid "$_TD->{new} does not exist" +msgstr "$_TD->{new} não existe" + +#: plperl.c:779 +msgid "$_TD->{new} is not a hash reference" +msgstr "$_TD->{new} não é uma referência hash" + +#: plperl.c:916 plperl.c:1615 +#, c-format +msgid "PL/Perl functions cannot return type %s" +msgstr "funções PL/Perl não podem retornar tipo %s" + +#: plperl.c:928 plperl.c:1662 +#, c-format +msgid "PL/Perl functions cannot accept type %s" +msgstr "funções PL/Perl não podem aceitar tipo %s" + +#: plperl.c:1004 +#, c-format +msgid "creation of Perl function \"%s\" failed: %s" +msgstr "criação da função Perl \"%s\" falhou: %s" + +#: plperl.c:1134 plperl.c:1192 +#, c-format +msgid "error from Perl function \"%s\": %s" +msgstr "erro da função Perl \"%s\": %s" + +#: plperl.c:1240 +msgid "set-valued function called in context that cannot accept a set" +msgstr "" + +#: plperl.c:1283 +msgid "" +"set-returning PL/Perl function must return reference to array or use " +"return_next" +msgstr "" +"funçao PL/Perl que retorna conjunto deve retornar referência para matriz ou usar return_next" + +#: plperl.c:1316 +msgid "composite-returning PL/Perl function must return reference to hash" +msgstr "função que retorna tipo composto deve retornar referência a um hash" + +#: plperl.c:1325 +msgid "" +"function returning record called in context that cannot accept type record" +msgstr "" +"função que retorna record foi chamada em um contexto que não pode aceitar tipo record" + +#: plperl.c:1441 +msgid "ignoring modified row in DELETE trigger" +msgstr "ignorando registro modificado em gatilho DELETE" + +#: plperl.c:1449 +msgid "" +"result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" +msgstr "" +"resultado da função de gatilho PL/Perl deve ser undef, \"SKIP\" ou \"MODIFY\"" + +#: plperl.c:1549 +msgid "out of memory" +msgstr "sem memória" + +#: plperl.c:1606 +msgid "trigger functions can only be called as triggers" +msgstr "funções de gatilho só podem ser chamadas como gatilhos" + +#: plperl.c:1899 +msgid "cannot use return_next in a non-SETOF function" +msgstr "não pode utilizar return_next em uma função que não retorna conjunto" + +#: plperl.c:1905 +msgid "" +"SETOF-composite-returning PL/Perl function must call return_next with " +"reference to hash" +msgstr "" +"função PL/Perl que retorna um conjunto de tipo composto deve chamar return_next com referência a um hash" http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/120ee70b/src/pl/plperl/po/tr.po ---------------------------------------------------------------------- diff --git a/src/pl/plperl/po/tr.po b/src/pl/plperl/po/tr.po new file mode 100755 index 0000000..3f74ef4 --- /dev/null +++ b/src/pl/plperl/po/tr.po @@ -0,0 +1,100 @@ +# LANGUAGE message translation file for plperl +# Copyright (C) 2009 PostgreSQL Global Development Group +# This file is distributed under the same license as the PostgreSQL package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: PostgreSQL 8.4\n" +"Report-Msgid-Bugs-To: [email protected]\n" +"POT-Creation-Date: 2009-04-29 07:08+0000\n" +"PO-Revision-Date: 2009-05-04 22:12+0200\n" +"Last-Translator: Devrim GÃNDÃZ <[email protected]>\n" +"Language-Team: Turkish <[email protected]>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Turkish\n" +"X-Poedit-Country: Turkey\n" + +#: plperl.c:202 +msgid "If true, trusted and untrusted Perl code will be compiled in strict mode." +msgstr "DoÄru ise, trusted ve untrusted Perl kodları strict modda derlenecektir" + +#: plperl.c:606 +#: plperl.c:799 +#, c-format +msgid "Perl hash contains nonexistent column \"%s\"" +msgstr "Perl hashi olmayan kolonu içeriyor: \"%s\"" + +#: plperl.c:775 +msgid "$_TD->{new} does not exist" +msgstr "$_TD->{new} mevcut deÄil" + +#: plperl.c:779 +msgid "$_TD->{new} is not a hash reference" +msgstr "$_TD->{new} hash referansı deÄil" + +#: plperl.c:916 +#: plperl.c:1615 +#, c-format +msgid "PL/Perl functions cannot return type %s" +msgstr "PL/Perl fonksiyonları %s veri tipini döndüremezler" + +#: plperl.c:928 +#: plperl.c:1662 +#, c-format +msgid "PL/Perl functions cannot accept type %s" +msgstr "PL/Perl fonksiyonları %s tipini kabul etmez" + +#: plperl.c:1004 +#, c-format +msgid "creation of Perl function \"%s\" failed: %s" +msgstr " \"%s\" Perl fonksiyonunun yaratılması baÅarısız oldu: %s" + +#: plperl.c:1134 +#: plperl.c:1192 +#, c-format +msgid "error from Perl function \"%s\": %s" +msgstr "Perl fonksiyonunda hata: \"%s\": %s" + +#: plperl.c:1240 +msgid "set-valued function called in context that cannot accept a set" +msgstr "set deÄerini kabul etmediÄi ortamda set deÄeri alan fonksiyon çaÄırılmıÅ" + +#: plperl.c:1283 +msgid "set-returning PL/Perl function must return reference to array or use return_next" +msgstr "se dönen PL/Perl fonksiyonu return_next kullanmalı ya da bir diziye referans dönmelidir" + +#: plperl.c:1316 +msgid "composite-returning PL/Perl function must return reference to hash" +msgstr "composite döndüren PL/Perl fonksiyonu hash'e referans dönmelidir" + +#: plperl.c:1325 +msgid "function returning record called in context that cannot accept type record" +msgstr "tip kaydı içermeyen alanda çaÄırılan ve kayıt döndüren fonksiyon" + +#: plperl.c:1441 +msgid "ignoring modified row in DELETE trigger" +msgstr "DELETE triggerındaki deÄiÅtirilmiÅ satır gözardı ediliyor" + +#: plperl.c:1449 +msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\"" +msgstr "PL/Perl trigger fonksiyonun sonucu undef, \"SKIP\" ya da \"MODIFY\" olmalıdır" + +#: plperl.c:1549 +msgid "out of memory" +msgstr "yetersiz bellek" + +#: plperl.c:1606 +msgid "trigger functions can only be called as triggers" +msgstr "trigger fonksiyonları sadece trigger olarak çaÄırılabilirler" + +#: plperl.c:1899 +msgid "cannot use return_next in a non-SETOF function" +msgstr "SETOF olmayan bir fonksiyonda return_next kullanılamaz" + +#: plperl.c:1905 +msgid "SETOF-composite-returning PL/Perl function must call return_next with reference to hash" +msgstr "SETOF-composite döndüren PL/Perl fonksiyonları return_next'i hash'e referans olarak çaÄırmalıdır" +
