Sha256: d23a748917e2e65b73a54451dd9a7c36ceb6f42381d634c370fe0a9d429b6c77

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

module Pacer
  module Filter
    module SqlFilter
      attr_accessor :sql, :select, :orient_type, :where, :query_args, :order_by, :limit, :offset, :timeout, :parallel

      protected

      def orient_type_name
        t = graph.orient_type(orient_type, element_type)
        if t
          t.name
        else
          fail Pacer::ClientError.new "Unknown orient type for #{ element_type }: #{ orient_type }"
        end
      end

      def query
        if sql
          s = ""
          s << sql
        else
          s = "SELECT "
          case select
          when String
            s << select
          when Array
            s << select.join(", ")
          end
          s << " FROM #{ orient_type } WHERE "
          s << where
          s << "ORDER_BY " if order_by
          case order_by
          when String
            s << order_by
          when Array
            s << order_by.join(", ")
          end
        end
        s << " SKIP #{ offset }" if offset
        s << " LIMIT #{ limit }" if limit
        s << " TIMEOUT #{ timeout }" if timeout
        s << " PARALLEL" if parallel
        s
      end

      def source_iterator
        graph.sql_command(query, query_args).iterator
      end

      def inspect_string
        "SQL '#{query}' #{query_args}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pacer-orient-2.1.2-java lib/pacer-orient/sql_filter.rb