Waiting for 8.5 – DO

On 22nd of September, Tom Lane committed a patch by Petr Jelinek:

Log Message:
-----------
Implement the DO statement to support execution of PL code without having
to create a function for it.
 
Procedural languages now have an additional entry point, namely a function
to execute an inline code block.  This seemed a better design than trying
to hide the transient-ness of the code from the PL.  As of this patch, only
plpgsql has an inline handler, but probably people will soon write handlers
for the other standard PLs.
 
In passing, remove the long-dead LANCOMPILER option of CREATE LANGUAGE.
 
Petr Jelinek

Continue reading Waiting for 8.5 – DO

Czemu jestem taki ułomny? (wylgaryzmy, polish only)

Kurde. Mam w piwnicy żarówkę, ale zapala się ją jedynie kontaktem na dole. Czyli, jak wieczorem schodzę do piwnicy, to muszę zejść po ciemnych schodach i dopiero wtedy mogę zapalić światło.

Dodatkowo – dzieciaki się boją chodzić do piwnicy bo ciemno. Moja pani, marudziła kilka razy, że trzeba coś z tym zrobić. No więc zrobiłem. Pojechałem do sklepu, kupiłem kabel, przełączniki schodowe i zabrałem się za instalację. Skracając. Po 2 godzinach wyjebałem wszystko do śmieci. W ścianie mam dziury od gwoździ, dotychczasowy kontakt działa, ale już nie jest przypomocowany do ściany, ścianę mam upaćkaną jakimś chujstwem typu silikon a poziom wkurwienia przekroczył dopuszczalne normy.

Czemu, byle obszczumur spod bramu potrafi położyć kable i wbić gwoździki a ja, kurwa, nie?! Co bym nie zaczął co wymaga jakichkolwiek zdolności manualnych to muszę zrobić krzywdę sobie, komuś obok i wszystko rozwalić? To może i brzmi zabawnie, ale ja pierdolę, mam już dosyć samego faktu, że na położenie kabelka, co normalnie trwałoby 30 minut, ja tracę czas na szukanie kogoś, bo nawet jak już znajdę fachowca to mu się nie chce przychodzić do takiej małej roboty?

Dodatkowo – szukam kogoś kto mi naprawi przełącznik światła, doda drugi piętro wyżej i zniknie dziury po gwożdziach w ścianach. Aha. I zainstaluje lampkę w ogrodzie. Tego nawet nie chcę zaczynać.

Calculating backlog of events to handle

Yesterday on my favorite IRC channel fooqux asked interesting question. I took some more questions, and here is problem description:

We have a system which, every 5 minutes, takes a number of tasks to be done. Tasks are uniform. Within 5 minutes we can handle at most 100 tasks. Given the history of number of tasks added every 5 minutes, calculate backlog at any given moment.

Did you understand the problem? Well – I didn't. So, let's see the data, and expected output.

Continue reading Calculating backlog of events to handle

Koniec romansu ( polish only )

Parę lat temu, gdy kupowałem swój pierwszy samochód, poszukałem i znalazłem Mitsubishi Space Star. Fajne autko, niedrogie, wygodne.

Kupiłem. I byłem zadowolony. Potem Space Star poszedł do ludzi a ja kupiłem Lancera Kombi. Potem dokupiłem sobie zabawkę – Colta CZC.

I byłem cały czas zadowolony. Mitsubishi jeździły dobrze, miały genialny Assisstance, a drobne problemy w rodzaju ludzi w serwisie którzy koniecznie chcą bym kombinował i wymianę blachy załatwiał “pokątnie, bez faktury" traktowałem jako folklor.

Polecałem znajomym Mitsubishi, i ogólnie byłem fanem.

Natomiast ostatnio stosunki się pogorszyły. Nie z samochodami – nadal są fajne. Z firmą (czy raczej firmami).

Zaczęło się od drobiazgów. Ot, strona autogt.pl nie działa pod Linuksem. Bo nie. Napisałem, powiedzieli, że się zajmą. Skontaktował się ze mną jakiś ichniejszy webmaster, powiedziałem w czym rzecz, i kontakt się urwał. Samochodu u nich nie wybiorę bo nie jestem w stanie się przeklikać przez pierwszą stronę. No cóż – pechowców nam nie trzeba.

