[−][src]Struct c3p0_mysql::mysql::driver::LocalInfileHandler
Callback to handle requests for local files. Consult Mysql documentation for the format of local infile data.
Support
Note that older versions of Mysql server may not support this functionality.
conn.query("CREATE TEMPORARY TABLE mysql.tbl(a TEXT)").unwrap(); conn.set_local_infile_handler(Some( LocalInfileHandler::new(|file_name, writer| { writer.write_all(b"row1: file name is ")?; writer.write_all(file_name)?; writer.write_all(b"\n")?; writer.write_all(b"row2: foobar\n") }) )); match conn.query("LOAD DATA LOCAL INFILE 'file_name' INTO TABLE mysql.tbl") { Ok(_) => (), Err(Error::MySqlError(ref e)) if e.code == 1148 => { // functionality is not supported by the server return; }, err => { err.unwrap(); }, } let mut row_num = 0; for (row_idx, row) in conn.query("SELECT * FROM mysql.tbl").unwrap().enumerate() { row_num = row_idx + 1; let row: (String,) = from_row(row.unwrap()); match row_num { 1 => assert_eq!(row.0, "row1: file name is file_name"), 2 => assert_eq!(row.0, "row2: foobar"), _ => unreachable!(), } } assert_eq!(row_num, 2);
Methods
impl LocalInfileHandler
[src]
pub fn new<F>(f: F) -> LocalInfileHandler where
F: for<'a, 'a> FnMut(&'a [u8], &'a mut LocalInfile) -> Result<(), Error> + Send + 'static,
[src]
F: for<'a, 'a> FnMut(&'a [u8], &'a mut LocalInfile) -> Result<(), Error> + Send + 'static,
Trait Implementations
impl Clone for LocalInfileHandler
[src]
fn clone(&self) -> LocalInfileHandler
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Eq for LocalInfileHandler
[src]
impl Debug for LocalInfileHandler
[src]
impl PartialEq<LocalInfileHandler> for LocalInfileHandler
[src]
Auto Trait Implementations
impl Send for LocalInfileHandler
impl Sync for LocalInfileHandler
impl Unpin for LocalInfileHandler
impl UnwindSafe for LocalInfileHandler
impl RefUnwindSafe for LocalInfileHandler
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,
fn vzip(self) -> V
impl<T> Same<T> for T
type Output = T
Should always be Self