@@ -62,20 +62,20 @@ static unique_ptr<GlobalTableFunctionState> MyInit(ClientContext &context,
6262
6363static void ExtractTablesFromQueryNode (const QueryNode &node, vector<TableRefResult> &results);
6464
65- static void ExtractTablesFromRef (const TableRef &ref, vector<TableRefResult> &results, const string &context = " from" ) {
65+ static void ExtractTablesFromRef (const TableRef &ref, vector<TableRefResult> &results, const string &context = " from" , bool is_top_level = false ) {
6666 switch (ref.type ) {
6767 case TableReferenceType::BASE_TABLE: {
6868 auto &base = (BaseTableRef &)ref;
6969 results.push_back (TableRefResult{
7070 base.schema_name .empty () ? " main" : base.schema_name ,
7171 base.table_name ,
72- context
72+ is_top_level ? " from " : context
7373 });
7474 break ;
7575 }
7676 case TableReferenceType::JOIN: {
7777 auto &join = (JoinRef &)ref;
78- ExtractTablesFromRef (*join.left , results, " join_left" );
78+ ExtractTablesFromRef (*join.left , results, " join_left" , is_top_level );
7979 ExtractTablesFromRef (*join.right , results, " join_right" );
8080 break ;
8181 }
@@ -104,7 +104,7 @@ static void ExtractTablesFromQueryNode(const QueryNode &node, vector<TableRefRes
104104
105105
106106 if (select_node.from_table ) {
107- ExtractTablesFromRef (*select_node.from_table , results, " from" );
107+ ExtractTablesFromRef (*select_node.from_table , results, " from" , true );
108108 }
109109 }
110110}
0 commit comments