leikind / wice_grid

A Rails grid plugin to create grids with sorting, pagination, and (automatically generated) filters
MIT License
537 stars 215 forks source link

Quoting schema-qualified tables. Fixes leikind/wice_grid#154. #256

Closed brian-vogogo closed 8 years ago

brian-vogogo commented 8 years ago

The problem:

  ActiveRecord::Base.connection.quote_table_name("public.car.color")
  => "public"."car"  

Notice the ".color" is missing. I think the issue is using quotetablename to quote a column name.

The quick fix is to quote each chunk like is done with Sqlite

  "car.color".strip.split('.').map{|chunk| ActiveRecord::Base.connection.quote_table_name(chunk)}.join('.')
  => "car"."color"

  "public.car.color".strip.split('.').map{|chunk| ActiveRecord::Base.connection.quote_table_name(chunk)}.join('.')
  => "public"."car"."color"

A better cross-database fix is probably to split on the last period and use quote_table_name / quote_column_name on each half.