private TextualRow parseRow(TextualTable table) { TextualRow row = new TextualRow(table); // | "val1" | 2 | "val3" | expectToken(TokenType.Pipe); while (!matchToken(TokenType.Dash)) { if (matchToken(TokenType.Number)) { row.SetValueOrdered(Convert.ToDouble(expectToken(TokenType.Number).Value)); } else { row.SetValueOrdered(expectToken(TokenType.String).Value); } expectToken(TokenType.Pipe); } // ------------- while (acceptToken(TokenType.Dash)) { ; } return(row); }
private TextualTable parseShowTables() { var result = new TextualTable(database, database.Name); result.AddColumn("table"); result.AddColumn("columns"); result.AddColumn("rowCount"); foreach (var pair in database.Tables) { var row = new TextualRow(result); row.SetValueOrdered(pair.Key); var sb = new StringBuilder(); foreach (var column in pair.Value.Columns) { sb.AppendFormat("{0} ", column); } row.SetValueOrdered(sb.ToString()); row.SetValueOrdered(pair.Value.Rows.Count); result.AddRow(row); } return(result); }
public RowNotFoundException(TextualDatabase database, TextualTable table, TextualRow row) { TextualDatabase = database; TextualTable = table; TextualRow = row; message = string.Format(MESSAGE_FORMAT, table.Name); }
public TextualInsertOperation BuildRow(string column, object value) { if (row == null) { row = new TextualRow(table); } row.SetValue(column, value); return(this); }
public bool Check(TextualOperation op, TextualRow row) { var val = row.GetValue(Column); if (WhereOperation != WhereOperation.Equal && WhereOperation != WhereOperation.NotEqual && WhereOperation != WhereOperation.Any && WhereOperation != WhereOperation.Contains) { try { val = Convert.ToDouble(val); Value = Convert.ToDouble(Value); } catch { throw new IncorrectValueFormatException(op, row.ParentTable); } } switch (WhereOperation) { case WhereOperation.Any: return(true); case WhereOperation.Contains: return(val.ToString().Contains(Value.ToString())); case WhereOperation.Equal: return(val.ToString() == Value.ToString()); case WhereOperation.GreaterThan: return((double)val > (double)Value); case WhereOperation.GreaterThanOrEqual: return((double)val >= (double)Value); case WhereOperation.LesserThan: return((double)val < (double)Value); case WhereOperation.LesserThanOrEqual: return((double)val <= (double)Value); case WhereOperation.NotEqual: return(val.ToString() != Value.ToString()); default: throw new UnknownWhereOperationException(op, (int)WhereOperation); } }
private TextualTable parseShowColumns() { // IN table expectToken(TokenType.Identifier, "IN"); string table = expectToken(TokenType.Identifier).Value; var result = new TextualTable(database, table); result.AddColumn("column"); foreach (var column in database.GetTable(table).Columns) { var row = new TextualRow(result); row.SetValueOrdered(column); result.AddRow(row); } return(result); }
public void Execute(TextualRow row, int index) { table.AddRow(row, index); }
public void Execute(TextualRow row) { table.AddRow(row); }