@@ -40,6 +40,16 @@ class Select extends TSelect, AstNode {
4040
4141 Select ( ) { this = TSelect ( sel ) }
4242
43+ VarDecl getVarDecl ( int i ) { toGenerated ( result ) = sel .getChild ( i ) }
44+
45+ Formula getWhere ( ) { toGenerated ( result ) = sel .getChild ( _) }
46+
47+ AsExpr getAsExpr ( int i ) { toGenerated ( result ) = sel .getChild ( _) .( Generated:: AsExprs ) .getChild ( i ) }
48+
49+ Expr getOrderBy ( int i ) {
50+ toGenerated ( result ) = sel .getChild ( _) .( Generated:: OrderBys ) .getChild ( i ) .getChild ( 0 )
51+ }
52+
4353 override string getAPrimaryQlClass ( ) { result = "Select" }
4454 // TODO: Getters for VarDecls, Where-clause, selects.
4555}
@@ -79,7 +89,9 @@ class PredicateExpr extends TPredicateExpr, AstNode {
7989 )
8090 }
8191
82- override ClasslessPredicate getParent ( ) { result .getAlias ( ) = this }
92+ override AstNode getParent ( ) {
93+ this in [ result .( ClasslessPredicate ) .getAlias ( ) , result .( HigherOrderFormula ) .getInput ( _) ]
94+ }
8395
8496 override string getAPrimaryQlClass ( ) { result = "PredicateExpr" }
8597}
@@ -886,6 +898,8 @@ class AsExpr extends TAsExpr, AstNode {
886898 result = super .getParent ( )
887899 or
888900 result .( Aggregate ) .getAsExpr ( _) = this
901+ or
902+ result .( Select ) .getAsExpr ( _) = this
889903 }
890904}
891905
@@ -919,6 +933,8 @@ class Expr extends TExpr, AstNode {
919933 result .( Call ) .getArgument ( _) = this
920934 or
921935 result .( Aggregate ) .getOrderBy ( _) = this
936+ or
937+ result .( Select ) .getOrderBy ( _) = this
922938 }
923939}
924940
0 commit comments