Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Support to enable Pentaho Mondrian dialect #512

Closed
bennychow opened this issue Oct 30, 2013 · 17 comments
Closed

Support to enable Pentaho Mondrian dialect #512

bennychow opened this issue Oct 30, 2013 · 17 comments

Comments

@bennychow
Copy link

Using 2.1.0, Phoenix is unable to parse this SQL:

select "WEB_STAT"."DATE" as "c0", "WEB_STAT"."DOMAIN" as "c1", sum("WEB_STAT"."ACTIVE_VISITOR") as "m0" from "WEB_STAT" "WEB_STAT" where "WEB_STAT"."DATE" in (DATE '2013-01-01', DATE '2013-01-02', DATE '2013-01-03', DATE '2013-01-04', DATE '2013-01-05', DATE '2013-01-06', DATE '2013-01-07', DATE '2013-01-08', DATE '2013-01-09', DATE '2013-01-10', DATE '2013-01-11', DATE '2013-01-12', DATE '2013-01-13', DATE '2013-01-14', DATE '2013-01-15', DATE '2013-01-16', DATE '2013-01-17') and "WEB_STAT"."DOMAIN" in ('Apple.com', 'Google.com', 'Salesforce.com') group by "WEB_STAT"."DATE", "WEB_STAT"."DOMAIN"

ERROR 602 (42P00): Syntax error. Missing "LPAREN" at line 1, column 138.)

I believe this used to work in 2.0.1 so this might be a regression.

@bennychow
Copy link
Author

Here's another simpler repo:

select "WEB_STAT"."DATE" as "c0", sum("WEB_STAT"."ACTIVE_VISITOR") as "m0" from "WEB_STAT" as "WEB_STAT" where "WEB_STAT"."DATE" in (DATE '2013-01-01', DATE '2013-01-02', DATE '2013-01-03', DATE '2013-01-04', DATE '2013-01-05', DATE '2013-01-06', DATE '2013-01-07', DATE '2013-01-08', DATE '2013-01-09', DATE '2013-01-10', DATE '2013-01-11', DATE '2013-01-12', DATE '2013-01-13', DATE '2013-01-14', DATE '2013-01-15', DATE '2013-01-16', DATE '2013-01-17') group by "WEB_STAT"."DATE"

This might have something to with the Date data type.

