Macro v_clickhouse_rs::row[][src]

macro_rules! row {
    () => { ... };
    ( $i:ident, $($tail:tt)* ) => { ... };
    ( $i:ident ) => { ... };
    ( $k:ident: $v:expr ) => { ... };
    ( $k:ident: $v:expr, $($tail:tt)* ) => { ... };
    ( $k:expr => $v:expr ) => { ... };
    ( $k:expr => $v:expr, $($tail:tt)* ) => { ... };
}

This macro is a convenient way to pass row into a block.

      let mut block = Block::new();
      block.push(row!{customer_id: 1, amount: 2, account_name: "foo"})?;
      block.push(row!{customer_id: 4, amount: 4, account_name: "bar"})?;
      block.push(row!{customer_id: 5, amount: 5, account_name: "baz"})?;

you can also use Vec<(String, Value)> to construct row to insert into a block:

      let mut block = Block::new();
      for i in 1..10 {
          let mut row = Vec::new();
          for j in 1..10 {
              row.push((format!("#{}", j), Value::from(i * j)));
          }
          block.push(row)?;
      }
      assert_eq!(block.row_count(), 9);