diff --git a/dbcon/mysql/columnstore_dataload.cpp b/dbcon/mysql/columnstore_dataload.cpp index 3cb6dd8f3..d8a18e1bf 100644 --- a/dbcon/mysql/columnstore_dataload.cpp +++ b/dbcon/mysql/columnstore_dataload.cpp @@ -155,9 +155,9 @@ extern "C" return result; } - const char* table = args->args[0]; + const char* bucket = args->args[0]; const char* filename = args->args[1]; - const char* bucket = args->args[2]; + const char* table = args->args[3]; ulong cmapi_port = get_cmapi_port(_current_thd()); const char* cmapi_host = get_cmapi_host(_current_thd()); @@ -169,7 +169,7 @@ extern "C" const char* secret = get_s3_secret(thd); const char* key = get_s3_key(thd); const char* region = get_s3_region(thd); - const char* database = args->arg_count != 4 ? thd->get_db() : args->args[3]; + const char* database = args->args[2]; return columnstore_dataload_impl(initData->curl, initData->result, length, bucket, table, filename, database, secret, key, region, cmapi_host, cmapi_port, cmapi_version, @@ -178,9 +178,9 @@ extern "C" my_bool columnstore_dataload_init(UDF_INIT* initid, UDF_ARGS* args, char* message) { - if (args->arg_count != 3 && args->arg_count != 4) + if (args->arg_count != 4) { - strcpy(message, "COLUMNSTORE_DATALOAD() takes three or four arguments: (table, filename, bucket) or (table, filename, bucket, database)"); + strcpy(message, "columnstore_dataload needs 4 arguments: (bucket, file_name, db_name, table)"); return 1; } diff --git a/dbcon/mysql/columnstore_info.sql b/dbcon/mysql/columnstore_info.sql index 8a79f98ff..dbc5ea117 100644 --- a/dbcon/mysql/columnstore_info.sql +++ b/dbcon/mysql/columnstore_info.sql @@ -120,4 +120,17 @@ create or replace procedure columnstore_upgrade() SQL SECURITY INVOKER END LOOP; END // +CREATE OR REPLACE PROCEDURE load_from_s3 (in bucket varchar(256) CHARACTER SET utf8, + in filename varchar(256) CHARACTER SET utf8, + in dbname varchar(256) CHARACTER SET utf8, + in table_name varchar(256) CHARACTER SET utf8) +LANGUAGE SQL +NOT DETERMINISTIC +MODIFIES SQL DATA +SQL SECURITY INVOKER +BEGIN + select columnstore_dataload(bucket, filename, dbname, table_name); +END // + + DELIMITER ; diff --git a/dbcon/mysql/syscatalog_mysql.sql b/dbcon/mysql/syscatalog_mysql.sql index 205596030..900a9d164 100644 --- a/dbcon/mysql/syscatalog_mysql.sql +++ b/dbcon/mysql/syscatalog_mysql.sql @@ -43,18 +43,4 @@ create table if not exists syscolumn (`schema` varchar(128), compressiontype integer, nextvalue bigint) engine=columnstore comment='SCHEMA SYNC ONLY'; - -DELIMITER // -CREATE OR REPLACE PROCEDURE columnstore_load_from_s3 (in tablename varchar(256) CHARACTER SET utf8, - in filename varchar(256) CHARACTER SET utf8, - in bucket varchar(256) CHARACTER SET utf8, - in dbname varchar(256) CHARACTER SET utf8) -LANGUAGE SQL -NOT DETERMINISTIC -MODIFIES SQL DATA -SQL SECURITY INVOKER -BEGIN - select columnstore_dataload(tablename, filename, bucket, dbname); -END // - DELIMITER ; \ No newline at end of file