CHANGELOG.md 7,0 КБ
Newer Older
Simon Binder's avatar
Simon Binder включено в состав коммита
1
2
3
4
## 2.3.0-dev

- Improve the error message in the exception when opening a database fails.

Simon Binder's avatar
Simon Binder включено в состав коммита
5
## 2.2.0
Simon Binder's avatar
Simon Binder включено в состав коммита
6

Simon Binder's avatar
Simon Binder включено в состав коммита
7
8
- Add `updatedRows` getter to eventually replace `getUpdatedRows()` method.
- Clarify documentation on `lastInsertRowId` and `updatedRows`.
Simon Binder's avatar
Simon Binder включено в состав коммита
9
10
- Allow customizing the amount of pages to lock at a time in `backup`. A larger
  amount will result in better backup performance.
Simon Binder's avatar
Simon Binder включено в состав коммита
11
12
13
- Use `NativeCallable`s for user-defined functions, collations and update
  streams.

Simon Binder's avatar
Simon Binder включено в состав коммита
14
15
16
17
## 2.1.0

- Add `config` getter to `CommonDatabase` to access `sqlite3_db_config`.

Simon Binder's avatar
Simon Binder включено в состав коммита
18
## 2.0.0
Simon Binder's avatar
Simon Binder включено в состав коммита
19
20
21
22

- __Breaking__: The WASM implementation no longer registers a default virtual
  file system. Instead, `registerVirtualFileSystem` needs to be used to add
  desired file system implementations.
Simon Binder's avatar
Simon Binder включено в состав коммита
23
24
25
- __Breaking__: Fix a typo, `CommmonSqlite3` is now called `CommonSqlite3`.
- __Breaking__: Introduce class modifiers on classes of this package that aren't
  meant to be extended or implemented by users.
Simon Binder's avatar
Simon Binder включено в состав коммита
26
- Add `PreparedStatement.reset()`.
Simon Binder's avatar
Simon Binder включено в состав коммита
27
28
29
30
31
32
- Add the `CustomStatementParameter` class which can be passed as a statement
  parameter with a custom `sqlite3_bind_*` call.
- Add the `StatementParameters` class and `executeWith`/`selectWith` methods
  on `CommonPreparedStatement`. They can be used to control whether values are
  bound by index or by name. The `selectMap` and `executeMap` methods have
  been deprecated.
Simon Binder's avatar
Simon Binder включено в состав коммита
33

Simon Binder's avatar
Simon Binder включено в состав коммита
34
35
36
37
38
## 1.11.2

- Report correct column names for statements that have been re-compiled due to
  schema changes.

Simon Binder's avatar
Simon Binder включено в состав коммита
39
40
41
42
43
## 1.11.1

- Fix user-defined functions returning text not supporting multi-byte utf8
  characters.

Simon Binder's avatar
Simon Binder включено в состав коммита
44
## 1.11.0
Simon Binder's avatar
Simon Binder включено в состав коммита
45
46
47

- Add `WasmSqlite3.loadFromUrl` which uses a streaming `fetch()` request to
  load the sqlite3 WASM binary.
Simon Binder's avatar
Simon Binder включено в состав коммита
48
49
- Add `OpfsFileSystem`, a file system implementation for the WASM library that
  is based on the synchronous File System Access API.
Simon Binder's avatar
Simon Binder включено в состав коммита
50
51
- The WASM version of sqlite3 used by this library is now compiled with `-Oz`
  instead of `-Ofast`.
Simon Binder's avatar
Simon Binder включено в состав коммита
52

Simon Binder's avatar
Simon Binder включено в состав коммита
53
54
55
56
57
## 1.10.1

- Fix a regression introduced in 1.10.0 causing crashes when SQL statements
  containing non-ASCII characters are prepared.

Simon Binder's avatar
Simon Binder включено в состав коммита
58
## 1.10.0
Simon Binder's avatar
Simon Binder включено в состав коммита
59
60
61
62

- Rewrite the implementation to allow more code reuse between `dart:ffi` and
  the WASM-based web implementation.

Simon Binder's avatar
Simon Binder включено в состав коммита
63
## 1.9.3
Simon Binder's avatar
Simon Binder включено в состав коммита
64
65

- Provide more information about the source of sqlite exceptions.
Simon Binder's avatar
Simon Binder включено в состав коммита
66
- Fix prepared statements without parameters not being reused properly.
Simon Binder's avatar
Simon Binder включено в состав коммита
67

Simon Binder's avatar
Simon Binder включено в состав коммита
68
69
70
71
## 1.9.2

- Include parameters when throwing an exception in prepared statements.

Simon Binder's avatar
Simon Binder включено в состав коммита
72
73
74
75
## 1.9.1

- Change `Row.keys` and `Row.values` to return a list.

Simon Binder's avatar
Simon Binder включено в состав коммита
76
## 1.9.0
Simon Binder's avatar
Simon Binder включено в состав коммита
77
78

