14 KiB
3.1.0+1
Fixes
- Fixed error building MacOS library
3.1.0
Breaking
Sorry for this breaking change. Unfortunately, it was necessary to fix stability issues on Android.
directoryis now required forIsar.open()andIsar.openSync()
Fixes
- Fixed a crash that occasionally occurred when opening Isar
- Fixed a schema migration issue
- Fixed an issue where embedded class renaming didn't work correctly
Enhancements
- Many internal improvements
- Performance improvements
3.0.6
Fixes
- Add check to verify transactions are used for correct instance
- Add check to verify that async transactions are still active
- Fix upstream issue with opening databases
3.0.5
Enhancements
- Improved performance for all operations
- Added
maxSizeMiBoption toIsar.open()to specify the maximum size of the database file - Significantly reduced native library size
- With the help of the community, the docs have been translated into a range of languages
- Improved API docs
- Added integration tests for more platforms to ensure high-quality releases
- Support for unicode paths on Windows
Fixes
- Fixed crash while opening Isar
- Fixed crash on older Android devices
- Fixed a native port that was not closed correctly in some cases
- Added swift version to podspec
- Fixed crash on Windows
- Fixed "IndexNotFound" error
3.0.4
REDACTED.
3.0.3
REDACTED.
3.0.2
Enhancements
- The Inspector now supports creating objects and importing JSON
- Added Inspector check to make sure Chrome is used
Fixes
- Added support for the latest analyzer
- Fixed native ports that were not closed correctly in some cases
- Added support for Ubuntu 18.04 and older
- Fixed issue with aborting transactions
- Fixed crash when invalid JSON was provided to
importJsonRaw() - Added missing
exportJsonSync()andexportJsonRawSync() - Fixed issue where secondary instance could not be selected in the Inspector
3.0.1
Enhancements
- Support for arm64 iOS Simulators
Fixes
- Fixed issue where
.anyOf(),.allOf(), and.oneOf()could not be negated - Fixed too low min-iOS version. The minimum supported is 11.0
- Fixed error during macOS App Store build
3.0.0
This release has been a lot of work! Thanks to everyone who contributed and joined the countless discussions. You are really awesome!
Special thanks to @Jtplouffe and @Peyman for their incredible work.
Web support
This version does not support the web target yet. It will be back in the next version. Please continue using 2.5.0 if you need web support.
Enhancements
- Completely new Isar inspector that does not need to be installed anymore
- Extreme performance improvements for almost all operations (up to 50%)
- Support for embedded objects using
@embedded - Support for enums using
@enumerated - Vastly improved Isar binary format space efficiency resulting in about 20% smaller databases
- Added
id,byte,shortandfloattypedefs IsarLinksnow support allSetmethods based on the IsarIdof objects- Added
downloadoption toIsar.initializeIsarCore()to download binaries automatically - Added
replaceoption for indexes - Added verification for correct Isar binary version
- Added
collection.getSize()andcollection.getSizeSync() - Added
query.anyOf()andquery.allOf()query modifiers - Support for much more complex composite index queries
- Support for logical XOR and the
.oneOf()query modifier - Made providing a path optional
- The default Isar name is now
defaultand stored indir/name.isaranddir/name.isar.lock - On non-web platforms,
IsarLinkandIsarLinkswill load automatically .putSync(),.putAllSync()etc. will now save links recursively by default- Added
isar.getSize()andisar.getSizeSync() - Added
linksLengthEqualTo(),linksIsEmpty(),linksIsNotEmpty(),linksLengthGreaterThan(),linksLengthLessThan(),linksLengthBetween()andlinkIsNull()filters - Added
listLengthEqualTo(),listIsEmpty(),listIsNotEmpty(),listLengthGreaterThan(),listLengthLessThan(),listLengthBetween()filters - Added
isNotNull()filters - Added
compactOnLaunchconditions toIsar.open()for automatic database compaction - Added
isar.copyToFile()which copies a compacted version of the database to a path - Added check to verify that linked collections schemas are provided for opening an instance
- Apply default values from constructor during deserialization
- Added
isar.verify()andcol.verify()methods for checking database integrity in unit tests - Added missing float and double queries and an
epsilonparameter
Breaking changes
- Removed
TypeConvertersupport in favor of@embeddedand@enumerated - Removed
@Id()and@Size32()annotations in favor of theIdandshorttypes - Changed the
schemasparameter from named to positional - The maximum size of objects is now 16MB
- Removed
replaceOnConflictandsaveLinksparameter fromcollection.put()andcollection.putAll() - Removed
isarparameter fromIsar.txn(),Isar.writeTxn(),Isar.txnSync()andIsar.writeTxnSync() - Removed
query.repeat() - Removed
query.sortById()andquery.distinctById() - Fixed
.or()instead of.and()being used implicitly when combining filters - Renamed multi-entry where clauses from
.yourListAnyEqualTo()to.yourListElementEqualTo()to avoid confusion - Isar will no longer create the provided directory. Make sure it exists before opening an Isar Instance.
- Changed the default index type for all
Lists toIndexType.hash - Renamed
isar.getCollection()toisar.collection() - It is no longer allowed to extend or implement another collection
- Unsupported properties will no longer be ignored by default
- Renamed the
initialReturnparameter tofireImmediately - Renamed
Isar.initializeLibraries()toIsar.initializeIsarCore()
Fixes
There are too many fixes to list them all.
- A lot of link fixes and a slight behavior change to make them super reliable
- Fixed missing symbols on older Android phones
- Fixed composite queries
- Fixed various generator issues
- Fixed error retrieving the id property in a query
- Fixed missing symbols on 32-bit Android 5 & 6 devices
- Fixed inconsistent
nullhandling in json export - Fixed default directory issue on Android
- Fixed different where clauses returning duplicate results
- Fixed hash index issue where multiple list values resulted in the same hash
- Fixed edge case where creating a new index failed
2.5.0
Enhancements
- Support for Android x86 (32 bit emulator) and macOS arm64 (Apple Silicon)
- Greatly improved test coverage for sync methods
col.clear()now resets the auto increment counter to0- Significantly reduced Isar Core binary size (about 1.4MB -> 800KB)
Minor Breaking
- Changed
initializeLibraries(Map<String, String> libraries)toinitializeLibraries(Map<IsarAbi, String> libraries) - Changed min Dart SDK to
2.16.0
Fixes
- Fixed issue with
IsarLink.saveSync() - Fixed
idqueries - Fixed error thrown by
BroadcastChannelin Firefox - Fixed Isar Inspector connection issue
2.4.0
Enhancements
- Support for querying links
- Support for filtering and sorting links
- Added methods to update and count links without loading them
- Added
isLoadedproperty to links - Added methods to count the number of objects in a collection
- Big internal improvements
Minor Breaking
- There are now different kinds of where clauses for dynamic queries
isar.getCollection()no longer requires the name of the collectionIsar.instanceNamesnow returns aSetinstead of aList
Fixes
- Fixed iOS crash that frequently happened on older devices
- Fixed 32bit issue on Android
- Fixed link issues
- Fixed missing
BroadcastChannelAPI for older Safari versions
2.2.1
Enhancements
- Reduced Isar web code size by 50%
- Made
directoryparameter ofIsar.open()optional for web - Made
nameparameter ofIsar.getInstance()optional - Added
Isar.defaultNameconstant - Enabled
TypeConverters with supertypes - Added message if
TypeConverternullability doesn't match - Added more tests
Fixes
- Fixed issue with date queries
- Fixed
FilterGroup.notconstructor (thanks for the PR @jtzell)
2.2.0
Isar now has full web support 🎉. No changes to your code required, just run it.
Web passes all unit tests but is still considered beta for now.
Minor Breaking
- Added
saveLinksparameter to.put()and.putAll()which defaults tofalse - Changed default
overrideChangesparameter oflinks.load()totrueto avoid unintended behavior
Enhancements
- Full web support!
- Improved write performance
- Added
deleteFromDiskoption toisar.close() - Added
.reset()and.resetSync()methods toIsarLinkandIsarLinks - Improved
links.save()performance - Added many tests
Fixed
- Fixed value of
nulldates to beDateTime.fromMillisecondsSinceEpoch(0) - Fixed problem with migration
- Fixed incorrect list values for new properties (
[]instead ofnull) - Improved handling of link edge-cases
2.1.4
- Removed
pathdependency - Fixed incorrect return value of
deleteByIndex() - Fixed wrong auto increment ids in some cases (thanks @robban112)
- Fixed an issue with
Isar.close()(thanks @msxenon) - Fixed
$escaping in generated code (thanks @jtzell) - Fixed broken link in pub.dev example page
2.1.0
isar_connect is now integrated into isar
Enhancements
- Added check for outdated generated files
- Added check for changed schema across isolates
- Added
Isar.openSync() - Added
col.importJsonRawSync(),col.importJsonSync(),query.exportJsonRawSync(),query.exportJsonSync() - Improved performance for queries
- Improved handling of ffi memory
- More tests
Fixed
- Fixed issue where imported json required existing ids
- Fixed issue with transaction handling (thanks @Peng-Qian for the awesome help)
- Fixed issue with
@Ignoreannotation not always working - Fixed issue with
getByIndex()not returning correct object id (thanks @jtzell)
2.0.0
Breaking
- The id for non-final objects is now assigned automatically after
.put()and.putSync() doubleandList<double>indexes can no longer be at the beginning of a composite indexList<double>indexes can no longer be hashed.greaterThan(),.lessThan()and.between()filters and are now excluding fordoublevalues (>=->>)- Changed the default index type for lists to
IndexType.value IsarLinkandIsarLinkswill no longer be initialized by Isar and must not benullableorlate.- Dart
2.14or higher is required
Enhancements
- Added API docs for all public methods
- Added
isar.clear(),isar.clearSync(),col.clear()andcol.clearSync() - Added
col.filter()as shortcut forcol.where().filter() - Added
includeparameter to.greaterThan()and.lessThan()filters and where clauses - Added
includeLowerandincludeUpperparameters to.between()filters and where clauses - Added
Isar.autoIncrementto allow non-nullable auto-incrementing ids Isar.close()now returns whether the last instance was closed- List values in composite indexes are now of type
IndexType.hashautomatically - Allowed multiple indexes on the same property
- Removed exported packages from API docs
- Improved generated code
- Improved Isar Core error messages
- Minor performance improvements
- Automatic XCode configuration
- Updated analyzer to
3.0.0 - More tests
Fixed
IsarLinkandIsarLinkscan now be final- Fixed multi-entry index queries returning items multiple times in some cases
- Fixed
.anyLessThan()and.anyGreaterThan()issues - Fixed issues with backlinks
- Fixed issue where query only returned the first
99999results - Fixed issue with id where clauses
- Fixed default index type for lists and bytes
- Fixed issue where renaming indexes was not possible
- Fixed issue where wrong index name was used for
.getByX()and.deleteByX() - Fixed issue where composite indexes did not allow non-hashed Strings as last value
- Fixed issue where
@Ignore()fields were not ignored
1.0.5
Enhancements
- Updated dependencies
Fixes:
- Included desktop binaries
- Fixed "Cannot allocate memory" error on older iOS devices
- Fixed stripped binaries for iOS release builds
- Fixed IsarInspector issues (thanks to RubenBez and rizzi37)
1.0.0+1
Added missing binaries
1.0.0
Switched from liblmdb to libmdbx for better performance, more stability and many internal improvements.
Breaking
The internal database format has been changed to improve performance. Old databases do not work anymore!
Fixes
- Fix issue with links being removed after object update
- Fix String index problems
Enhancements
- Support
greaterThan,lessThanandbetweenqueries for String values - Support for inheritance (enabled by default)
- Support for
finalproperties and getters - Support for
freezedand other code generators - Support getting / deleting objects by a key
col.deleteByName('Anne') - Support for list indexes (hash an element based)
- Generator now creates individual files instead of one big file
- Allow specifying the collection accessor name
- Unsupported properties are now ignored automatically
- Returns the assigned ids after
.put()operations (objects are no longer mutated) - Introduces
replaceOnConflictoption for.put()(instead of specifying it for index) - many more...
Internal
- Improve generated code
- Many new unit tests
0.4.0
Breaking
- Remove
.where...In()and...In()extension methods - Split
.watch(lazy: bool)into.watch()and.watchLazy() - Remove
includeoption for filters
Fixes
- Generate id for JSON imports that don't have an id
- Enable
sortByandthenBygeneration
Enhancements
- Add
.optional()and.repeat()query modifiers - Support property queries
- Support query aggregation
- Support dynamic queries (for custom query languages)
- Support multi package configuration with
@ExternalCollection() - Add
caseSensitiveoption to.distinctBy()
Internal
- Change iOS linking
- Improve generated code
- Set up integration tests and improve unit tests
- Use CORE/0.4.0
0.2.0
- Link support
- Many improvements and fixes
0.1.0
- Support for links and backlinks
0.0.4
- Bugfixes and many improvements
0.0.2
Fix dependency issue
0.0.1
Initial release