Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #4
0
        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);
            }
        }
Example #6
0
        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);
        }
Example #7
0
 public void Execute(TextualRow row, int index)
 {
     table.AddRow(row, index);
 }
Example #8
0
 public void Execute(TextualRow row)
 {
     table.AddRow(row);
 }