StoreContent/analyitics é um banco de dados SQLite comum:
StoreContent/analyitics: SQLite 3.x database, last written using SQLite version 3043002,
writer version 2, read version 2, file counter 52, database pages 126, cookie 0x6e,
schema 4, largest root page 113, UTF-8, vacuum mode 1, version-valid-for 52
Ele guarda a definição do documento: a consulta (query), suas tabelas e joins, as
seções e elementos do relatório, e o snapshot do esquema do banco de dados. O modelo do Core Data é
MAD/MAD.xcdatamodel; todas as suas entidades possuem o prefixo Rptq (RptqDocument,
RptqQuery, RptqDocumentElement, RptqDocumentSection, …).
Duas propriedades desse store são estruturais para a portabilidade:
-wal e -shm são distribuídos dentro do arquivo compactado
junto com o banco de dados principal. Um leitor que extraia apenas analyitics e ignore
o WAL lerá um banco de dados defasado em até um checkpoint. No exemplo Music, o
WAL tem 313 KB contra um arquivo principal de 516 KB — não se trata de um risco apenas teórico.Desde a migração do store (docs/project/MAD_STORE_MIGRATION.md), a definição de um documento vive em
um store SQLite portável projetado por nós. Seu esquema é descrito pelos
descritores MADStoreSchema mantidos manualmente (MAD/Source/rptq/store/), gerado por
-createSchemaSQL e verificado de forma cruzada contra o modelo compilado por MADStoreTests.
O store registra a versão do seu esquema em PRAGMA user_version: a versão 1 é o esquema
como foi lançado inicialmente (ausente ou 0), a versão 2 adiciona RptqQuery.sqlSourceText — o SQL
colado pelo usuário, mantido integralmente (docs/project/MAD_SQL_ENTRY.md §8) — e MADStore aplica as etapas
faltantes ao abrir o documento. Campos da tabela RptqQuery:
| Coluna | Tipo | Notas |
|---|---|---|
identifier |
INTEGER | a chave da linha |
cachedText |
TEXT | |
override |
INTEGER | |
overrideText |
TEXT | |
sqlSourceText |
TEXT | a última instrução SQL colada e aplicada com sucesso, na íntegra; NULL caso contrário |
inDatabase_identifier |
INTEGER | chave estrangeira para RptqDatabase |
Esta página é uma tradução para o português do Brasil do original em inglês; em caso de divergência, prevalece a versão original em inglês.