Я использую postgresql 9.0 beta 4.
Вставив много данных в секционированную таблицу, я обнаружил странную вещь. Когда я запрашиваю таблицу, я вижу пустую строку с нулевыми значениями в полях «not-null».
Этот странный результат запроса, как показано ниже.
689-й ряд пуст. Первые 3 поля (stid, d, ticker) составляют первичный ключ. Поэтому они не должны быть нулевыми. Я использовал следующий запрос:
select * from st_daily2 where stid=267408 order by d
Я могу даже сделать группу по этим данным.
select stid, date_trunc('month', d) ym, count(*) from st_daily2
where stid=267408 group by stid, date_trunc('month', d)
Результаты 'group by' все еще содержат пустую строку.
1-й ряд пуст.
Но если я запрашиваю, где «stid» или «d» равно нулю, то ничего не возвращается.
Это ошибка в postgresql 9b4? Или какое-то повреждение данных?
РЕДАКТИРОВАТЬ:
Я добавил определение таблицы.
CREATE TABLE st_daily
(
stid integer NOT NULL,
d date NOT NULL,
ticker character varying(15) NOT NULL,
mp integer NOT NULL,
settlep double precision NOT NULL,
prft integer NOT NULL,
atr20 double precision NOT NULL,
upd timestamp with time zone,
ntrds double precision
)
WITH (
OIDS=FALSE
);
CREATE TABLE st_daily2
(
CONSTRAINT st_daily2_pk PRIMARY KEY (stid, d, ticker),
CONSTRAINT st_daily2_strgs_fk FOREIGN KEY (stid)
REFERENCES strgs (stid) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT st_daily2_ck CHECK (stid >= 200000 AND stid < 300000)
)
INHERITS (st_daily)
WITH (
OIDS=FALSE
);
Данные в этой таблице являются результатами моделирования. Многопоточные движки моделирования, написанные на c #, вставляют данные в базу данных, используя Npgsql.
psql также показывает пустую строку.