diff --git a/spec/result_set_spec.cr b/spec/result_set_spec.cr index 21d8424..bb633fd 100644 --- a/spec/result_set_spec.cr +++ b/spec/result_set_spec.cr @@ -56,4 +56,12 @@ describe DB::ResultSet do cols.should eq(["c0", "c1"]) end + + it "gets all column names" do + with_dummy do |db| + db.query "1,2" do |rs| + rs.column_names.should eq(%w(c0 c1)) + end + end + end end diff --git a/src/db/result_set.cr b/src/db/result_set.cr index a3a4e6d..99d9c54 100644 --- a/src/db/result_set.cr +++ b/src/db/result_set.cr @@ -61,6 +61,11 @@ module DB # Returns the name of the column in `index` 0-based position. abstract def column_name(index : Int32) : String + # Returns the name of the columns. + def column_names + Array(String).new(column_count) { |i| column_name(i) } + end + # Reads the next column value abstract def read