3
3
4
4
import gudusoft .gsqlparser .*;
5
5
import gudusoft .gsqlparser .nodes .*;
6
+ import gudusoft .gsqlparser .nodes .bigquery .TReplaceExprAsIdentifier ;
6
7
import gudusoft .gsqlparser .nodes .hive .THiveTablePartition ;
7
8
import gudusoft .gsqlparser .nodes .mdx .EMdxExpSyntax ;
8
9
import gudusoft .gsqlparser .nodes .mdx .IMdxIdentifierSegment ;
@@ -804,6 +805,19 @@ public void postVisit(TResultColumnList node) {
804
805
appendEndTag (node );
805
806
}
806
807
808
+
809
+ public void preVisit (TReplaceExprAsIdentifier node ) {
810
+ // appendStartTag(node);
811
+ e_parent = (Element ) elementStack .peek ();
812
+ Element e_expr_as_ident = xmldoc .createElement ("expr_as_identifier" );
813
+ e_parent .appendChild (e_expr_as_ident );
814
+ elementStack .push (e_expr_as_ident );
815
+ node .getExpr ().accept (this );
816
+ node .getIdentifier ().accept (this );
817
+ elementStack .pop ();
818
+
819
+ }
820
+
807
821
public void preVisit (TResultColumn node ) {
808
822
// appendStartTag(node);
809
823
e_parent = (Element ) elementStack .peek ();
@@ -819,6 +833,16 @@ public void preVisit(TResultColumn node) {
819
833
if (node .getExceptColumnList () != null ){
820
834
addElementOfNode ("except_columns" ,node .getExceptColumnList ());
821
835
}
836
+
837
+ if (node .getReplaceExprAsIdentifiers () != null ){
838
+ Element e_replace_clause = xmldoc .createElement ("replace_clause" );
839
+ e_result_column .appendChild (e_replace_clause );
840
+ elementStack .push (e_replace_clause );
841
+ for (int i =0 ;i <node .getReplaceExprAsIdentifiers ().size ();i ++){
842
+ node .getReplaceExprAsIdentifiers ().get (i ).accept (this );
843
+ }
844
+ elementStack .pop ();
845
+ }
822
846
elementStack .pop ();
823
847
}
824
848
@@ -2583,6 +2607,25 @@ public void preVisit(TMssqlCreateFunction node) {
2583
2607
2584
2608
}
2585
2609
2610
+
2611
+ public void preVisit (TUnloadStmt stmt ) {
2612
+ e_parent = (Element ) elementStack .peek ();
2613
+ Element e_unload_stmt = xmldoc .createElement ("unload_stmt" );
2614
+ e_parent .appendChild (e_unload_stmt );
2615
+ elementStack .push (e_unload_stmt );
2616
+ if (stmt .getSelectSqlStatement () != null ){
2617
+ stmt .getSelectSqlStatement ().accept (this );
2618
+ }
2619
+
2620
+ if (stmt .getS3 () != null ){
2621
+ addElementOfString ("s3_path" ,stmt .getS3 ());
2622
+ }
2623
+
2624
+
2625
+ elementStack .pop ();
2626
+
2627
+ }
2628
+
2586
2629
public void preVisit (TCreateFunctionStmt node ) {
2587
2630
e_parent = (Element ) elementStack .peek ();
2588
2631
Element e_function = xmldoc .createElement ("create_function_statement" );
@@ -2610,7 +2653,10 @@ public void preVisit(TCreateFunctionStmt node) {
2610
2653
node .getParameterDeclarations ().accept (this );
2611
2654
}
2612
2655
2613
- if (node .getBodyStatements ().size () > 0 ) {
2656
+ if (node .getBlockBody () != null ){
2657
+ node .getBlockBody ().accept (this );
2658
+ }
2659
+ else if (node .getBodyStatements ().size () > 0 ) {
2614
2660
current_statement_list_tag = "body_statement_list" ;
2615
2661
node .getBodyStatements ().accept (this );
2616
2662
}
@@ -2889,6 +2935,9 @@ public void preVisit(TAlterTableOption node) {
2889
2935
e_alter_table_option .appendChild (e_option );
2890
2936
elementStack .push (e_option );
2891
2937
node .getColumnName ().accept (this );
2938
+ if (node .getNewDataType () != null ){
2939
+ node .getNewDataType ().accept (this );
2940
+ }
2892
2941
elementStack .pop ();
2893
2942
break ;
2894
2943
case ChangeColumn :
@@ -5668,12 +5717,18 @@ public void preVisit( TRepeatStmt stmt ) {
5668
5717
5669
5718
public void preVisit ( TBlockSqlNode node ) {
5670
5719
e_parent = (Element ) elementStack .peek ( );
5671
- Element e_begin_end = xmldoc .createElement ( "plsql_block" );
5720
+ Element e_plsql_block = xmldoc .createElement ( "plsql_block" );
5672
5721
if (node .getLabelName () != null ){
5673
- e_begin_end .setAttribute ("label" ,node .getLabelNameStr ());
5722
+ e_plsql_block .setAttribute ("label" ,node .getLabelNameStr ());
5723
+ }
5724
+ if (node .getParent () != null ){
5725
+ if (node .getParent () instanceof TStoredProcedureSqlStatement ){
5726
+ TStoredProcedureSqlStatement p = (TStoredProcedureSqlStatement )node .getParent ();
5727
+ e_plsql_block .setAttribute ("parent_name" ,p .getStoredProcedureName ().toString ());
5728
+ }
5674
5729
}
5675
- e_parent .appendChild ( e_begin_end );
5676
- elementStack .push ( e_begin_end );
5730
+ e_parent .appendChild ( e_plsql_block );
5731
+ elementStack .push ( e_plsql_block );
5677
5732
if (node .getDeclareStatements ().size () > 0 ){
5678
5733
current_statement_list_tag = "declare_statement_list" ;
5679
5734
node .getDeclareStatements ().accept (this );
0 commit comments