Sha256: 4256c24e597142c169cb79d260f411f378d67a6bbba80de64c4f5585ab5eb56c

Contents?: true

Size: 1.3 KB

Versions: 6

Compression:

Stored size: 1.3 KB

Contents

grammar SQLRowSupport
  include SQLPrimitives

  rule one_or_more_table_names
    table_name "," SPACE one_or_more_table_names {
      def eval
        [table_name.eval, one_or_more_table_names.eval]
      end
    } 
    / 
    table_name
  end

  rule one_or_more_column_names_with_sort
    one_column_name_with_sort "," SPACE one_or_more_column_names {
      def eval
        result1, result2 = one_column_name.eval, one_or_more_column_names.eval
        [result1, result2].flatten
      end
    }
    / 
    one_column_name_with_sort
  end

  rule one_or_more_column_names
    one_column_name SPACE? "," SPACE? one_or_more_column_names {
      def eval
        result1, result2 = one_column_name.eval, one_or_more_column_names.eval
        [result1, result2].flatten
      end
    }
    / 
    one_column_name
  end

  rule one_column_name
    table_name dot column_name {
      def eval
        column_name.eval
      end
    } 
    / 
    column_name
  end

  rule column_name
    backtick_string / column_string / all_columns
  end

  # TODO: Clean this up
  rule table_name
    backtick_string
    /
    string
  end

  rule column_string
    string {
      def eval
        text_value.downcase
      end
    }
  end

  rule dot
    "." { def eval; "."; end }
  end

  rule all_columns
    "*" { def eval; "*"; end }
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
hipster_sql_to_hbase-0.1.7 lib/sql_parser/sql_row_support.treetop
hipster_sql_to_hbase-0.1.6 lib/sql_parser/sql_row_support.treetop
hipster_sql_to_hbase-0.1.5 lib/sql_parser/sql_row_support.treetop
hipster_sql_to_hbase-0.1.4 lib/sql_parser/sql_row_support.treetop
hipster_sql_to_hbase-0.1.3 lib/sql_parser/sql_row_support.treetop
hipster_sql_to_hbase-0.1.2 lib/sql_parser/sql_row_support.treetop