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 ...
VíceZá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...
VíceDistribuované 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...
VícePostgreSQL 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...
VícePostgreSQL 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...
VíceStatistika 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...
VíceŠ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
VícePostgreSQL 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...
Více