diff --git a/spec/statement_spec.cr b/spec/statement_spec.cr index f70937e..bf63f80 100644 --- a/spec/statement_spec.cr +++ b/spec/statement_spec.cr @@ -208,4 +208,13 @@ describe DB::Statement do db.pool.is_available?(DummyDriver::DummyConnection.connections.first) end end + + it "raises NoResultsError for scalar" do + with_dummy_connection do |cnn| + stmt = cnn.prepared "" + expect_raises DB::NoResultsError do + stmt.scalar "SELECT LIMIT 0" + end + end + end end diff --git a/src/db/error.cr b/src/db/error.cr index c8a81f2..a304310 100644 --- a/src/db/error.cr +++ b/src/db/error.cr @@ -29,4 +29,8 @@ module DB class Rollback < Error end + + # Raised when a scalar query returns no results. + class NoResultsError < Error + end end diff --git a/src/db/statement.cr b/src/db/statement.cr index 5c3f5e3..807b42a 100644 --- a/src/db/statement.cr +++ b/src/db/statement.cr @@ -15,7 +15,7 @@ module DB end end - raise "no results" + raise NoResultsError.new("no results") end # See `QueryMethods#query`