Support Questions

Find answers, ask questions, and share your expertise

Impala JDBC driver: both TOP and LIMIT appear in the same SELECT query

avatar
New Contributor

Hi, I am looking for explanation for below error. Why driver is trying to convert LIMIT into TOP? This log comes from LogLevel=5.

Sep 18 16:51:32.339 DEBUG 73090 com.cloudera.impala.jdbc.core..call: establishConnection() in a new thread: 73090
Sep 18 16:51:32.342 INFO  73090 com.cloudera.impala.hivecommon.core.HiveJDBCCommonConnection.establishConnection: Schema is set to default: default
Sep 18 16:51:32.343 DEBUG 73090 com.cloudera.impala.hivecommon.core.HiveJDBCCommonConnection.establishConnection: socketTimeout = 0, loginTimeout = 60
Sep 18 16:51:32.343 DEBUG 73090 com.cloudera.impala.hivecommon.core.HiveJDBCCommonConnection.establishConnection: SocketTimeout is: 60 seconds for test
Sep 18 16:51:34.408 DEBUG 73090 com.cloudera.impala.hivecommon.core.HiveJDBCCommonConnection.establishConnection: socketTimeout is set back to 0 seconds
Sep 18 16:51:34.408 DEBUG 73090 com.cloudera.impala.hivecommon.core.HiveJDBCCommonConnection.setServersideProperties: {LoginTimeout=60, SSLTrustStoreType=JKS}
Sep 18 16:51:34.934 INFO  73084 com.cloudera.impala.jdbc.common.SConnection.SConnection: Driver version is: 02.06.15.1017
Sep 18 16:51:34.935 INFO  73084 com.cloudera.impala.jdbc.common.SConnection.SConnection: Datasource version is: 02.06.15.1017
Sep 18 16:51:36.228 INFO  73084 com.cloudera.impala.hivecommon.dataengine.HiveJDBCDataEngine.prepare: Removing semicolons from query: SELECT * FROM `awb_preprod`.`orc_mn_porteur` LIMIT 1000
Sep 18 16:51:36.946 WARN  73084 com.cloudera.impala.hivecommon.dataengine.HiveJDBCDataEngineWithLimitZeroPreparedStatementMetadata.prepare: [Cloudera][JSQLEngine](13420) Both TOP and LIMIT appear in the same SELECT query.
com.cloudera.impala.sqlengine.exceptions.SQLEngineException: [Cloudera][JSQLEngine](13420) Both TOP and LIMIT appear in the same SELECT query.
	at com.cloudera.impala.sqlengine.parser.generated.Parser.transformLimitToTop(Unknown Source)
	at com.cloudera.impala.sqlengine.parser.generated.Parser.yyparse(Unknown Source)
	at com.cloudera.impala.sqlengine.parser.generated.Parser.parse(Unknown Source)
	at com.cloudera.impala.sqlengine.parser.PTParser.parse(Unknown Source)
	at com.cloudera.impala.sqlengine.dsiext.dataengine.SqlDataEngine.prepare(Unknown Source)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDataEngineWithLimitZeroPreparedStatementMetadata.prepare(Unknown Source)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDataEngine.createQueryExecutor(Unknown Source)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDataEngine.createQueryExecutor(Unknown Source)
	at com.cloudera.impala.sqlengine.dsiext.dataengine.SqlDataEngine.prepare(Unknown Source)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDataEngine.translateThroughEngine(Unknown Source)
	at com.cloudera.impala.hivecommon.dataengine.HiveJDBCDataEngine.prepare(Unknown Source)
	at com.cloudera.impala.jdbc.common.SPreparedStatement.<init>(Unknown Source)
	at com.cloudera.impala.jdbc.jdbc41.S41PreparedStatement.<init>(Unknown Source)
	at com.cloudera.impala.hivecommon.jdbc41.Hive41PreparedStatement.<init>(Unknown Source)
	at com.cloudera.impala.impala.common.ImpalaJDBCObjectFactory.createPreparedStatement(Unknown Source)
	at com.cloudera.impala.jdbc.common.SConnection.prepareStatement(Unknown Source)
	at com.cloudera.impala.jdbc.common.SConnection.prepareStatement(Unknown Source)

 

1 REPLY 1

avatar
Expert Contributor

Hello-
First of all, make sure you are using the latest Impala JDBC connector.

If you do - then try to add 'UseNativeQuery=1' to the JDBC connection string and re-test.