Ja kupowałem Colta to chciałem kupić w Mitcarze. Napisałem do nich maila z pytaniem czy mi go sprzedadzą, czy jest itd, po czym nastąpiła cisza. Brak odzewu. Kupiłem więc właśnie wtedy w AutoGT, a jak o sprawie dowiedział się kierownik salonu Mitcaru to obiecał sprawą się zająć – w końcu przeszła mu transakcja koło nosa.

Teraz, ponieważ niedługo znowu pora wymienić samochód, a AutoGT nadal nie chce bym u nich kupował, skierowałem sie do Mitcaru. Przyszedłem jak mieli “drzwi otwarte", sprzedawcy byli zajęci, więc zostawiłem recepcjonistce numer telefonu, powiedziała że jeszcze dziś oddzwonią. To było jakieś 2 tygodnie temu. Telefonu brak.

Do tego dochodzi kwestia wyboru – i tu już wjeżdżam na MMC Car Poland. Kiedyś w Mitsubishi można było wybierać. Były samochody małe (Colt), były średnie (Carisma) i były duże (Pajero). Plus jakieś między nimi – jak Space Star.

Teraz? Colt? Żal gadać. Z fajnego małego hatchbaka zrobili pokrakę która wygląda tragicznie. CZC kupiłem tylko dlatego, że chciałem mieć zabawkę-kabrio, a to było akurat najtańsze.

Poza Coltem mam Lancera. Powyżej? Ohydny Outlander. I krowiaste Pajero. Nie ma już Grandisa, nie ma Space Stara. Nie ma nadal samochodów typu Galant czy Eclipse.

Napisałem do MMC. I dostałem odpowiedź, że:

1. Galanta już nie produkują
2. Eclipse jest tylko na rynek amerykański
3. Mogę sobie sprowadzić, ale gwarancja wtedy nie obowiązuje.

Stwierdzenie #1 jest oczywistą nieprawdą (w następnym mailu konsultant się przyznał do pomyłki). Co do Eclipse'a – pewnie prawda, bo nie widzę go ani w .de ani .uk – ale czemu?!

W dużym skrócie – wygląda na to, że czas mojego użytkowania Miśków się kończy. Smutno trochę. Chciałbym móc kupić Grandisa czy Galanta – Grandis bo spory i pakowny, a Galant mi się podoba, ale jak widać nie jestem wystarczająco “trendy" skoro nie chcę jeździć brzydkim SUVem ani olbrzymią terenówką.

Finalnie – czemu o tym piszę? Ot, taki wentyl. Jako 8 letni użytkownik Miśków głupio mi się czuć zniechęcanym do dalszych zakupów. No ale chyba przyjdzie pora na Mazdę. CX7 jest całkiem fajna…

Post scriptum – oczywiście to nie wpływa na kupienie EVO – od daaaaawno chciałem mieć i będę miał, ale to taki samochód jak Colt CZC – zabawka. Fajna, miła, można się pobawić, ale to nie jest samochód którym będę jechał gdzieś dalej czy “do pracy".

Waiting for 8.5 – changes in hstore

Andrew Gierth (RhodiumToad on irc) wrote, and Tom Lane committed:

Assorted improvements in contrib/hstore.
 
Remove the 64K limit on the lengths of keys and values within an hstore.
(This changes the on-disk format, but the old format can still be read.)
Add support for btree/hash opclasses for hstore --- this is not so much
for actual indexing purposes as to allow use of GROUP BY, DISTINCT, etc.
Add various other new functions and operators.
 
Andrew Gierth

Continue reading Waiting for 8.5 – changes in hstore

Waiting for 8.5 – MOVE {FORWARD,BACKWARD} X

