Bug 123559 Interval can't be set on scripted data
Description: Interval can't be set on scripted data Steps to reproduce: 1.New a sample data source and a data set with table "ORDERS" 2.New a table binding with the data set 3.Add a group on the table, goupkey->row["ORDERDATE"].getFullYear() Interval->Interval, range->1 4.Preview Expected result: The data is grouped by the group key and interval Actual result: Error0 : data.engine.group.interval ( 1 time(s) ) detail : org.eclipse.birt.data.engine.core.DataException: Setting a numeric interval on a column with type org.eclipse.birt.core.data.DataType$AnyType is not supported. at org.eclipse.birt.data.engine.executor.GroupBy.newInstance(GroupBy.java:57) at org.eclipse.birt.data.engine.executor.GroupCalculationUtil.initGroupSpec(GroupCalculationUtil.java:288) at org.eclipse.birt.data.engine.executor.CachedResultSet.pass(CachedResultSet.java:1376) at org.eclipse.birt.data.engine.executor.CachedResultSet.populateResultSet(CachedResultSet.java:224) at org.eclipse.birt.data.engine.executor.CachedResultSet.<init>(CachedResultSet.java:84) at org.eclipse.birt.data.engine.executor.DataSourceQuery.execute(DataSourceQuery.java:546) at org.eclipse.birt.data.engine.impl.PreparedExtendedDSQuery$ExtendedDSQueryExecutor.executeOdiQuery(PreparedExtendedDSQuery.java:353) at org.eclipse.birt.data.engine.impl.PreparedQuery$Executor.execute(PreparedQuery.java:712) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:110) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.execute(DteDataEngine.java:210) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.openResultSet(QueryItemExecutor.java:62) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:114) at org.eclipse.birt.report.engine.executor.ReportExecutorVisitor.visitTableItem(ReportExecutorVisitor.java:187) at org.eclipse.birt.report.engine.ir.TableItemDesign.accept(TableItemDesign.java:69) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:121) at org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:87) at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:158) at org.eclipse.birt.report.services.ReportEngineService.runAndRenderReport(Unknown Source) at org.eclipse.birt.report.viewer.aggregation.layout.EngineFragment.doService(Unknown Source) at org.eclipse.birt.report.viewer.aggregation.BaseFragment.service(Unknown Source) at org.eclipse.birt.report.viewer.servlet.ViewerServlet.doGet(Unknown Source) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.eclipse.tomcat.internal.EclipseErrorReportValve.invoke(EclipseErrorReportValve.java:153) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534)
data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/PreparedQuery.java
e.getMessage( ),
							e );
			}
		    dataSet = null;
			dataSource = null;
		    
			logger.logp( Level.FINER,
					PreparedQuery.Executor.class.getName( ),
					"close",
					"executor closed " );
		}
		
		/**
		 * Open the required DataSource. This method should be called after
		 * "dataSource" is initialized by findDataSource() method.
		 * 
		 * @throws DataException
		 */
		protected void openDataSource( ) throws DataException
		{
			assert odiDataSource == null;
			
			
		    
			if ( dataSource != null  )
			{
				
				if ( !dataSource.isOpen( )
						|| DataSetCacheManager.getInstance( ).doesLoadFromCache( ) == true )
				{