You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Alexander Behm (JIRA)" <ji...@apache.org> on 2017/08/24 22:50:00 UTC
[jira] [Created] (IMPALA-5847) Some query options do not work as
expected in .test files
Alexander Behm created IMPALA-5847:
--------------------------------------
Summary: Some query options do not work as expected in .test files
Key: IMPALA-5847
URL: https://issues.apache.org/jira/browse/IMPALA-5847
Project: IMPALA
Issue Type: Bug
Components: Infrastructure
Reporter: Alexander Behm
Priority: Critical
We often use "set" in .test files to alter query options. Theoretically, a "set" command should change the session-level query options and in most cases a single .test file is executed from the same Impala session. However, for some options using "set" within a query section does not seem to work. For example, "num_nodes" does not work as expected as shown below.
PyTest:
{code}
import pytest
from tests.common.impala_test_suite import ImpalaTestSuite
class TestStringQueries(ImpalaTestSuite):
@classmethod
def get_workload(cls):
return 'functional-query'
def test_set_bug(self, vector):
self.run_test_case('QueryTest/set_bug', vector)
{code}
Corresponding .test file:
{code}
====
---- QUERY
set num_nodes=1;
select count(*) from functional.alltypes;
select count(*) from functional.alltypes;
select count(*) from functional.alltypes;
---- RESULTS
7300
---- TYPES
BIGINT
====
{code}
After running the test above, I validated that the 3 queries were run from the same session, and that the queries run a distributed plan. The "num_nodes" option was definitely not picked up. I am not sure which query options are affected. In several .test files setting other query options does seem to work as expected.
I suspect that the test framework might keep its own list of default query options which get submitted together with the query, so the session-level options are overridden on a per-request basis. For example, if I change the pytest to remove the "num_nodes" dictionary entry, then the test works as expected.
PyTest workaround:
{code}
import pytest
from tests.common.impala_test_suite import ImpalaTestSuite
class TestStringQueries(ImpalaTestSuite):
@classmethod
def get_workload(cls):
return 'functional-query'
def test_set_bug(self, vector):
# Workaround SET bug
vector.get_value('exec_option').pop('num_nodes', None)
self.run_test_case('QueryTest/set_bug', vector)
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)