Introduction
Introduction Statistics Contact Development Disclaimer Help
correctly quote column names in MySQL, PostgreSQL and SQLite3 - reportable - Fo…
Log
Files
Refs
README
---
commit 57786c071a39c14d77d4ae9bbe33a05f2080fca8
parent 947a3fec849491b5d2a242632151639589465ae7
Author: Marco Otte-Witte <[email protected]>
Date: Fri, 5 Mar 2010 17:31:46 +0100
correctly quote column names in MySQL, PostgreSQL and SQLite3
Diffstat:
M generators/reportable_migration/te… | 2 +-
M lib/saulabs/reportable/report_cach… | 8 +++++---
M spec/classes/report_cache_spec.rb | 12 +++++++++---
M spec/db/schema.rb | 6 +++---
4 files changed, 18 insertions(+), 10 deletions(-)
---
diff --git a/generators/reportable_migration/templates/migration.erb b/generato…
@@ -6,7 +6,7 @@ class <%= class_name %> < ActiveRecord::Migration
t.string :report_name, :null => false
t.string :grouping, :null => false
t.string :aggregation, :null => false
- t.string :condition, :null => false
+ t.string :conditions, :null => false
t.float :value, :null => false, :default => 0
t.datetime :reporting_period, :null => false
diff --git a/lib/saulabs/reportable/report_cache.rb b/lib/saulabs/reportable/re…
@@ -92,13 +92,13 @@ module Saulabs
data ? data[1] : 0.0
end
- def self.build_cached_data(report, grouping, condition, reporting_peri…
+ def self.build_cached_data(report, grouping, conditions, reporting_per…
self.new(
:model_name => report.klass.to_s,
:report_name => report.name.to_s,
:grouping => grouping.identifier.to_s,
:aggregation => report.aggregation.to_s,
- :condition => condition.to_s,
+ :conditions => conditions.to_s,
:reporting_period => reporting_period.date_time,
:value => value
)
@@ -106,7 +106,9 @@ module Saulabs
def self.read_cached_data(report, options)
conditions = [
- 'model_name = ? AND report_name = ? AND grouping = ? AND aggregati…
+ %w(model_name report_name grouping aggregation conditions).map do …
+ "#{self.connection.quote_column_name(column_name)} = ?"
+ end.join(' AND '),
report.klass.to_s,
report.name.to_s,
options[:grouping].identifier.to_s,
diff --git a/spec/classes/report_cache_spec.rb b/spec/classes/report_cache_spec…
@@ -122,7 +122,9 @@ describe Saulabs::Reportable::ReportCache do
it 'should read existing data from the cache' do
Saulabs::Reportable::ReportCache.should_receive(:all).once.with(
:conditions => [
- 'model_name = ? AND report_name = ? AND grouping = ? AND aggregation…
+ %w(model_name report_name grouping aggregation conditions).map do |c…
+ "#{Saulabs::Reportable::ReportCache.connection.quote_column_name(c…
+ end.join(' AND ') + ' AND reporting_period >= ?',
@report.klass.to_s,
@report.name.to_s,
@report.options[:grouping].identifier.to_s,
@@ -141,7 +143,9 @@ describe Saulabs::Reportable::ReportCache do
end_date = Time.now
Saulabs::Reportable::ReportCache.should_receive(:all).once.with(
:conditions => [
- 'model_name = ? AND report_name = ? AND grouping = ? AND aggregation…
+ %w(model_name report_name grouping aggregation conditions).map do |c…
+ "#{Saulabs::Reportable::ReportCache.connection.quote_column_name(c…
+ end.join(' AND ') + ' AND reporting_period BETWEEN ? AND ?',
@report.klass.to_s,
@report.name.to_s,
@report.options[:grouping].identifier.to_s,
@@ -162,7 +166,9 @@ describe Saulabs::Reportable::ReportCache do
Saulabs::Reportable::ReportCache.should_receive(:find).once.with(
:all,
:conditions => [
- 'model_name = ? AND report_name = ? AND grouping = ? AND aggregation…
+ %w(model_name report_name grouping aggregation conditions).map do |c…
+ "#{Saulabs::Reportable::ReportCache.connection.quote_column_name(c…
+ end.join(' AND ') + ' AND reporting_period >= ?',
@report.klass.to_s,
@report.name.to_s,
grouping.identifier.to_s,
diff --git a/spec/db/schema.rb b/spec/db/schema.rb
@@ -13,7 +13,7 @@ ActiveRecord::Schema.define(:version => 1) do
t.string :report_name, :null => false
t.string :grouping, :null => false
t.string :aggregation, :null => false
- t.string :condition, :null => false
+ t.string :conditions, :null => false
t.float :value, :null => false, :default => 0
t.datetime :reporting_period, :null => false
@@ -24,14 +24,14 @@ ActiveRecord::Schema.define(:version => 1) do
:report_name,
:grouping,
:aggregation,
- :condition
+ :conditions
], :name => :name_model_grouping_agregation
add_index :reportable_cache, [
:model_name,
:report_name,
:grouping,
:aggregation,
- :condition,
+ :conditions,
:reporting_period
], :unique => true, :name => :name_model_grouping_aggregation_period
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.