Waiting for 9.2 – Index only scans

On 8th of October, Tom Lane committed patch:

Support index-only scans using the visibility map to avoid heap fetches.
 
When a btree index contains all columns required by the query, and the
visibility map shows that all tuples on a target heap page are
visible-to-all, we don't need to fetch that heap page.  This patch depends
on the previous patches that made the visibility map reliable.
 
There's a fair amount left to do here, notably trying to figure out a less
chintzy way of estimating the cost of an index-only scan, but the core
functionality seems ready to commit.
 
Robert Haas and Ibrar Ahmed, with some previous work by Heikki Linnakangas.

Continue reading Waiting for 9.2 – Index only scans

What index to create?

Some time ago I wrote a blogpost about why index might not be used.

While this post seemed to be well received (top link from depesz.com on reddit), it doesn't answer another question – what index to create for given situation.

I'll try to cover this question now.

IMPORTANT UPDATE: As of PostgreSQL 10 hash indexes are WAL logged. As such, main point against them is gone.

Continue reading What index to create?

Waiting for 9.2 – filtered info in explain analyze

On 22nd of September, Tom Lane committed patch:

Make EXPLAIN ANALYZE report the numbers of rows rejected by filter steps.
 
This provides information about the numbers of tuples that were visited
but not returned by table scans, as well as the numbers of join tuples
that were considered and discarded within a join plan node.
 
There is still some discussion going on about the best way to report counts
for outer-join situations, but I think most of what's in the patch would
not change if we revise that, so I'm going to go ahead and commit it as-is.
 
Documentation changes to follow (they weren't in the submitted patch
either).
 
Marko Tiikkaja, reviewed by Marc Cousin, somewhat revised by Tom

Continue reading Waiting for 9.2 – filtered info in explain analyze

Najlepszy serial wszech czasów [polish only]

Jakiś czas temu (~ 3 lata) szukałem co by tu sobie obejrzeć, i trafiłem informację o serialu “The Wire".

Trochę o nim poczytałem i dowiedziałem się, że:

  • Zdobył sporo nagród i nominacji
  • Twórcy starali się maksymalnie urealistycznić pokazane życie – np. zatrudniając do niektórych ról ludzi stamtąd (Baltimore, MD). Efektem ubocznym jest fakt, że używany język jest bardzo interesujący.
  • Patrząc na jakąkolwiek listę “najlepszych seriali" – zasadniczo nie zdarza się by The Wire tam nie było (no chyba, że jest to lista najlepszych seriali za lata gdy The Wire nie był tworzony:

Serial ten był kiedyś podobno emitowany w polskim HBO jako “Prawo Ulicy", przy czym puścili tylk odwa sezony.

Tak więc – od alternatywnego dostawcy dostałem całość do obejrzenia. Obejrzałem i się zakochałem. Film nie jest szybki. Akcja rozwija się wolno, ale to dlatego, że każda z postaci ma swoją własną historię. Nie ma “dobrych gliniarzy" o których wiemy wszystko i “bad guyów" co to się pojawiają na ekranie na 5-10 minut i są potem wymieniani na innych. Każda postać jest pokazana. Jej motywy, życie, wybory – wszystko pokazane.

Serial zaczyna się jako serial policyjny (podejrzany, sprawa), ale w kolejnych sezonach pokazywane są coraz to inne rzeczy – nadal są śledztwa, ale przechodzą w tło, a na głównym planie są zupełnie inne realia, bohaterowie, historie. Można zobaczyć jak wygląda polityka na szczeblu miejski, szkolnictwo, prasa.

Skracając. Obejrzałem i uznałem, że serial przeskoczył w moim prywatnym rankingu dotychczasowy najlepszy serial wszechczasów czyli Twin Peaks – nadal T.P. lubię, ale The Wire jest po prostu lepszy.

A skoro mi się spodobał, to może obejrzę z moją Panią? Niestety – okazało się, że The Wire nie był dystrybuowany w Polsce. HBO na pytania mailowe o materiały/napisy nie odpowiedziało. Napisy na sieci praktycznie nie istniały (jest kilka losowo wybranych odcinków przetłumaczonych, ale jak zobaczyłem jak zostało to przetłumaczone to się załamałem).

W związku z tym stwierdziłem, że pora wziąć sprawy w swoje ręce. Nie przetłumaczę. Ale znajdę kogoś kto przetłumaczy. Trwało to dziwnie długo. Brak odpowiedzi, brak zainteresowania. W końcu, po jakimś pół roku znalazłem firmę QLT Translation, która podjęła się przetłumaczenia.

