Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 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.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.
select P.cislo, P.numeric1, P.numeric2, P.string1, P.string2, P.data,
coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, contract from
relace R, spolecne S, polozka P
left join (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy
from polozka P1, relace R1, vlastnost V1, spolecne S1
where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author'
and R1.typ_potomka='P' and V1.hodnota=R1.cislo and S1.typ='P' and P1.cislo=S1.cislo
and S1.vytvoreno < now() group by autor) A on A.autor=P.cislo
left join (select SCS.pridal as uid, CT.numeric1 as contract from polozka SC, polozka CT, spolecne SCS
where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0
) B on B.uid = P.numeric1
where P.typ=19 and R.typ_potomka=S.typ and R.potomek=S.cislo and S.typ='P' and S.cislo=P.cislo and P.numeric1 in (1,99,143)
Trochu vysvetleni:
SELECT ... ORDER BY CT.cislo DESC LIMIT 1Ale to sa mi vidi prilis trivialne, asi som nepochopil otazku.
WHERE subquery dát podmínku
CT.cislo = (SELECT MAX(CT.cislo) ...) a zopakovat tam dotaz.
(SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
,(SELECT MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj
GROUP BY tfuj.cfuj) AS B
Ale o kvalitě bych nehovořil (nebijte mě…)
SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
,(SELECT MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj
GROUP BY tfuj.cfuj
a kompletní dotaz:
select P.cislo, P.numeric1, P.numeric2, P.string1, P.string2, P.data,
coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, contract from
relace R, spolecne S, polozka P
left join (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy
from polozka P1, relace R1, vlastnost V1, spolecne S1
where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author'
and R1.typ_potomka='P' and V1.hodnota=R1.cislo and S1.typ='P' and P1.cislo=S1.cislo
and S1.vytvoreno < now() group by autor) A on A.autor=P.cislo
left join (SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
,(SELECT MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj
GROUP BY tfuj.cfuj) AS B
on B.uid = P.numeric1
where P.typ=19 and R.typ_potomka=S.typ and R.potomek=S.cislo and S.typ='P' and S.cislo=P.cislo and P.numeric1 in (1,99,143)
taky.
Samozřejmně nad prázdnou db na verzi 5.0.67.
No ono asi je něco ne úplně OK v datovém modelu, pokud to nutí dělat takovéto dotazy :), ale neznám, pozadí jak to vznikalo a ani jsem to nijak nestudoval, takže si netroufám hodnotit - jen pocit na základě, již druhého podobného dotazu.Tak castecny uspech, pro jednoho uzivatele to ale vraci NULL. Trochu jsem to rozkouskoval / zkratil:
SELECT SCS.pridal as uid, CT.numeric1 as contract, CT.cislo FROM polozka SC, polozka CT, spolecne SCS WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0;
1;-1;147251
99;-1;147251
99;1;147269
SELECT MAX(CT.cislo) AS cfuj from polozka CT where CT.typ=30 and CT.numeric1<>0;
147269
Cely subselect vraci:
99;1
Jdu si hrat dal
GROUP BY tfuj.cfuj - jen tak vařím…
select P.cislo, P.numeric1, P.numeric2, P.string1, P.string2, P.data,
coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, contract from
relace R, spolecne S, polozka P
left join (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy
from polozka P1, relace R1, vlastnost V1, spolecne S1
where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author'
and R1.typ_potomka='P' and V1.hodnota=R1.cislo and S1.typ='P' and P1.cislo=S1.cislo
and S1.vytvoreno < now() group by autor) A on A.autor=P.cislo
left join (SELECT SCS.pridal as uid, CT.numeric1 as contract FROM polozka SC, polozka CT, spolecne SCS
,(SELECT MAX(CT.cislo) AS cfuj from polozka SC, polozka CT, spolecne SCS
where SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0) AS tfuj
WHERE SC.typ=31 and CT.typ=30 and SC.numeric1 = CT.cislo and SC.cislo=SCS.cislo and SCS.typ='P' and CT.numeric1<>0 AND CT.cislo = tfuj.cfuj) AS B
on B.uid = P.numeric1
where P.typ=19 and R.typ_potomka=S.typ and R.potomek=S.cislo and S.typ='P' and S.cislo=P.cislo and P.numeric1 in (1,99,143)
vytvoriť novú tabuľku "vlastnosti_background", miesto "vlastnosti" vytvoriť view a pridať k nemu správne triggre / rules / ... čo ktorá databáza potrebuje. Triviálne, ak človek SQL generuje (napr XML + XSLT)
Prepis jsem odladil, uz zase vse funguje, dokonce tento dotaz vraci vysledky, jak ma. Jen jsem chtel podle noveho sloupecku filtrovat a z nejakeho divneho duvodu si mysql stezuje, ze to nejde, ze sloupecek status nezna.
select P.cislo, P.numeric1, P.boolean1, P.string1, P.string2, P.data, coalesce(counter,0) as counter, kdy, S.pridal, S.skupina, S.prava, R.cislo, (select CT.boolean2 from polozka CT where CT.cislo=P.numeric2) as status from relace R join spolecne S on R.typ_potomka=S.typ and R.potomek=S.cislo join polozka P on S.typ='P' and S.cislo=P.cislo left join (select R1.potomek as autor, count(P1.cislo) as counter, max(S1.vytvoreno) as kdy from polozka P1, relace R1, vlastnost V1, spolecne S1 where P1.typ=2 and P1.cislo=V1.predek and V1.typ_predka='P' and V1.typ='author' and R1.typ_potomka='P' and V1.hodnota=R1.cislo and S1.typ='P' and P1.cislo=S1.cislo and S1.vytvoreno < now() group by autor) A on A.autor=P.cislo where P.typ=19 AND status=1 ORDER BY string2 ASC;
Chyba zni:
Unknown column 'status' in 'where clause'
Nedava i to smysl, nastudoval jsem mysql dokumentaci k subselectum a nepisou, ze by to nemelo jit. Dokazu filtrovat podle vsech sloupecku mimo tento ze subselectu. Proc?
Tiskni
Sdílej: