Skip to content

Commit b131356

Browse files
authored
Add rownumber (#61)
1 parent 7fa794b commit b131356

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "DataAPI"
22
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
33
authors = ["quinnj <[email protected]>"]
4-
version = "1.14.0"
4+
version = "1.15.0"
55

66
[compat]
77
julia = "1"

src/DataAPI.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,4 +515,11 @@ Throw an error if `x` does not support metadata deletion for column `col`.
515515
"""
516516
function emptycolmetadata! end
517517

518+
"""
519+
rownumber(row)
520+
521+
Return the row number of `row` in the source table.
522+
"""
523+
function rownumber end
524+
518525
end # module

test/runtests.jl

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,20 @@ end
9393

9494
DataAPI.emptycolmetadata!(x::TestMeta) = empty!(x.col)
9595

96+
# An example implementation of a table (without the Tables.jl interface)
97+
# for testing DataAPI.rownumber
98+
struct TestTable{T}
99+
source::AbstractVector{T}
100+
end
101+
102+
struct TestRow
103+
source::TestTable
104+
row::Int
105+
end
106+
107+
Base.getindex(table::TestTable, row) = TestRow(table, row)
108+
DataAPI.rownumber(row::TestRow) = getfield(row, :row)
109+
96110
@testset "DataAPI" begin
97111

98112
@testset "defaultarray" begin
@@ -341,4 +355,11 @@ end
341355
@test isempty(DataAPI.colmetadatakeys(tm))
342356
end
343357

358+
@testset "rownumber" begin
359+
table = TestTable([(a=1,), (a=2,)])
360+
361+
@test DataAPI.rownumber(table[1]) == 1
362+
@test DataAPI.rownumber(table[2]) == 2
363+
end
364+
344365
end # @testset "DataAPI"

0 commit comments

Comments
 (0)