killbill-aplcache

usage: add SQL queries for TimelineSqlDao Signed-off-by:

7/29/2012 3:32:38 PM

Details

diff --git a/usage/src/main/resources/com/ning/billing/usage/timeline/persistent/TimelineSqlDao.sql.stg b/usage/src/main/resources/com/ning/billing/usage/timeline/persistent/TimelineSqlDao.sql.stg
new file mode 100644
index 0000000..1e0364b
--- /dev/null
+++ b/usage/src/main/resources/com/ning/billing/usage/timeline/persistent/TimelineSqlDao.sql.stg
@@ -0,0 +1,181 @@
+group TimelineSqlDao;
+
+getSource() ::= <<
+  select
+    source_name
+  from sources
+  where source_id = :sourceId
+  ;
+>>
+
+getSources() ::= <<
+  select
+    source_id
+  , source_name
+  from sources
+  ;
+>>
+
+addSource() ::= <<
+  insert ignore into sources (source_name, created_dt)
+  values (:sourceName, unix_timestamp());
+>>
+
+getEventCategories() ::= <<
+  select event_category_id, event_category
+  from event_categories
+  order by event_category_id asc
+  ;
+>>
+
+getEventCategoryId() ::= <<
+  select
+    event_category_id
+  from event_categories
+  where event_category = :eventCategory
+  ;
+>>
+
+getEventCategory() ::= <<
+  select
+    event_category
+  from event_categories
+  where event_category_id = :eventCategoryId
+  ;
+>>
+
+addEventCategory() ::= <<
+  insert ignore into event_categories (event_category)
+  values (:eventCategory);
+>>
+
+getMetricId() ::= <<
+  select
+    metric_id
+  from metrics
+  where metric = :metric
+    and event_category_id = :eventCategoryId
+  ;
+>>
+
+getEventCategoryIdAndMetric() ::= <<
+  select
+    event_category_id
+  , metric
+  from metrics
+  where metric_id = :metricId
+  ;
+>>
+
+getMetric() ::= <<
+  select
+    metric
+  from metrics
+  where metric_id = :metricId
+  ;
+>>
+
+addMetric() ::= <<
+  insert ignore into metrics (event_category_id, metric)
+  values (:eventCategoryId, :metric);
+>>
+
+getMetricIdsBySourceId() ::= <<
+  select distinct metric_id
+  from timeline_chunks c
+  where source_id = :sourceId
+  ;
+>>
+
+getMetricIdsForAllSources() ::= <<
+  select distinct metric_id, source_id
+  from timeline_chunks c
+  ;
+>>
+
+getMetrics() ::= <<
+  select
+    metric_id
+  , event_category_id
+  , metric
+  from metrics
+  ;
+>>
+
+getLastInsertedId() ::= <<
+  select last_insert_id();
+>>
+
+insertTimelineChunk() ::= <<
+  insert into timeline_chunks (record_id, source_id, metric_id, sample_count, start_time, end_time, in_row_samples, blob_samples, aggregation_level, not_valid, dont_aggregate)
+  values (:chunkId, :sourceId, :metricId, :sampleCount, :startTime, :endTime, :inRowSamples, :blobSamples, :aggregationLevel, :notValid, :dontAggregate);
+>>
+
+getSamplesBySourceIdsAndMetricIds(sourceIds, metricIds) ::= <<
+  select
+    source_id
+  , metric_id
+  , record_id
+  , sample_count
+  , in_row_samples
+  , blob_samples
+  , start_time
+  , end_time
+  , aggregation_level
+  , not_valid
+  , dont_aggregate
+  from timeline_chunks
+  where end_time >= :startTime
+  and start_time \<= :endTime
+  and source_id in (<sourceIds>)
+  <if(metricIds)>
+    and metric_id in (<metricIds>)
+  <endif>
+  and not_valid = 0
+  order by source_id, metric_id, start_time asc
+  ;
+>>
+
+insertLastStartTimes() ::= <<
+  insert into last_start_times (time_inserted, start_times)
+                        values (:timeInserted, :startTimes)
+>>
+
+getLastStartTimes() ::= <<
+  select time_inserted, start_times
+  from last_start_times
+  order by time_inserted desc
+  limit 1
+>>
+
+deleteLastStartTimes() ::= <<
+  delete from last_start_times
+>>
+
+bulkInsertSources() ::= <<
+  insert into sources (source_name, created_dt)
+  values (:sourceName, unix_timestamp());
+>>
+
+bulkInsertEventCategories() ::= <<
+  insert into event_categories (event_category)
+  values (:eventCategory);
+>>
+
+bulkInsertMetrics() ::= <<
+  insert into metrics (event_category_id, metric)
+  values (:eventCategoryId, :metric);
+>>
+
+bulkInsertTimelineChunks() ::= <<
+  insert into timeline_chunks (record_id, source_id, metric_id, sample_count, start_time, end_time, not_valid, dont_aggregate, aggregation_level, in_row_samples, blob_samples)
+  values (:chunkId, :sourceId, :metricId, :sampleCount, :startTime, :endTime, :dontAggregate, :notValid, :aggregationLevel, :inRowSamples, :blobSamples);
+>>
+
+getHighestTimelineChunkId() ::= <<
+  select record_id from timeline_chunks order by record_id desc limit 1;
+>>
+
+test() ::= <<
+  select 1;
+>>