aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mnesia/src/mnesia.erl
AgeCommit message (Collapse)Author
2019-03-20Fix erroneous aborts when using index plugins (ERL-556)Ulf Wiger
- first stab at fixing index_[read|match_object] w plugins - do not include index plugins at match ops - add index_plugin_test_suite - Increase ix plugin test coverage + bug fix
2018-11-29Fall back to default locking if LockKind is not read or writeMagnus Fröberg
2018-11-22Mnesia should always use the local context if availableMagnus Fröberg
Do not read from (set | order_set) source table if the content is already in the transactional context (i.e., a previous write/delete).
2018-08-13Merge remote-tracking branch 'upstream/pr/1858' into maintDan Gudmundsson
* upstream/pr/1858: Fix delete_object and write convergence in transaction. OTP-15231
2018-07-19add more specific type spec for mnesia:change_configFerenc Böröczki
2018-07-18fix return type of mnesia:change_configFerenc Böröczki
2018-07-03Fix delete_object and write convergence in transaction.Daniil Fedotov
Fix a bug, when delete_object was deleting the record if it was written in the same transaction even if it was written to a different value. To verify: %% Create a set table mnesia:create_table(foo, []). %% Write and delete_object in transaction mnesia:transaction(fun() -> mnesia:write({foo, bar, one}), mnesia:delete_object({foo, bar, not_one}) end). {atomic, [{foo, bar, one}]} = mnesia:transaction(fun() -> mnesia:read(foo, bar) end). Added a section to isolation tests to check for non-matching delete_object requests.
2018-06-18Update copyright yearHenrik Nord
2018-02-06mnesia: Do not call erlang:get_stacktrace() (cont)Hans Bolinder
Take care of the call of erlang:get_stacktrace() in module mnesia_lib.
2017-11-30Merge branch 'maint'Dan Gudmundsson
* maint: Fix type create_option() in mnesia
2017-11-27Fix type create_option() in mnesiaAndras Boroska
The create_option() type in mnesia lacks the user_properties field which is used by mnesia in various places.
2017-11-14Add ignore option to transform_table fun (#1614)Bernard Duggan
2017-09-05mnesia: Improve handling of UnicodeHans Bolinder
2017-05-22mnesia: Correct a type declarationHans Bolinder
2017-01-25mnesia: Remove mnesia_frag_old_hash hash moduleBjörn-Egil Dahlberg
The module mnesia_frag_old_hash utilized the broken erlang:hash/2 function which has been deprecated for a long time. Since erlang:hash/2 is now removed there is no point in having this module any more.
2016-12-05Merge branch 'maint'Dan Gudmundsson
* maint: Use off_heap memory queue for mnesia_tm Preserve key order in mnesia:table_info
2016-11-18Preserve key order in mnesia:table_infoRichard Carlsson
2016-11-17Add basic spec and typesDan Gudmundsson
2016-10-29Make a separate application module for MnesiaRichard Carlsson
To separate concerns and reduce confusion, avoid implementing two behaviours in a single module. Make a single start_link() helper in mnesia_sup and remove the unused mnesia_sup:start() utility function.
2016-10-06Allow reusing mnesia select continuationsDániel Szoboszlay
A continuation returned by mnesia:select/[14] should be reusable in different, non-transactional activities. Aborting with wrong_transaction doesn't make sense in a dirty context.
2016-05-09Merge branch 'dgud/mnesia/ext-backend/PR-858/OTP-13058'Dan Gudmundsson
* dgud/mnesia/ext-backend/PR-858/OTP-13058: mnesia_ext: Add basic backend extension tests mnesia_ext: reuse snmp field for ext updates mnesia_ext: Create table/data containers from mnesia monitor not temporary processes mnesia_ext: Implement ext copies index mnesia_ext: Load table ext mnesia_ext: Dumper and schema changes mnesia_ext: Refactor mnesia_schema.erl mnesia_ext: Ext support in fragmented tables mnesia_ext: Backup handling mnesia_ext: Create schema functionality mnesia_ext: Add ext copies and db_fold to low level api mnesia_ext: Refactor record_validation code mnesia_ext: Add create_external and increase protocol version to monitor mnesia_ext: Add ext copies to records mnesia_ext: Add supervisor and behaviour modules
2016-05-09mnesia_ext: Create schema functionalityUlf Wiger
Add ext to table/system information Add add_backend_type
2016-05-09mnesia_ext: Refactor record_validation codeUlf Wiger
Should maybe be moved to mnesia.erl and inlined?? Or is it used elsewhere?
2016-05-09mnesia_ext: Add supervisor and behaviour modulesUlf Wiger
2016-03-15update copyright-yearHenrik Nord
2015-06-18Change license text to APLv2Bruce Yinhe
2015-05-06mnesia: dirty error messages did not behave as documentedDan Gudmundsson
The docs express that exit({aborted, Reason}) are called when an error occur.
2015-03-27Merge branch 'dgud/mnesia/try-catch'Dan Gudmundsson
* dgud/mnesia/try-catch: mnesia: Replace catch with try-catch
2015-03-27mnesia: Replace catch with try-catchDan Gudmundsson
Avoids building stacktraces where it is not needed and do not mask errors, i.e. only catch the relevant classes in each try.
2015-03-20Replace usage of erlang:now() with usage of new APIDan Gudmundsson
2014-11-12mnesia: Fix match_object bugDan Gudmundsson
match_object returned wrong objects when matching on non key fields and updates in the same transaction had been performed.
2014-02-20mnesia: cleanup some dialyzer unmatched return warningsDan Gudmundsson
2014-02-20mnesia: Add explicit sync_log commandDan Gudmundsson
For performance reasons the file data is not synced to disk in mnesia, data loss can happen between each dump. mnesia:dump_log() can be used explicitly to ensure data is written to disk. But that can take a long time, so mnesia:sync_log() which just sync the log have been added.
2013-01-25Update copyright yearsBjörn-Egil Dahlberg
2013-01-16Remove what remains of the Mnemosyne codeLoïc Hoguin
2011-12-06[mnesia] Whitespace fixesDan Gudmundsson
2011-05-16where_to_wlock optimization + change_table_majority/2Ulf Wiger
2011-05-16Write locks now check majority when needed.Ulf Wiger
Since the table loader also sets (table) write locks, a special lock type, 'load', was needed. Unfortunately, this affects mnesia activity callbacks that redefine the lock operation.
2011-03-02Mnesia dialyzer fixesDan Gudmundsson
With help from Kostis
2010-02-03Merge branch 'is/mnesia-send-compressed' into ccase/r13b04_devErlang/OTP
* is/mnesia-send-compressed: Add option to compress data when copying tables between Mnesia nodes OTP-8406 Igor Ribeiro Sucupira added the option to compress data when copying tables between Mnesia nodes.
2010-02-02Add option to compress data when copying tables between Mnesia nodesIgor Ribeiro Sucupira
Optionally using data compression for copying Mnesia tables allows the system to be tuned to eliminate network bottlenecks from deployments where enough CPU is available to use zlib. With this patch, running erl -mnesia send_compressed <level> will enable compression for sending tables between nodes. The compression level can be any integer in [0, 9], with 0 (the default) meaning no compression (exactly the previous behaviour) and 9 being the highest compression level. To set any non-zero compression level at the sender, both nodes must have the updated Mnesia modules (the receiver will work according to the sender's configuration).
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP