@@ -29,6 +29,8 @@ use serde::{Deserialize, Serialize};
2929#[ cfg( feature = "visitor" ) ]
3030use sqlparser_derive:: { Visit , VisitMut } ;
3131
32+ use crate :: display_utils:: { indented_list, Indent , SpaceOrNewline } ;
33+
3234pub use super :: ddl:: { ColumnDef , TableConstraint } ;
3335
3436use super :: {
@@ -579,28 +581,32 @@ impl Display for Insert {
579581 ) ?;
580582 }
581583 if !self . columns . is_empty ( ) {
582- write ! ( f, "({}) " , display_comma_separated( & self . columns) ) ?;
584+ write ! ( f, "({})" , display_comma_separated( & self . columns) ) ?;
585+ SpaceOrNewline . fmt ( f) ?;
583586 }
584587 if let Some ( ref parts) = self . partitioned {
585588 if !parts. is_empty ( ) {
586- write ! ( f, "PARTITION ({}) " , display_comma_separated( parts) ) ?;
589+ write ! ( f, "PARTITION ({})" , display_comma_separated( parts) ) ?;
590+ SpaceOrNewline . fmt ( f) ?;
587591 }
588592 }
589593 if !self . after_columns . is_empty ( ) {
590- write ! ( f, "({}) " , display_comma_separated( & self . after_columns) ) ?;
594+ write ! ( f, "({})" , display_comma_separated( & self . after_columns) ) ?;
595+ SpaceOrNewline . fmt ( f) ?;
591596 }
592597
593598 if let Some ( settings) = & self . settings {
594- write ! ( f, "SETTINGS {} " , display_comma_separated( settings) ) ?;
599+ write ! ( f, "SETTINGS {}" , display_comma_separated( settings) ) ?;
600+ SpaceOrNewline . fmt ( f) ?;
595601 }
596602
597603 if let Some ( source) = & self . source {
598- write ! ( f , "{source}" ) ?;
604+ source . fmt ( f ) ?;
599605 } else if !self . assignments . is_empty ( ) {
600- write ! ( f, "SET " ) ?;
601- write ! ( f, "{}" , display_comma_separated ( & self . assignments) ) ?;
606+ write ! ( f, "SET" ) ?;
607+ indented_list ( f, & self . assignments ) ?;
602608 } else if let Some ( format_clause) = & self . format_clause {
603- write ! ( f , "{format_clause}" ) ?;
609+ format_clause . fmt ( f ) ?;
604610 } else if self . columns . is_empty ( ) {
605611 write ! ( f, "DEFAULT VALUES" ) ?;
606612 }
@@ -620,7 +626,9 @@ impl Display for Insert {
620626 }
621627
622628 if let Some ( returning) = & self . returning {
623- write ! ( f, " RETURNING {}" , display_comma_separated( returning) ) ?;
629+ SpaceOrNewline . fmt ( f) ?;
630+ f. write_str ( "RETURNING" ) ?;
631+ indented_list ( f, returning) ?;
624632 }
625633 Ok ( ( ) )
626634 }
@@ -649,32 +657,45 @@ pub struct Delete {
649657
650658impl Display for Delete {
651659 fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
652- write ! ( f , "DELETE " ) ?;
660+ f . write_str ( "DELETE" ) ?;
653661 if !self . tables . is_empty ( ) {
654- write ! ( f, "{} " , display_comma_separated ( & self . tables) ) ?;
662+ indented_list ( f, & self . tables ) ?;
655663 }
656664 match & self . from {
657665 FromTable :: WithFromKeyword ( from) => {
658- write ! ( f, "FROM {}" , display_comma_separated( from) ) ?;
666+ f. write_str ( " FROM" ) ?;
667+ indented_list ( f, from) ?;
659668 }
660669 FromTable :: WithoutKeyword ( from) => {
661- write ! ( f, "{}" , display_comma_separated ( from) ) ?;
670+ indented_list ( f, from) ?;
662671 }
663672 }
664673 if let Some ( using) = & self . using {
665- write ! ( f, " USING {}" , display_comma_separated( using) ) ?;
674+ SpaceOrNewline . fmt ( f) ?;
675+ f. write_str ( "USING" ) ?;
676+ indented_list ( f, using) ?;
666677 }
667678 if let Some ( selection) = & self . selection {
668- write ! ( f, " WHERE {selection}" ) ?;
679+ SpaceOrNewline . fmt ( f) ?;
680+ f. write_str ( "WHERE" ) ?;
681+ SpaceOrNewline . fmt ( f) ?;
682+ Indent ( selection) . fmt ( f) ?;
669683 }
670684 if let Some ( returning) = & self . returning {
671- write ! ( f, " RETURNING {}" , display_comma_separated( returning) ) ?;
685+ SpaceOrNewline . fmt ( f) ?;
686+ f. write_str ( "RETURNING" ) ?;
687+ indented_list ( f, returning) ?;
672688 }
673689 if !self . order_by . is_empty ( ) {
674- write ! ( f, " ORDER BY {}" , display_comma_separated( & self . order_by) ) ?;
690+ SpaceOrNewline . fmt ( f) ?;
691+ f. write_str ( "ORDER BY" ) ?;
692+ indented_list ( f, & self . order_by ) ?;
675693 }
676694 if let Some ( limit) = & self . limit {
677- write ! ( f, " LIMIT {limit}" ) ?;
695+ SpaceOrNewline . fmt ( f) ?;
696+ f. write_str ( "LIMIT" ) ?;
697+ SpaceOrNewline . fmt ( f) ?;
698+ Indent ( limit) . fmt ( f) ?;
678699 }
679700 Ok ( ( ) )
680701 }
0 commit comments