On 29th of September (I know, there is a backlog – I'll work on it, I promise), Tom Lane committed another patch from Pavel Stehule:

Allow MOVE FORWARD n, MOVE BACKWARD n, MOVE FORWARD ALL, MOVE BACKWARD ALL
in plpgsql.  Clean up a couple of corner cases in the MOVE/FETCH syntax.
 
Pavel Stehule

Continue reading Waiting for 8.5 – MOVE {FORWARD,BACKWARD} X

Speeding up dump/restore process

As some of you know, I've been working lately for OmniTI company. When doing things for them (PostgreSQL related of course :), I stumbled on very interesting problem.

One of our clients is working on PostgreSQL 8.2, and wants to upgrade to 8.3. This is generally trivial – pg_dump, pg_restore/psql, and you're done.

But, this situation was with a twist – we had only very limited time-frame to do the migration. To be exact – we had 4 hours that we can bring the website down for.

So, we had to dump database, transfer it to new server, and load. All within 4 hours. Simple? Sure. Database was ~ 200GB (after restore – around 130GB). How to do it?

Continue reading Speeding up dump/restore process

[polish only] Historia ku pamięci … – aktualizacja

W piątek, 14 sierpnia, jakoś tak wieczorkiem dostałem maila od bliżej mi nie znanej osoby z firmy Luxmed.

Osoba ta, poprosiła o “pilny kontakt (niezależnie od godziny)", w sprawie “optymalizacji baz PostgreSQL".

Zadzwoniłem.

Okazało się, że potrzebują pomocy, i uważają, że dam radę jakoś “stuningować" Postgresa tak by działał szybciej. I że chodzi o pomoc w dniu jutrzejszym (tzn, w sobotę, 15 sierpnia).

Zapytał się mnie ten pan o oczekiwane wynagrodzenie, powiedział, że się skonsultuje i oddzwoni.

I faktycznie – oddzwonił jeszcze z 20 minut później, z pytaniem czy nie dałoby się taniej. Stwierdziłem, że skoro chcą bym pomógł w sobotę, i mam nie być jednym pracującym, to znaczy, że mają jakieś problemy – i to pewnie istotne. Może deadline na poniedziałek? Może jakaś większa awaria. Trzeba pomóc – nigdy nie wiadomo co i kiedy się komu przydarzy.

Zgodziłem się na zaproponowaną stawkę (około 70% tego co ja powiedziałem). Po czym okazało się, że mam przyjechać do nich do biura następnego dnia na 8. Powiem szczerze – w tym momencie sobie już “plułem w brodę" – praca z dojazdem? do tuningu Postgresa? za 70% standardowej stawki? No ale cóż. Już powiedziałem, że się zgadzam, firma spora, więc może to u nich standard, że trzeba przyjechać, bo np. dostęp z zewnątrz niemożliwy.

OK. Pojechałem. Pracowałem w ustalonym wymiarze, po czym zostałem poproszony czy mógłbym jeszcze zostać dłużej – nie mogłem.

I tu by zasadniczo się sprawa skończyła, gdyby nie prosty fakt.

17 sierpnia (w poniedziałek po tej sobocie) wystawiłem im fakturę i wysłałem. Na ustaloną wcześniej i potwierdzoną kwotę.

Ponieważ płatności mogą być np. robione hurtem na początku miesiąca, nie sprawdzałem czy przyszły za często, ale 4 września (prawie 3 tygodnie później), napisałem z pytaniem kiedy mogę się spodziewać przelewu.

Dostałem odpowiedź:

Spodziewałem się, że już ma Pan odpowiednią kwotę na koncie.
W poniedziałek sprawdzę w księgowości (dzisiaj przeprowadza się biuro).

I od tej pory cisza.

Od tamtej pory napisałem jeszcze dwukrotnie (9 i 12) września, i cisza. brak odpowiedzi, brak “już płacimy" czy “zapłacimy za miesiąc" czy “mamy cię w …, odwal się".

Czemu o tym piszę? Jako przestrogę dla innych. Z tego co się dowiedziałem tą bazą zajmuje się dalej znajoma firma – mam nadzieję, że im zapłacą. A jak nie – to pewnie będą szukać kolejnego “łosia".

AKTUALIZACJA

Przelew wpłynął. 22 września. wystarczyło 5 tygodni. i post na blogu 😉