PostgreSQL 9.1

Z PostgreSQL
Skočit na navigaci Skočit na vyhledávání
  • ANSI SQL řetězce jsou nyní výchozí - tj. v řetězcové konstantě nedochází k interpretaci escape znaků
  • GUC quote_all_identifiers a pg_dump parametr --quote-all-identifiers
  • \conninfo
  • CREATE TABLE IF NOT EXISTS test_tsvector (...)
  • rozšíření kontrol použití agregačních funkcí o funkční závislosti (zde závislost na primárním klíči) - to je ve shodě se standardem a v podstatě je korektní implementace použití agregačních funkcí v MySQL (kde ovšem není kontrolováno nic).
  • úspornější formát pro NUMERIC
  • navigace v externím editoru
  • rozšíření funkcí string_to_array a array_to_string o podporu NULL
  • integrace funkce xpath_exists
  • integrace funkcí xml_is_well_formated
  • zobrazení zdrojového kódu funkce v psql
  • funkce left, right, reverse, concat a concat_ws
  • možnost integrace externího systému pro řízení zabezpečení - potenciálně možnost integrace s SE-Linuxem a podobnými systémy - SECURITY LABEL ON TABLE seclabel_tbl1 IS 'classified';
  • autocomplete proměnných v psql
  • možnost modifikovat data prostřednictvím CTE: WITH t1 AS(DELETE FROM src RETURNING *), t2 AS(INSERT INTO dest SELECT * FROM t1 RETURNING *) SELECT * FROM t2;
  • plperl podporuje IN parametry typu RECORD
  • funkce format pro snažší sestavování dynamického sql a chybových hlášení,
  • Object access hook framework, with post-creation hook,
  • libpq obsahuje možnost si zjistit dostupnost serveru - PQping a PQpingParams,
  • Docela zásadní funkce pro GiST - podpora KNNGIST - prohledávání nejbližšího okolí skrze GiST index tj. podpora ORDER BY,
  • podpora unlogged tables - tabulky, které nejsou chráněny transakčním logem,
  • Chyby způsobí vyvolání nativní pythonovské výjimky, pokud chyba nastala ve funkci napsané v PL/Pythonu,
  • Výchozí nastavení wal_buffers se přizpůsobuje nastavení shared_buffers,
  • pg_basebackup - aplikace pro zjednodušení provedení online binární zálohy,
  • možnost označit jako primární klíč existující sloupec s UNIQUE indexem,
  • popisnější výjimky v PL/Pythonu,
  • Support LIKE and ILIKE index searches via contrib/pg_trgm indexes,
explain (costs off)
  select * from test2 where t like '%BCD%';
                QUERY PLAN                
------------------------------------------
 Bitmap Heap Scan on test2
   Recheck Cond: (t ~~ '%BCD%'::text)
   ->  Bitmap Index Scan on test2_idx_gin
         Index Cond: (t ~~ '%BCD%'::text)
(4 rows)
  • Instead triggery
CREATE TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
    ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
    [ WHEN ( condition ) ]
    EXECUTE PROCEDURE function_name ( arguments )
  • validátor plpythonu,
  • úroveň SERAILIZABLE je nyní skutečně SERIALIZABLE - SELECT blokuje UPDATE,
  • logování situace, kdy autovacuum nemůže vacuuovat tabulku z důvodů zamknutí tabulky,
  • možnost nastavení atributu cizího klíče bez nutnosti okamžité kontroly obsahu sloupce. Atribut je možné dodatečně zkontrolovat příkazem VALID s nižšími požadavky na zamykání,
  • možnost označovat body obnovy textovým identifikátorem,
  • podpora COLLATION - locales na úrovni sloupce, možnost registrace vlastních collates,
CREATE TABLE collate_test2 (
    a int,
    b text COLLATE "sv_SE.utf8"
);

SELECT a, b FROM collate_test1 ORDER BY b COLLATE "C";
  • podpora extenzí - metadat k rozšiřujícím modulům,
  • cyklus FOREACH v PL/pgSQL,
  • pomocné aplikační zámky lze omezit transakcí,
  • binární předávání polí do funkcí psaných v PL/Perlu,
  • podpora cizích tabulek dle standardu SQL/MED,
  • quote functions for PLPython,