JSqlParser icon indicating copy to clipboard operation
JSqlParser copied to clipboard

Modify column with "NULL" or "NOT NULL" is not getting parsed.

Open VaibhavJain opened this issue 6 years ago • 3 comments

Actual Behavior

On parsing statement ALTER TABLE <TableName> MODIFY <ColumnName> NOT NULL getting ParseException

`Caused by: net.sf.jsqlparser.parser.ParseException: Encountered " "NOT" "NOT "" at line 1, column 51. Was expecting one of: "XML" ... "INTERVAL" ... "CHARACTER" ... "BIT" ... <K_DATETIMELITERAL> ... "DOUBLE" ... <DT_ZONE> ... <S_IDENTIFIER> ...

at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:16869)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:16722)
at net.sf.jsqlparser.parser.CCJSqlParser.ColDataType(CCJSqlParser.java:9265)
at net.sf.jsqlparser.parser.CCJSqlParser.AlterExpressionColumnDataType(CCJSqlParser.java:9862)
at net.sf.jsqlparser.parser.CCJSqlParser.AlterExpression(CCJSqlParser.java:10042)
at net.sf.jsqlparser.parser.CCJSqlParser.AlterTable(CCJSqlParser.java:10279)
at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:156)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:81)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:54) `

Expected Behavior

It should identify "NOT NULL"/"NULL" has been added.

Steps to Reproduce the Problem

1.Statement stmt = CCJSqlParserUtil.parse("ALTER TABLE TableName MODIFY ColumnName NOT NULL");

Specifications

  • Version: 1.1
  • Platform: Java 8 on windows
  • Subsystem:

VaibhavJain avatar Mar 28 '18 14:03 VaibhavJain

As far as I know is the modify command not supported (yet). Do you want to provide a PR with an initial start supporting this?

wumpz avatar Apr 13 '18 06:04 wumpz

@VaibhavJain what kind of db related to this sql statement?

yarnping avatar Jun 17 '19 05:06 yarnping

Still relevant with JSQLParser 4.3 Snapshot.

manticore-projects avatar Oct 19 '21 14:10 manticore-projects