Re: Createlang SQL ?

Lists: Postg메이저 토토 사이트SQL
From: Andreas Tille <andreas(at)an3as(dot)eu>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Createlang SQL ?
Date: 2013-10-09 20:37:04
Message-ID: 20131009203704.GC5664@an3as.eu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg와이즈 토토SQL : Postg와이즈

Hallo,

bis PostgreSQL 9.1 (9.2 habe ich nicht probiert), ging sowas wie

CREATE OR REPLACE FUNCTION active_uploader_ids_of_pkggroup(text,int) RETURNS SETOF RECORD AS $$
..
$$ LANGUAGE 'SQL';

immer ohne spezielle Vorbereitung. Ich habe jetzt das postgresql-9.3
Paket in Debian testing installiert und wenn ich obiges versuche kommt:

FEHLER: Sprache „SQL“ existiert nicht

(das ist ein cut-n-paste - die "einseitigen" Gäsnefüßchen kommen
wirklich so - kann sein, daß da auch noch Gänsefüßchen unten stehen
und die lediglich an der Konsole nicht dargestellt werden)

Also versuche ich:

$ createlang 'SQL' udd
createlang: Sprache „sql“ ist bereits in Datenbank „udd“ installiert

... hmmm, warum geht dann das oben nicht? Sehe ich mir

$ createlang --list udd
Prozedurale Sprachen
Name | Vertraut?
---------+-----------
plpgsql | ja

an, steht SQL nicht drin. Gibt es dafür eine einfache Erklärung?

Die betreffende Datenbank ist übrigens ein Import von

http://udd.debian.org/udd.sql.gz

Gibt es dazu hilfreiche Hinweise?

Viele Grüße

Andreas.

--
http://fam-tille.de


From: "Andreas Kretschmer - internet24 GmbH" <kretschmer(at)internet24(dot)de>
To: "'Andreas Tille'" <andreas(at)an3as(dot)eu>, <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Re: Createlang SQL ?
Date: 2013-10-10 06:53:37
Message-ID: 003401cec5855af95010ebf0$@internet24.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg메이저 토토 사이트SQL

> -----Ursprüngliche Nachricht-----
> Von: pgsql-de-allgemein-owner(at)postgresql(dot)org [mailto:pgsql-de-allgemein-
> owner(at)postgresql(dot)org] Im Auftrag von Andreas Tille
> Gesendet: Mittwoch, 9. Oktober 2013 22:37
> An: pgsql-de-allgemein(at)postgresql(dot)org
> Betreff: [pgsql-de-allgemein] Createlang SQL ?
>
> Hallo,
>
> bis PostgreSQL 9.1 (9.2 habe ich nicht probiert), ging sowas wie
>
> CREATE OR REPLACE FUNCTION active_uploader_ids_of_pkggroup(text,int)
> RETURNS SETOF RECORD AS $$
> ..
> $$ LANGUAGE 'SQL';
>
> immer ohne spezielle Vorbereitung. Ich habe jetzt das postgresql-9.3
> Paket in Debian testing installiert und wenn ich obiges versuche kommt:
>
>
> FEHLER: Sprache „SQL“ existiert nicht
>
>
> (das ist ein cut-n-paste - die "einseitigen" Gäsnefüßchen kommen
> wirklich so - kann sein, daß da auch noch Gänsefüßchen unten stehen
> und die lediglich an der Konsole nicht dargestellt werden)
>
>
> Also versuche ich:
>
>
> $ createlang 'SQL' udd
> createlang: Sprache „sql“ ist bereits in Datenbank „udd“ installiert
>
>
> ... hmmm, warum geht dann das oben nicht? Sehe ich mir
>
>
> $ createlang --list udd
> Prozedurale Sprachen
> Name | Vertraut?
> ---------+-----------
> plpgsql | ja
>
>
> an, steht SQL nicht drin. Gibt es dafür eine einfache Erklärung?

Ja.

test=*# create or replace function xxx() returns date as $$select current_date;$$language 'SQL';
ERROR: language "SQL" does not exist
test=*# create or replace function xxx() returns date as $$select current_date;$$language sql;
CREATE FUNCTION
test=*#

test=*# select * from pg_language ;
lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline | lanvalidator | lanacl
----------+----------+---------+--------------+---------------+-----------+--------------+--------
internal | 10 | f | f | 0 | 0 | 2246 |
c | 10 | f | f | 0 | 0 | 2247 |
sql | 10 | f | t | 0 | 0 | 2248 |
plpgsql | 10 | t | t | 12514 | 12515 | 12516 |
(4 rows)

Andreas


From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Andreas Tille <andreas(at)an3as(dot)eu>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Createlang SQL ?
Date: 2013-10-10 17:48:12
Message-ID: 5256E85C.6000004@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

On 10/9/13 4:37 PM, Andreas Tille wrote:
> bis PostgreSQL 9.1 (9.2 habe ich nicht probiert), ging sowas wie
>
> CREATE OR REPLACE FUNCTION active_uploader_ids_of_pkggroup(text,int) RETURNS SETOF RECORD AS $$
> ..
> $$ LANGUAGE 'SQL';
>
> immer ohne spezielle Vorbereitung. Ich habe jetzt das postgresql-9.3
> Paket in Debian testing installiert und wenn ich obiges versuche kommt:
>
>
> FEHLER: Sprache „SQL“ existiert nicht

Die Groß-/Kleinschreibung wurde da früher ignoriert, aber jetzt nicht
mehr. Die Sprache heißt "sql". Die beste Syntax ist

LANGUAGE SQL

was ja bekanntlich dazu führt, dass der Bezeichner SQL in
Kleinbuchstaben umgewandelt wird.