Mercurial Hosting > luan
changeset 1533:28f06ac6ce39
add not_in_transaction
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 02 Aug 2020 21:17:27 -0600 |
parents | 060ff7695317 |
children | 3289674cc440 |
files | src/luan/modules/lucene/Lucene.luan src/luan/modules/lucene/LuceneIndex.java |
diffstat | 2 files changed, 31 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/luan/modules/lucene/Lucene.luan Sun Aug 02 17:01:25 2020 -0600 +++ b/src/luan/modules/lucene/Lucene.luan Sun Aug 02 21:17:27 2020 -0600 @@ -57,9 +57,10 @@ index.snapshot = java_index.snapshot index.advanced_search = java_index.advanced_search index.search_in_transaction = java_index.search_in_transaction - index.delete_all = java_index.delete_all - index.delete = java_index.delete - index.save = java_index.save + --index.delete_all = java_index.delete_all + --index.delete = java_index.delete + --index.save = java_index.save + index.is_in_transaction = java_index.is_in_transaction index.run_in_transaction = java_index.run_in_transaction index.ensure_open = java_index.ensure_open index.next_id = java_index.nextId @@ -73,6 +74,29 @@ index.force_restore_from_postgres = java_index.force_restore_from_postgres index.check = java_index.check + function index.not_in_transaction() end + + function index.check_in_transaction() + if not index.is_in_transaction() then + index.not_in_transaction() + end + end + + function index.delete_all() + index.check_in_transaction() + java_index.delete_all() + end + + function index.delete(query) + index.check_in_transaction() + java_index.delete(query) + end + + function index.save(doc) + index.check_in_transaction() + java_index.save(doc) + end + function index.search( query, from, to, options ) from or error "missing 'from' parameter" to or error "missing 'to' parameter"
--- a/src/luan/modules/lucene/LuceneIndex.java Sun Aug 02 17:01:25 2020 -0600 +++ b/src/luan/modules/lucene/LuceneIndex.java Sun Aug 02 21:17:27 2020 -0600 @@ -291,6 +291,10 @@ } } + public boolean is_in_transaction() { + return writeLock.isHeldByCurrentThread(); + } + public Object run_in_transaction(LuanFunction fn) throws IOException, LuanException, SQLException {