Byl vydán Linux Mint 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
Wine bylo po roce vývoje od vydání verze 10.0 vydáno v nové stabilní verzi 11.0. Přehled novinek na GitLabu. Vypíchnuta je podpora NTSYNC a dokončení architektury WoW64.
Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.
Asociace repair.org udělila anticeny těm nejhorším produktům představeným na veletrhu CES 2026. Oceněnými jsou například šmírující kamery Amazon Ring AI, chytrý běžecký pás od společnosti Merach, která otevřeně přiznává, že nedokáže zabezpečit osobní data uživatelů, případně jednorázové lízátko, které rozvibrovává čelisti uživatele a tak přehrává hudbu. Absolutním vítězem je lednička od Samsungu, která zobrazuje reklamy a kterou lze otevřít pouze hlasovým příkazem přes cloudovou službu.
Íránští protirežimní aktivisté si všímají 30% až 80% ztráty packetů při komunikaci se satelity služby Starlink. Mohlo by se jednat o vedlejší důsledek rušení GPS, kterou pozemní přijímače Starlinku používají k výpočtu polohy satelitů a kterou se režim rovněž snaží blokovat, podle bezpečnostního experta a iranisty Amira Rashidiho je ale pravděpodobnější příčinou terestrické rušení přímo satelitní komunikace Starlinku podobnou
… více »Evropská komise (EK) zvažuje, že zařadí komunikační službu WhatsApp americké společnosti Meta mezi velké internetové platformy, které podléhají přísnější regulaci podle unijního nařízení o digitálních službách (DSA). Firmy s více než 45 miliony uživatelů jsou podle DSA považovány za velmi velké on-line platformy (Very Large Online Platforms; VLOP) a podléhají přísnějším pravidlům EU pro internetový obsah. Pravidla po
… více »Tržní hodnota technologické společnosti Alphabet poprvé v historii přesáhla čtyři biliony dolarů (83 bilionů Kč). Stalo se tak poté, co Apple oznámil, že bude na poli umělé inteligence (AI) spolupracovat s dceřinou firmou Alphabetu, společností Google.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).
Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.
Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.
Mějme funkci pro změnu uživatelova hesla:
CREATE OR REPLACE FUNCTION zmen_heslo("login" character varying, domena character varying, stare_heslo character varying, nove_heslo character varying)
RETURNS text AS
$BODY$DECLARE pocet integer;
BEGIN
UPDATE uzivatel
SET heslo = md5($4)
WHERE login = $1
AND domena = $2
AND heslo = md5($3);
GET DIAGNOSTICS pocet = ROW_COUNT;
IF pocet = 1 THEN
RETURN 'Změna hesla pro ' || $1 || '@' || $2 || ' proběhla úspěšně.';
ELSE
RAISE EXCEPTION 'Nesprávné heslo, nebo uživatel % neexistuje', $1 || '@' || $2;
END IF;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE SECURITY DEFINER
COST 100;
ALTER FUNCTION zmen_heslo(character varying, character varying, character varying, character varying) OWNER TO posta;
GRANT EXECUTE ON FUNCTION zmen_heslo(character varying, character varying, character varying, character varying) TO public;
GRANT EXECUTE ON FUNCTION zmen_heslo(character varying, character varying, character varying, character varying) TO posta;
GRANT EXECUTE ON FUNCTION zmen_heslo(character varying, character varying, character varying, character varying) TO posta_zmena_hesla;
COMMENT ON FUNCTION zmen_heslo(character varying, character varying, character varying, character varying) IS 'Změní heslo uživatele.';
Podle dokumentace by ROW_COUNT mělo vracet počet záznamů dotčených příkazem (updatem) – tedy 1, právě tehdy když uživatel existuje a zadal správě staré heslo.
Problém je, pokud existují dva uživatelské účty se stejným heslem. ROW_COUNT je v takovém případě 2 a funkce skončí chybou.
Můžu sice změnit podmínku na IF pocet >= 1 THEN, ale to se mi nelíbí. Proč by ROW_COUNT mělo být dva? Vždyť když ten update pustím ručně, ukáže se mi správně: „1 rows affected“. Ve WHERE podmínkách se kontroluje login, doména a staré heslo a takový uživatel je tam jen jeden. Co s tím má společného, že existuje uživatel se stejným heslem (ale jiným jménem nebo doménou)?
Pokud někdo potřebuje širší souvislosti, kompletní zdrojáky jsou tady: mercurial.
Řešení dotazu:
cus
ono ti to fungovat nemuze - mas tam kolizi promenne a sql identifikatoru, kterou sice resis, ale spatne. V plpgsql maji vyssi prioritu plpgsql promenne. Tudiz zapis WHERE ... domena = $2 je fakticky $2 = $2 a tudiz se domena fakticky netestuje. Tak jak jsi to napsal by to fungovalo treba v Oraclu, ale ne v postgresu. To inkriminovane misto uprav (ta sama chyba je i s promennou login.
Pouzij kvalifikatory -
UPDATE uzivatel SET heslo = .. WHERE uzivatel.login = "login" and uzivatel.domena = domena
Pavel
Ahoj,
díky moc, to bylo ono, přidal jsem uzivatel. a na proměnné se radši odkazuji pomocí názvu v uvozovkách, názvy jsem změnil, aby se nepletly se sloupci tabulky. Dřív stačilo zadat správné heslo a jakéhokoli uživatele… ale naštěstí díky podmínce pocet = 1 to neprošlo.
Franta
Používat úvozvoky není zrovna dobrý nápad - stejně, tak jako používat klíčová slova jako identifikátory. Bohatě postačí označit proměnné nějakým prefixem - mezi komunitou se používá podtržítko (a pokud to je možné, tak používat kvantifikátory (nebo aliasy)).
http://www.postgres.cz/index.php/PL/pgSQL#Doporu.C4.8Den.C3.AD_pro_n.C3.A1vrh_ulo.C5.BEen.C3.BDch_procedur_v_jazyce_PL.2FpgSQL
Tiskni
Sdílej: