6.8.1.5.4 問合せの結果セットの反復処理

PgqlResultSetのメソッドを使用して、問合せ結果セットを反復処理できます。

次の方法を使用して、問合せ結果セットを反復処理するためのカーソルを配置できます。

  • first() : boolean
  • next() : boolean
  • previous() : boolean
  • last() : boolean
  • before_first()
  • after_last()
  • absolute(target_row_value) : boolean
  • relative(offset_value) : boolean

カーソルが目的の行に配置されたら、次のgetterを使用して値を取得できます。

  • get(column_idx) : Object
  • get(column_name) : Object
  • get_boolean(column_idx) : boolean
  • get_boolean(column_name) : boolean
  • get_date(column_idx) : datetime.date
  • get_date(column_name) : datetime.date
  • get_float(column_idx) : Float
  • get_float(column_name) : Float
  • get_integer(column_idx) : Integer
  • get_integer(column_name) : Integer
  • get_list(column_idx) : List
  • get_list(column_name) : List
  • get_string(column_idx) : String
  • get_string(column_name) : String
  • get_time(column_idx) : datetime.time
  • get_time(column_name) : datetime.time
  • get_time_with_timezone(column_idx) : datetime.time
  • get_time_with_timezone(column_name) : datetime.time
  • get_timestamp(column_idx) : datetime.datetime
  • get_timestamp(column_name) : datetime.datetime
  • get_timestamp_with_timezone(column_idx) : datetime.datetime
  • get_timestamp_with_timezone(column_name) : datetime.datetime
  • get_value_type(column_idx) : Integer
  • get_value_type(column_name) : Integer
  • get_vertex_labels(column_idx) : List
  • get_vertex_labels(column_name) : List

詳細は、PGQL-on-RDBMSの結果の取得を参照してください。

次のコード・サンプルは、いくつかのカーソル位置およびgetterメソッドを使用して結果セットを反復処理するためのカーソル操作を示しています。これらの例では、前の項ので取得した問合せ結果セットを参照します。

# Call first() and retrieve value for "FROM_ACCT_ID"
>>> pgql_result_set.first()
True
>>> pgql_result_set.get("FROM_ACCT_ID")
781.0

# Call next() and retrieve value for "FROM_ACCT_ID"
>>> pgql_result_set.next()
True
>>> pgql_result_set.get("FROM_ACCT_ID")
978.0

# Call last() and retrieve value for "FROM_ACCT_ID"
>>> pgql_result_set.last()
True
>>> pgql_result_set.get("FROM_ACCT_ID")
842.0

# Call previous() and retrieve value for "FROM_ACCT_ID"
>>> pgql_result_set.previous()
True
>>> pgql_result_set.get("FROM_ACCT_ID")
838.0

# Reset the result set and offset by 6. Then retrieve value for "FROM_ACCT_ID"
>>> pgql_result_set.before_first()
>>> pgql_result_set.relative(6)
True
>>> pgql_result_set.get("FROM_ACCT_ID")
925.0

# Reach the end of the result set and offset by -2. Then retrieve value for "FROM_ACCT_ID"
>>> pgql_result_set.after_last()
>>> pgql_result_set.relative(-2)
True
>>> pgql_result_set.get("FROM_ACCT_ID")
838.0

# Call absolute() and provide an absolute row value. Then retrieve value for "FROM_ACCT_ID"
>>> pgql_result_set.absolute(3)
True
>>> pgql_result_set.get_float("FROM_ACCT_ID")
900.0

あるいは、次のようにPython索引演算子を使用して問合せ結果セットを反復処理することもできます。

# Retrieving a value from a tuple
>>> pgql_result_set[4, "double", "FROM_ACCT_ID"]
907.0

# Retrieving a value using index value
>>> pgql_result_set[4].get("FROM_ACCT_ID")
907.0