Připojte se ve středu 30. 10. 2024 od 10:00 do 12:00 na náš webinář "Řízení přístupu do PostgreSQL prostřednictvím externího autentizačního providera" (registrace zdarma) a naučte se, jak nastavit ověřování pomocí GSSAPI pro bezpečný přístup k databázím (Microsoft Active Directory nebo FreeIPA). Záznam předchozího webináře "Co je nového v PostgreSQL 17" můžete zhlédnout zde.
… více »Byla vydána nová verze 0.55 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.
Dle plánu bylo dnes vydáno Factorio 2.0 a Factorio: Space Age, tj. aktualizace 2.0 počítačové hry Factorio (Wikipedie) oficiálně běžící také na Linuxu a velké vesmírní rozšíření Factorio: Space Age.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2024 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 2. a 3. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Ubuntu oslavilo 20 let. První Ubuntu 4.10 s kódovým názvem Warty Warthog bylo vydáno 20. října 2004.
Vizuální programovací jazyk MicroBlocks určený pro programování mikropočítačů jako micro:bit pomoci bloků byl vydán v nové verzi 2.0. MicroBlocks je inspirovaný Scratchem.
Mapy.cz zavádí placenou verzi Premium (𝕏). Cena předplatného bude zveřejněna v další verzi aplikace (𝕏). Aplikace i web budou dál fungovat zdarma. Mění se způsob ukládání offline map. Nově bude možné bezplatně uložit offline mapu pouze jednoho státu (𝕏).
Byla vydána nová verze 8.10 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Pravděpodobně poslední osmičková verze. V průběhu několika měsíců by měla vyjít verze 9.
O víkendu 19. a 20. října lze na brněnském výstavišti v pavilonu A1 navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, "festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí", a GameDev Connect, "akci určenou pro všechny současné a hlavně budoucí herní vývojáře, kteří touží proniknout do jednoho z nejúžasnějších průmyslů na světě".
Asterisk (Wikipedie), svobodná softwarová implementace telefonní ústředny (PBX), byl vydán ve verzi 22.0.0. Přehled novinek v této nové major verzi v oznámení na webu a na GitHubu.
Ř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: