diff --git a/distribution/lib/Standard/Table/0.0.0-dev/src/Table.enso b/distribution/lib/Standard/Table/0.0.0-dev/src/Table.enso index 2242df20e4b9..35ccc2b4cf05 100644 --- a/distribution/lib/Standard/Table/0.0.0-dev/src/Table.enso +++ b/distribution/lib/Standard/Table/0.0.0-dev/src/Table.enso @@ -3788,7 +3788,9 @@ type Table _ : Integer -> case from of _ : Integer -> self.make_constant_column (from.up_to to step=step) _ : Column_Ref -> ((self:Table_Ref).resolve from).map x->(x.up_to to) - _ : Column_Ref -> ((self:Table_Ref).resolve to).map x->(0.up_to x) + _ : Column_Ref -> case from of + _ : Integer -> ((self:Table_Ref).resolve to).map x->(0.up_to x) + _ : Column_Ref -> ((self:Table_Ref).resolve from).zip ((self:Table_Ref).resolve to) f->t->(f.up_to t) self.set range_col as="generate_rows_id" x.expand_to_rows "generate_rows_id" diff --git a/test/Table_Tests/src/Common_Table_Operations/Generate_Rows_Spec.enso b/test/Table_Tests/src/Common_Table_Operations/Generate_Rows_Spec.enso index e332c152a04b..15f2f50b5710 100644 --- a/test/Table_Tests/src/Common_Table_Operations/Generate_Rows_Spec.enso +++ b/test/Table_Tests/src/Common_Table_Operations/Generate_Rows_Spec.enso @@ -31,6 +31,7 @@ add_offset_specs suite_builder setup = suite_builder.group prefix+"Table.Offset with default fill strategy (Text Values)" group_builder-> t1 = build_sorted_table [["Text Values", ["A", "B", "C"]]] t2 = build_sorted_table [["Text Values", ["A", "B", "C"]], ["NumRows", [1, 0, 2]]] + t3 = build_sorted_table [["Text Values", ["A", "B", "C"]], ["Start", [1, 0, 2]], ["Stop", [3, 0, 3]]] group_builder.specify "Works with Integer_Range constant values and default step" <| t1.generate_rows (..Integer_Range 0 2) . should_equal ignore_order=setup.is_database Table.new [["Text Values", ["A", "A", "B", "B", "C", "C"]], ["generate_rows_id", [0, 1, 0, 1, 0, 1]]] @@ -43,5 +44,8 @@ add_offset_specs suite_builder setup = group_builder.specify "Works with Integer_Range column value and constant" <| t2.generate_rows (..Integer_Range (..Name 'NumRows') 2) . should_equal ignore_order=setup.is_database Table.new [["Text Values", ["A", "B", "B"]], ["NumRows", [1, 0, 0]], ["generate_rows_id", [1, 0, 1]]] + group_builder.specify "Works with Integer_Range 2 columns" <| + t3.generate_rows (..Integer_Range (..Name 'Start') (..Name 'Stop')) . should_equal ignore_order=setup.is_database + Table.new [["Text Values", ["A", "A", "C"]], ["Start", [1, 1, 2]], ["Stop", [3, 3, 3]], ["generate_rows_id", [1, 2, 2]]]