0
Hi. My team and I are having an Apache Phoenix-related problem. I wonder if anyone has come across this problem before or if we’re doing something wrong.
First, we create the following table:
create TABLE IF NOT EXISTS testing.PERSISTENCE
(
FIELD_1 VARCHAR,
FIELD_2 INTEGER NOT NULL,
FIELD_3 VARCHAR,
FIELD_4 VARCHAR,
FC1.FIELD_5 VARCHAR,
FC1.FIELD_6 VARCHAR,
FC2.FIELD_7 VARCHAR,
FC3.FIELD_8 VARCHAR,
FC3.FIELD_9 VARCHAR,
FC3.FIELD_10 VARCHAR,
CONSTRAINT BALANCE_EDR_PK PRIMARY KEY (FIELD_1, FIELD_2, FIELD_3, FIELD_4, FIELD_5)
) IMMUTABLE_ROWS=true SPLIT ON (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256);
After creating this table, we populated some data on it.
When we try to execute the following query (which appears to be perfectly correct for us), no result is returned.
0: jdbc:phoenix:> SELECT * FROM testing.PERSISTENCE WHERE FIELD_2 >= 20190410 AND FIELD_2 <= 20190423 AND FIELD_1 = '5571991529969' AND FIELD_3='242' AND FIELD_5 IN ('MyEvent') AND FIELD_4='7fde6b19-e7e3-487c-8fc5-b087029355d3';
However, when executing the following query we have results.
0: jdbc:phoenix:> SELECT * FROM testing.PERSISTENCE WHERE FIELD_2 >= 20190410 AND FIELD_2 <= 20190423 AND FIELD_1 = '5571991529969' AND FIELD_5 IN ('MyEvent') AND FIELD_4='7fde6b19-e7e3-487c-8fc5-b087029355d3';
The only difference between them is the absence of FIELD_3. The strange thing is that this field is a PK of this table.
And in the second query is there a line where FIELD_3 is '242'? As for "The strange thing is that this field is a PK of this table." it seems to me that the field is part of Primary key and not that it is Primary key.
– anonimo
Yeah, he’s part of PK
– HDeiro
So I didn’t understand your strangeness about the possible non-existence of a line where this field value doesn’t occur.
– anonimo
If it were his case to bring with the present field and not bring in the absence of it, it would make sense. The problem is that it happens just the opposite. When I have FIELD_3 in the query and all other conditions it does not return the expected.
– HDeiro