- Add an API for sqlite3's backup API via `Database.backup()`.
Simon Binder's avatar
Simon Binder включено в состав коммита
79
- Add an API to load extensions via `sqlite3.ensureExtensionLoaded`.
Simon Binder's avatar
Simon Binder включено в состав коммита
80

Simon Binder's avatar
Simon Binder включено в состав коммита
81
## 1.8.0
Simon Binder's avatar
Simon Binder включено в состав коммита
82
83
84
85

- Use a `Finalizer` to automatically dispose databases and statements. As
  finalizers in Dart aren't reliable, you should still make sure to call
  `dispose` manually after you're done with a database or a statement.
Simon Binder's avatar
Simon Binder включено в состав коммита
86
- Avoid using generative constructors on `@staticInterop` classes.
Simon Binder's avatar
Simon Binder включено в состав коммита
87

Simon Binder's avatar
Simon Binder включено в состав коммита
88
## 1.7.2
Simon Binder's avatar
Simon Binder включено в состав коммита
89

Simon Binder's avatar
Simon Binder включено в состав коммита
90
91
- Optimizations in the wasm-based file system.
- Fix the `mutex` parameter not doing anything in the FFI-based implementation.
Simon Binder's avatar
Simon Binder включено в состав коммита
92

Simon Binder's avatar
Simon Binder включено в состав коммита
93
## 1.7.1
westito's avatar
westito включено в состав коммита
94
95
96
97

- Allow binding `BigInt`s to statements and functions. They must still be
  representable as a 64-bit int, but this closes a compatibility gap between
  the web and the native implementations.
Simon Binder's avatar
Simon Binder включено в состав коммита
98
- Use ABI-specific integer types internally.
westito's avatar
westito включено в состав коммита
99

Simon Binder's avatar
Simon Binder включено в состав коммита
100
## 1.7.0
Simon Binder's avatar
Simon Binder включено в состав коммита
101
102
103
104

- Add support for application-defined window functions. To register a custom
  window function, implement `WindowFunction` and register your function with
  `database.registerAggregateFunction`.
Simon Binder's avatar
Simon Binder включено в состав коммита
105
- __Breaking__ (For the experimental `package:sqlite3/wasm.dart` library):
Simon Binder's avatar
Simon Binder включено в состав коммита
106
  - The IndexedDB implementation now stores data in 4k blocks instead of full files.
Simon Binder's avatar
Simon Binder включено в состав коммита
107
108
109
110
111
  - Removed `IndexedDbFileSystem.load`. Use `IndexedDbFileSystem.open` instead.
  - An `IndexedDbFileSystem` now stores all files, the concept of a persistence
    root has been removed.
    To access independent databases, use two `IndexedDbFileSystem`s with a different
    database name.
Simon Binder's avatar
Simon Binder включено в состав коммита
112

Simon Binder's avatar
Simon Binder включено в состав коммита
113
## 1.6.4
westito's avatar
westito включено в состав коммита
114
115
116

- Add `FileSystem.listFiles()` to list all files in a virtual WASM file system.

Simon Binder's avatar
Simon Binder включено в состав коммита
117
118
119
120
## 1.6.3

- Support running `sqlite3/wasm.dart` in web workers.

Simon Binder's avatar
Simon Binder включено в состав коммита
121
122
123
124
## 1.6.2

- Fix `CURRENT_TIMESTAMP` not working with the WebAssembly backend.

Simon Binder's avatar
Simon Binder включено в состав коммита
125
126
127
128
## 1.6.1

- Better support loading sqlite3 on Linux when using `sqlite3_flutter_libs`.

Simon Binder's avatar
Simon Binder включено в состав коммита
129
130
## 1.6.0

Simon Binder's avatar
Simon Binder включено в состав коммита
131
132
- Very experimental web support, based on compiling sqlite3 to web assembly
  with a custom file system implementation.
Simon Binder's avatar
Simon Binder включено в состав коммита
133

Simon Binder's avatar
Simon Binder включено в состав коммита
134
135
136
137
138
139
## 1.5.1

- Fix `checkNoTail` throwing for harmless whitespace or comments following a
  SQL statement.
- Fix a native null-pointer dereference when calling `prepare` with a statement
  exclusively containing whitespace or comments.
Simon Binder's avatar
Simon Binder включено в состав коммита
140
- Fix a potential out-of-bounds read when preparing statements.
Simon Binder's avatar
Simon Binder включено в состав коммита
141

Simon Binder's avatar
Simon Binder включено в состав коммита
142
## 1.5.0
Simon Binder's avatar
Simon Binder включено в состав коммита
143
144

- Add `prepareMultiple` method to prepare multiple statements from one SQL string.
Simon Binder's avatar
Simon Binder включено в состав коммита
145
146
- Add `selectMap` and `executeMap` on `PreparedStatement` to bind SQL parameters by
  their name instead of their index.
Simon Binder's avatar
Simon Binder включено в состав коммита
147
- Add support for custom collations with `createCollation`.
Simon Binder's avatar
Simon Binder включено в состав коммита
148

