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, 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.
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