< HomePage | Снимки
<- Събота, 17 Юли 2004 | Начална страница | Понеделник, 19 Юли 2004 ->
Неделя, 18 Юли 2004
21:00

Регенерирах статистиките за страницата (http://georgi.unixsol.org/stats/), като включих показването от коя страна са зареждани страниците. Освен това обединих логовете от georgi.cybcom.net и от официалната страна на unixsol. Сега картинката е пълна.

Не успях да си намеря вградена функция в postgres-а, която по зададена колона в някоя таблица да ми връща данните не като колона а като един ред. Проблема си го реших със следната "гениална" вградена процедура, която написах (лесно можете да си я преработите и на вас да ви върши работа):

/*
  Връща ID-та на обектите прикачени към даден контакт
  Вика се така:
    SELECT get_related_objects(contact_id,'lines','line');
*/
CREATE OR REPLACE FUNCTION
    get_related_objects(int, text, text)
RETURNS TEXT AS '
DECLARE
    _contact_id ALIAS FOR $1;
    _table ALIAS FOR $2;
    _field_name ALIAS FOR $3;
    _table_name TEXT;
    _query TEXT;
    _record RECORD;
    _ret TEXT;
BEGIN
    _ret := '''';
    _table_name := ''contacts_'' || _table;
    _query := ''SELECT '' \
        || quote_ident(_field_name) \
        || '' AS tmpid FROM '' || quote_ident(_table_name) \
        || '' WHERE contact='' || quote_literal(_contact_id);
    FOR _record IN EXECUTE _query LOOP
        _ret := _ret || '','' || _record.tmpid::text;
    END LOOP;
    RETURN ltrim(_ret,'','');
END;
' LANGUAGE 'plpgsql';

[ Коментари: 4 ]
Коментари

...и умен...

Написа случайна на 19-Jul-2004 08:41


...и прилично богат и с чувство за хумор :-))

Написа Георги Чорбаджийски (www) на 19-Jul-2004 09:43


За статистиката, колко време ти отне webazolver-а, и на колко child-а го пусна?

Написа Васил Колев (www) на 19-Jul-2004 12:17


853 дни общо
1833953 линии общо
базата данни с адреси стана 5 Mb
На 80 thread-а му е отнело около 8-10 часа

Написа Георги Чорбаджийски (www) на 19-Jul-2004 12:22