From 4062ad8186564b4491da1c6e9d0416a5d2407472 Mon Sep 17 00:00:00 2001
From: Peter Steinbach
Date: Fri, 14 Mar 2025 12:02:27 +0100
Subject: [PATCH] if append=true, createtable is skipped to avoid warning
---
src/load.jl | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/load.jl b/src/load.jl
index c2cb869..b26bd40 100644
--- a/src/load.jl
+++ b/src/load.jl
@@ -50,9 +50,10 @@ end
Attempts to take a Tables.jl source `table` and load into the database represented by `conn` with table name `name`.
It first detects the `Tables.Schema` of the table source and generates a `CREATE TABLE` statement
-with the appropriate column names and types. If no table name is provided, one will be autogenerated, like `odbcjl_xxxxx`.
+with the appropriate column names and types. If no table name is provided, one will be autogenerated, like `mysql_xxxxx`.
The `CREATE TABLE` clause can be provided manually by passing the `createtableclause` keyword argument, which
would allow specifying a temporary table or `if not exists`.
+
Column definitions can also be enhanced by providing arguments to `columnsuffix` as a `Dict` of
column name (given as a `Symbol`) to a string of the enhancement that will come after name and type like
`[column name] [column type] enhancements`. This allows, for example, specifying the charset of a string column
@@ -82,12 +83,13 @@ function load(itr, conn::Connection, name::AbstractString="mysql_"*Random.randst
if quoteidentifiers
name = quoteid(name)
end
- try
- createtable(conn, name, sch; quoteidentifiers=quoteidentifiers, debug=debug, kw...)
- catch e
- @warn "error creating table" (e, catch_backtrace())
- end
+ # create table as we are not appending
if !append
+ try
+ createtable(conn, name, sch; quoteidentifiers=quoteidentifiers, debug=debug, kw...)
+ catch e
+ @warn "error creating table" (e, catch_backtrace())
+ end
DBInterface.execute(conn, "DELETE FROM $name")
end
# start a transaction for inserting rows