1
1
use distributary:: { ControllerHandle , DataType , Table , View , ZookeeperAuthority } ;
2
2
3
3
use msql_srv:: { self , * } ;
4
- use nom_sql:: { self , ColumnConstraint , InsertStatement , Literal , SelectSpecification ,
5
- SelectStatement , SqlQuery , UpdateStatement } ;
4
+ use nom_sql:: {
5
+ self , ColumnConstraint , InsertStatement , Literal , SelectSpecification , SelectStatement ,
6
+ SqlQuery , UpdateStatement ,
7
+ } ;
6
8
7
9
use slog;
8
10
use std:: borrow:: Cow ;
@@ -56,12 +58,14 @@ impl SoupBackendInner {
56
58
let mut ch = ControllerHandle :: new ( zk_auth) . unwrap ( ) ;
57
59
58
60
let soup = SoupBackendInner {
59
- inputs : ch. inputs ( )
61
+ inputs : ch
62
+ . inputs ( )
60
63
. expect ( "couldn't get inputs from Soup" )
61
64
. into_iter ( )
62
65
. map ( |( n, _) | ( n. clone ( ) , ch. table ( & n) . unwrap ( ) ) )
63
66
. collect :: < BTreeMap < String , Table > > ( ) ,
64
- outputs : ch. outputs ( )
67
+ outputs : ch
68
+ . outputs ( )
65
69
. expect ( "couldn't get outputs from Soup" )
66
70
. into_iter ( )
67
71
. map ( |( n, _) | ( n. clone ( ) , ch. view ( & n) . unwrap ( ) ) )
@@ -84,10 +88,9 @@ impl SoupBackendInner {
84
88
85
89
fn get_or_make_getter < ' a , ' b > ( & ' a mut self , view : & ' b str ) -> & ' a mut View {
86
90
let soup = & mut self . soup ;
87
- self . outputs . entry ( view. to_owned ( ) ) . or_insert_with ( || {
88
- soup. view ( view)
89
- . expect ( & format ! ( "no view named '{}'" , view) )
90
- } )
91
+ self . outputs
92
+ . entry ( view. to_owned ( ) )
93
+ . or_insert_with ( || soup. view ( view) . expect ( & format ! ( "no view named '{}'" , view) ) )
91
94
}
92
95
}
93
96
@@ -197,7 +200,8 @@ impl SoupBackend {
197
200
self . log,
198
201
"Adding view \" {}\" to Soup as {}" , q. definition, q. name
199
202
) ;
200
- match self . inner
203
+ match self
204
+ . inner
201
205
. soup
202
206
. extend_recipe ( & format ! ( "{}: {};" , q. name, q. definition) )
203
207
{
@@ -216,7 +220,8 @@ impl SoupBackend {
216
220
q : nom_sql:: DeleteStatement ,
217
221
results : QueryResultWriter < W > ,
218
222
) -> io:: Result < ( ) > {
219
- let cond = q. where_clause
223
+ let cond = q
224
+ . where_clause
220
225
. expect ( "only supports DELETEs with WHERE-clauses" ) ;
221
226
222
227
let ts = self . table_schemas . read ( ) . unwrap ( ) ;
@@ -263,7 +268,8 @@ impl SoupBackend {
263
268
q : nom_sql:: InsertStatement ,
264
269
results : QueryResultWriter < W > ,
265
270
) -> io:: Result < ( ) > {
266
- let data: Vec < Vec < DataType > > = q. data
271
+ let data: Vec < Vec < DataType > > = q
272
+ . data
267
273
. iter ( )
268
274
. map ( |row| row. iter ( ) . map ( |v| DataType :: from ( v) ) . collect ( ) )
269
275
. collect ( ) ;
@@ -373,7 +379,8 @@ impl SoupBackend {
373
379
if let Some ( qname) = gc. get ( q) {
374
380
qname. clone ( )
375
381
} else {
376
- let qc = self . query_count
382
+ let qc = self
383
+ . query_count
377
384
. fetch_add ( 1 , sync:: atomic:: Ordering :: SeqCst ) ;
378
385
let qname = format ! ( "q_{}" , qc) ;
379
386
@@ -389,7 +396,8 @@ impl SoupBackend {
389
396
"Adding ad-hoc query \" {}\" to Soup as {}" , q, qname
390
397
) ;
391
398
}
392
- if let Err ( e) = self . inner
399
+ if let Err ( e) = self
400
+ . inner
393
401
. soup
394
402
. extend_recipe ( & format ! ( "QUERY {}: {};" , qname, q) )
395
403
{
@@ -909,13 +917,15 @@ impl<W: io::Write> MysqlShim<W> for SoupBackend {
909
917
910
918
let query_lc = query. to_lowercase ( ) ;
911
919
912
- if query_lc. starts_with ( "begin" ) || query_lc. starts_with ( "start transaction" )
920
+ if query_lc. starts_with ( "begin" )
921
+ || query_lc. starts_with ( "start transaction" )
913
922
|| query_lc. starts_with ( "commit" )
914
923
{
915
924
return results. completed ( 0 , 0 ) ;
916
925
}
917
926
918
- if query_lc. starts_with ( "show databases" ) || query_lc. starts_with ( "rollback" )
927
+ if query_lc. starts_with ( "show databases" )
928
+ || query_lc. starts_with ( "rollback" )
919
929
|| query_lc. starts_with ( "alter table" )
920
930
|| query_lc. starts_with ( "create index" )
921
931
|| query_lc. starts_with ( "create unique index" )
@@ -929,14 +939,12 @@ impl<W: io::Write> MysqlShim<W> for SoupBackend {
929
939
}
930
940
931
941
if query_lc. starts_with ( "show tables" ) {
932
- let cols = [
933
- Column {
934
- table : String :: from ( "" ) ,
935
- column : String :: from ( "Tables" ) ,
936
- coltype : ColumnType :: MYSQL_TYPE_STRING ,
937
- colflags : ColumnFlags :: empty ( ) ,
938
- } ,
939
- ] ;
942
+ let cols = [ Column {
943
+ table : String :: from ( "" ) ,
944
+ column : String :: from ( "Tables" ) ,
945
+ coltype : ColumnType :: MYSQL_TYPE_STRING ,
946
+ colflags : ColumnFlags :: empty ( ) ,
947
+ } ] ;
940
948
// TODO(malte): we actually know what tables exist via self.table_schemas, so
941
949
// return them here
942
950
let writer = results. start ( & cols) ?;
0 commit comments