Update, Insert, and Delete statements are always at the root of an AST, so they are never aliased, but then can have sub queries, ex.: update ...
Update, Insert, and Delete statements are always at the root of an AST, so they are never aliased, but then can have sub queries, ex.: update ... where x in (subquery). Name clashes are impossible since SelectElements of query are always aliased.
In the following select : select t.x from t t.x is a select element and t is it's origin Here q.z1 is a SelectElement who's origin is t select q.z1 from (select t.x as z1 from t) q
In the following select : select t.x from t t.x is a select element and t is it's origin Here q.z1 is a SelectElement who's origin is t select q.z1 from (select t.x as z1 from t) q
strictly for logging purposes, i.e.
strictly for logging purposes, i.e. to display a more explicit AST
visitor's args are : -the visited node, -it's parent -it's depth
visitor's args are : -the visited node, -it's parent -it's depth