diff --git a/src/TidierDB.jl b/src/TidierDB.jl index 28e42a6..5d3e12d 100644 --- a/src/TidierDB.jl +++ b/src/TidierDB.jl @@ -16,7 +16,7 @@ using DuckDB export start_query_meta, set_sql_mode, @arrange, @group_by, @filter, @select, @mutate, @summarize, @summarise, @distinct, @left_join, @right_join, @inner_join, @count, @window_order, @window_frame, @show_query, @collect, @slice_max, - @slice_min, @slice_sample + @slice_min, @slice_sample, copy_to include("docstrings.jl") include("structs.jl") @@ -184,7 +184,9 @@ function start_query_meta(db, table::Symbol) return SQLQuery(from=table_name, metadata=metadata, db=db) end - +""" +$docstring_copy_to +""" function copy_to(conn, df::DataFrame, name::String) if current_sql_mode[] == :duckdb DuckDB.register_data_frame(conn, df, name) diff --git a/src/docstrings.jl b/src/docstrings.jl index da89ef9..efc05f4 100644 --- a/src/docstrings.jl +++ b/src/docstrings.jl @@ -723,9 +723,35 @@ SELECT id, groups, value, percent AS new_name SELECT * FROM cte_1 """ + +const docstring_copy_to = +""" + copy_to(conn, df, "name") +Allows user to copy a df to the database connection. Currently supports DuckDB, SQLite + +# Arguments +-`conn`: the database connection +-`df`: dataframe to be copied +-`name`: name as string for the database to be used +# Examples +```jldoctest +julia> df = DataFrame(id = [string('A' + i รท 26, 'A' + i % 26) for i in 0:9], + groups = [i % 2 == 0 ? "aa" : "bb" for i in 1:10], + value = repeat(1:5, 2), + percent = 0.1:0.1:1.0); + +julia> db = DB(); + +julia> copy_to(db, df, "test") +"test" +``` +""" + + + const docstring_window_order = """ -@window_order(sql_query, columns...) + @window_order(sql_query, columns...) Specify the order of rows for window functions within a SQL query.