You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-08-07 03:22:57 +03:00
MCOL-5013: added terminated_by, enclosed_by, escaped_by for s3dataload
This commit is contained in:
committed by
Leonid Fedorov
parent
e3505aa26c
commit
88404f70f1
@@ -90,7 +90,8 @@ extern "C"
|
|||||||
std::string_view secret, std::string_view key,
|
std::string_view secret, std::string_view key,
|
||||||
std::string_view region, std::string_view cmapi_host,
|
std::string_view region, std::string_view cmapi_host,
|
||||||
ulong cmapi_port, std::string_view cmapi_version,
|
ulong cmapi_port, std::string_view cmapi_version,
|
||||||
std::string_view cmapi_key)
|
std::string_view cmapi_key, std::string_view terminated_by,
|
||||||
|
std::string_view enclosed_by, std::string_view escaped_by)
|
||||||
|
|
||||||
{
|
{
|
||||||
CURLcode res;
|
CURLcode res;
|
||||||
@@ -105,6 +106,10 @@ extern "C"
|
|||||||
j["secret"] = secret;
|
j["secret"] = secret;
|
||||||
j["region"] = region;
|
j["region"] = region;
|
||||||
j["database"] = database;
|
j["database"] = database;
|
||||||
|
j["terminated_by"] = terminated_by;
|
||||||
|
j["enclosed_by"] = enclosed_by;
|
||||||
|
j["escaped_by"] = escaped_by;
|
||||||
|
|
||||||
|
|
||||||
std::string param = j.dump();
|
std::string param = j.dump();
|
||||||
|
|
||||||
@@ -157,8 +162,14 @@ extern "C"
|
|||||||
|
|
||||||
const char* bucket = args->args[0];
|
const char* bucket = args->args[0];
|
||||||
const char* filename = args->args[1];
|
const char* filename = args->args[1];
|
||||||
|
const char* database = args->args[2];
|
||||||
const char* table = args->args[3];
|
const char* table = args->args[3];
|
||||||
|
|
||||||
|
const char* terminated_by = args->args[4];
|
||||||
|
const char* enclosed_by = args->args[5];
|
||||||
|
const char* escaped_by = args->args[6];
|
||||||
|
|
||||||
|
|
||||||
ulong cmapi_port = get_cmapi_port(_current_thd());
|
ulong cmapi_port = get_cmapi_port(_current_thd());
|
||||||
const char* cmapi_host = get_cmapi_host(_current_thd());
|
const char* cmapi_host = get_cmapi_host(_current_thd());
|
||||||
const char* cmapi_version = get_cmapi_version(_current_thd());
|
const char* cmapi_version = get_cmapi_version(_current_thd());
|
||||||
@@ -169,18 +180,18 @@ extern "C"
|
|||||||
const char* secret = get_s3_secret(thd);
|
const char* secret = get_s3_secret(thd);
|
||||||
const char* key = get_s3_key(thd);
|
const char* key = get_s3_key(thd);
|
||||||
const char* region = get_s3_region(thd);
|
const char* region = get_s3_region(thd);
|
||||||
const char* database = args->args[2];
|
|
||||||
|
|
||||||
return columnstore_dataload_impl(initData->curl, initData->result, length, bucket, table, filename,
|
return columnstore_dataload_impl(initData->curl, initData->result, length, bucket, table, filename,
|
||||||
database, secret, key, region, cmapi_host, cmapi_port, cmapi_version,
|
database, secret, key, region, cmapi_host, cmapi_port, cmapi_version,
|
||||||
::strlen(cmapi_key) == 0 ? parseCMAPIkey().c_str() : cmapi_key);
|
::strlen(cmapi_key) == 0 ? parseCMAPIkey().c_str() : cmapi_key,
|
||||||
|
terminated_by, enclosed_by, escaped_by);
|
||||||
}
|
}
|
||||||
|
|
||||||
my_bool columnstore_dataload_init(UDF_INIT* initid, UDF_ARGS* args, char* message)
|
my_bool columnstore_dataload_init(UDF_INIT* initid, UDF_ARGS* args, char* message)
|
||||||
{
|
{
|
||||||
if (args->arg_count != 4)
|
if (args->arg_count != 7)
|
||||||
{
|
{
|
||||||
strcpy(message, "columnstore_dataload needs 4 arguments: (bucket, file_name, db_name, table)");
|
strcpy(message, "columnstore_dataload needs 7 arguments: (bucket, file_name, db_name, table, terminated_by, enclosed_by, escaped_by)");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -123,13 +123,17 @@ END //
|
|||||||
CREATE OR REPLACE PROCEDURE load_from_s3 (in bucket varchar(256) CHARACTER SET utf8,
|
CREATE OR REPLACE PROCEDURE load_from_s3 (in bucket varchar(256) CHARACTER SET utf8,
|
||||||
in filename varchar(256) CHARACTER SET utf8,
|
in filename varchar(256) CHARACTER SET utf8,
|
||||||
in dbname varchar(256) CHARACTER SET utf8,
|
in dbname varchar(256) CHARACTER SET utf8,
|
||||||
in table_name varchar(256) CHARACTER SET utf8)
|
in table_name varchar(256) CHARACTER SET utf8,
|
||||||
|
in terminated_by varchar(256) CHARACTER SET utf8,
|
||||||
|
in enclosed_by varchar(1) CHARACTER SET utf8,
|
||||||
|
in escaped_by varchar(1) CHARACTER SET utf8
|
||||||
|
)
|
||||||
LANGUAGE SQL
|
LANGUAGE SQL
|
||||||
NOT DETERMINISTIC
|
NOT DETERMINISTIC
|
||||||
MODIFIES SQL DATA
|
MODIFIES SQL DATA
|
||||||
SQL SECURITY INVOKER
|
SQL SECURITY INVOKER
|
||||||
BEGIN
|
BEGIN
|
||||||
select columnstore_dataload(bucket, filename, dbname, table_name);
|
select columnstore_dataload(bucket, filename, dbname, table_name, terminated_by, enclosed_by, escaped_by);
|
||||||
END //
|
END //
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user