Mówimy to o materiale filmowym trwającym 60 godzin. Z późniejszych rozmów dowiedziałem się, że tłumaczenie tego zużywa około 6x czas trwania oryginału. Czyli łącznie trwało 360 godzin. To jest ponad 2 miesiące pełnoetatowej pracy!

Koszt był istotny. Ale się udało. Pokazałem Uli – i zgodnie z przewidywaniami – bardzo jej się spodobało.

W związku z tym – jeśli ktokolwiek z was chciałby napisy – może je wziąć ode mnie. Nie udało mi się ich wgrać na żaden z serwisów napisowych (widać jestem za mało techniczny), ale mogę je udostępnić od siebie. Można je wgrać gdzie się chce, używać – dopóki HBO olewa klientów w Polsce, nie mam nawet cienia wyrzutu sumienia.

Napisy (format SRT, kodowanie windows-1250) można ściągnąć:

I na koniec, nie moje, ale fajne:

The Wire - DnD alignment

Ford? Ford! – polish only

Jakiś czas temu pisałem, że przyjdzie mi zmienić markę, bo moje ukochane Mitsubishi nie sprzedaje w Polsce nic co by mi odpowiadało.

Od tamtej pory trochę się pozmieniało, ale nadal Miśki nie mają nic fajnego, w klasie powyżej lancera. A i nawet Colta kabrio już nie ma.

Tak więc, z pewną przykrością musiałem wybrać coś innego. Padło znowu na samochód raczej rzadki. Focusa. Oczywiście Focusów jest mnóstwo, ale takich – raczej nie.

Ogólnie – jak chcecie 4 osobowe kabrio z twardym dachem – wybór jest praktycznie żaden. Jest jeszcze Volvo C70, ale strasznie drogie.

Kupiłem, dałem żonie jako prezent (i tak będziemy jeździć wspólnie kilka miesięcy) i jesteśmy bardzo zadowoleni – więc i polecić innym mogę.

Natomiast jedna rzecz – kupno tego Forda pokazało olbrzymią przepaść między tym co oferuje w Assisstance Mitsubishi, a co oferuje konkurencja. Przynajmniej Ford.

Ponieważ w związku z tym Fordem za granicę nie pojedziemy, przyjdzie kupić kolejnego miśka 🙂 Pewnie Lancera bo nic innego w tej chwili nie podpada pod moją definicję “fajnego jeździdełka".

No i jako ostatnie słowo – kabriolety są zajebiste. A ten Focusik, poza kwestiami umowowymi (assistance, krótka gwarancja) jest absolutnie ekstra.

Waiting for 9.2 – cascading streaming replication

On 19th of July, Simon Riggs committed patch:

Cascading replication feature FOR streaming log-based replication.
Standby servers can now have WALSender processes, which can WORK WITH
either WALReceiver OR archive_commands TO pass DATA. Fully updated
docs, including NEW conceptual terms OF sending server, upstream AND
downstream servers. WALSenders TERMINATED WHEN promote TO master.
 
Fujii Masao, review, rework AND doc rewrite BY Simon Riggs

Continue reading Waiting for 9.2 – cascading streaming replication

“Help me” summary after a month

One month ago, on 20th of June, I posted a plea for help.

During this time, I received $225 in donations (minus PayPal provision).

All of these came from 6 different people, and, what I find a bit amusing, residents of 6 different countries (in alphabetical order):

  • Australia (thanks, mate)
  • France (merci)
  • Netherlands (dank u)
  • Poland (dziękuję)
  • Russia (спасибо)
  • Slovenia (hvala)

I would like to express my deep gratitude for all of you that helped me so far, or at least thought about it.

Waiting for 9.2 – Stacked Diagnostics in PL/pgSQL

On 18th of July, Tom Lane committed patch:

Add GET STACKED DIAGNOSTICS plpgsql command to retrieve exception info.
 
This is more SQL-spec-compliant, more easily extensible, and better
performing than the old method of inventing special variables.
 
Pavel Stehule, reviewed by Shigeru Hanada and David Wheeler

Continue reading Waiting for 9.2 – Stacked Diagnostics in PL/pgSQL

Waiting for 9.2 – Avoiding reindexing on alter type of indexed column

On 18th of July, Robert Haas committed patch:

Avoid index rebuild for no-rewrite ALTER TABLE .. ALTER TYPE.
 
Noah Misch.  Review and minor cosmetic changes by me.

Continue reading Waiting for 9.2 – Avoiding reindexing on alter type of indexed column