# TableIO.jl - CopyIn - progress of uploading

**URL:** <https://discourse.julialang.org/t/tableio-jl-copyin-progress-of-uploading/56409>\
**Category:** General Usage\
**Created:** [March 3, 2021, 2:13pm UTC](https://discourse.julialang.org/t/tableio-jl-copyin-progress-of-uploading/56409 "2021-03-03T14:13:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Michal](https://avatars.discourse-cdn.com/v4/letter/m/34f0e0/32.png) [@Michal](https://discourse.julialang.org/u/Michal)\
**Post date:** [March 3, 2021, 2:13pm UTC](https://discourse.julialang.org/t/tableio-jl-copyin-progress-of-uploading/56409/1 "2021-03-03T14:13:53Z")

</div>

@lungben I like CopyIn. It is powerful and elegant solution. Is it possible to get progress of uploading data with function CopyIn ? I’m trying to get information how much percentage is uploaded. How can I handle percentage status of uploading? Thank you

---

<div class="post-metadata">

**Author:** ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)\
**Post date:** [March 3, 2021, 2:41pm UTC](https://discourse.julialang.org/t/tableio-jl-copyin-progress-of-uploading/56409/2 "2021-03-03T14:41:12Z")

</div>

The whole upload is done with a single execute statement in TableIO:

```julia
iter = CSV.RowWriter(table)
column_names = first(iter)
copyin = LibPQ.CopyIn("COPY $tablename ($column_names) FROM STDIN (FORMAT CSV, HEADER);", iter)
execute(conn, copyin)

```

It may be possible to hook into LibPQ.jl ([https://github.com/invenia/LibPQ.jl/blob/master/src/copy.jl](https://github.com/invenia/LibPQ.jl/blob/master/src/copy.jl)) for showing the progress.  
Alternatively, you could divide your input data in smaller chunks and upload them sequentially, tracking progress in between. But this may have performance drawbacks.
