Trait mysql_async::prelude::LocalInfileHandler
[−]
[src]
pub trait LocalInfileHandler { fn handle(&self, file_name: &[u8]) -> Result<Box<Read>>; }
Trait used to handle local infile requests.
Simple handler example:
struct ExampleHandler(&'static [u8]); impl LocalInfileHandler for ExampleHandler { fn handle(&self, _: &[u8]) -> my::errors::Result<Box<io::Read>> { Ok(Box::new(self.0)) } } let mut lp = Core::new().unwrap(); let mut opts = my::OptsBuilder::from_opts(&*database_url); opts.local_infile_handler(Some(ExampleHandler(b"foobar"))); let pool = my::Pool::new(opts, &lp.handle()); let future = pool.get_conn() .and_then(|conn| conn.drop_query("CREATE TEMPORARY TABLE tmp (a TEXT);")) .and_then(|conn| conn.drop_query("LOAD DATA LOCAL INFILE 'baz' INTO TABLE tmp;")) .and_then(|conn| conn.prep_exec("SELECT * FROM tmp;", ())) .and_then(|result| result.map(|row| my::from_row::<(String,)>(row).0)) .map(|(result, _ /* stmt */)| { assert_eq!(result.len(), 1); assert_eq!(result[0], "foobar"); }) .and_then(|_| pool.disconnect()); lp.run(future).unwrap();
Required Methods
fn handle(&self, file_name: &[u8]) -> Result<Box<Read>>
file_name
is the file name in LOAD DATA LOCAL INFILE '<file name>' INTO TABLE ...;
query.
Implementors
impl LocalInfileHandler for WhiteListFsLocalInfileHandler