Example #1
0
  public SQLColumnDefinition parseColumnRest(SQLColumnDefinition column) {
    if (lexer.token() == Token.ON) {
      lexer.nextToken();
      accept(Token.UPDATE);
      SQLExpr expr = this.expr();
      ((MySqlSQLColumnDefinition) column).setOnUpdate(expr);
    }

    if (identifierEquals("AUTO_INCREMENT")) {
      lexer.nextToken();
      if (column instanceof MySqlSQLColumnDefinition) {
        ((MySqlSQLColumnDefinition) column).setAutoIncrement(true);
      }
      return parseColumnRest(column);
    }

    if (identifierEquals("precision")
        && column.getDataType().getName().equalsIgnoreCase("double")) {
      lexer.nextToken();
    }

    if (identifierEquals("PARTITION")) {
      throw new ParserException("syntax error " + lexer.token() + " " + lexer.stringVal());
    }

    if (identifierEquals("COMMENT")) {
      lexer.nextToken();
      column.setComment(lexer.stringVal());
      accept(Token.LITERAL_CHARS);
    }

    super.parseColumnRest(column);

    return column;
  }