MCPcopy Create free account
hub / github.com/apache/impala / test_column_name_case

Method test_column_name_case

tests/query_test/test_kudu.py:946–1009  ·  view source on GitHub ↗

IMPALA-5286: Tests that an external Kudu table that was created with a column name containing upper case letters is handled correctly.

(self, vector, kudu_client, unique_database)

Source from the content-addressed store, hash-verified

944 @SkipIfKudu.no_hybrid_clock()
945 @SkipIfKudu.hms_integration_enabled()
946 def test_column_name_case(self, vector, kudu_client, unique_database):
947 """IMPALA-5286: Tests that an external Kudu table that was created with a column name
948 containing upper case letters is handled correctly."""
949 vector.set_exec_option('kudu_read_mode', 'READ_AT_SNAPSHOT')
950 tbl = 'kudu_external_test'
951 table_name = '%s.%s' % (unique_database, tbl)
952 if kudu_client.table_exists(table_name):
953 kudu_client.delete_table(table_name)
954
955 schema_builder = SchemaBuilder()
956 key_col = 'Key'
957 schema_builder.add_column(key_col, INT64).nullable(False).primary_key()
958 schema = schema_builder.build()
959 partitioning = Partitioning().set_range_partition_columns([key_col])\
960 .add_range_partition([1], [10])
961
962 try:
963 kudu_client.create_table(table_name, schema, partitioning)
964
965 self.execute_query_using_vector(
966 create_external_kudu_query(unique_database, tbl, table_name), vector)
967
968 # Perform a variety of operations on the table.
969 self.execute_query_using_vector(
970 "insert into %s (kEy) values (5), (1), (4)" % table_name, vector)
971 result = self.execute_query_using_vector(
972 "select keY from %s where KeY %% 2 = 0" % table_name, vector)
973 assert result.data == ['4']
974 result = self.execute_query_using_vector(
975 "select * from %s order by kEY" % table_name, vector)
976 assert result.data == ['1', '4', '5']
977
978 # Do a join with a runtime filter targeting the column.
979 result = self.execute_query_using_vector(
980 "select count(*) from %s a, %s b where a.key = b.key" % (table_name, table_name),
981 vector)
982 assert result.data == ['3']
983
984 self.execute_query_using_vector(
985 "alter table %s add range partition 11 < values < 20" % table_name, vector)
986
987 new_key = "KEY2"
988 self.execute_query_using_vector(
989 "alter table %s change KEy %s bigint" % (table_name, new_key),
990 vector)
991 val_col = "vaL"
992 self.execute_query_using_vector(
993 "alter table %s add columns (%s bigint)" % (table_name, val_col), vector)
994
995 result = self.execute_query_using_vector("describe %s" % table_name, vector)
996 # 'describe' should print the column name in lower case.
997 assert new_key.lower() in result.data[0]
998 assert val_col.lower() in result.data[1]
999
1000 self.execute_query_using_vector(
1001 "alter table %s drop column Val" % table_name, vector)
1002 result = self.execute_query_using_vector("describe %s" % table_name, vector)
1003 assert len(result.data) == 1

Callers

nothing calls this directly

Calls 6

set_exec_optionMethod · 0.80
nullableMethod · 0.80
buildMethod · 0.45
create_tableMethod · 0.45

Tested by

no test coverage detected