@@ -398,12 +398,12 @@ public void testTop() throws JSQLParserException {
398398
399399 Select select = (Select ) parserManager .parse (new StringReader (statement ));
400400
401- assertEquals (3 , ((PlainSelect ) select .getSelectBody ()).getTop ().getRowCount ());
401+ assertEquals (3 , ((LongValue )(( PlainSelect ) select .getSelectBody ()).getTop ().getExpression ()). getValue ());
402402 assertStatementCanBeDeparsedAs (select , statement );
403403
404404 statement = "select top 5 foo from bar" ;
405405 select = (Select ) parserManager .parse (new StringReader (statement ));
406- assertEquals (5 , ((PlainSelect ) select .getSelectBody ()).getTop ().getRowCount ());
406+ assertEquals (5 , ((LongValue )(( PlainSelect ) select .getSelectBody ()).getTop ().getExpression ()). getValue ());
407407 }
408408
409409 public void testTopWithParenthesis () throws JSQLParserException {
@@ -415,8 +415,7 @@ public void testTopWithParenthesis() throws JSQLParserException {
415415 final PlainSelect selectBody = (PlainSelect ) select .getSelectBody ();
416416
417417 final Top top = selectBody .getTop ();
418- assertEquals (5 , top .getRowCount ());
419- assertFalse (top .isRowCountJdbcParameter ());
418+ assertEquals ("5" , top .getExpression ().toString ());
420419 assertTrue (top .hasParenthesis ());
421420 assertTrue (top .isPercentage ());
422421
@@ -2188,4 +2187,12 @@ public void testEscapedBackslashIssue253() throws JSQLParserException {
21882187 public void testKeywordTableIssue261 () throws JSQLParserException {
21892188 assertSqlCanBeParsedAndDeparsed ("SELECT column_value FROM table(VARCHAR_LIST_TYPE())" );
21902189 }
2190+
2191+ public void testTopExpressionIssue243 () throws JSQLParserException {
2192+ assertSqlCanBeParsedAndDeparsed ("SELECT TOP (? + 1) * FROM MyTable" );
2193+ }
2194+
2195+ public void testTopExpressionIssue243_2 () throws JSQLParserException {
2196+ assertSqlCanBeParsedAndDeparsed ("SELECT TOP (CAST(? AS INT)) * FROM MyTable" );
2197+ }
21912198}
0 commit comments