abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 11:55 | Pozvánky

    Dnes startuje desátý ročník oblíbené kyberbezpečnostní soutěže The Catch organizované Forenzní laboratoří CESNETu. Letos zavede soutěžící do světa národních výzkumných a vzdělávacích sítí (NREN). Čekají na vás tematické úlohy založené na principu Capture the Flag (CTF), hledání ukrytých flagů i zajímavé ceny. Otestujte své schopnosti a vyrazte na lov flagů.

    Ladislav Hagara | Komentářů: 0
    včera 20:22 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2026.

    Ladislav Hagara | Komentářů: 0
    včera 18:44 | Zajímavý software

    Německý startup Aleph Alpha k příležitosti výročí sjednocení Německa zveřejnil open-weight jazykový model Kolibri, vyvíjený s ohledem na unijní pojetí autorského práva, ochranu osobních údajů GDPR a nařízení EU o umělé inteligenci, jehož 'Kodexu správné praxe' je Aleph Alpha signatářem. Výsledkem tohoto přístupu je transparentnější technologie, kterou například budou moci využívat evropské veřejné instituce, ovšem za cenu

    … více »
    AfD 💙 | Komentářů: 1
    včera 18:33 | IT novinky

    Nvidia zveřejnila návrh nové bezpečnostní platformy pro nasazování AI agentů. Jedná se o nasazení AI za použití OpenShell a Sentry, dvou oddělených bezpečnostních vrstev, v nichž může Sentry monitorovat a vyhodnocovat chování AI v OpenShellu tak, že ho v krajním případě až vypne. Mělo by to zabránit dalším únikům AI ze sandboxu.

    vencour | Komentářů: 1
    3.10. 11:33 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2026, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 2
    3.10. 02:44 | Nová verze

    Byla vydána nová verze 0.17.0 programovacího jazyka Zig (Codeberg, Wikipedie). Přispělo 206 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    2.10. 21:00 | Zajímavý projekt

    Open-source projekt OpenDLSS-NR je 'bitově přesná reimplementace' neuronové rendrovací sítě DLSS 5 od společnosti NVIDIA, jenže pro grafické API Vulkan (DLSS slouží k vylepšování klasickým způsobem vyrendrovaných snímků pomocí lokálních modelů umělé inteligence, a to v reálném čase). Projekt není nijak spojen se společností NVIDIA, je pouze pro OS Windows a natrénované váhy modelu si uživatelé musí obstarat sami. Zdrojový kód je k dispozici na GitHubu, pod licencí MIT s výjimkou pro komponenty třetích stran.

    AfD 💙 | Komentářů: 0
    2.10. 20:55 | Zajímavý software

    Společnost Cloudflare představila Clef a Clef-Flash, open-source rozhodovací modely určené pro rychlou a konzistentní klasifikaci vstupů. Na rozdíl od klasických LLM vracejí tyto modely deterministické striktně typované strukturované odpovědi s exaktními pravděpodobnostmi, tedy odpovědi ve stylu přelomového modelu Jev.

    … více »
    AfD 💙 | Komentářů: 1
    2.10. 04:44 | Nová verze

    Byla vydána beta verze Ubuntu 26.10 s kódovým názvem Stonking Stingray. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.10 mělo vyjít 15. října 2026.

    Ladislav Hagara | Komentářů: 0
    1.10. 22:22 | Nová verze

    Byla vydána verze 1.99.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 6
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2796 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: plpgsql a execute

    11.5.2005 16:36 stradivarius
    plpgsql a execute
    Přečteno: 388×
    ahoj, potreboval bych zmenit zaznam v tabulce pomoci funkce v plpgsql. UPDATE je sestavovan v cyklu FOR a vypada takto:

    EXECUTE ''UPDATE nodes_wgs set ycoord_float = '' || y || '' WHERE gid = '' || zaznam.gid || '';'';

    prikaz se jakoby provadi, ale nic se neupdatne. Kdyz si dam stejny retezec vypisovat na obrazovku, je v poradku, napr.: UPDATE nodes_wgs set ycoord_float = 50.0675771 WHERE gid = 6002;

    nesetkali jste se nekdo s timhle problemem? Asi to bude nejaka hloupost.. Dik

    Odpovědi

    11.5.2005 17:26 eXEden | skóre: 13 | blog: Plkoviny | Praha
    Rozbalit Rozbalit vše Re: plpgsql a execute
    Nevim sice, jak to volas, ale nechybi tam nekde commit?
    11.5.2005 23:43 stradivarius
    Rozbalit Rozbalit vše Re: plpgsql a execute
    ahoj, nemam transakci. je to normalni UDF v Pl/PgSQL, kterou volam z shellu psql. Jde o to, aby se ten update udelal rychle. Kdyz toto napisu v bashi tak je to na dva dny, protoze dat je moc. Souradnice mam 10000000x vetsi nez je wgs84 (napr. misto 15.12345 mam 151234560) a chci je tedy vlozit do noveho sloupce xcoord_float ve spravne velikosti. Funkce vypada tak:

    CREATE FUNCTION preved_wgs() RETURNS void AS '

    DECLARE

    zaznam nodes_wgs%ROWTYPE;

    x nodes_wgs.xcoord_float%TYPE;

    querytext1 varchar(100);

    BEGIN

    FOR zaznam IN SELECT * from nodes_wgs LOOP

    x := zaznam.xcoord / 10000000.0;

    EXECUTE ''UPDATE nodes_wgs set xcoord_float = '' || x || '' WHERE gid = '' || zaznam.gid || '';'';

    querytext1 := ''UPDATE nodes_wgs set xcoord_float = '' || x || '' WHERE gid = '' || zaznam.gid || '';'';

    UPDATE nodes_wgs SET xcoord_float = x WHERE gid = zaznam.gid;

    RAISE INFO ''querytext1 is %'', querytext1;

    END LOOP;

    RETURN "";

    END'

    LANGUAGE 'plpgsql';

    pri spusteni funkce to normalne vypisuje, co ma, tzn spoustu dat:-) UPDATE, ktery si nechavam vypisovat jako info mi funguje, kdyz ho zkopiruju do psql. Ale ten EXECUTE se proste neprovede.. Ten vypis:

    INFO: updating gid no. 9080

    INFO: querytext1 is UPDATE nodes_wgs set xcoord_float = 14.4307393 WHERE gid = 9080;

    .

    .

    .

    atd. sorry za hnusny format ale na "html znacky" dnes nejak nemam chut:-)
    12.5.2005 06:44 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
    Rozbalit Rozbalit vše Re: plpgsql a execute
    Řekl bych, že místo tvého EXECUTE "UPDATE .....

    PREPARE plan (BIGINT, BIGINT) AS UPDATE nodes_wgs set xcoord_float = $1 WHERE gid = $2; EXECUTE plan (x, zaznam.gid);

    -> Chybí mi tam PREPARE, které v téhle situaci stejně postrádá smysl, pokud ovšem daný "plán" neprovádíš častěji-

    BTW. dal bych si pozor na převody, ale o tom asi víš.
    Math, as Barbie says, is hard.
    12.5.2005 16:32 stradivarius
    Rozbalit Rozbalit vše Re: plpgsql a execute
    Ahoj, dik za tip, nicmene EXECUTE v plpgsql ma jiny vyznam nez v SQL, aspon tak chapu manual http://www.postgresql.org/docs/7.4/interactive/plpgsql-statements.html

    Bohuzel se mi to nepovedlo vyresit tak, jak jsem chtel - uz jsem nemel cas to resit, tak jsem to provedl jednim priisernym hackem, se kterym se nebudu ani chlubit. Rekl bych ze problem byl v prevodech, jak pises. Mam pocit, jako by EXECUTE v plpgsql nedavalo hlasky o chybach a varovani. Presto by me to zajimalo, dynamicke query v UDF budu jeste do budoucna resit. Pokud byste tedy nekdo vedel, kde jsem mel chybu? Dik
    13.5.2005 08:58 Pavel 'lingeek' Szalbot | skóre: 54 | Třinec
    Rozbalit Rozbalit vše Re: plpgsql a execute
    Máš pravdu... EXECUTE mi chybové hlášky vypisuje, tak zkus ještě SET client_min_messages=INFO;

    Chyba bude asi opravdu v těch převodech (zkus typ bigint, ale vidím, že budeš potřebovat spíše numeric) - kód mi přijde v pořádku, ale ... Pokud dobře vidím, tak jen updatuješ celou tabulku nodes_wgs a konkrétně jen přenastavuješ xcoord_float na jinou hodnotu. To se dá dobře udělat příkazem: UPDATE nodes_wgs SET xcoord_float=xcoord*10000000.0. Nebo mi zase něco uteklo? Btw. ten update bude stejně pomalý (a s typem numeric ještě pomalejší).
    Math, as Barbie says, is hard.
    16.5.2005 11:04 stradivarius
    Rozbalit Rozbalit vše Re: plpgsql a execute
    To se dá dobře udělat příkazem: UPDATE nodes_wgs SET xcoord_float=xcoord*10000000.0.
    mas pravdu:-), ale za tim pak jeste nasledovalo vlozeni bodu POINT v postgisu, ktere bohuzel nejde takto a navic setavovani retezce query budu potrebovat dale. Vyresil jsem to nakonec jinak:

    CREATE OR REPLACE FUNCTION preved_point(integer, float, float) RETURNS void AS '

    DECLARE

    ide integer;

    x float;

    y float;

    BEGIN

    ide := $1;

    x := $2;

    y := $3;

    UPDATE nodes_wgs SET nodes_geom = Geomfromtext((''POINT('' || x ||'' '' || y || '')'' ), 4326) WHERE gid = ide;

    RETURN;

    END

    ' LANGUAGE PLPGSQL;

    a potom samozrejme:

    select preved_point(gid, xcoord_float, ycoord_float) from nodes_wgs;

    Co se tyce rychlosti, bylo to do dvou minut (96000 zaznamu, PIII+256RAM). Sestavoveni dotazu, tak jak jsem uvedl v prvnim prispevku, jsem bohuzel nerozchodil. Zdravim

    Založit nové vlákno • Nahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.