collate "cs_CZ"
Transkript
PostgreSQL ● Čistě komunitní projekt ● 15 let vývoje, 600 tis. Řádek kódu ● ● Vývoj zajišťuje cca 30 nadšenců (dnes již většinou na fulltime), + desítky dalších přispěvatelů a příznivců 230 (8.4), 275 (9.0) PostgreSQL se používá v finančnictví, telco, vědeckých institucích, NASA, v medicíně, v strojírenství, dopravě Historie ● 6.2 – oprava vážných chyb ● 7.4 – eliminace výkonnostních problémů (2003) ● 8.0 – podpora MS Windows (2004) ● 8.4 – integrace enterprise funkcí (2009) ● 9.0 – integrace podpory replikace (2010) ● 9.1 – synchronní replikace, ... (2011) Metodiky vývoje ● ● ● Jednoroční cyklus, zmražení seznamu patchů, zpracování přijatých patchů, testování, minimální formalizace procesu, důraz na kvalitu kódu, kvalitu dokumentace, kvalitu komentářů v CVS Ve verzích 8.3, 8.4 nastává nezvladatelný nárůst fronty přijatých patchů – požadavek na změnu procesu Éra commitfestů – kratší vývojové cykly, každý patch je recenzován – úspora času commiterů Nástroje ● Klasické vývojové nástroje gcc, gdb, diff, patch ● CVS, dnes již Git ● Mailing lists + zpřístupněné archivy ● Wiki – mediawiki ● DocBook ● Jednoduché PHP evidence ● Testovací farma PostgreSQL 8.4 ● Nativní funkce Unnest a Array_agg ● EXECUTE USING a CASE v PL/pgSQL ● Rozšíření příkazu RAISE, RETURN QUERY ● Variadické funkce a defaultní hodnoty parametrů ● Locales per databáze ● Analytické funkce, CTE ● Visibility maps a VACUUM, semijoin, antijoin ● Paralelní import dumpu Variadické funkce CREATE OR REPLACE FUNCTION myleast(VARIADIC anyarray) RETURNS anyelement AS $$ SELECT min(v) FROM unnest($1) g(v) $$ LANGUAGE sql; PostgreSQL 9.0 ● Podpora asynchronní replikace ● Zjednodušená migrace ● Hromadné nastavování práv ● Anonymní bloky a pojmenované parametry ● Agregační funkce s klauzulí ORDER BY Anonymní bloky DO $$ BEGIN FOR i IN 1..10 LOOP RAISE NOTICE 'Hello %', i; END LOOP; END; $$ Agregační funkce s klauzulí ORDER BY SELECT string_agg(prijmeni, ',' ORDER BY prijmeni) FROM zamestnanci GROUP BY oddeleni; Pojmenovane implicitní parametry funkce CREATE FUNCTION foo(a int = 3, b int = 0) RETURNS ... SELECT foo(); SELECT foo(10,20); SELECT foo(10, b := 30); SELECT foo(10); SELECT foo(b := -1, a := 20); PostgreSQL 9.1 ● Režim synchronní replikace ● SQL/MED ● COLLATION na úrovni sloupců ● Pravá úroveň izolave SERIALIZABLE ● Datový typ JSON ● Příkaz MERGE ● Integrace s SE-Linuxem ● Funkce Median, Left, Right, Concat, Format ● Globální dočasné tabulky Podpora COLLATES test=# select * from jmena order by jmeno collate "cs_CZ"; jmeno -----------Crha Doucha Gregor Hrozný Chromečka (5 rows) Podpora COLLATES test=# select * from jmena where jmeno >= 'Hrozný' collate "cs_CZ"; jmeno -----------Hrozný Chromečka (2 rows) test=# select * from jmena where jmeno >= 'Hrozný' collate "C"; jmeno --------Hrozný (1 row) Triggery INSTEAD OF CREATE VIEW v AS SELECT * FROM t1, t2 WHERE a = b; CREATE OR REPLACE FUNCTION trg_handler() RETURNS trigger AS $$ BEGIN INSERT INTO t1 VALUES(new.a); INSERT INTO t2 VALUES(new.b); RETURN new; END; CREATE TRIGGER foo_trg INSTEAD OF INSERT ON v FOR EACH ROW EXECUTE PROCEDURE trg_handler();
Podobné dokumenty
DISTRIBUOVANÉ A OBJEKTOVĚ
Tím, že jsme vytvořili repliku tabulky R v místě 2, tak
zlevnily dotazy i aktualizace dat v tabulce R; musíme
ale udržovat repliku synchronizovanou.
Synchronizace vyžaduje propagovat všechny změny ...
Západočeská univerzita
SELECT – získávání dat
INSERT – vkládání dat
UPDATE – úprava dat
DELETE – mazání dat
Získávání dat (Data retrieval)
Nejčastější operací prováděnou dotazovacím jazykem nad databázemi je získávání da...
Distribuované programování na platformě Microsoft .NET
1. SingleCall = remote objekt je stateless a vytváří se při každém volání metody
2. Client-activated = remote objekt se chová stejně jako lokální objekty, tj. vytváří se
pomocí konstrukce new a je...
PostgreSQL 8.2 efektivne
Pro opakované importy se vyplatı́ použı́t jednoduchou funkci v untrusted PLperlu a
v této funkci se připojit ke zdrojové databázi, zı́skat data a ta vrátit jako výsledek
funkce. Odpadajı́ t...
PostgreSQL ve verzi 9.2, 9.3 a 9.4 SQL
Poddotaz se může objevit i v klauzuli FROM – pak jej označujeme jako derivovaná tabulka 14.
I derivovanou tabulku lze spojovat s běžnými tabulkami (obojí je relací).
Následující příklad zobrazí sez...
Statistika v PostgreSQL pomocí R-project
--nejnizsi namerene teploty v jednotlivych mesicich
select datum, teplota
From (select rank() over (PARTITION by extract(year from datum)*100 + extract(month from datum) order by
teplota),* from po...
Školení PostgreSQL efektivne - Všeobecná cást + administrace
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y
CREATE ROLE
PostgreSQL 9.1 efektivne
Návrh vlastnı́ch funkcı́
C, PL/pgSQL, PL/SQL, PL/Perl, PL/Python, PL/Java, PL/Php, PL/R
Podpora OUT parametrů
Podpora Set Returning Functions (výsledkem je tabulka)
Podpora ošetřenı́ chyb
Podp...