Skip to content

Commit 6e37778

Browse files
committed
Merge branch 'dev'
2 parents 36e39e9 + 1b142d8 commit 6e37778

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1958
-146
lines changed

src/main/java/demos/dlineage/DataFlowAnalyzer.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,12 @@ else if (argList.indexOf("/fromdb") != -1 && argList.size() > argList.indexOf("/
243243
Dataflow model = gudusoft.gsqlparser.dlineage.DataFlowAnalyzer.getSqlflowJSONModel(dataflow, vendor);
244244
result = JSON.toJSONString(model);
245245
} else {
246-
result = XML2Model.saveXML(dataflow);
246+
try {
247+
result = XML2Model.saveXML(dataflow);
248+
}catch (Exception e) {
249+
e.printStackTrace();
250+
result = null;
251+
}
247252
}
248253
}
249254
} else {
@@ -264,7 +269,12 @@ else if (jsonFormat) {
264269
} else if (ignoreFunction && result.trim().startsWith("<?xml")) {
265270
dataflow dataflow = dlineage.getDataFlow();
266271
dataflow = new RemoveDataflowFunction().removeFunction(dataflow);
267-
result = XML2Model.saveXML(dataflow);
272+
try {
273+
result = XML2Model.saveXML(dataflow);
274+
}catch (Exception e) {
275+
e.printStackTrace();
276+
result = null;
277+
}
268278
}
269279
}
270280

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Gudu SQLFlow Dlineage tool changes:
2+
3+
Dlineage 3.1.4(2023-3-4)
4+
- [Dlineage] improvement of processing star column.
5+
6+
Dlineage 3.1.3(2023-2-24)
7+
- [Dlineage] 0002740: Analyze Error on SELECT STAR CREATE VIEW statements
8+
- [Dlineage] fix a bug can't link column in subqurey in the select to target table correctly if table table had metadata provided.
9+
10+
Dlineage 3.1.2(2023-2-21)
11+
- [Dlineage/Hive] able to build relation between table and s3 location in alter table.
12+
13+
14+
Dlineage 3.1.1(2023-2-20)
15+
- [dlieange] bug fix for 0002679: SELECT * EXCEPT, AS CASE parse error
16+
- [dlieange] bug fix for 0002677: Select star except select star script not parsed correctly
17+
- [dlieange] bug fix for 0002678: bigquery select * replace()
18+
19+
20+
- [Ver3.0.2, 2023/01/06] Fix a bug IDENTIFIER keyword can't be used in view column list.
21+
- [Ver3.0.1, 2022/11/01] Integrate sqlflow-ingester to dataflowAnalyzer tool.
22+
- [Ver2.2.0, 2022/07/21] Use /env parameter to provide metadata.
23+
- [Ver2.1.2, 2021/07/13] Update readme, illustrates how to connect to database instance in command line.
24+
- [Ver2.1.1, 2021/07/12] Update download, data lineage model document.
25+
- [Ver2.1.0, 2021/07/11] Release gsp core 2.3.7.2

src/main/java/demos/dlineage/readme.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -239,15 +239,7 @@ But by using those args, you can get the same outcome:
239239
/transform /coor
240240

241241

