Repository navigation
Releases: edersonmelo/edsqlite-releases
Release list
EDSQLite v0.14.0
Driver JDBC com nome definitivo e mais fidelidade ao SQLite.
- A classe do driver passa a ser br.edsqlite.jdbc.EDSQLiteDriver. No DBeaver, troque o Class Name do driver já cadastrado (URL Template continua jdbc:edsqlite:{file}). Os nomes antigos estão em "Problemas comuns" do install.md.
- REAL vira texto como no SQLite 3.53 (%!.17g): 17 dígitos, ou menos quando um texto mais curto representa o mesmo valor (1 + 1.03 dá 2.0300000000000003, como no SQLite).
- UPDATE que muda o rowid confere o rowid novo antes das outras colunas, como o SQLite.
- Planner mais próximo do SQLite: com vários limites na mesma coluna, usa os do último termo; usa faixa no rowid depois das igualdades de um índice (d0=? AND rowid<?); entre índices equivalentes, escolhe pelo custo do SQLite (o que atende o ORDER BY, o que cobre a consulta, o mais estreito). Isso muda quais linhas são avaliadas quando alguma daria erro, e qual UNIQUE é acusada num UPDATE.
- EXPLAIN QUERY PLAN diz LAST TERM OF ORDER BY, como o SQLite 3.53.
- Testes diferenciais sem tolerâncias na conversão de REAL e com divisão no gerador.
- install.md: como baixar e instalar no Mac.
EDSQLite v0.13.1
Driver JDBC com nome novo.
- A classe do driver passa a ser br.app.edgo.edsqlite.jdbc.EDSQLiteDriver: o código Java do driver fica no pacote próprio br.app.edgo.edsqlite.jdbc, e as classes escrevem o nome do banco como EDSQLite. No DBeaver, use esse Class Name ao cadastrar o driver (URL Template continua jdbc:edsqlite:{file}).
- Sem outras mudanças em relação à 0.13.0.
EDSQLite v0.13.0
Driver JDBC: o EDSQLite no DBeaver.
- Driver JDBC (edsqlite-jdbc-0.13.0.jar): abre arquivos do EDSQLite no DBeaver como se abre um SQLite (URL jdbc:edsqlite:{file}), sem Java instalado. O .jar traz a biblioteca nativa de macOS e Linux (arm64 e x86_64).
- Vários comandos em execução na mesma conexão: um resultado aberto não impede outras consultas nem escritas.
- last_insert_rowid e total_changes na API, com a regra do SQLite.
- Biblioteca e API C nos downloads (edsqlite-capi-0.13.0-.tar.gz).
- PRAGMA index_list e index_info, como no SQLite.
- Correção: uma remoção em tabela com índice de chaves grandes podia falhar com 'nó não cabe numa página' (o banco não se corrompia, mas a linha não podia ser alterada).
EDSQLite v0.12.0
Tudo o que estava planejado para a v1.0.
- Formato do arquivo congelado e documentado, com política de compatibilidade (docs/STABILITY.md): um banco, journal ou log de versão mais nova é recusado sem ser tocado.
- API de comandos preparados: prepare/bind/step, com parâmetros ?, ?N e :nome, recompilação automática quando o schema muda.
- Códigos de erro estáveis, com os números do SQLite.
- API C no formato da API C do SQLite (ainda não distribuída nestes downloads).
- Testes: fuzzing noturno, queda de energia simulada em toda a suíte (~5800 crashes por execução), 6106 consultas do sqllogictest do SQLite e cobertura de 94,7% das linhas.
EDSQLite v0.11.0
Restrições NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY e INTEGER PRIMARY KEY (o rowid como coluna), com a semântica do SQLite; INSERT DEFAULT VALUES, PRAGMA table_info e CURRENT_TIMESTAMP/DATE/TIME. Formato do arquivo 4/5: bancos antigos continuam legíveis, e versões anteriores recusam os novos.
EDSQLite v0.10.0
CASE, CAST e as funções de texto substr, replace, trim, ltrim e rtrim, com a semântica do SQLite. Correção: a checagem de tabela vazia numa junção de três ou mais tabelas agora segue o SQLite quando o índice cobre a consulta.
EDSQLite v0.9.0
Primeiro pré-lançamento do EDSQLite, com os milestones v0.1 a v0.9.
Já tem: SQL do dia a dia (CREATE TABLE/INDEX, INSERT, UPDATE, DELETE, SELECT com WHERE, ORDER BY e LIMIT) com os tipos do SQLite; índices e planner com EXPLAIN QUERY PLAN; JOINs, agregados, GROUP BY, HAVING, DISTINCT e subconsultas; transações com commit atômico mesmo com queda de energia; várias conexões com locks e modo WAL. Conferido contra o SQLite 3.53 em mais de 8 milhões de consultas geradas, sem divergência.
Ainda não é estável: o formato do arquivo pode mudar antes da v1.0, sem migração; não use para dados que não podem ser perdidos. A API ainda não tem parâmetros (prepare/bind/step), faltam restrições, LEFT JOIN, UNION, CASE, CAST, ALTER TABLE e várias funções, os locks só existem em Unix e ainda não houve fuzzing. Tudo isso está no roadmap: https://edersonmelo.github.io/edsqlite-releases/#roadmap
Binários: macOS (Apple Silicon e Intel) e Linux estático (x86_64 e ARM64). Instalação: extraia o .tar.gz e coloque o edsqlite no PATH.