Skip to content

Commit d3d02ff

Browse files
format query plan string
1 parent b4e619c commit d3d02ff

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

src/sqlancer/postgres/PostgresProvider.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ public String getQueryPlan(String selectStr, PostgresGlobalState globalState) th
360360
} catch (SQLException | AssertionError e) {
361361
queryPlan = "";
362362
}
363-
return queryPlan;
363+
return formatQueryPlan(queryPlan);
364364
}
365365

366366
@Override
@@ -385,4 +385,27 @@ protected boolean addRowsToAllTables(PostgresGlobalState globalState) throws Exc
385385
return true;
386386
}
387387

388+
private String formatQueryPlan(String queryPlan){
389+
StringBuilder outQueryPlanFormatted = new StringBuilder();
390+
boolean insideBrackets = false;
391+
392+
for(char ch: queryPlan.toCharArray()){
393+
if(ch == '\n' || ch == ' '){
394+
continue;
395+
}
396+
if(ch == '('){
397+
insideBrackets = true;
398+
}
399+
else if(ch == ')'){
400+
insideBrackets = false;
401+
outQueryPlanFormatted.append(';');
402+
continue;
403+
}
404+
if (!insideBrackets)
405+
outQueryPlanFormatted.append(ch);
406+
}
407+
408+
return outQueryPlanFormatted.toString();
409+
}
410+
388411
}

0 commit comments

Comments
 (0)