WL#1226: Add Streamed LOAD DATA INFILE support
Affects: Server-7.1
—
Status: Un-Assigned
Currently we have support loading data from file (local or remote), however for
some data loading needs it would be more convenient to be able to supply the
stream directly instead of saving it to the file first
On client side this could be implemented as
LOAD DATA STREAM INFILE INTO TABLE XXX;
When client has a function "push" the data it wanted to load.
This command could be also very useful for replication, allowing
to avoid storing file in /tmp/ which adds a lot of problems. For example
- if /tmp/ is cleaned on server restart replication can be broken
- Problems with cleanup files from mysqlbinlog in /tmp/
- Problem with saving binlog content in text: mysqlbinlog > file.sql
We could use this feature in replication similar to Prepared statements by adding
SQL commands for such interface, for example:
LOAD DATA STREAM INFILE INTO TABLE XXX;
SEND DATA "Block up to max_allowed_packet from the file";
...
SEND DATA "Block up to max_allowed_packet from the file";
SEND DATA END;
That could be used for replicating all LOAD DATA INFILE statements.
For normal replication flow (besides mysqlbinlog) it can be used even without
adding special SQL level commands.
Copyright (c) 2000, 2025, Oracle Corporation and/or its affiliates. All rights reserved.