Вопросы по SQL и другие аспекты работы PostgreSQL

warning: Creating default object from empty value in /var/www/victor/web/pgdocs.ru/data/modules/taxonomy/taxonomy.pages.inc on line 33.
Здесь обсуждаются запросы на SQL в PostgreSQL. Оптимизация запросов, реализация, подходы и т.д.

Много схем - одна функция

Мы хранимые процедуры создаем в схеме public, и генерируем много
схем с одинаковыми наборами таблиц. Каждый пользователь попадает в свою схему. Для этого используем
DISCARD ALL, а затем SET SEARCH_PATH = 'название схемы', public.

А есть ли такое: бэкап пользователей базы

Собственно пришлось заниматься переносом с одного сервера на другой одной не простой базки. Ну и в ходе переноса возник вопрос а как можно перенести пользователей postgresql с одного сервера на другой? Прошу простить за мой французский только 3 день осваиваю postgresql

Как посчитать частотность слов?

Хочу построить облако тегов наиболее лайкабелтных слов ВКонтакте.

http://dl.dropbox.com/u/412791/Screenshots/hackernews.png



Есть база данных в PostgreSQL. Вот демо с запроса.

SELECT vk_groups.screen_name, 
	vk_posts."text",

не работает функция

Доброго времени суток.
У меня проблемка - ищу уже второй день подряд, ответ на свой вопрос.
Мне нужно, чтобы функция отдала мне содержимое таблицы(в данном случае).
Нашел у вас на форуму замечательный ответ по сабжу http://postgresql.ru.net/node/178974#comment-875
В частности интересует второй изложенный способ. Сделал все как советовал автор ответа, но postgres выдает ошибку :
ERROR: function result type must be text because of OUT parameters
SQL state: 42P13

Вот листинг функции:

CREATE OR REPLACE FUNCTION test.fm (
	out o_name text) 
returns setof RECORD 

создание частичных индексов

Есть две таблички:
Таблица 1 (используется в качестве справочника), содержит 70 тысяч строк:
код1 | код2

Таблица 2 (используется в качестве хранилища данных), содержит 1,5млн.строк:
дата | код1 | данные1| данные2

При этом далеко не все коды из Таблицы 1 используются в Таблице 2 (около 10%).

Соответственно, хочу создать частичный индекс:
CREATE INDEX "tbl1_indx1"
ON "table1"
USING btree
(code1)
where code1 in
(select code1
from "table2"
group by code1)

Однако выпадает следующая ошибка:
********** Ошибка **********

ERROR: cannot use subquery in index predicate

Получение данных добавляемой строки из С триггера

Привет. Вставляю строку в таблицу. На инсерт висит С триггер. Задача - получить данные вставляемой строки.

Вот код:

   IF (TRIGGER_FIRED_BY_INSERT(trigdata->tg_event))
    {
        rettuple = trigdata->tg_trigtuple;
        bool isnull = false;
        uint32 x=rettuple->t_len;
        int8 f;
            f = (int8) GetAttributeByNum(rettuple->t_data, 1, &isnull);
        elog(INFO,"len of tuple: %d",x);
        elog(INFO,"first column being inserted <img class="ccfilter smileys" src="https://pgdocs.ru/sites/ALL/modules/ccfilter/smileys/al.gif" alt="x:" title="x:" /> %d",f);
     }

Ругается на f = (int8) GetAttributeByNum(rettuple->t_data, 1, &isnull);.

1c 8 и бэкап

Всех с прошедими и настпупающими . Уважаемые гуру научите плохому.
установлена 1с 8 на посгри на linux. все устраивает, но надо настроить бэкап. написал небольшой скрипт
#!/bin/sh
#
BackUpDir="home/user/backup1c/"
DateName='date +%d.%m.%Y-%H.%M'

cd $backUpDir
echo Начато резервное копирование базы данных
pg_dump -Fc -U postgres "workdb" > $DateName.workdb.backup
echo Резервное копирование завершено

дал вот такие на него права
итого 4
-rwxrwxrwx 1 postgres chkpwd 299 2011-12-29 16:38 backup.sh*

но при выполнений вываливается ошибка.

Уникальность текстового поля независимо от регистра

Здравствуйте! Подскажите, пожалуйста, как обеспечить уникальность текстового поля независимо от регистра наиболее оптимальным способом (скажем: есть таблица товаров, в которой название товара должно быть уникально, т.е. если есть, например, товар 'Коньки', то 'КоНькИ' вставить уже нельзя). Я вижу два варианта:
1) создание уникального индекса для поля:
CREATE UNIQUE INDEX index_for_full_product_uniqueness
ON products (upper(firstname))

Кодировка и формат XML записанного функцией COPY

Проблема в следующем.
Код записи таблицы в файл в мой процедуре такой:
copy (select table_to_xml('a', true, true, '')) to
'D:\\TestTask\\PersonsForm\\use.xml';

Но xml-файл получается такой:

\n\n 2\n Houston\n Whitney\n Father\n \n \n \n \n\n\n

Как копировать COPY из переменной, хранящей путь к файлу

Не могу копировать в таблицу, указав не полный путь к файлу, а имя файла. В идеале мне нужно, чтоб было так:
CREATE OR REPLACE FUNCTION import(xml) returns varchar(12) as $$
DECLARE
u text;
str varchar(65);
BEGIN
SET xmloption TO CONTENT;
u:=XMLSERIALIZE (content $1 as text);
DELETE from "a";
IF ( xml_is_well_formed(u)=TRUE) THEN
copy "a"
from 'D:\\TestTask\\PersonsForm\\use.xml'
Delimiter as ';';
IF ((select trim(a.addition_code) from a)='1') THEN
IF ((select trim(a.name_for_print) from a)<>'') THEN
str:=(select '%'||(trim(a.name_for_print))||'%' from a);
DELETE from a;

Собранный материал

Back to top

(С) Виктор Вислобоков, 2008-2023