public SQLAssignItem clone() { SQLAssignItem x = new SQLAssignItem(); if (target != null) { x.setTarget(target.clone()); } if (value != null) { x.setValue(value.clone()); } return x; }
@Override protected void accept0(SQLASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, this.target); acceptChild(visitor, this.value); } visitor.endVisit(this); }
public SQLSetStatement(SQLExpr target, SQLExpr value, String dbType){ super (dbType); SQLAssignItem item = new SQLAssignItem(target, value); item.setParent(this); this.items.add(item); }
private static boolean handleSingleVariable(String stmt, SQLAssignItem assignItem, ServerConnection c, List<Pair<KeyType, Pair<String, String>>> contextTask) { String key = handleSetKey(assignItem, c); if (key == null) return false; SQLExpr valueExpr = assignItem.getValue(); KeyType keyType = parseKeyType(key, true, KeyType.SYSTEM_VARIABLES); if (!checkValue(valueExpr, keyType)) { c.writeErrMessage(ErrorCode.ERR_NOT_SUPPORTED, "setting target is not supported for '" + SQLUtils.toMySqlString(assignItem.getValue()) + "'"); return false;
@Override public boolean visit(HiveInsert x) { setMode(x, TableStat.Mode.Insert); SQLExprTableSource tableSource = x.getTableSource(); SQLExpr tableName = tableSource.getExpr(); if (tableName instanceof SQLName) { TableStat stat = getTableStat((SQLName) tableName); stat.incrementInsertCount(); } for (SQLAssignItem partition : x.getPartitions()) { partition.accept(this); } accept(x.getQuery()); return false; }
public void set(SQLExpr target, SQLExpr value) { SQLAssignItem assignItem = new SQLAssignItem(target, value); assignItem.setParent(this); this.items.add(assignItem); }
private static String handleSetKey(SQLAssignItem assignItem, ServerConnection c) { if (assignItem.getTarget() instanceof SQLPropertyExpr) { SQLPropertyExpr target = (SQLPropertyExpr) assignItem.getTarget(); if (!(target.getOwner() instanceof SQLVariantRefExpr)) { c.writeErrMessage(ErrorCode.ERR_NOT_SUPPORTED, "setting target is not supported for '" + target + "'"); return null; } SQLVariantRefExpr owner = (SQLVariantRefExpr) target.getOwner(); if (owner.isGlobal()) { c.writeErrMessage(ErrorCode.ERR_NOT_SUPPORTED, "setting GLOBAL value is not supported"); return null; } return target.getName(); } else if (assignItem.getTarget() instanceof SQLVariantRefExpr) { SQLVariantRefExpr target = (SQLVariantRefExpr) assignItem.getTarget(); if (target.isGlobal()) { c.writeErrMessage(ErrorCode.ERR_NOT_SUPPORTED, "setting GLOBAL value is not supported"); return null; } return target.getName(); } else if (assignItem.getTarget() instanceof SQLIdentifierExpr) { SQLIdentifierExpr target = (SQLIdentifierExpr) assignItem.getTarget(); return target.getLowerName(); } else { c.writeErrMessage(ErrorCode.ERR_NOT_SUPPORTED, "setting target is not supported for '" + assignItem.getTarget() + "'"); return null; } }
@Override public boolean visit(HiveInsert x) { setMode(x, TableStat.Mode.Insert); SQLExprTableSource tableSource = x.getTableSource(); SQLExpr tableName = tableSource.getExpr(); if (tableName instanceof SQLName) { TableStat stat = getTableStat((SQLName) tableName); stat.incrementInsertCount(); } for (SQLAssignItem partition : x.getPartitions()) { partition.accept(this); } accept(x.getQuery()); return false; }
public SQLAssignItem parseAssignItem() { SQLAssignItem item = new SQLAssignItem(); item.setTarget(var); if (lexer.token == Token.COLONEQ) { lexer.nextToken(); } else if (lexer.token == Token.TRUE || lexer.identifierEquals(FnvHash.Constants.TRUE)) { lexer.nextToken(); item.setValue(new SQLBooleanExpr(true)); return item; } else if (lexer.token == Token.ON) { lexer.nextToken(); item.setValue(new SQLIdentifierExpr("ON")); return item; } else { item.setValue(new SQLIdentifierExpr(lexer.stringVal())); lexer.nextToken(); } else { if (lexer.token == Token.ALL) { item.setValue(new SQLIdentifierExpr(lexer.stringVal())); lexer.nextToken(); } else { listExpr.addItem(listItem); } while (lexer.token == Token.COMMA); item.setValue(listExpr); } else { item.setValue(expr);
public SQLSetStatement(SQLExpr target, SQLExpr value, String dbType){ super (dbType); SQLAssignItem item = new SQLAssignItem(target, value); item.setParent(this); this.items.add(item); }
public boolean visit(HiveInsert x) { Context ctx = createContext(x); SQLExprTableSource tableSource = x.getTableSource(); if (tableSource != null) { ctx.setTableSource(x.getTableSource()); visit(tableSource); } for (SQLAssignItem item : x.getPartitions()) { item.accept(this); } SQLSelect select = x.getQuery(); if (select != null) { visit(select); } popContext(); return false; }
@Override protected void accept0(SQLASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, this.target); acceptChild(visitor, this.value); } visitor.endVisit(this); }