java.lang.RuntimeException: MissingTokenException(inserted [@-1,0:0='',<71>,1:111] at "WEB_STAT")
at com.pentaho.analyzer.service.impl.AnalysisAreaManager.executeQuery(AnalysisAreaManager.java:288)
at com.pentaho.analyzer.report.ReportManagerImpl.parseAndExecuteMDX(ReportManagerImpl.java:296)
at com.pentaho.analyzer.report.ReportManagerImpl.runReport(ReportManagerImpl.java:120)
at com.pentaho.analyzer.report.ReportManagerImpl.runReport(ReportManagerImpl.java:92)
at com.pentaho.analyzer.report.ReportRequestService$2.call(ReportRequestService.java:274)
at com.pentaho.analyzer.report.ReportRequestService$2.call(ReportRequestService.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: MissingTokenException(inserted [@-1,0:0='',<71>,1:111] at "WEB_STAT")
at com.salesforce.phoenix.parse.PhoenixSQLParser.recoverFromMismatchedToken(PhoenixSQLParser.java:304)
at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition_not(PhoenixSQLParser.java:4922)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition_and(PhoenixSQLParser.java:4751)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition_or(PhoenixSQLParser.java:4688)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition(PhoenixSQLParser.java:4653)
at com.salesforce.phoenix.parse.PhoenixSQLParser.select_node(PhoenixSQLParser.java:2937)
at com.salesforce.phoenix.parse.PhoenixSQLParser.hinted_select_node(PhoenixSQLParser.java:3079)
at com.salesforce.phoenix.parse.PhoenixSQLParser.oneStatement(PhoenixSQLParser.java:542)
at com.salesforce.phoenix.parse.PhoenixSQLParser.statement(PhoenixSQLParser.java:448)
at com.salesforce.phoenix.parse.SQLParser.parseStatement(SQLParser.java:105)
at com.salesforce.phoenix.jdbc.PhoenixStatement$PhoenixStatementParser.parseStatement(PhoenixStatement.java:940)
at com.salesforce.phoenix.jdbc.PhoenixStatement.parseStatement(PhoenixStatement.java:1007)
at com.salesforce.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1030)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at mondrian.rolap.SqlStatement.execute(SqlStatement.java:198)
at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:345)
at mondrian.rolap.agg.SegmentLoader.createExecuteSql(SegmentLoader.java:625)
at mondrian.rolap.agg.SegmentLoader.loadImpl(SegmentLoader.java:195)
at mondrian.rolap.agg.SegmentLoader.access$0(SegmentLoader.java:176)
at mondrian.rolap.agg.SegmentLoader$SegmentLoadCommand.call(SegmentLoader.java:166)
at mondrian.rolap.agg.SegmentLoader$SegmentLoadCommand.call(SegmentLoader.java:1)
... 5 more
Query Failed!
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: MissingTokenException(inserted [@-1,0:0='',<71>,1:111] at "WEB_STAT")
at com.pentaho.analyzer.report.ReportRequestService.get(ReportRequestService.java:213)
at com.pentaho.analyzer.content.controller.ReportRunner.getResult(ReportRunner.java:170)
at com.pentaho.analyzer.content.controller.AjaxBean.getReportHTML(AjaxBean.java:189)
at com.pentaho.analyzer.content.AnalyzerContentGenerator.createContent(AnalyzerContentGenerator.java:123)
at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutput.generateContent(GeneratorStreamingOutput.java:229)
at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutput.write(GeneratorStreamingOutput.java:156)
at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutputProvider.writeTo(GeneratorStreamingOutputProvider.java:58)
at org.pentaho.platform.web.http.api.resources.GeneratorStreamingOutputProvider.writeTo(GeneratorStreamingOutputProvider.java:37)
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:306)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1479)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
at org.pentaho.platform.web.servlet.JAXRSServlet.service(JAXRSServlet.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.pentaho.platform.web.servlet.JAXRSServlet.service(JAXRSServlet.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.pentaho.platform.web.http.filters.PentahoWebContextFilter.doFilter(PentahoWebContextFilter.java:161)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.pentaho.platform.web.http.filters.PentahoRequestContextFilter.doFilter(PentahoRequestContextFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174)
at org.pentaho.platform.web.http.security.PentahoBasicProcessingFilter.doFilterHttp(PentahoBasicProcessingFilter.java:88)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.pentaho.platform.web.http.filters.HttpSessionPentahoSessionIntegrationFilter.doFilter(HttpSessionPentahoSessionIntegrationFilter.java:265)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.pentaho.ui.servlet.SystemStatusFilter.doFilter(SystemStatusFilter.java:72)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.pentaho.platform.web.http.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:112)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.pentaho.platform.web.http.filters.WebappRootForwardingFilter.doFilter(WebappRootForwardingFilter.java:66)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: MissingTokenException(inserted [@-1,0:0='',<71>,1:111] at "WEB_STAT")
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262)
at java.util.concurrent.FutureTask.get(FutureTask.java:119)
at com.pentaho.analyzer.report.ReportRequestService.get(ReportRequestService.java:171)
... 71 more
Caused by: java.lang.RuntimeException: MissingTokenException(inserted [@-1,0:0='',<71>,1:111] at "WEB_STAT")
at com.pentaho.analyzer.service.impl.AnalysisAreaManager.executeQuery(AnalysisAreaManager.java:288)
at com.pentaho.analyzer.report.ReportManagerImpl.parseAndExecuteMDX(ReportManagerImpl.java:296)
at com.pentaho.analyzer.report.ReportManagerImpl.runReport(ReportManagerImpl.java:120)
at com.pentaho.analyzer.report.ReportManagerImpl.runReport(ReportManagerImpl.java:92)
at com.pentaho.analyzer.report.ReportRequestService$2.call(ReportRequestService.java:274)
at com.pentaho.analyzer.report.ReportRequestService$2.call(ReportRequestService.java:267)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
... 1 more
Caused by: MissingTokenException(inserted [@-1,0:0='',<71>,1:111] at "WEB_STAT")
at com.salesforce.phoenix.parse.PhoenixSQLParser.recoverFromMismatchedToken(PhoenixSQLParser.java:304)
at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition_not(PhoenixSQLParser.java:4922)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition_and(PhoenixSQLParser.java:4751)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition_or(PhoenixSQLParser.java:4688)
at com.salesforce.phoenix.parse.PhoenixSQLParser.condition(PhoenixSQLParser.java:4653)
at com.salesforce.phoenix.parse.PhoenixSQLParser.select_node(PhoenixSQLParser.java:2937)
at com.salesforce.phoenix.parse.PhoenixSQLParser.hinted_select_node(PhoenixSQLParser.java:3079)
at com.salesforce.phoenix.parse.PhoenixSQLParser.oneStatement(PhoenixSQLParser.java:542)
at com.salesforce.phoenix.parse.PhoenixSQLParser.statement(PhoenixSQLParser.java:448)
at com.salesforce.phoenix.parse.SQLParser.parseStatement(SQLParser.java:105)
at com.salesforce.phoenix.jdbc.PhoenixStatement$PhoenixStatementParser.parseStatement(PhoenixStatement.java:940)
at com.salesforce.phoenix.jdbc.PhoenixStatement.parseStatement(PhoenixStatement.java:1007)
at com.salesforce.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1030)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at mondrian.rolap.SqlStatement.execute(SqlStatement.java:198)
at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:345)
at mondrian.rolap.agg.SegmentLoader.createExecuteSql(SegmentLoader.java:625)
at mondrian.rolap.agg.SegmentLoader.loadImpl(SegmentLoader.java:195)
at mondrian.rolap.agg.SegmentLoader.access$0(SegmentLoader.java:176)
at mondrian.rolap.agg.SegmentLoader$SegmentLoadCommand.call(SegmentLoader.java:166)
at mondrian.rolap.agg.SegmentLoader$SegmentLoadCommand.call(SegmentLoader.java:1)
... 5 more

