@@ -2005,5 +2005,60 @@ public void testOracleHintExpression() throws JSQLParserException {
2005
2005
PlainSelect plainSelect = (PlainSelect ) ((Select ) parsed ).getSelectBody ();
2006
2006
assertExpressionCanBeDeparsedAs (plainSelect .getOracleHint (), "--+ HINT\n " );
2007
2007
}
2008
-
2008
+
2009
+ public void testTableFunctionWithNoParams () throws Exception {
2010
+ final String statement = "SELECT f2 FROM SOME_FUNCTION()" ;
2011
+ Select select = (Select ) parserManager .parse (new StringReader (statement ));
2012
+ PlainSelect plainSelect = (PlainSelect ) select .getSelectBody ();
2013
+
2014
+ assertTrue (plainSelect .getFromItem () instanceof TableFunction );
2015
+ TableFunction fromItem = (TableFunction ) plainSelect .getFromItem ();
2016
+ assertEquals ("SOME_FUNCTION" , fromItem .getName ());
2017
+ assertNull (fromItem .getParameters ());
2018
+ assertNull (fromItem .getAlias ());
2019
+ assertStatementCanBeDeparsedAs (select , statement );
2020
+ }
2021
+
2022
+ public void testTableFunctionWithParams () throws Exception {
2023
+ final String statement = "SELECT f2 FROM SOME_FUNCTION(1, 'val')" ;
2024
+ Select select = (Select ) parserManager .parse (new StringReader (statement ));
2025
+ PlainSelect plainSelect = (PlainSelect ) select .getSelectBody ();
2026
+
2027
+ assertTrue (plainSelect .getFromItem () instanceof TableFunction );
2028
+ TableFunction fromItem = (TableFunction ) plainSelect .getFromItem ();
2029
+ assertEquals ("SOME_FUNCTION" , fromItem .getName ());
2030
+
2031
+ // verify params
2032
+ assertNotNull (fromItem .getParameters ());
2033
+ List <Expression > expressions = fromItem .getParameters ().getExpressions ();
2034
+ assertEquals (2 , expressions .size ());
2035
+
2036
+ Expression firstParam = expressions .get (0 );
2037
+ assertNotNull (firstParam );
2038
+ assertTrue (firstParam instanceof LongValue );
2039
+ assertEquals (1l , ((LongValue ) firstParam ).getValue ());
2040
+
2041
+ Expression secondParam = expressions .get (1 );
2042
+ assertNotNull (secondParam );
2043
+ assertTrue (secondParam instanceof StringValue );
2044
+ assertEquals ("val" , ((StringValue ) secondParam ).getValue ());
2045
+
2046
+ assertNull (fromItem .getAlias ());
2047
+ assertStatementCanBeDeparsedAs (select , statement );
2048
+ }
2049
+
2050
+ public void testTableFunctionWithAlias () throws Exception {
2051
+ final String statement = "SELECT f2 FROM SOME_FUNCTION() AS z" ;
2052
+ Select select = (Select ) parserManager .parse (new StringReader (statement ));
2053
+ PlainSelect plainSelect = (PlainSelect ) select .getSelectBody ();
2054
+
2055
+ assertTrue (plainSelect .getFromItem () instanceof TableFunction );
2056
+ TableFunction fromItem = (TableFunction ) plainSelect .getFromItem ();
2057
+
2058
+ assertEquals ("SOME_FUNCTION" , fromItem .getName ());
2059
+ assertNull (fromItem .getParameters ());
2060
+ assertNotNull (fromItem .getAlias ());
2061
+ assertEquals ("z" , fromItem .getAlias ().getName ());
2062
+ assertStatementCanBeDeparsedAs (select , statement );
2063
+ }
2009
2064
}
0 commit comments