現在、cassandra から特定の列データを SELECT または INSERT しようとすると、列名がテーブルを参照するときにクラスタリング キーであるという事実にもかかわらず、未定義の列名エラーが発生し続けるという問題が発生しています。ただし、他の列は正常に動作します。
keyspace_name | table_name | column_name | clustering_order | column_name_bytes | kind | position | type
---------------+------------+-------------+------------------+-------------------+---------------+----------+------
keyspace1 | standard1 | C0 | none | 0x4330 | static | -1 | blob
keyspace1 | standard1 | column1 | asc | 0x636f6c756d6e31 | clustering | 0 | text
keyspace1 | standard1 | key | none | 0x6b6579 | partition_key | 0 | blob
keyspace1 | standard1 | value | none | 0x76616c7565 | regular | -1 | blob
cqlsh> SELECT "column1" from keyspace1.standard1;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Undefined column name column1"
cqlsh> SELECT "C0" from keyspace1.standard1;
C0
------------------------
0xdc9e1bf05eab897f470a
0x5ff08459ccd892a25f91
0x85182fdfe7f86306cd58
0x10f1dd6febff8cbcf3ad
0xb8e05320cd1037d6e317
さらに、データを挿入する場合、column1 が「未定義」であるにもかかわらず、クラスタリング キーとして必要です。
cqlsh> insert into keyspace1.standard1 (key) VALUES (0xcccc) ;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Some clustering keys are missing: column1"
ただし、データを他の列に挿入する場合、動作は正常です
cqlsh> insert into keyspace1.standard1 (key, "C0") VALUES (0xcccc, 0xbbbb) ;
cqlsh> SELECT "C0" from keyspace1.standard1;
C0 key
----------------------- ------------------------
0xdc9e1bf05eab897f470a 0x37373539364d4f323330
0xbbbb 0xcccc
0x5ff08459ccd892a25f91 0x4f503030314c35393330
0x85182fdfe7f86306cd58 0x30503337373039503231
0x10f1dd6febff8cbcf3ad 0x394e35344e4b34383631
0xb8e05320cd1037d6e317 0x4f384c4b37394c4f3631
これは、cassandra-stress を実行した後です。3.11.4 で同様のテストを実行したところ、問題なく動作しましたが、クエリを実行すると、column1 (クラスタリング キー) エントリがすべて null でした。
これは 3.11.4 以降で変更された意図された動作ですか?