Data Science. SQL hub
35.9K subscribers
1.14K photos
95 videos
37 files
1.16K links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo

#VRHSZ
Download Telegram
Хитрый SQL-совет: осторожнее с `NOT IN`

Кажется, что эти запросы делают одно и то же:


SELECT *
FROM users
WHERE id NOT IN (
SELECT user_id
FROM banned_users
);


Но если banned_users.user_id содержит хотя бы один NULL, запрос может вернуть ноль строк.

Надёжнее использовать NOT EXISTS:


SELECT u.*
FROM users AS u
WHERE NOT EXISTS (
SELECT 1
FROM banned_users AS b
WHERE b.user_id = u.id
);


Причина в трёхзначной логике SQL: сравнение с NULL даёт UNKNOWN, а не TRUE или FALSE.

Правило простое: если подзапрос потенциально возвращает NULL, вместо NOT IN почти всегда выбирайте NOT EXISTS.

#sql #postgresql #database
🔥14👍71🥰1
Forwarded from Rust
Рой ИИ-агентов написал аналог SQLite на Rust за несколько часов 🤯

Cursor провела необычный эксперимент: агентам выдали только официальную документацию SQLite объёмом 835 страниц и поручили с нуля реализовать собственный движок базы данных на Rust.

Без интернета, готового исходного кода и дополнительной помощи.

Уже через четыре часа получившиеся реализации правильно выполняли 73–85% запросов из скрытого теста. После дальнейшей работы некоторым командам удалось довести результат до 100%.

Но особенно удивила стоимость:

- связка Opus 4.8 и Composer 2.5 потратила около $1 400;
- Fable — примерно $20 000.

Одинаковая задача, но почти пятнадцатикратная разница в цене.

Во время разработки агенты столкнулись с до боли знакомыми командными проблемами: дублировали работу, конфликтовали при изменении одних и тех же файлов и избегали трогать ядро системы, даже когда без этого было невозможно двигаться дальше.

Получается, ИИ уже способен за часы собрать сложный системный проект, но митинги, конфликты и страх ответственности он тоже автоматизировал 😂

#ai #rust #sqlite #agents #programming

https://cursor.com/blog/agent-swarm-model-economics

@rust_code
8🔥8👍4👎2🤔1🤬1
SQL-совет: сравнивайте `NULL` через `IS NOT DISTINCT FROM`

Обычное сравнение ломается на NULL:


SELECT NULL = NULL;
-- NULL


Поэтому условие:


WHERE old_value = new_value


не считает два NULL равными.

В PostgreSQL используйте:


WHERE old_value IS NOT DISTINCT FROM new_value


Оператор работает как безопасный аналог =:


1 IS NOT DISTINCT FROM 1 -- true
NULL IS NOT DISTINCT FROM NULL -- true
1 IS NOT DISTINCT FROM NULL -- false


Полезно при сравнении версий строк, поиске изменений и синхронизации таблиц:


SELECT *
FROM old_data o
JOIN new_data n USING (id)
WHERE o.email IS DISTINCT FROM n.email;


Запрос вернёт строки, где значение действительно изменилось, включая переходы NULL → значение и значение → NULL.
🔥8👍76
✔️ Constella: локальная память для файлов, заметок и AI-агентов

Constella — open-source desktop-приложение, которое индексирует локальные файлы и превращает их в единую базу знаний для поиска и AI-агентов.

Данные хранятся на устройстве: LanceDB используется для векторов, SQLite — для метаданных и knowledge graph.

Что умеет:

- индексировать Obsidian, Documents, Downloads и любые выбранные папки;
- извлекать текст из PDF, DOCX, Markdown и изображений;
- строить семантический поиск по локальным данным;
- автоматически связывать заметки, темы и концепты;
- работать с локальными и облачными LLM;
- отдавать базу знаний через MCP в Claude Code;
- использовать агентов и переиспользуемые workflows.

Схема примерно такая:


Файлы

chunks + embeddings

LanceDB + SQLite

Knowledge Graph

поиск / агенты / MCP


https://github.com/Constella-OS/constella-desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2🎉2
SQLite установлен практически везде. Но отправить туда обычный pull request у вас не получится.

SQLite работает на каждом iPhone и Android, в Chrome, Firefox, Safari, Windows, телевизорах, автомобилях и миллиардах других устройств. По оценке самого проекта, сейчас активно используется больше триллиона SQLite-баз.

И при этом SQLite принципиально остаётся проектом с очень маленькой командой разработчиков.

На официальном сайте это сформулировано прямо:

Open source, but not open-contribution.

Проект не принимает случайные pull request'ы и патчи из интернета. Чтобы код вообще мог попасть в SQLite, автор должен юридически передать свой вклад в public domain. Для этого существует отдельный подписываемый документ.

Причина не в высокомерии разработчиков. Так они защищают одну из главных особенностей SQLite: весь основной код должен оставаться свободным от чужих copyright-претензий.

Получился довольно редкий парадокс:

одна из самых распространённых технологий на планете стала настолько успешной не благодаря тысячам контрибьюторов, а благодаря жёсткому контролю над тем, кто вообще может менять её код.

И эта модель работает уже больше 25 лет.
👍124🔥4