Skip to content

Releases: edersonmelo/edsqlite-releases

EDSQLite v0.14.0

EDSQLite v0.14.0 Pre-release
Pre-release

Choose a tag to compare

@edersonmelo edersonmelo released this 15 Oct 19:38

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

EDSQLite v0.13.1 Pre-release
Pre-release

Choose a tag to compare

@edersonmelo edersonmelo released this 29 Sep 19:36

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

EDSQLite v0.13.0 Pre-release
Pre-release

Choose a tag to compare

@edersonmelo edersonmelo released this 29 Sep 19:08

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

EDSQLite v0.12.0 Pre-release
Pre-release

Choose a tag to compare

@edersonmelo edersonmelo released this 29 Sep 17:19

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

EDSQLite v0.11.0 Pre-release
Pre-release

Choose a tag to compare

@edersonmelo edersonmelo released this 25 Sep 20:10

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

EDSQLite v0.10.0 Pre-release
Pre-release

Choose a tag to compare

@edersonmelo edersonmelo released this 25 Sep 17:12

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

EDSQLite v0.9.0 Pre-release
Pre-release

Choose a tag to compare

@edersonmelo edersonmelo released this 25 Sep 14:13

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.