From 88efd672d9fb5d9c866e529a508030480c880504 Mon Sep 17 00:00:00 2001 From: Troy Sornson Date: Sun, 21 Jan 2024 13:14:32 -0700 Subject: [PATCH] Propagate original callstack, save a fiber allocation if unnecessary --- src/granite/connection_management.cr | 2 ++ src/granite/transactions.cr | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/granite/connection_management.cr b/src/granite/connection_management.cr index 6cfe03b4..e4e487dd 100644 --- a/src/granite/connection_management.cr +++ b/src/granite/connection_management.cr @@ -51,6 +51,8 @@ module Granite::ConnectionManagement end def self.schedule_adapter_switch + return if @@writer_adapter == @@reader_adapter + spawn do sleep @@connection_switch_wait_period.milliseconds switch_to_reader_adapter diff --git a/src/granite/transactions.cr b/src/granite/transactions.cr index 03be01a1..045a129a 100644 --- a/src/granite/transactions.cr +++ b/src/granite/transactions.cr @@ -68,7 +68,7 @@ module Granite::Transactions end {% end %} rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end # Runs an INSERT statement for all records in *model_array*, with options to @@ -92,7 +92,7 @@ module Granite::Transactions end {% end %} rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end def import(model_array : Array(self) | Granite::Collection(self), ignore_on_duplicate : Bool, batch_size : Int32 = model_array.size) @@ -114,7 +114,7 @@ module Granite::Transactions end {% end %} rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end end @@ -176,7 +176,7 @@ module Granite::Transactions rescue err : DB::Error raise err rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) else self.new_record = false end @@ -199,7 +199,7 @@ module Granite::Transactions begin self.class.adapter.update(self.class.table_name, self.class.primary_name, fields, params) rescue err - raise DB::Error.new(err.message) + raise DB::Error.new(err.message, cause: err) end {% end %} end