public static QsiTableReferenceNode VisitTableName(TableNameContext context) { return(TreeHelper.Create <QsiTableReferenceNode>(n => { n.Identifier = IdentifierVisitor.VisitFullId(context.fullId()); PrimarSqlTree.PutContextSpan(n, context); })); }
public static (string schemaName, string tableName) ExtractTableName(TableNameContext context) { var fullIdContext = context.GetChild <FullIdContext>(); var schemaName = ""; string tableName; //MEMO: TableNameContext.tablename() contains schema name if query style is `schema`.`table`. // 3 = schema.table (expr + . + expr) // other = table if (fullIdContext.ChildCount == 3) { schemaName = fullIdContext.GetChild <UidContext>().GetText()?.RemoveBackQuote(); tableName = fullIdContext.GetChild <UidContext>(1).GetText()?.RemoveBackQuote(); } else { tableName = fullIdContext.GetChild <UidContext>().GetText()?.RemoveBackQuote(); } return(schemaName, tableName); }
/// <summary> /// Listener for Table Name detection /// </summary> /// <param name="context"></param> public override void EnterTableName([NotNull] TableNameContext context) { base.EnterTableName(context); // table name (TableDefinition.SchemaName, TableDefinition.Name) = MySqlTableDefinition.ExtractTableName(context); }