Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

[15:44:50 CST(-0600)] <athena> though certainly this is a good reason to catch up

[15:46:44 CST(-0600)] <EricDalquist> https://gist.github.com/1665699

[15:46:49 CST(-0600)] <EricDalquist> that is about what the SQL would look like

[15:46:58 CST(-0600)] <EricDalquist> the criteria builder adds some verbosity

[15:47:06 CST(-0600)] <EricDalquist> but the result reads pretty close to the SQL

[15:47:39 CST(-0600)] <EricDalquist> the big difference is that where clause would look more like "where dd.date >= startDate and dd.date <= endDate"

[15:47:52 CST(-0600)] <EricDalquist> but that was harder to write in an actually functional sql example (smile)

[15:48:41 CST(-0600)] <athena> ok, i think that makes sense

[15:49:10 CST(-0600)] <EricDalquist> so the first thing you're interested is actually the date range

[15:49:13 CST(-0600)] <athena> so we're going to wind up with some pretty complex queries to get the right date range back

[15:49:30 CST(-0600)] <EricDalquist> yes

[15:49:36 CST(-0600)] <athena> ick.

[15:49:42 CST(-0600)] <EricDalquist> an unfortunate side effect of the dimensionality

[15:49:49 CST(-0600)] <EricDalquist> which is needed to reduce the number of rows

[15:49:49 CST(-0600)] <athena> and even worse once we start considering datetimes

[15:50:08 CST(-0600)] <EricDalquist> if we embed all the date/time info in each aggregate the number of rows starts to balloon

[15:50:21 CST(-0600)] <athena> yeah

[15:50:25 CST(-0600)] <athena> makes sense

[15:50:34 CST(-0600)] <EricDalquist> the queries do get complex

[15:51:29 CST(-0600)] <athena> yeah.

[15:51:30 CST(-0600)] <athena> hm.

[15:51:52 CST(-0600)] <athena> so honestly, before i can get anything done on this i'm probably going to need to go read a bunch about the criteria stuff

[15:52:22 CST(-0600)] <EricDalquist> would some examples help?

[15:52:59 CST(-0600)] <athena> if they were sufficiently close enough, maybe

[15:53:19 CST(-0600)] <athena> i mean i get the overall picture, but figuring out exactly how all this changes the root, etc. . . .

[15:53:32 CST(-0600)] <athena> ultimately i need to actually udnerstand what's going on, probably

[15:57:50 CST(-0600)] <EricDalquist> hrm ... there may actually be flaws in the current data model that prevents the query you want from working (tongue)

[15:57:53 CST(-0600)] <EricDalquist> I'll take a pass at it

[16:05:24 CST(-0600)] <EricDalquist> yup, there isn't any way to do the query you want with the current model (tongue)

[16:05:31 CST(-0600)] <EricDalquist> looks like it should be an easy fix ...

[16:12:42 CST(-0600)] <athena> that's good at least

[16:16:48 CST(-0600)] <EricDalquist> https://gist.github.com/1665818

[16:16:53 CST(-0600)] <EricDalquist> that is what it would look like I think

[16:17:07 CST(-0600)] <EricDalquist> the part that is missing is DateDimensionImpl_.loginAggregations

[16:17:10 CST(-0600)] <EricDalquist> which I've added locally

[16:17:13 CST(-0600)] <EricDalquist> I'll try testing this

[16:17:18 CST(-0600)] <EricDalquist> and if it works I'll get it committed

[16:17:35 CST(-0600)] <athena> awesome, thanks (smile)

[16:26:39 CST(-0600)] <EricDalquist> yup that works

[16:26:43 CST(-0600)] <EricDalquist> a little annoying

[16:26:59 CST(-0600)] <EricDalquist> as our date and time dimensions will now have a collection of aggregation as a field

[16:27:04 CST(-0600)] <athena> yay!

[16:27:10 CST(-0600)] <EricDalquist> but without that hibernate won't let us join (sad)

[16:27:19 CST(-0600)] <athena> yeah

[16:27:28 CST(-0600)] <athena> now i feel less bad for having a headache

[16:27:52 CST(-0600)] <EricDalquist> (smile)

[16:47:11 CST(-0600)] <EricDalquist> ok athena

[16:47:19 CST(-0600)] <EricDalquist> I just pushed the example to master

[16:47:29 CST(-0600)] <EricDalquist> I also pushed the hibernate & spring updates

[16:47:39 CST(-0600)] <EricDalquist> since those made the date dimension stuff a little easier

[16:48:09 CST(-0600)] <EricDalquist> so you'll need to run "ant db-hibernate-aggr-events db-hibernate-raw-events"

[16:50:30 CST(-0600)] <athena> thanks!

[16:50:44 CST(-0600)] <EricDalquist> I updated the example to use an in clause too

[16:50:56 CST(-0600)] <EricDalquist> so the api is (start, end, interval, groups...)

[16:51:16 CST(-0600)] <EricDalquist> really the best way to figure these out is to write the SQL first

[16:51:21 CST(-0600)] <EricDalquist> then translate it into the critera api

[16:51:32 CST(-0600)] <EricDalquist> at least that is the way that is easiest for me

[16:51:43 CST(-0600)] <EricDalquist> since I get immediate feedback from the sql if it is correct or not

[16:53:00 CST(-0600)] <EricDalquist> ok, time to head home

[16:53:12 CST(-0600)] <athena> thanks (smile)_

[16:53:17 CST(-0600)] <EricDalquist> good luck with the reporting stuff (smile) JimH is very exited that other people might be writing reports (smile)

[16:53:23 CST(-0600)] <athena> yay!