@jtaylor-sfdc
Copy link
Contributor

No, this wouldn't have worked in 2.0.1. We don't support the construction of a DATE in that manner. @bennychow - how about I create a branch of off our 2.1.0 branch where I commit fixes for Pentaho? I suspect this won't be the last of the issues, and I'd really like to be able to make quick progress toward fixing them. Once things are working, we'll cut a new minor release off of 2.1.0. Would that work for you?

@bennychow
Copy link
Author

Sure, that works. I'd like to get this done quickly so we can verify most
things work on Pentaho Analyzer/Mondrian and then I can check-in the
Phoenix DB dialect into Mondrian.

Thanks

On Thu, Oct 31, 2013 at 12:21 AM, James Taylor notifications@github.comwrote:

No, this wouldn't have worked in 2.0.1. We don't support the construction
of a DATE in that manner. @bennychow https://github.com/bennychow - how
about I create a branch of off our 2.1.0 branch where I commit fixes for
Pentaho? I suspect this won't be the last of the issues, and I'd really
like to be able to make quick progress toward fixing them. Once things are
working, we'll cut a new minor release off of 2.1.0. Would that work for
you?


Reply to this email directly or view it on GitHubhttps://github.com//issues/512#issuecomment-27406734
.

@jtaylor-sfdc
Copy link
Contributor

@bennychow - I'm having a hard time finding any reference to this syntax in any SQL dialect:

SELECT * FROM my_table WHERE my_date IN (DATE '2013-01-02', DATE '2013-01-03')

