Exemple #1
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == ',' &&
            state.InsertIntoFound &&
            !state.InValue &&
            !state.StopInsertInto &&
            state.OpenRoundBracketCount == 0)
        {
            //part of INSERT INTO or VALUES
            if (state.ValuesOpenBracketFound && !state.ValuesCloseBracketFound)
            {
                state.AddValue();
            }
            else if (state.InsertIntoOpenBracketFound && !state.InsertIntoCloseBracketFound)
            {
                state.AddColumnName();
            }
            else if (!state.FromFound)
            {
                //value
                state.AddValue();
            }

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
    public ProcessResult Process(InsertQueryParserState state)
    {
        if (state.ColumnValues.Count == 0)
        {
            return(ProcessResult.Fail("No column values were found"));
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #3
0
    public ProcessResult Process(InsertQueryParserState state)
    {
        if (!state.InsertIntoFound)
        {
            return(ProcessResult.Fail("INSERT INTO clause was not found"));
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #4
0
    public ProcessResult Process(InsertQueryParserState state)
    {
        if (!state.ValuesFound &&
            !state.SelectFound)
        {
            return(ProcessResult.Fail("VALUES or SELECT clause was not found"));
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #5
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == '[' &&
            !state.ValuesFound &&
            !state.SelectFound)
        {
            state.OpenBracketCount++;
            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #6
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character != '\r' &&
            character != '\n' &&
            character != '\t')
        {
            state.CurrentSection.Append(character);
            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #7
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if ((state.CurrentSection.ToString().EndsWith(" VALUE", StringComparison.OrdinalIgnoreCase) && character.ToString().Equals("S", StringComparison.OrdinalIgnoreCase) && state.InsertIntoFound && !state.ValuesFound && state.OpenBracketCount == 0) ||
            (state.CurrentSection.ToString().EndsWith(" OUTPU", StringComparison.OrdinalIgnoreCase) && character.ToString().Equals("T", StringComparison.OrdinalIgnoreCase) && state.InsertIntoFound && !state.ValuesFound && state.OpenBracketCount == 0))
        {
            state.ValuesFound    = state.CurrentSection.ToString().EndsWith(" VALUE", StringComparison.OrdinalIgnoreCase) && character.ToString().Equals("S", StringComparison.OrdinalIgnoreCase) && state.InsertIntoFound && !state.ValuesFound && state.OpenBracketCount == 0;
            state.StopInsertInto = state.CurrentSection.ToString().EndsWith(" OUTPU", StringComparison.OrdinalIgnoreCase) && character.ToString().Equals("T", StringComparison.OrdinalIgnoreCase) && state.InsertIntoFound && !state.ValuesFound && state.OpenBracketCount == 0;
            state.CurrentSection.Clear();

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #8
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (state.CurrentSection.ToString().EndsWith(" SELEC", StringComparison.OrdinalIgnoreCase) &&
            character.ToString().Equals("T", StringComparison.OrdinalIgnoreCase) &&
            state.InsertIntoFound &&
            !state.SelectFound &&
            state.OpenBracketCount == 0)
        {
            state.SelectFound = true;
            state.CurrentSection.Clear();
            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == ')' &&
            state.ValuesOpenBracketFound &&
            !state.ValuesCloseBracketFound &&
            !state.InValue)
        {
            state.OpenRoundBracketCount--;
            state.CurrentSection.Append(character);

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #10
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == ']' && !state.ValuesFound && !state.SelectFound)
        {
            state.OpenBracketCount--;
            if (state.OpenBracketCount < 0)
            {
                return(ProcessResult.Fail("Too many close brackets found"));
            }

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #11
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (state.CurrentSection.ToString().EndsWith(" FRO", StringComparison.OrdinalIgnoreCase) &&
            character.ToString().Equals("M", StringComparison.OrdinalIgnoreCase) &&
            state.SelectFound)
        {
            state.FromFound = true;
            state.ColumnValues.Add(state.CurrentSection.ToString().Substring(0, state.CurrentSection.ToString().Length - 4));
            state.CurrentSection.Clear();

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == ')' &&
            state.ValuesOpenBracketFound &&
            !state.ValuesCloseBracketFound &&
            state.OpenRoundBracketCount == 0)
        {
            state.ValuesCloseBracketFound = true;
            state.ColumnValues.Add(state.CurrentSection.ToString());
            state.CurrentSection.Clear();

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == '(' &&
            (
                (state.ValuesFound || state.SelectFound) && !state.ValuesOpenBracketFound && state.OpenRoundBracketCount == 0 && state.ColumnValues.Count > 0 ||
                (state.ValuesOpenBracketFound && !state.ValuesCloseBracketFound && !state.InValue)
            ))
        {
            state.OpenRoundBracketCount++;
            state.CurrentSection.Append(character);

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #14
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == '(' &&
            (state.ValuesFound || state.SelectFound) &&
            !state.ValuesOpenBracketFound &&
            state.OpenRoundBracketCount == 0 &&
            state.ColumnValues.Count == 0)
        {
            state.ValuesOpenBracketFound = true;
            state.CurrentSection.Clear();

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == '(' &&
            state.InsertIntoFound &&
            !state.ValuesFound &&
            !state.SelectFound &&
            !state.InsertIntoOpenBracketFound)
        {
            state.InsertIntoOpenBracketFound = true;
            state.CurrentSection.Clear();

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
    public ProcessResult Process(InsertQueryParserState state)
    {
        if (state.ColumnNames.Count > 0 &&
            state.ColumnValues.Count < state.ColumnNames.Count)
        {
            var result = ParseResult.Error
                         (
                $"Column names count ({state.ColumnNames.Count}) is not equal to column values count ({state.ColumnValues.Count}), see #MISSING# in column values list (values)",
                state.ColumnNames.Zip(state.ColumnValues, (name, value) => new KeyValuePair <string, string>(name.Trim(), value.Trim()))
                         );
            state.ColumnValues.AddRange(Enumerable.Range(1, state.ColumnNames.Count - state.ColumnValues.Count).Select(_ => "#MISSING#"));
            return(ProcessResult.Fail(result));
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #17
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (state.CurrentSection.ToString().EndsWith("INSERT INT", StringComparison.OrdinalIgnoreCase) &&
            character.ToString().Equals("O", StringComparison.OrdinalIgnoreCase) &&
            state.OpenBracketCount == 0)
        {
            if (state.InsertIntoFound)
            {
                return(ProcessResult.Fail("INSERT INTO clause was found multiple times"));
            }
            else
            {
                state.InsertIntoFound = true;
            }
            state.CurrentSection.Clear();
            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #18
0
    public ProcessResult Process(char character, InsertQueryParserState state)
    {
        if (character == '\'' &&
            !state.InValue &&
            state.OpenRoundBracketCount == 0)
        {
            state.InValue = true;
            state.CurrentSection.Append(character);

            return(ProcessResult.Success());
        }
        else if (character == '\'' &&
                 state.InValue &&
                 state.OpenRoundBracketCount == 0)
        {
            state.InValue = false;
            state.CurrentSection.Append(character);

            return(ProcessResult.Success());
        }

        return(ProcessResult.NotUnderstood());
    }
Exemple #19
0
 public ProcessResult Process(InsertQueryParserState state)
 => ProcessResult.Success(ParseResult.Success(state.ColumnNames
                                              .Zip(state.ColumnValues, (name, value) => new KeyValuePair <string, string>(name.Trim(), value.Trim()))));