I was wondering if it is possible to add an expression to a sql query using jsqlparser. For example I would like to add a column and a value to a sql statement:
original query: "INSERT INTO frontend
(in_reply_to
) VALUES (email
);"
modified query: "INSERT INTO frontend
(in_reply_to
, user_id
) VALUES (email
, 123)"
I managed to modify a column name, but not to add one.
Here is the code that I have:
ExtendedItemsListVisitor visitor = new ExtendedItemsListVisitor() {
private List expressions = null;
public List getExpressions() {
return this.expressions;
}
public void setExpressions(ExpressionList expressionList) {
this.expressions = expressionList.getExpressions();
}
public void visit(SubSelect subSelect) {
}
public void visit(ExpressionList expressionList) {
this.expressions = expressionList.getExpressions();
}
};
ItemsList itemsList = ((Insert)statement).getItemsList();
itemsList.accept(visitor);
ExpressionList expressions = (ExpressionList)visitor1.getExpressions();
Expression expression = new StringValue(newValue);
ExpressionVisitor visitor = new SetValueExpressionVisitor(newValue);