[jira] [Commented] (KYLIN-1809) kylin1.5.2 query count distinct with condition "in" will cause timeout .
[ https://issues.apache.org/jira/browse/KYLIN-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15392964#comment-15392964 ] Xingxing Di commented on KYLIN-1809: Of cause, it has nothing to do with query syntax, but the sql with IN clause will cause hbase error, i dont know the reason, and all cubes have the same problem. > kylin1.5.2 query count distinct with condition "in" will cause timeout . > -- > > Key: KYLIN-1809 > URL: https://issues.apache.org/jira/browse/KYLIN-1809 > Project: Kylin > Issue Type: Bug >Affects Versions: v1.5.2 > Environment: hbase1.1.2 hadoop 2.4.1 >Reporter: Xingxing Di >Assignee: hongbin ma > > Kylin1.5.2 query count distinct with condition "in" will cause exception . > Note that , Kylin1.5 has no such problem. > select dt,sum(pv),count(distinct device_id) from olap.olap_app_flw_platform t1 > left join olap.olap_dim_city_all t2 on t1.city_id=t2.id > where dt ='2016-05-29' and t2.city_id in (110100,440100,440300,310100,330100) > group by dt > The error stack: > 2016-06-21 09:28:59,995 ERROR [http-bio-8070-exec-2] > controller.QueryController:209 : Exception when execute sql > java.sql.SQLException: Error while executing SQL "select > t2.city_name,sum(pv),count(distinct device_id) from > olap.olap_app_flw_platform t1 > left join olap.olap_dim_city_all t2 on t1.city_id=t2.id > where dt='2016-06-18' and t2.city_id in (110100,440100,440300,310100,330100) > group by t2.city_name > LIMIT 5": Timeout visiting cube! > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:143) > at > org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:186) > at > org.apache.kylin.rest.service.QueryService.execute(QueryService.java:361) > at > org.apache.kylin.rest.service.QueryService.queryWithSqlMassage(QueryService.java:273) > at > org.apache.kylin.rest.service.QueryService.query(QueryService.java:121) > at > org.apache.kylin.rest.service.QueryService$$FastClassByCGLIB$$4957273f.invoke() > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618) > at > org.apache.kylin.rest.service.QueryService$$EnhancerByCGLIB$$c462a47d.query() > at > org.apache.kylin.rest.controller.QueryController.doQueryWithCache(QueryController.java:192) > at > org.apache.kylin.rest.controller.QueryController.query(QueryController.java:94) > at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) > at > org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) > at > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) > at > org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) > at > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > at >
[jira] [Commented] (KYLIN-1809) kylin1.5.2 query count distinct with condition "in" will cause timeout .
[ https://issues.apache.org/jira/browse/KYLIN-1809?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15392783#comment-15392783 ] liyang commented on KYLIN-1809: --- If there was error in hbase, then it has nothing to do with query syntax. Is it? > kylin1.5.2 query count distinct with condition "in" will cause timeout . > -- > > Key: KYLIN-1809 > URL: https://issues.apache.org/jira/browse/KYLIN-1809 > Project: Kylin > Issue Type: Bug >Affects Versions: v1.5.2 > Environment: hbase1.1.2 hadoop 2.4.1 >Reporter: Xingxing Di >Assignee: hongbin ma > > Kylin1.5.2 query count distinct with condition "in" will cause exception . > Note that , Kylin1.5 has no such problem. > select dt,sum(pv),count(distinct device_id) from olap.olap_app_flw_platform t1 > left join olap.olap_dim_city_all t2 on t1.city_id=t2.id > where dt ='2016-05-29' and t2.city_id in (110100,440100,440300,310100,330100) > group by dt > The error stack: > 2016-06-21 09:28:59,995 ERROR [http-bio-8070-exec-2] > controller.QueryController:209 : Exception when execute sql > java.sql.SQLException: Error while executing SQL "select > t2.city_name,sum(pv),count(distinct device_id) from > olap.olap_app_flw_platform t1 > left join olap.olap_dim_city_all t2 on t1.city_id=t2.id > where dt='2016-06-18' and t2.city_id in (110100,440100,440300,310100,330100) > group by t2.city_name > LIMIT 5": Timeout visiting cube! > at org.apache.calcite.avatica.Helper.createException(Helper.java:56) > at org.apache.calcite.avatica.Helper.createException(Helper.java:41) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:143) > at > org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:186) > at > org.apache.kylin.rest.service.QueryService.execute(QueryService.java:361) > at > org.apache.kylin.rest.service.QueryService.queryWithSqlMassage(QueryService.java:273) > at > org.apache.kylin.rest.service.QueryService.query(QueryService.java:121) > at > org.apache.kylin.rest.service.QueryService$$FastClassByCGLIB$$4957273f.invoke() > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618) > at > org.apache.kylin.rest.service.QueryService$$EnhancerByCGLIB$$c462a47d.query() > at > org.apache.kylin.rest.controller.QueryController.doQueryWithCache(QueryController.java:192) > at > org.apache.kylin.rest.controller.QueryController.query(QueryController.java:94) > at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at > org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) > at > org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) > at > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) > at > org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) > at > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) > at > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) > at >
[jira] [Commented] (KYLIN-1796) query return 0 results when join with sub sql with composite keys
[ https://issues.apache.org/jira/browse/KYLIN-1796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15392764#comment-15392764 ] liyang commented on KYLIN-1796: --- Looks similar to me. Maybe fixed already, need to verify. > query return 0 results when join with sub sql with composite keys > - > > Key: KYLIN-1796 > URL: https://issues.apache.org/jira/browse/KYLIN-1796 > Project: Kylin > Issue Type: Bug > Components: Query Engine >Affects Versions: v1.5.2.1 >Reporter: Zhong,Jason >Assignee: liyang > > from kylin sample cube 'kylin_sales_cube' > after build successfully. > if we want to query sql like this. > " > SELECT COUNT(*) FROM KYLIN_SALES as a INNER JOIN > KYLIN_CATEGORY_GROUPINGS as b > on a.LEAF_CATEG_ID = b.LEAF_CATEG_ID > and a.LSTG_SITE_ID = b.SITE_ID > group by b.META_CATEG_NAME > " > it works!! > but if we query same sql like this > " > select count(*) as _count from kylin_sales as a > inner join > (select leaf_categ_id as _leaf_categ_id, site_id as _site_id, > meta_categ_name as _meta_categ_name from kylin_category_groupings) > as b > on (a.leaf_categ_id = b._leaf_categ_id and a.lstg_site_id = b._site_id) > group by b._meta_categ_name order by count(*) desc > " > it return 0 results. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KYLIN-1795) bin/sample.sh doesn't work when configured hive client is beeline
[ https://issues.apache.org/jira/browse/KYLIN-1795?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15391716#comment-15391716 ] wangxianbin commented on KYLIN-1795: sorry guys! i miss this ticket, thanks billy! > bin/sample.sh doesn't work when configured hive client is beeline > - > > Key: KYLIN-1795 > URL: https://issues.apache.org/jira/browse/KYLIN-1795 > Project: Kylin > Issue Type: Bug > Components: Client - CLI >Affects Versions: v1.5.0 >Reporter: Shaofeng SHI >Assignee: Yiming Liu >Priority: Minor > Labels: newbie > Fix For: v1.5.3 > > Attachments: KYLIN-1795.patch > > > If configure to use beeline as hive client in kylin.properties, then run > bin/sample.sh, it will fail to load data into hive, like: > 0: jdbc:hive2://hiveserver:10> LOAD DATA LOCAL INPATH > 'DEFAULT.KYLIN_SALES.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_SALES; > Error: Error while compiling statement: FAILED: SemanticException Line 1:23 > Invalid path ''DEFAULT.KYLIN_SALES.csv'': No files matching path > file:/var/run/cloudera-scm-agent/process/1358-hive-HIVESERVER2/DEFAULT.KYLIN_SALES.csv > (state=42000,code=4) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KYLIN-1855) Should exclude those joins in whose related lookup tables no dimensions are used in cube
[ https://issues.apache.org/jira/browse/KYLIN-1855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15391710#comment-15391710 ] Zhong Yanghong commented on KYLIN-1855: --- Sorry for that I forgot to do the setting for the latest intellij IDEA according to http://kylin.apache.org/development/dev_env.html > Should exclude those joins in whose related lookup tables no dimensions are > used in cube > > > Key: KYLIN-1855 > URL: https://issues.apache.org/jira/browse/KYLIN-1855 > Project: Kylin > Issue Type: Improvement >Reporter: Zhong Yanghong >Assignee: Zhong Yanghong > Fix For: v1.5.4 > > Attachments: exclude_unused_joins.patch > > > A cube is based on a model in which a star schema is defined. In some cases, > the cube utilizes only a few lookup tables rather than all. In this case, > when creating the sql for the flat table, those lookup tables should not be > included. Otherwise, it will confuse users when query. If users do query > according to the definition of the flat table, error of no realization will > occur due to lack of the related join. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (KYLIN-1732) Support Window Function
[ https://issues.apache.org/jira/browse/KYLIN-1732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] liyang updated KYLIN-1732: -- Issue Type: New Feature (was: Bug) > Support Window Function > --- > > Key: KYLIN-1732 > URL: https://issues.apache.org/jira/browse/KYLIN-1732 > Project: Kylin > Issue Type: New Feature > Components: Query Engine >Affects Versions: v1.5.2 >Reporter: Yerui Sun >Assignee: liyang > > Kylin didn't support window function yet. Here's a test query: > {code} > select lstg_format_name, count(*) over(partition by lstg_format_name) > from kylin_sales > {code} > The query threw a exception and here's the error log and stack trace: > {code} > Error while executing SQL "select lstg_format_name, count(*) over(partition > by lstg_format_name) from kylin_sales LIMIT 5": cannot translate call > COUNT() OVER (PARTITION BY $t3 RANGE BETWEEN UNBOUNDED PRECEDING AND > UNBOUNDED FOLLOWING) > {code} > {code} > Caused by: java.lang.RuntimeException: cannot translate call COUNT() OVER > (PARTITION BY $t3 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateCall(RexToLixTranslator.java:533) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:507) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate0(RexToLixTranslator.java:472) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:219) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translate(RexToLixTranslator.java:214) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateList(RexToLixTranslator.java:700) > at > org.apache.calcite.adapter.enumerable.RexToLixTranslator.translateProjects(RexToLixTranslator.java:189) > at > org.apache.calcite.adapter.enumerable.EnumerableCalc.implement(EnumerableCalc.java:188) > at > org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97) > at > org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.visitChild(OLAPRel.java:183) > at > org.apache.calcite.adapter.enumerable.EnumerableLimit.implement(EnumerableLimit.java:106) > at > org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.visitChild(EnumerableRelImplementor.java:97) > at > org.apache.kylin.query.relnode.OLAPRel$JavaImplementor.visitChild(OLAPRel.java:183) > at > org.apache.kylin.query.relnode.OLAPToEnumerableConverter.implement(OLAPToEnumerableConverter.java:108) > at > org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:102) > at > org.apache.calcite.adapter.enumerable.EnumerableInterpretable.toBindable(EnumerableInterpretable.java:92) > at > org.apache.calcite.prepare.CalcitePrepareImpl$CalcitePreparingStmt.implement(CalcitePrepareImpl.java:1171) > at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:297) > at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:196) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:721) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:588) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:558) > at > org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214) > at > org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:573) > at > org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:571) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:135) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KYLIN-1920) Add view CubeInstance json function
[ https://issues.apache.org/jira/browse/KYLIN-1920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15391648#comment-15391648 ] Zhong,Jason commented on KYLIN-1920: I click 'View(InstanceJSON)' the result is CubeDesc, not CubeInstance, please update a new patch. thanks > Add view CubeInstance json function > --- > > Key: KYLIN-1920 > URL: https://issues.apache.org/jira/browse/KYLIN-1920 > Project: Kylin > Issue Type: Improvement > Components: Web >Affects Versions: v1.5.2 >Reporter: Zhong,Jason >Assignee: Zhong,Jason > Attachments: 0001-KYLIN-1920-web.patch > > > Now at cube list page we can edit CubeDesc json file, we also need to view > CubeInstance json, need to add this to UI. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (KYLIN-1920) Add view CubeInstance json function
[ https://issues.apache.org/jira/browse/KYLIN-1920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Zhixiong Chen updated KYLIN-1920: - Attachment: 0001-KYLIN-1920-web.patch I have completed this function.Please check this patch.Thanks! > Add view CubeInstance json function > --- > > Key: KYLIN-1920 > URL: https://issues.apache.org/jira/browse/KYLIN-1920 > Project: Kylin > Issue Type: Improvement > Components: Web >Affects Versions: v1.5.2 >Reporter: Zhong,Jason >Assignee: Zhong,Jason > Attachments: 0001-KYLIN-1920-web.patch > > > Now at cube list page we can edit CubeDesc json file, we also need to view > CubeInstance json, need to add this to UI. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (KYLIN-1920) Add view CubeInstance json function
Zhong,Jason created KYLIN-1920: -- Summary: Add view CubeInstance json function Key: KYLIN-1920 URL: https://issues.apache.org/jira/browse/KYLIN-1920 Project: Kylin Issue Type: Improvement Components: Web Affects Versions: v1.5.2 Reporter: Zhong,Jason Assignee: Zhong,Jason Now at cube list page we can edit CubeDesc json file, we also need to view CubeInstance json, need to add this to UI. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (KYLIN-1194) Filter(CubeName) on Jobs/Monitor page works only once
[ https://issues.apache.org/jira/browse/KYLIN-1194?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Zhong,Jason resolved KYLIN-1194. Resolution: Fixed Fix Version/s: v1.5.4 thank you [~Zhixiong Chen] > Filter(CubeName) on Jobs/Monitor page works only once > - > > Key: KYLIN-1194 > URL: https://issues.apache.org/jira/browse/KYLIN-1194 > Project: Kylin > Issue Type: Bug > Components: Web >Affects Versions: v1.4.0, v1.1.1 >Reporter: Dong Li >Assignee: Zhong,Jason >Priority: Minor > Fix For: v1.5.4 > > Attachments: 0001-KYLIN-1194-web-fix-filter-cubes-issue.patch > > > 1. Navigate to: http://localhost:7070/kylin/jobs > 2. Entry a valid cube name in Cube name textbox, and press Enter to filter, > found there're jobs displayed > 3. Clear the textbox, and press Enter. > Actual: No jobs display > Expect: All jobs should display -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (KYLIN-962) [UI] Cube Designer can't drag rowkey normally
[ https://issues.apache.org/jira/browse/KYLIN-962?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Zhong,Jason resolved KYLIN-962. --- Resolution: Fixed Fix Version/s: v1.5.4 > [UI] Cube Designer can't drag rowkey normally > - > > Key: KYLIN-962 > URL: https://issues.apache.org/jira/browse/KYLIN-962 > Project: Kylin > Issue Type: Bug > Components: Web >Affects Versions: v1.4.0, v0.7.2 >Reporter: Zhong,Jason >Assignee: Zhong,Jason > Fix For: v1.5.4 > > Attachments: 0001-001-KYLIN-962-web-fix-cubes-drag-issue.patch.patch, > [kylin_962]kylin_drag_rowkey.png > > > when edit Cube ,at step [Advance Settings] ,can not drag rowkey normally when > there are multiple rowkeys -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KYLIN-962) [UI] Cube Designer can't drag rowkey normally
[ https://issues.apache.org/jira/browse/KYLIN-962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15391493#comment-15391493 ] Zhong,Jason commented on KYLIN-962: --- reviewed, good patch, thank you [~huyanling] > [UI] Cube Designer can't drag rowkey normally > - > > Key: KYLIN-962 > URL: https://issues.apache.org/jira/browse/KYLIN-962 > Project: Kylin > Issue Type: Bug > Components: Web >Affects Versions: v1.4.0, v0.7.2 >Reporter: Zhong,Jason >Assignee: Zhong,Jason > Attachments: 0001-001-KYLIN-962-web-fix-cubes-drag-issue.patch.patch, > [kylin_962]kylin_drag_rowkey.png > > > when edit Cube ,at step [Advance Settings] ,can not drag rowkey normally when > there are multiple rowkeys -- This message was sent by Atlassian JIRA (v6.3.4#6332)