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í
×

včera 22:22 | Komunita

V Norimberku probíhá do neděle 28. května openSUSE Conference 2017. Na programu je celá řada zajímavých přednášek. Sledovat je lze online. K dispozici jsou také videozáznamy (YouTube) již proběhnuvších přednášek. Dění lze sledovat na Twitteru.

Ladislav Hagara | Komentářů: 0
včera 11:33 | IT novinky

Red Hat kupuje společnost Codenvy stojící za stejnojmenným webovým (cloudovým) integrovaným vývojovým prostředím (WIDE) postaveném na Eclipse Che.

Ladislav Hagara | Komentářů: 0
včera 08:55 | Nová verze

V listopadu 2014 byl představen fork Debianu bez systemd pojmenovaný Devuan. Po dva a půl roce jeho vývojáři oznámili vydání první stabilní verze 1.0. Jedná se o verzi s dlouhodobou podporou (LTS) a její kódové jméno je Jessie, podle planetky s katalogovým číslem 10 464.

Ladislav Hagara | Komentářů: 10
25.5. 20:22 | Zajímavý článek

Nadace Raspberry Pi vydala již osmapadesáté číslo (pdf) stostránkového anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a druhé číslo (pdf) časopisu Hello World primárně určeného pro učitele informatiky a výpočetní techniky.

Ladislav Hagara | Komentářů: 0
25.5. 19:55 | Humor

Portál Stack Overflow informuje na svém blogu, že pomohl ukončit editor Vim už více než milionu vývojářů. V loňském roce například hledal odpověď na otázku Jak ukončit editor Vim v průměru 1 z 20 000 návštěvníků.

Ladislav Hagara | Komentářů: 10
25.5. 19:22 | Nová verze

Po pěti měsících od vydání verze 3.5.0 byla vydána nová stabilní verze 3.6.0, tj. první z nové řady 3.6, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie). Z novinek lze zmínit například podporu dvou nových 64bitových platforem little-endian POWER machines (ppc64le) a IBM z Systems (s390x) nebo nové balíčky Rust 1.17.0, Cargo 0.18.0, GHC 8.0.2 a Julia 0.5.2.

Ladislav Hagara | Komentářů: 0
24.5. 21:33 | Bezpečnostní upozornění

V Sambě byla nalezena a opravena bezpečnostní chyba CVE-2017-7494. Má-li útočník právo ukládat soubory na vzdálený server, může tam uložit připravenou sdílenou knihovnu a přinutit smbd server k jejímu načtení a tím pádem ke spuštění libovolných příkazů. Chyba je opravena v upstream verzích 4.6.4, 4.5.10 a 4.4.14. Chyba se týká všech verzí Samby od verze 3.5.0 vydané 1. března 2010.

Ladislav Hagara | Komentářů: 7
24.5. 20:44 | Nová verze

Byla vydána nová stabilní verze 4.3.0 integrovaného vývojového prostředí (IDE) Qt Creator. Z novinek lze zmínit například integraci editoru kódu do Qt Quick Designeru.

Ladislav Hagara | Komentářů: 1
24.5. 20:11 | Bezpečnostní upozornění

Společnost Check Point informuje na svém blogu o novém vektoru útoku. Pomocí titulků lze útočit na multimediální přehrávače VLC, Kodi, Popcorn Time, Stremio a pravděpodobně i další. Otevření útočníkem připraveného souboru s titulky v neaktualizovaném multimediálním přehrávači může vést ke spuštění libovolných příkazů pod právy uživatele. Ukázka na YouTube. Chyba je opravena v Kodi 17.2 nebo ve VLC 2.2.6.

Ladislav Hagara | Komentářů: 14
23.5. 15:18 | Zajímavý software

CrossOver, komerční produkt založený na Wine, je dnes (23. 5. 2017) dostupný ve slevě. Roční předplatné linuxové verze vyjde s kódem TWENTYONE na $21, resp. $1 v případě IP z chudších zemí. Firma CodeWeavers, která CrossOver vyvíjí, významně přispívá do Wine. Přidaná hodnota CrossOver spočívá v přívětivějším uživatelském rozhraní, integraci do desktopu a podpoře.

Fluttershy, yay! | Komentářů: 27
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (33%)
 (1%)
 (8%)
 (44%)
 (9%)
Celkem 627 hlasů
 Komentářů: 62, poslední 19.5. 01:57
    Rozcestník

    Dotaz: plpgsql a execute

    11.5.2005 16:36 stradivarius
    plpgsql a execute
    Přečteno: 113×
    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áknoNahoru

    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.