Skip to content

Commit c123fb3

Browse files
author
Frederic de Zorzi
committed
it works
1 parent a7d1940 commit c123fb3

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

src/main.rs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use std::io;
22
use std::io::prelude::*;
33
extern crate regex;
4-
54
use regex::Regex;
65

76
fn main() {
@@ -10,18 +9,29 @@ fn main() {
109
let mut line = String::new();
1110
let mut table_name = String::new();
1211
let mut fields = String::new();
13-
let re = match Regex::new(r"COPY (\w+) \(([\w, ]+)\) FROM stdin;") {
14-
Ok(re) => re,
15-
Err(err) => panic!("{}", err),
16-
};
12+
let re = Regex::new(r"^COPY (\w+) \(([\w, ]+)\) FROM stdin;").unwrap();
1713
let mut insert_mode = false;
1814
while stdin.read_line(&mut line).unwrap() > 0 {
1915
if insert_mode {
2016
if line == "\\.\n" {
2117
insert_mode = false;
2218
}
2319
else {
24-
print!("{} {}", table_name, fields);
20+
let mut values = String::new();
21+
line.pop();
22+
for s in line.split("\t") {
23+
if s == "\\N" {
24+
values += "NULL, ";
25+
} else {
26+
values += "'";
27+
values += s;
28+
values += "', ";
29+
}
30+
}
31+
values.pop();
32+
values.pop();
33+
println!("INSERT INTO {} ({}) VALUES ({});",
34+
table_name, fields, values);
2535
}
2636
}
2737
else {

0 commit comments

Comments
 (0)