V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).
Řešení dotazu:
psql -l
, případně (a to pro vás bude asi vhodnější), přímo SQL dotazem: SELECT datname FROM pg_database;
SELECT datname FROM pg_database WHERE datistemplate = false AND datname LIKE 'test%';
Nejde to zrejme proto, ze ve chvili kdy se dela where se nejmenuje ten sloupec modify, ale je to jen tip, protoze mi to rika, ze ten sloupec neexistuje. Cili by to mozna slo prez nejaky select into tmptableÚplně stačí ten výraz, který máte v
SELECT
, zkopírovat do WHERE
místo modify
. Je to duplicitní kód, ale to je holt SQL… (Navíc v té části SELECT
to pak asi nebudete potřebovat.)
zkousim nalamat do jednoho dotazuV PostgreSQL máte uložené procedury, je zbytečné to cpát do jednoho dotazu, když to nepotřebujete optimalizovat.
Je to duplicitní kód, ale to je holt SQL…Ani v SQL není potřeba duplikovat kód – stačí použít vnořený dotaz nebo CTE (WITH).
SELECT vyraz AS y FROM foo WHERE y = 10; -- nelzeLze duplikovat výraz (nicméně spočítá se pouze jednou):
SELECT vyraz AS y FROM foo WHERE vyraz = 10; -- vyraz se pocita pouze jednounebo použít derivovanou tabulku a přesunout predikát tam, vně už je alias viditelný:
SELECT * FROM (SELECT vyraz AS y) s WHERE y = 10;
CREATE OR REPLACE FUNCTION clean_all_dbs(IN _days_ago INT) RETURNS void LANGUAGE plpgsql AS $$ DECLARE db RECORD; BEGIN FOR db IN SELECT datname, (pg_stat_file('base/'||oid ||'/PG_VERSION')).modification AS modify FROM pg_database WHERE (pg_stat_file('base/'||oid ||'/PG_VERSION')).modification < NOW() - INTERVAL '14 days' AND datname LIKE '%\_%' LOOP EXECUTE 'DROP DATABASE IF EXISTS ' || quote_ident(db.datname); RAISE INFO 'Dropped database: %', quote_ident(db.datname); END LOOP; END; $$;Neni tam doreseno jen predani kolik dni zpetne se ma mazat, ale jinak to "skoro" funguje. Jediny problem je "ERROR: DROP DATABASE cannot be executed from a function or multi-command string." Po chvili googleni jsem se docetl, ze neni podporovano dropovani databazi ve funkcich a tak jsem to nakonec udelal shell scriptem na par radcich. Ne ze bych workaround nenasel, ale byl to rakovy hnus, ze mi prislo lepsi to udelat scriptem nize
#!/bin/bash # # Simple postgre cleaning script # days_ago=${1?"First arg define how old databases may be deleted"} DELDB="/tmp/pg_deleted_db-$(date +%F)" # Generate databases list psql -c "SELECT \ datname, \ (pg_stat_file('base/'||oid ||'/PG_VERSION')).modification AS modify \ FROM \ pg_database \ WHERE \ (pg_stat_file('base/'||oid ||'/PG_VERSION')).modification < NOW() - INTERVAL '"${days_ago}" days\' \ AND datname LIKE '%\_%';" | grep '_' > ${DELDB} # Main echo "Deleting databases more than $days_ago old..." while read -r dbname modify; do dropdb ${dbname} && echo "Database ${dbname} has been dropped because is last modified on ${modify}!" done < ${DELDB}Zrejme to neni usecase co by resilo mnoho lidi, ale mozna to nekomu usetri par hodin casu
Tiskni Sdílej: