Waiting for 9.4 – Add SQL Standard WITH ORDINALITY support for UNNEST (and any other SRF)

On 29th of July, Greg Stark committed patch:

Add SQL Standard WITH ORDINALITY support for UNNEST (and any other SRF)
 
Author: Andrew Gierth, David Fetter
Reviewers: Dean Rasheed, Jeevan Chalke, Stephen Frost

Continue reading Waiting for 9.4 – Add SQL Standard WITH ORDINALITY support for UNNEST (and any other SRF)

Waiting for 9.4 – Implement the FILTER clause for aggregate function calls.

On 17th of July, Noah Misch committed patch:

Implement the FILTER clause for aggregate function calls.
 
This is SQL-standard with a few extensions, namely support for
subqueries and outer references in clause expressions.
 
catversion bump due to change in Aggref and WindowFunc.
 
David Fetter, reviewed by Dean Rasheed.

Continue reading Waiting for 9.4 – Implement the FILTER clause for aggregate function calls.

Waiting for 9.4 – Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY.

On 16th of July, Kevin Grittner committed patch:

Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY.
 
This allows reads to continue without any blocking while a REFRESH
runs.  The new data appears atomically as part of transaction
commit.
 
Review questioned the Assert that a matview was not a system
relation.  This will be addressed separately.
 
Reviewed by Hitoshi Harada, Robert Haas, Andres Freund.
Merged after review with security patch f3ab5d4.

Continue reading Waiting for 9.4 – Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY.

Waiting for 9.4 – ALTER TABLE … ALTER CONSTRAINT for FKs

On 28th of June, Simon Riggs committed patch:

ALTER TABLE ... ALTER CONSTRAINT for FKs
 
Allow constraint attributes to be altered,
so the default setting of NOT DEFERRABLE
can be altered to DEFERRABLE and back.
 
Review by Abhijit Menon-Sen

Continue reading Waiting for 9.4 – ALTER TABLE … ALTER CONSTRAINT for FKs

Bloat removal by tuples moving

Looong time ago, I wrote a piece about removing bloat by moving rows away from the end of table, and vacuuming it.

This is/was very slow, and was optimized (to some extent) by Nathan Thom, but his blogpost vanished. Besides, later on we got great tool: pg_reorg (or, as it's currently named: pg_repack).

But recently I was in position where I couldn't pg_reorg. So I had to look for other way. And I found it 🙂

Continue reading Bloat removal by tuples moving

Sprzedam Toyote GT86, prawie nówka, 4 miesiące, bezwypadkowa

Mam do sprzedania (lub do oddania, zależnie jak na to spojrzeć) toyotę GT86. Produkcja 2012, rejestracja 2013 (chyba luty). Przejechane ~ 3000 kilometrów, bezwypadkowa.

Wersja: manualna zmiana biegów, czarne wykończenie, bez nawigacji, kolor pomarańczowy. Zdjęć nie daję, chyba, że bardzo ktoś zechce, bo dupa ze mnie a nie fotograf, a na sieci są tysiące zdjęć tego wozu. A przy jego stanie nie ma znaczenia czy się ogląda zdjęcią nówek z salonu, czy tej ode mnie.

Co z nią jest? Nic. wszystko jest Tip-Top. Jedyne uszkodzenie to lekko zagięta felga – obejrzał ją i przetestował serwis Toyoty (Toyota/Chodzen w Piasecznie) i orzekli, że poza kwesią estetyczną – nic jej nie jest.

W komplecie dodaję opony zimowe (używane do kwietnia) i aktualnie założone letnie – nówki, kupione na samochodzie, i jedne i drugie.

Dziś zrobiłem “przegląd" po 3k km – wymiana oleju, zgodnie z zaleceniami Toyoty.

W samochodzie nie było palone, był trzymany w zadaszonej wiatce. Ogólnie – cód, miód, paluszki lizać. Jeśli lubisz jazdę samochodem – to jest samochód dla Ciebie. Sens istnienia tego samochodu można zobaczyć na sieci, choćby tu:

Cena: samochód jest wzięty w leasing, i mogę ten leasing odstąpić. 4 lata (czyli jeszcze około 3.5 przed nami), z ratą miesięczną 2.7k pln.
W takim układzie, o ile kupującego zaakceptuje toyota leasing (przepisanie leasingu), to dla mnie – 5000 pln.

Alternatywnie – sprzedam za gotówkę, przy czym musiałbym dostać 120000 pln by pokryć koszty leasingu.

No i finalnie: dlaczego sprzedaję takie cudo? Nie znudził się. Żona nie marudzi (zasadniczo nie podoba jej się, że chcę oddać – bo ciężko tu mówić o sprzedaży, gdy nie dostanę z powrotem choćby połowy tego co już wpłaciłem). Problem jest inny – ten samochód chce być jeżdżony. A ja nie mam gdzie. Przez te 4 miesiące dostałem mandatów łącznie na ponad 2 razy więcej niż przez całe życie do tej pory. Nie umiem nią jeździć “legalnie", a jak mi zabiorą prawo jazdy, to i tak się nie nacieszę. Więc może znajdzie się ktoś kto przygarnie …

Explaining the unexplainable – part 5

In previous posts in this series, I talked about how to read EXPLAIN output, and what each line (operation/node) means.

Now, in the final post, I will try to explain how it happens that Pg chooses “Operation X" over “Operation Y".

Continue reading Explaining the unexplainable – part 5

A tale of automating tests of Pg with Bash

Word of warning: this blogpost is about thing related to Bash (well, maybe other shells too, didn't really test), but since I found it while doing Pg work, and it might bite someone else doing Pg related work, I decided to add it to “postgresql" tag.

So, due to some work I had to do, I needed a quick, repeatable way to setup some Pg instances, replication between them, and some data loader. All very simple, no real problems. At least that's what I thought…

Continue reading A tale of automating tests of Pg with Bash

Explaining the unexplainable – part 3

In previous post in the series I wrote about how to interpret single line in explain analyze output, it's structure, and later on described all basic data-getting operations (nodes in explain tree).

Today, we'll move towards more complicated operations.

Continue reading Explaining the unexplainable – part 3