public static async Task <IBindableStatement> ParseAsync(string sql) { try { return(await PParser.ParseAsync(sql)); } catch (PhoenixSqlSyntaxException e) { throw new QsiSyntaxErrorException(-1, -1, e.Message); } catch (PhoenixSqlException e) { throw new QsiException(QsiError.Internal, e.Message); } }
public IQsiTreeNode Parse(QsiScript script, CancellationToken cancellationToken = default) { var result = PhoenixSqlParserInternal.Parse(script.Script); switch (result) { case SelectStatement selectStatement: return(TableVisitor.VisitSelectStatement(selectStatement)); case CreateTableStatement { TableType: PTableType.View } createTableStatement: return(TableVisitor.VisitCreateViewStatement(createTableStatement)); case IDMLStatement dmlStatement: return(ActionVisitor.Visit(dmlStatement)); case UseSchemaStatement useSchemaStatement: return(ActionVisitor.VisitUseSchemaStatement(useSchemaStatement)); } throw TreeHelper.NotSupportedTree(result); }