CHANGELOG.md 8,1 КБ
Newer Older
Simon Binder's avatar
Simon Binder включено в состав коммита
1
2
3
4
5
## 2.4.4

- Add a temporary workaround for [a Dart bug](https://github.com/dart-lang/sdk/issues/56064)
  causing spurious exceptions when databases are closed and a debugger is attached.

Simon Binder's avatar
Simon Binder включено в состав коммита
6
## 2.4.3
Simon Binder's avatar
Simon Binder включено в состав коммита
7
8
9

- Migrate away from legacy web APIs: `dart:html`, `dart:js`, `dart:indexeddb`
  and `package:js` are no longer imported from this package.
Simon Binder's avatar
Simon Binder включено в состав коммита
10
11
12
- Experimentally support being compiled to WebAssembly. Strong caveats apply,
  please check [#230](https://github.com/simolus3/sqlite3.dart/issues/230)
  before relying on this!
Simon Binder's avatar
Simon Binder включено в состав коммита
13

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

- Fix string and blob arguments to prepared statements never being
  deallocated ([#225](https://github.com/simolus3/sqlite3.dart/issues/225)).

Simon Binder's avatar
Simon Binder включено в состав коммита
19
## 2.4.1+1
Simon Binder's avatar
Simon Binder включено в состав коммита
20
21

- Allow version `0.7.x` of the `js` package.
Simon Binder's avatar
Simon Binder включено в состав коммита
22
23
- Reduce size of `sqlite3.wasm` bundle by removing symbols not referenced in
  Dart.
Simon Binder's avatar
Simon Binder включено в состав коммита
24

Simon Binder's avatar
Simon Binder включено в состав коммита
25
## 2.4.0
Simon Binder's avatar
Simon Binder включено в состав коммита
26

Simon Binder's avatar
Simon Binder включено в состав коммита
27
- Add `isReadOnly` and `isExplain` getters to prepared statements.
Simon Binder's avatar
Simon Binder включено в состав коммита
28
29
30
- Set `NativeCallable.keepIsolateAlive` to `false` for callables managed by
  this package.

Simon Binder's avatar
Simon Binder включено в состав коммита
31
## 2.3.0
Simon Binder's avatar
Simon Binder включено в состав коммита
32

Simon Binder's avatar
Simon Binder включено в состав коммита
33
- Add the `autocommit` getter on databases wrapping `sqlite3_get_autocommit`.
Simon Binder's avatar
Simon Binder включено в состав коммита
34
35
- Improve the error message in the exception when opening a database fails.

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

Simon Binder's avatar
Simon Binder включено в состав коммита
38
39
- Add `updatedRows` getter to eventually replace `getUpdatedRows()` method.
- Clarify documentation on `lastInsertRowId` and `updatedRows`.
Simon Binder's avatar
Simon Binder включено в состав коммита
40
41
- 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 включено в состав коммита
42
43
44
- Use `NativeCallable`s for user-defined functions, collations and update
  streams.

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

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

Simon Binder's avatar
Simon Binder включено в состав коммита
49
## 2.0.0
Simon Binder's avatar
Simon Binder включено в состав коммита
50
51
52
53

- __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 включено в состав коммита
54
55
56
- __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 включено в состав коммита
57
- Add `PreparedStatement.reset()`.
Simon Binder's avatar
Simon Binder включено в состав коммита
58
59
60
61
62
63
- 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 включено в состав коммита
64

Simon Binder's avatar
Simon Binder включено в состав коммита
65
66
67
68
69
## 1.11.2

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

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

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

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

- Add `WasmSqlite3.loadFromUrl` which uses a streaming `fetch()` request to
  load the sqlite3 WASM binary.
Simon Binder's avatar
Simon Binder включено в состав коммита
79
80
- 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 включено в состав коммита
81
82
- The WASM version of sqlite3 used by this library is now compiled with `-Oz`
  instead of `-Ofast`.
Simon Binder's avatar
Simon Binder включено в состав коммита
83

Simon Binder's avatar
Simon Binder включено в состав коммита
84
85
86
87
88
## 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 включено в состав коммита
89
## 1.10.0
Simon Binder's avatar
Simon Binder включено в состав коммита
90
91
92
93

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

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

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

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

- Include parameters when throwing an exception in prepared statements.

Simon Binder's avatar
Simon Binder включено в состав коммита
103
104
105
106
## 1.9.1

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

Simon Binder's avatar
Simon Binder включено в состав коммита
107
## 1.9.0
Simon Binder's avatar
Simon Binder включено в состав коммита
108
109

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

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

- 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 включено в состав коммита
117
- Avoid using generative constructors on `@staticInterop` classes.
Simon Binder's avatar
Simon Binder включено в состав коммита
118

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

Simon Binder's avatar
Simon Binder включено в состав коммита
121
122
- 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 включено в состав коммита
123

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

- 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 включено в состав коммита
129
- Use ABI-specific integer types internally.
westito's avatar
westito включено в состав коммита
130

Simon Binder's avatar
Simon Binder включено в состав коммита
131
## 1.7.0
Simon Binder's avatar
Simon Binder включено в состав коммита
132
133
134
135

- 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 включено в состав коммита
136
- __Breaking__ (For the experimental `package:sqlite3/wasm.dart` library):
Simon Binder's avatar
Simon Binder включено в состав коммита
137
  - The IndexedDB implementation now stores data in 4k blocks instead of full files.
Simon Binder's avatar
Simon Binder включено в состав коммита
138
139
140
141
142
  - 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 включено в состав коммита
143

Simon Binder's avatar
Simon Binder включено в состав коммита
144
## 1.6.4
westito's avatar
westito включено в состав коммита
145
146
147

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

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

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

Simon Binder's avatar
Simon Binder включено в состав коммита
152
153
154
155
## 1.6.2

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

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

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

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

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

Simon Binder's avatar
Simon Binder включено в состав коммита
165
166
167
168
169
170
## 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 включено в состав коммита
171
- Fix a potential out-of-bounds read when preparing statements.
Simon Binder's avatar
Simon Binder включено в состав коммита
172

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

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

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

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

Simon Binder's avatar
Simon Binder включено в состав коммита
185
186
187
188
189
190
191
## 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 включено в состав коммита
192
193
194
195
196
197
## 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 включено в состав коммита
198
## 1.2.0
Simon Binder's avatar
Simon Binder включено в состав коммита
199

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

Simon Binder's avatar
Simon Binder включено в состав коммита
204
205
206
207
## 1.1.2

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

Simon Binder's avatar
Simon Binder включено в состав коммита
208
209
210
211
212
213
## 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 включено в состав коммита
214
215
216
217
## 1.1.0

- Add optional parameters to `execute`.

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

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

Simon Binder's avatar
Simon Binder включено в состав коммита
223
224
225
226
## 1.0.0

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

Simon Binder's avatar
Simon Binder включено в состав коммита
227
228
229
230
231
232
233
## 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 включено в состав коммита
234
235
236
237
## 0.1.9-nullsafety.2

- Fix loading sqlite3 on iOS

Simon Binder's avatar
Simon Binder включено в состав коммита
238
## 0.1.9-nullsafety.1
Simon Binder's avatar
Simon Binder включено в состав коммита
239
240
241

- Migrate package to null safety

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

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

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

- Expose the `sqlite3_temp_directory` global variable

Simon Binder's avatar
Simon Binder включено в состав коммита
251
252
253
## 0.1.6

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

Simon Binder's avatar
Simon Binder включено в состав коммита
256
257
258
259
260
## 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 включено в состав коммита
261
262
263
264
## 0.1.4

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

Simon Binder's avatar
Simon Binder включено в состав коммита
265
266
267
268
## 0.1.3

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

Simon Binder's avatar
Simon Binder включено в состав коммита
269
270
271
272
273
## 0.1.2

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

Simon Binder's avatar
Simon Binder включено в состав коммита
274
275
276
277
## 0.1.1

- Expose the `ResultSet` class

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

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