SQLite-lekérdezések forrásoszlopai visszakövethetők — új módszer a Datasette-hez
A SQLite belsőleg ismeri a lekérdezések forrásoszlopait, és ezt az információt a `SQLITE_ENABLE_COLUMN_METADATA` opcióval fordított verziókban az API-n keresztül elérhetővé teszi.

Simon Willison kutatása szerint a SQLite-adatbázisokból származó lekérdezések eredményoszlopai visszakövethetők a forrás tábla.oszlopra. Ez az információ már eddig is létezett a SQLite belső feldolgozásában, de eddig nem volt könnyen hozzáférhető a Python-alapú eszközök számára.
A probléma megoldására Willison több módszert is talált. Az egyik a harmadik féltől származó `apsw` könyvtár használata, amely közvetlen hozzáférést biztosít a `cursor.description_full` segítségével. Egy másik megoldás egy `ctypes`-alapú híd, amely a `sqlite3_column_table_name()` C-függvényt hívja meg, ami alapértelmezetten nem érhető el Pythonból.
Kapcsolódó: Python biztonsági rések
A Datasette-hez kapcsolódó előnyök
Willison szerint ez a képesség különösen hasznos lehet a Datasette-hez hasonló eszközökben. Lehetővé tenné, hogy a felhasználók ne csak az adatokat lássák, hanem azt is, hogy pontosan melyik tábla melyik oszlopából származnak az eredmények, még összetett lekérdezések, például join-ok vagy CTE-k (Common Table Expressions) esetén is.
Kapcsolódó: Datasette frissítés
Claude Code segítette a kutatást
A kutatás során Willison igénybe vette a Claude Code (Opus 4.8) segítségét is. A mesterséges intelligencia több ígéretes megoldást is talált, beleértve a `apsw` használatát, a `ctypes`-alapú megközelítést, valamint a `EXPLAIN` parancs kimenetének elemzését.
Kapcsolódó: Élő adatbázisok
A `SQLITE_ENABLE_COLUMN_METADATA` opcióval fordított SQLite verziók a forrásoszlopokhoz való hozzáférést tartalmazzák, így a Python `sqlite3` modulja is könnyebben hozzáférhet a forrásoszlopokhoz, a `apsw` vagy a `ctypes` híd segítségével, a Datasette-hez hasonló eszközökben való használatra 2026-ra várható.
Kapcsolódó: AI-generált hibák