Method: Sequel::Postgres::JSONTableOp#to_s_append

Defined in:
lib/sequel/extensions/pg_json_ops.rb

#to_s_append(ds, sql) ⇒ Object

Append the json_table function call expression to the SQL

[View source]

1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
# File 'lib/sequel/extensions/pg_json_ops.rb', line 1218

def to_s_append(ds, sql)
  sql << 'json_table('
  ds.literal_append(sql, @expr)
  sql << ', '
  default_literal_append(ds, sql, @path)

  if (passing = @passing) && !passing.empty?
    sql << ' PASSING '
    comma = false
    passing.each do |k, v|
      if comma
        sql << ', '
      else
        comma = true
      end
      ds.literal_append(sql, v)
      sql << " AS " << k.to_s
    end
  end

  to_s_append_columns(ds, sql, @columns)
  sql << TABLE_ON_ERROR_SQL.fetch(@on_error) if @on_error
  sql << ')'
end