powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / sqlite 3.8.5 не корректная работа distinct
2 сообщений из 2, страница 1 из 1
sqlite 3.8.5 не корректная работа distinct
    #38708716
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Натолкнулся на странное поведение CREATE UNIQUE INDEX если в таблице уже есть данные.
1. Уникальный индекс почему-то построился
2. Не корректно работает distinct

C:\!dc-db\db-sqlite-corrupt\db-uniq-bug>sqlite3 --version
3.8.5 2014-06-04 14:06:34 b1ed4f2a34ba66c29b130f8d13e9092758019212
C:\!dc-db\db-sqlite-corrupt\db-uniq-bug>sqlite3.exe FlylinkDC.sqlite 0<test-uniq-3.sql
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE fly_hash_block(tth_id integer PRIMARY KEY NOT NULL, tth number NOT NULL);
INSERT INTO fly_hash_block VALUES(1,1);
INSERT INTO fly_hash_block VALUES(2,2);
INSERT INTO fly_hash_block VALUES(3,2);
CREATE UNIQUE INDEX iu_fly_hash_block_tth ON fly_hash_block(tth);
select * from fly_hash_block;
1|1
2|2
3|2
select distinct tth from fly_hash_block;
1
2
2
select tth,count(*) from fly_hash_block group by tth;
1|1
2|2



в sqlite пришел после Oracle - возможно что-то не учел...
по-моему он в данном случае ведет себя адекватнее:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SQL> 
SQL> CREATE TABLE fly_hash_block(tth_id integer PRIMARY KEY NOT NULL, tth number NOT NULL);
Table created
SQL> INSERT INTO fly_hash_block VALUES(1,1);
1 row inserted
SQL> INSERT INTO fly_hash_block VALUES(2,2);
1 row inserted
SQL> INSERT INTO fly_hash_block VALUES(3,2);
1 row inserted
SQL> CREATE UNIQUE INDEX iu_fly_hash_block_tth ON fly_hash_block(tth);
CREATE UNIQUE INDEX iu_fly_hash_block_tth ON fly_hash_block(tth)
ORA-01452: CREATE UNIQUE INDEX невозможно; найдены дублирующиеся ключи
SQL> select * from fly_hash_block;
                                 TTH_ID        TTH
--------------------------------------- ----------
                                      1          1
                                      2          2
                                      3          2
SQL> select distinct tth from fly_hash_block;
       TTH
----------
         1
         2
SQL> select tth,count(*) from fly_hash_block group by tth;
       TTH   COUNT(*)
---------- ----------
         1          1
         2          2



Кто знает причину такого поведения?
может какой прагмы не хватает...
хотя с distinct 100% явный баг в движке - отписал разработчикам sqlite пример.

--
~PPA() {} //
...
Рейтинг: 0 / 0
sqlite 3.8.5 не корректная работа distinct
    #38709261
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Richard Hipp принял мой баг-репорт и отметил как критический.
http://www.sqlite.org/src/info/9a6daf340df99
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / sqlite 3.8.5 не корректная работа distinct
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]