Simon Binder's avatar
Simon Binder включено в состав коммита
149
## 1.4.0
Simon Binder's avatar
Simon Binder включено в состав коммита
150

Simon Binder's avatar
Simon Binder включено в состав коммита
151
152
- Report writes on the database through the `Database.updates` stream
- Internal: Use `ffigen` to generate native bindings
Simon Binder's avatar
Simon Binder включено в состав коммита
153

Simon Binder's avatar
Simon Binder включено в состав коммита
154
155
156
157
158
159
160
## 1.3.1

- Fix a crash with common iOS and macOS configurations.
  The crash has been introduced in version 1.3.0, which should be avoided.
  Please consider adding `sqlite3: ^1.3.1` to your pubspec to avoid getting the
  broken version

Simon Binder's avatar
Simon Binder включено в состав коммита
161
162
163
164
165
166
## 1.3.0

- Add `Cursor.tableNames` and `Row.toTableColumnMap()` to obtain tables
  involved in a result set.
  Thanks to [@juancastillo0](https://github.com/juancastillo0)!

Simon Binder's avatar
Simon Binder включено в состав коммита
167
## 1.2.0
Simon Binder's avatar
Simon Binder включено в состав коммита
168

Simon Binder's avatar
Simon Binder включено в состав коммита
169
- Add the `selectCursor` API on `PreparedStatement` to step through a result set row by row.
Simon Binder's avatar
Simon Binder включено в состав коммита
170
171
172
- Report the causing SQL statement in exceptions
- Use a new Dart API to determine whether symbols are available

Simon Binder's avatar
Simon Binder включено в состав коммита
173
174
175
176
## 1.1.2

- Attempt opening sqlite3 from `DynamicLibrary.process()` on macOS

Simon Binder's avatar
Simon Binder включено в состав коммита
177
178
179
180
181
182
## 1.1.1

- Fix memory leak when preparing statements!
- Don't allow `execute` with arguments when the provided sql string contains
  more than one argument.

Simon Binder's avatar
Simon Binder включено в состав коммита
183
184
185
186
## 1.1.0

- Add optional parameters to `execute`.

Simon Binder's avatar
Simon Binder включено в состав коммита
187
188
189
190
191
## 1.0.1

- Don't throw when `PreparedStatement.execute` is used on a statement returning
  rows.

Simon Binder's avatar
Simon Binder включено в состав коммита
192
193
194
195
## 1.0.0

- Support version `1.0.0` of `package:ffi`

Simon Binder's avatar
Simon Binder включено в состав коммита
196
197
198
199
200
201
202
## 0.1.10-nullsafety.0

- Support version `0.3.0` of `package:ffi`
- Migrate library to support breaking ffi changes in Dart 2.13:
  - Use `Opaque` instead of empty structs
  - Use `Allocator` api

Simon Binder's avatar
Simon Binder включено в состав коммита
203
204
205
206
## 0.1.9-nullsafety.2

- Fix loading sqlite3 on iOS

Simon Binder's avatar
Simon Binder включено в состав коммита
207
## 0.1.9-nullsafety.1
Simon Binder's avatar
Simon Binder включено в состав коммита
208
209
210

- Migrate package to null safety

Simon Binder's avatar
Simon Binder включено в состав коммита
211
212
213
214
215
## 0.1.8

- Added the `mutex` parameter to control the serialization mode
  when opening databases.

Simon Binder's avatar
Simon Binder включено в состав коммита
216
217
218
219
## 0.1.7

- Expose the `sqlite3_temp_directory` global variable

Simon Binder's avatar
Simon Binder включено в состав коммита
220
221
222
## 0.1.6

- Expose underlying database and statement handles
Simon Binder's avatar
Simon Binder включено в состав коммита
223
- Support opening databases from uris
Simon Binder's avatar
Simon Binder включено в состав коммита
224

Simon Binder's avatar
Simon Binder включено в состав коммита
225
226
227
228
229
## 0.1.5

- Use `sqlite3_version` to determine if `sqlite3_prepare_v3` is available
  instead of catching an error.

Simon Binder's avatar
Simon Binder включено в состав коммита
230
231
232
233
## 0.1.4

- Use `sqlite3_prepare_v2` if `sqlite3_prepare_v3` is not available

Simon Binder's avatar
Simon Binder включено в состав коммита
234
235
236
237
## 0.1.3

- Lower minimum version requirement on `collection` to `^1.14.0`

Simon Binder's avatar
Simon Binder включено в состав коммита
238
239
240
241
242
## 0.1.2

- Enable extended result codes
- Expose raw rows from a `ResultSet`

Simon Binder's avatar
Simon Binder включено в состав коммита
243
244
245
246
## 0.1.1

- Expose the `ResultSet` class

Simon Binder's avatar
Simon Binder включено в состав коммита
247
## 0.1.0
Simon Binder's avatar
init  
Simon Binder включено в состав коммита
248

Simon Binder's avatar
Simon Binder включено в состав коммита
249
- Initial version