Is there an alternate way of generating creation/conversion of a string into a date for Pentaho? We support the TO_DATE built-in function which would work in this case.

@julianhyde
Copy link

Short term I think it's easier to change Mondrian's dialect. @bennychow You could use something similar to DerbyDialect:

    protected void quoteDateLiteral(
        StringBuilder buf,
        String value,
        Date date)
    {
        // Derby accepts DATE('2008-01-23') but not SQL:2003 format.
        buf.append("DATE(");
        Util.singleQuoteString(value, buf);
        buf.append(")");
    }

For completeness, do quoteTimeLiteral and quoteTimestampLiteral too.

Longer term, I recommend that Phoenix supports ANSI-standard date literals. MySQL and Postgres do, so it's not just the "big guys".

@jtaylor-sfdc
Copy link
Contributor

Thanks, @julianhyde. I'll add an issue for this in Phoenix. @bennychow - for Phoenix use the above, but do this instead:

    protected void quoteDateLiteral(
        StringBuilder buf,
        String value,
        Date date)
    {
        // Phoenix accepts TO_DATE('2008-01-23') but not SQL:2003 format.
        buf.append("TO_DATE(");
        Util.singleQuoteString(value, buf);
        buf.append(")");
    }

@jtaylor-sfdc
Copy link
Contributor

Any updates, @bennychow ? We're getting ready to spin a patch release and I was hoping to validate that Pentaho works with Phoenix.

@bennychow
Copy link
Author

Hi James,

I switched laptops and had some trouble setting up HBase. I'll try again
later today to see if I can use your/Julian's suggestions.

Benny

On Fri, Nov 8, 2013 at 8:06 AM, James Taylor notifications@github.comwrote:

Any updates, @bennychow https://github.com/bennychow ? We're getting
ready to spin a patch release and I was hoping to validate that Pentaho
works with Phoenix.


Reply to this email directly or view it on GitHubhttps://github.com//issues/512#issuecomment-28019853
.

@bennychow
Copy link
Author

Hi James,

I tried it out and ran into this issue:

select "WEB_STAT"."DATE" as "c0"
from "WEB_STAT" as "WEB_STAT"
where "WEB_STAT"."DATE" in
(TO_DATE ('2013-01-01 00:00:00') )

ERROR 602 (42P00): Syntax error. Missing "LPAREN" at line 4, column 7.

I think the issue is related to the IN list because when I use an equal,
then it works. Also, how should I convert a java.sql.Time and
java.sql.Timestamp Java object into SQL? I don't see any TO_TIME or
TO_TIMESTAMP functions.

Thanks
Benny

On Fri, Nov 8, 2013 at 8:06 AM, James Taylor notifications@github.comwrote:

Any updates, @bennychow https://github.com/bennychow ? We're getting
ready to spin a patch release and I was hoping to validate that Pentaho
works with Phoenix.


Reply to this email directly or view it on GitHubhttps://github.com//issues/512#issuecomment-28019853
.

@jtaylor-sfdc
Copy link
Contributor

Argh - I introduced a bug in 2.1 that prevents functions from being used in an IN list. Fixed in our master branch and will be in our 2.1.1 release out next week.

In Phoenix, a DATE and TIME are somewhat interchangeable - both store date/time to the millisecond granularity. So you can use the TO_DATE function for the TIME type as well. We can add a TO_TIME function in our 2.2 release for better readability.

With TIMESTAMP, the only difference is that we keep the fractional nanos part of the time in addition to the millisecond. You can also use DATE or TIME for TIMESTAMP, but the nanos part of the TIMESTAMP will be zero. We don't have a way right now of inputting a TIMESTAMP through a string constant. You can only do this through a bind variable currently. I'll add a TO_TIMESTAMP function as well, or perhaps support it with the cast operator.

Outside of this issue, @bennychow, how are things looking? Or is this blocking you?

@bennychow
Copy link
Author