242-
## 6. Releases
243-
- [Ver3.0.2, 2023/01/06] Fix a bug IDENTIFIER keyword can't be used in view column list.
244-
- [Ver3.0.1, 2022/11/01] Integrate sqlflow-ingester to dataflowAnalyzer tool.
245-
- [Ver2.2.0, 2022/07/21] Use /env parameter to provide metadata.
246-
- [Ver2.1.2, 2021/07/13] Update readme, illustrates how to connect to database instance in command line.
247-
- [Ver2.1.1, 2021/07/12] Update download, data lineage model document.
248-
- [Ver2.1.0, 2021/07/11] Release gsp core 2.3.7.2
249-
250-
## 7. Links
242+
## 6. Links
251243
- [First version, 2017-8](https://github.com/sqlparser/wings/issues/494)
252244

253245
## 8、List of Supported dbVendors

src/main/java/demos/dlineageBasic/columnImpact/ColumnImpact.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,10 @@ else if ( lcexpr.getExpressionType( ) == EExpressionType.function_t )
238238
{
239239
func.getAgainstExpr( ).inOrderTraverse( this );
240240
}
241-
if ( func.getBetweenExpr( ) != null )
242-
{
243-
func.getBetweenExpr( ).inOrderTraverse( this );
244-
}
241+
// if ( func.getBetweenExpr( ) != null )
242+
// {
243+
// func.getBetweenExpr( ).inOrderTraverse( this );
244+
// }
245245
if ( func.getExpr1( ) != null )
246246
{
247247
func.getExpr1( ).inOrderTraverse( this );
@@ -294,10 +294,10 @@ else if ( lcexpr.getExpressionType( ) == EExpressionType.function_t )
294294
}
295295
}
296296
}
297-
if ( func.getRangeSize( ) != null )
298-
{
299-
func.getRangeSize( ).inOrderTraverse( this );
300-
}
297+
// if ( func.getRangeSize( ) != null )
298+
// {
299+
// func.getRangeSize( ).inOrderTraverse( this );
300+
// }
301301
if ( func.getXMLElementNameExpr( ) != null )
302302
{
303303
func.getXMLElementNameExpr( ).inOrderTraverse( this );

src/main/java/demos/joinConvert/JoinConverter.java

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -564,13 +564,18 @@ private void analyzeSelect(final TCustomSqlStatement stmt) {
564564
tables.add(select.tables.getTable(i));
565565
}
566566

567+
List<TTable> parentTables = new ArrayList<TTable>();//add by grq 2023.05.07 issue=I70J7M
567568
TCustomSqlStatement parentStmt = select;
568569
while (parentStmt.getParentStmt() != null) {
569570
parentStmt = parentStmt.getParentStmt();
570571
if (parentStmt instanceof TSelectSqlStatement) {
571572
TSelectSqlStatement temp = (TSelectSqlStatement) parentStmt;
572573
for (int i = 0; i < temp.tables.size(); i++) {
573-
tables.add(temp.tables.getTable(i));
574+
//edit by grq 2023.05.07 issue=I70J7M
575+
TTable tempTable = temp.tables.getTable(i);
576+
parentTables.add(tempTable);
577+
tables.add(tempTable);
578+
//end by grq
574579
}
575580
}
576581
}
@@ -657,6 +662,34 @@ private void analyzeSelect(final TCustomSqlStatement stmt) {
657662

658663
if ((leftTable != null)
659664
&& (rightTable != null)) {
665+
//add by grq 2023.05.07 issue=I70J7M
666+
if(parentTables.indexOf(leftTable)<0 && parentTables.indexOf(rightTable)>=0){
667+
boolean aliasHave = false;
668+
for (int k = 0; k < jrs.size(); k++) {
669+
JoinCondition jc = jrs.get(k);
670+
if (jc.used) {
671+
continue;
672+
}
673+
for(int kk = 0; kk < tables.size(); kk++){
674+
TTable t = tables.get(kk);
675+
if(parentTables.indexOf(t)<0){
676+
if(isNameOrAliasOfTable(t, jc.righttable)){
677+
if(tableUsed[kk]){
678+
aliasHave = true;
679+
break;
680+
}
681+
}
682+
}
683+
}
684+
if(aliasHave){
685+
break;
686+
}
687+
}
688+
if(aliasHave){
689+
continue;
690+
}
691+
}
692+
//end by grq
660693
ArrayList<JoinCondition> lcjrs = getJoinCondition(leftTable,
661694
rightTable,
662695
jrs);

src/main/java/demos/sqltranslator/DataTypeChecker.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ public class DataTypeChecker
1010
public static DataTypeCheckResult checkDataType( TTypeName type,
1111
EDbVendor targetVendor )
1212
{
13-
if ( type.getGsqlparser( ).getDbVendor( ) == EDbVendor.dbvoracle )
13+
if ( type.dbvendor == EDbVendor.dbvoracle )
1414
{
1515
return OracleDataTypeChecker.checkDataType( type, targetVendor );
1616
}
17-
else if ( type.getGsqlparser( ).getDbVendor( ) == EDbVendor.dbvmssql )
17+
else if ( type.dbvendor == EDbVendor.dbvmssql )
1818
{
1919
return MssqlDataTypeChecker.checkDataType( type, targetVendor );
2020
}
21-
else if ( type.getGsqlparser( ).getDbVendor( ) == EDbVendor.dbvmysql )
21+
else if ( type.dbvendor == EDbVendor.dbvmysql )
2222
{
2323
return MysqlDataTypeChecker.checkDataType( type, targetVendor );
2424
}

src/main/java/demos/visitors/searchNode.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import gudusoft.gsqlparser.nodes.TLateralView;
99
import gudusoft.gsqlparser.nodes.hive.THiveTablePartition;
1010
import gudusoft.gsqlparser.stmt.TSelectSqlStatement;
11-
import gudusoft.gsqlparser.stmt.oracle.TPlsqlExecImmeStmt;
11+
import gudusoft.gsqlparser.stmt.TExecImmeStmt;
1212

1313
import java.io.File;
1414
import java.io.IOException;
@@ -111,7 +111,7 @@ public void preVisit(TExpression node) {
111111
}
112112
}
113113

114-
public void preVisit(TPlsqlExecImmeStmt node) {
114+
public void preVisit(TExecImmeStmt node) {
115115
//System.out.println("\n"+(++stmtCount)+" Statement:\t"+node.sqlstatementtype);
116116
System.out.println(node.getDynamicSQL()+";\n");
117117
}

src/main/java/demos/visitors/toXmlOldVersion.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,15 +1386,15 @@ public void preVisit(TFunctionCall node){
13861386
case case_n_t:
13871387
node.getExprList().accept(this);
13881388
break;
1389-
case range_n_t:
1390-
node.getBetweenExpr().accept(this);
1391-
if (node.getExprList() != null){
1392-
node.getExprList().accept(this);
1393-
}
1394-
if ( node.getRangeSize() != null){
1395-
node.getRangeSize().accept(this);
1396-
}
1397-
break;
1389+
// case range_n_t:
1390+
// node.getBetweenExpr().accept(this);
1391+
// if (node.getExprList() != null){
1392+
// node.getExprList().accept(this);
1393+
// }
1394+
// if ( node.getRangeSize() != null){
1395+
// node.getRangeSize().accept(this);
1396+
// }
1397+
// break;
13981398
case position_t:
13991399
node.getExpr1().accept(this);
14001400
node.getExpr2().accept(this);

0 commit comments

Comments
 (0)