Documentation
¶
Overview ¶
Package sqlite provides functionality for the TDTP framework.
Index ¶
- func BuildFieldFromColumn(name, dataType string, isPK bool) (packet.Field, error)
- func ParseSQLiteType(sqliteType string) (baseType string, length, precision, scale int)
- func SQLiteToTDTP(sqliteType string) (schema.DataType, error)
- func TDTPToSQLite(field packet.Field) string
- type Adapter
- func (a *Adapter) BeginTx(ctx context.Context) (adapters.Tx, error)
- func (a *Adapter) Close(ctx context.Context) error
- func (a *Adapter) Connect(ctx context.Context, cfg adapters.Config) error
- func (a *Adapter) CreateTable(ctx context.Context, tableName string, schema packet.Schema) error
- func (a *Adapter) DB() *sql.DB
- func (a *Adapter) DropTable(ctx context.Context, tableName string) error
- func (a *Adapter) ExecuteRawQuery(ctx context.Context, query string) (*packet.DataPacket, error)
- func (a *Adapter) ExportTable(ctx context.Context, tableName string) ([]*packet.DataPacket, error)
- func (a *Adapter) ExportTableIncremental(ctx context.Context, tableName string, ...) ([]*packet.DataPacket, string, error)
- func (a *Adapter) ExportTableWithQuery(ctx context.Context, tableName string, query *packet.Query, ...) ([]*packet.DataPacket, error)
- func (a *Adapter) GetDatabaseType() string
- func (a *Adapter) GetDatabaseVersion(ctx context.Context) (string, error)
- func (a *Adapter) GetRowCount(ctx context.Context, tableName string) (int64, error)
- func (a *Adapter) GetTableNames(ctx context.Context) ([]string, error)
- func (a *Adapter) GetTableSchema(ctx context.Context, tableName string) (packet.Schema, error)
- func (a *Adapter) GetViewNames(ctx context.Context) ([]adapters.ViewInfo, error)
- func (a *Adapter) ImportPacket(ctx context.Context, pkt *packet.DataPacket, strategy adapters.ImportStrategy) error
- func (a *Adapter) ImportPackets(ctx context.Context, packets []*packet.DataPacket, ...) error
- func (a *Adapter) InsertRows(ctx context.Context, tableName string, pkgSchema packet.Schema, ...) error
- func (a *Adapter) InspectTable(ctx context.Context, tableName string) (*adapters.TableReport, error)
- func (a *Adapter) ParseFailures() []base.ParseFailure
- func (a *Adapter) Ping(ctx context.Context) error
- func (a *Adapter) ReadAllArenas(ctx context.Context, tableName string, schema packet.Schema) (*base.ArenaBlock, error)
- func (a *Adapter) ReadAllColumns(ctx context.Context, tableName string, schema packet.Schema) (*base.ColumnBlock, error)
- func (a *Adapter) ReadAllRows(ctx context.Context, tableName string, schema packet.Schema) ([][]string, error)
- func (a *Adapter) ReadAllRowsStream(ctx context.Context, tableName string, schema packet.Schema) (packet.Schema, <-chan []string, <-chan error, error)
- func (a *Adapter) ReadRowsWithSQL(ctx context.Context, sqlQuery string, schema packet.Schema) ([][]string, error)
- func (a *Adapter) RenameTable(ctx context.Context, oldName, newName string) error
- func (a *Adapter) SetColumnarLayout(on bool)
- func (a *Adapter) SetMaxFallbackRows(n int64)
- func (a *Adapter) SetMaxMessageSize(size int)
- func (a *Adapter) SetSkipSpecialValues(skip bool)
- func (a *Adapter) TableExists(ctx context.Context, tableName string) (bool, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildFieldFromColumn ¶
BuildFieldFromColumn создает TDTP Field из информации о столбце SQLite
func ParseSQLiteType ¶
ParseSQLiteType парсит SQLite тип и извлекает параметры
func SQLiteToTDTP ¶
SQLiteToTDTP конвертирует SQLite тип в TDTP тип
func TDTPToSQLite ¶
TDTPToSQLite конвертирует TDTP тип в SQLite CREATE TABLE тип
Types ¶
type Adapter ¶
type Adapter struct {
// contains filtered or unexported fields
}
Adapter представляет адаптер для работы с SQLite Реализует интерфейс adapters.Adapter
func NewAdapter
deprecated
func (*Adapter) Connect ¶
Connect устанавливает подключение к SQLite Реализует интерфейс adapters.Adapter
func (*Adapter) CreateTable ¶
CreateTable создает таблицу по TDTP схеме Реализует base.TableManager интерфейс
func (*Adapter) ExecuteRawQuery ¶
ExecuteRawQuery выполняет произвольный SQL SELECT запрос и возвращает результат как DataPacket. Используется ETL pipeline для загрузки данных из источников. Использует тот же путь что и ExportTable: ReadRowsWithSQL → scanRows → RowsToData.
func (*Adapter) ExportTable ¶
ExportTable экспортирует всю таблицу в TDTP reference пакеты Делегирует выполнение в base.ExportHelper
func (*Adapter) ExportTableIncremental ¶
func (a *Adapter) ExportTableIncremental(ctx context.Context, tableName string, incrementalConfig adapters.IncrementalConfig) ([]*packet.DataPacket, string, error)
ExportTableIncremental экспортирует только измененные записи с момента последней синхронизации Пока не реализовано для SQLite адаптера
func (*Adapter) ExportTableWithQuery ¶
func (a *Adapter) ExportTableWithQuery(ctx context.Context, tableName string, query *packet.Query, sender, recipient string) ([]*packet.DataPacket, error)
ExportTableWithQuery экспортирует таблицу с применением TDTQL фильтрации Делегирует выполнение в base.ExportHelper с автоматической SQL оптимизацией
func (*Adapter) GetDatabaseType ¶
GetDatabaseType возвращает тип СУБД Реализует интерфейс adapters.Adapter
func (*Adapter) GetDatabaseVersion ¶
GetDatabaseVersion возвращает версию SQLite Реализует интерфейс adapters.Adapter
func (*Adapter) GetRowCount ¶
GetRowCount возвращает количество строк в таблице Реализует base.DataReader интерфейс
func (*Adapter) GetTableNames ¶
GetTableNames возвращает список всех таблиц в БД Реализует интерфейс adapters.Adapter
func (*Adapter) GetTableSchema ¶
GetTableSchema читает схему таблицы из SQLite Реализует base.SchemaReader интерфейс
func (*Adapter) GetViewNames ¶
GetViewNames возвращает список всех views в БД с информацией об updatable/read-only Реализует интерфейс adapters.Adapter Note: SQLite views are read-only by default unless INSTEAD OF triggers are defined For simplicity, we check if INSTEAD OF INSERT trigger exists to determine updatability
func (*Adapter) ImportPacket ¶
func (a *Adapter) ImportPacket(ctx context.Context, pkt *packet.DataPacket, strategy adapters.ImportStrategy) error
ImportPacket импортирует данные из TDTP пакета через временную таблицу Делегирует выполнение в base.ImportHelper с атомарной заменой таблиц
func (*Adapter) ImportPackets ¶
func (a *Adapter) ImportPackets(ctx context.Context, packets []*packet.DataPacket, strategy adapters.ImportStrategy) error
ImportPackets импортирует несколько пакетов через временную таблицу Делегирует выполнение в base.ImportHelper с транзакционной обработкой
func (*Adapter) InsertRows ¶
func (a *Adapter) InsertRows(ctx context.Context, tableName string, pkgSchema packet.Schema, rows []packet.Row, strategy adapters.ImportStrategy) error
InsertRows вставляет строки данных с использованием стратегии Реализует base.DataInserter интерфейс Оптимизировано: использует батчинг для INSERT (500 строк за раз)
func (*Adapter) InspectTable ¶
func (a *Adapter) InspectTable(ctx context.Context, tableName string) (*adapters.TableReport, error)
InspectTable returns extended metadata for a live SQLite table. Implements adapters.Adapter.
func (*Adapter) ParseFailures ¶
func (a *Adapter) ParseFailures() []base.ParseFailure
ParseFailures implements base.ParseFailureReporter: values this adapter's exports could not convert to their declared type, since the previous call.
func (*Adapter) ReadAllArenas ¶
func (a *Adapter) ReadAllArenas(ctx context.Context, tableName string, schema packet.Schema) (*base.ArenaBlock, error)
ReadAllArenas читает таблицу в поколоночные арены — тот же путь, что ReadAllColumns, но без строки на ячейку.
func (*Adapter) ReadAllColumns ¶
func (a *Adapter) ReadAllColumns(ctx context.Context, tableName string, schema packet.Schema) (*base.ColumnBlock, error)
ReadAllColumns читает таблицу в колоночную раскладку.
ПРОТОТИП, параллельный ReadAllRows: тот же SELECT, тот же перевод ячеек, но результат разложен по колонкам. Существует, чтобы померить колоночный путь на настоящем адаптере; ExportTable его не зовёт.
func (*Adapter) ReadAllRows ¶
func (a *Adapter) ReadAllRows(ctx context.Context, tableName string, schema packet.Schema) ([][]string, error)
ReadAllRows читает все строки из таблицы Реализует base.DataReader интерфейс
func (*Adapter) ReadAllRowsStream ¶
func (a *Adapter) ReadAllRowsStream(ctx context.Context, tableName string, schema packet.Schema) (packet.Schema, <-chan []string, <-chan error, error)
ReadAllRowsStream читает таблицу потоком, реализуя base.StreamingDataReader.
Отличие от ReadAllRows не в значениях — они те же, через тот же cellToTDTP, — а в том, что таблица никогда не существует в памяти целиком. На 24 млн строк ReadAllRows держит около 23 ГБ ([][]string, ~965 байт на строку по замеру на 100k×10); здесь живёт одна строка на канале плюс то, что накопил потребитель.
Курсор закрывается горутиной, которая его и открыла: вернуть его наружу значило бы обязать вызывающего закрыть, а он видит только каналы.
func (*Adapter) ReadRowsWithSQL ¶
func (a *Adapter) ReadRowsWithSQL(ctx context.Context, sqlQuery string, schema packet.Schema) ([][]string, error)
ReadRowsWithSQL читает строки используя произвольный SQL запрос Реализует base.DataReader интерфейс
func (*Adapter) RenameTable ¶
RenameTable переименовывает таблицу Реализует base.TableManager интерфейс
func (*Adapter) SetColumnarLayout ¶
SetColumnarLayout включает колоночную раскладку Data (--columnar).
func (*Adapter) SetMaxFallbackRows ¶
SetMaxFallbackRows задаёт лимит строк для in-memory fallback при провале SQL pushdown.
func (*Adapter) SetMaxMessageSize ¶
SetMaxMessageSize задаёт максимальный размер одного TDTP пакета (в байтах). Вызывается из CLI при указании --packet-size.
func (*Adapter) SetSkipSpecialValues ¶
SetSkipSpecialValues включает режим --fast: DetectAndApply пропускается.