Outside of these issues, Analyzer + Mondrian seems to be working pretty
well on top of Phoenix. Nothing else is blocking. I haven't found anymore
queries that break but that's pretty superficial testing. I didn't test
things like virtual cubes which could end up generating UNION statements
which I don't think Phoenix supports yet.

Another unrelated question.... how are you sending emails to me directly
from github? Like I see the reply-to contains a github domain.

On Sat, Nov 9, 2013 at 2:55 AM, James Taylor notifications@github.comwrote:

Argh - I introduced a bug in 2.1 that prevents functions from being used
in an IN list. Fixed in our master branch and will be in our 2.1.1 release
out next week.

In Phoenix, a DATE and TIME are somewhat interchangeable - both store
date/time to the millisecond granularity. So you can use the TO_DATE
function for the TIME type as well. We can add a TO_TIME function in our
2.2 release for better readability.

With TIMESTAMP, the only difference is that we keep the fractional nanos
part of the time in addition to the millisecond. You can also use DATE or
TIME for TIMESTAMP, but the nanos part of the TIMESTAMP will be zero. We
don't have a way right now of inputting a TIMESTAMP through a string
constant. You can only do this through a bind variable currently. I'll add
a TO_TIMESTAMP function as well, or perhaps support it with the cast
operator.

Outside of this issue, @bennychow https://github.com/bennychow, how are
things looking? Or is this blocking you?


Reply to this email directly or view it on GitHubhttps://github.com//issues/512#issuecomment-28087720
.

@jtaylor-sfdc
Copy link
Contributor

Great! How's performance? Look for our point release next week.

No UNION support yet, but I'll add an issue for this as it wouldn't be difficult.

Not sure how github sends those emails, but I have noticed (at least on my end) that they often get the sender name wrong. Might be when I do an @bennychow reference?

@bennychow
Copy link
Author

As far as the plumbing goes.. it's pretty fast to send SQLs down to Phoenix
and then get results back. Mondrian has a lot of caching too so once
dimension members are cached or aggregates are loaded, then no additional
queries are sent down into Phoenix. It would be interesting to test larger
datasets on a HBase setup with more nodes but right now I only have one.
Right now, with the out of the box CloudEra VM with 4GB ram and 1 CPU. It
takes about 60 seconds to query a 6M webstat fact table.

On Sat, Nov 9, 2013 at 10:24 AM, James Taylor notifications@github.comwrote:

Great! How's performance? Look for our point release next week.

No UNION support yet, but I'll add an issue for this as it wouldn't be
difficult.

Not sure how github sends those emails, but I have noticed (at least on my
end) that they often get the sender name wrong. Might be when I do an
@bennychow https://github.com/bennychow reference?


Reply to this email directly or view it on GitHubhttps://github.com//issues/512#issuecomment-28112446
.

@jtaylor-sfdc
Copy link
Contributor

@bennychow and @julianhyde - our 2.1.1 release is out with these fixes. You can download it here. Please let us know how it goes, and especially when the "Phoenix" dialect is available from Mondrian. Thanks so much for the contributions!

@bennychow
Copy link
Author

I tried it out and it works. However, I ran into an issue with Mondrian 4
Dates vs Timestamps handling. I need to discuss with the Mondrian 4
developer first before publishing the Phoenix dialect.

On Tue, Nov 12, 2013 at 6:05 AM, James Taylor notifications@github.comwrote:

@bennychow https://github.com/bennychow and @julianhydehttps://github.com/julianhyde- our 2.1.1 release is out with these fixes. You can download it
here https://github.com/forcedotcom/phoenix/wiki/Download. Please let
us know how it goes, and especially when the "Phoenix" dialect is available
from Mondrian. Thanks so much for the contributions!


Reply to this email directly or view it on GitHubhttps://github.com//issues/512#issuecomment-28244180
.

@bennychow
Copy link
Author

@jtaylor-sfdc Here's the latest status on the dialect... it's almost there... pentaho/mondrian#188

@wfeng1982
Copy link

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants