Commit 29c3911
committed
fix: match UDT names for prepared cache invalidation
Prepared statement cache invalidation was comparing UDTs with UserDefinedType.equals(), which includes field definitions. That is too strict for schema-change invalidation: a prepared statement can carry a UDT shape from result metadata that is not field-equal to the schema event's old type, especially when the UDT is nested in a collection.
Invalidate by UDT identity instead: keyspace and type name are enough to know that a prepared statement references the changed type. Created-type events still have no old type, so ignore them before matching.
Add a unit regression for a collection UDT whose field definitions differ but keyspace and type name match.1 parent 9e8d5ae commit 29c3911
2 files changed
Lines changed: 30 additions & 2 deletions
File tree
- core/src
- main/java/com/datastax/oss/driver/internal/core/cql
- test/java/com/datastax/oss/driver/internal/core/cql
Lines changed: 9 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
113 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
114 | 121 | | |
115 | 122 | | |
116 | 123 | | |
| |||
Lines changed: 21 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
24 | 27 | | |
25 | 28 | | |
26 | 29 | | |
| |||
85 | 88 | | |
86 | 89 | | |
87 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
88 | 109 | | |
0 commit comments