@finos/legend-query-builder 4.18.19 → 4.18.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/components/filter/QueryBuilderFilterPanel.d.ts +7 -1
  2. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  3. package/lib/components/filter/QueryBuilderFilterPanel.js +28 -2
  4. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  5. package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
  6. package/lib/components/shared/BasicValueSpecificationEditor.js +16 -1
  7. package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
  8. package/lib/components/shared/QueryBuilderFilterHelper.d.ts.map +1 -1
  9. package/lib/components/shared/QueryBuilderFilterHelper.js +3 -0
  10. package/lib/components/shared/QueryBuilderFilterHelper.js.map +1 -1
  11. package/lib/data-access-overview.css +1 -1
  12. package/lib/index.css +16 -0
  13. package/lib/package.json +1 -1
  14. package/lib/stores/QueryBuilderStateHashUtils.d.ts +1 -0
  15. package/lib/stores/QueryBuilderStateHashUtils.d.ts.map +1 -1
  16. package/lib/stores/QueryBuilderStateHashUtils.js +1 -0
  17. package/lib/stores/QueryBuilderStateHashUtils.js.map +1 -1
  18. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -1
  19. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js +11 -1
  20. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
  21. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts.map +1 -1
  22. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js +20 -5
  23. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
  24. package/lib/stores/filter/QueryBuilderFilterState.d.ts +12 -1
  25. package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
  26. package/lib/stores/filter/QueryBuilderFilterState.js +51 -0
  27. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
  28. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts.map +1 -1
  29. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js +26 -2
  30. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js.map +1 -1
  31. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts.map +1 -1
  32. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +20 -7
  33. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
  34. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -1
  35. package/lib/stores/shared/ValueSpecificationEditorHelper.js +22 -7
  36. package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -1
  37. package/package.json +5 -5
  38. package/src/components/filter/QueryBuilderFilterPanel.tsx +101 -0
  39. package/src/components/shared/BasicValueSpecificationEditor.tsx +16 -0
  40. package/src/components/shared/QueryBuilderFilterHelper.ts +4 -0
  41. package/src/stores/QueryBuilderStateHashUtils.ts +1 -0
  42. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts +22 -0
  43. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +25 -4
  44. package/src/stores/filter/QueryBuilderFilterState.ts +87 -1
  45. package/src/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.ts +43 -0
  46. package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +25 -10
  47. package/src/stores/shared/ValueSpecificationEditorHelper.ts +22 -6
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { VariableExpression, CollectionInstanceValue, Enumeration, EnumValueExplicitReference, EnumValueInstanceValue, GenericType, GenericTypeExplicitReference, getEnumValue, PrimitiveInstanceValue, PrimitiveType, PRIMITIVE_TYPE, INTERNAL__PropagatedValue, SimpleFunctionExpression, LambdaFunction, FunctionType, PackageableElementExplicitReference, Multiplicity, CORE_PURE_PATH, buildRawLambdaFromLambdaFunction, getValueSpecificationReturnType, isSubType, AbstractPropertyExpression, PropertyExplicitReference, } from '@finos/legend-graph';
16
+ import { VariableExpression, CollectionInstanceValue, Enumeration, EnumValueExplicitReference, EnumValueInstanceValue, GenericType, GenericTypeExplicitReference, getEnumValue, getPrimitiveTypeInstanceFromEnum, PrimitiveInstanceValue, PrecisePrimitiveType, PrimitiveType, PRIMITIVE_TYPE, INTERNAL__PropagatedValue, SimpleFunctionExpression, LambdaFunction, FunctionType, PackageableElementExplicitReference, Multiplicity, CORE_PURE_PATH, buildRawLambdaFromLambdaFunction, getValueSpecificationReturnType, isSubType, AbstractPropertyExpression, PropertyExplicitReference, } from '@finos/legend-graph';
17
17
  import { Randomizer, UnsupportedOperationError, deepClone, guaranteeNonNullable, returnUndefOnError, } from '@finos/legend-shared';
18
18
  import { generateDefaultValueForPrimitiveType, getStandardPrimitiveTypeEquivalent, } from '../QueryBuilderValueSpecificationHelper.js';
19
19
  import { functionExpression_setParametersValues, instanceValue_setValues, propertyExpression_setFunc, valueSpecification_setGenericType, } from './ValueSpecificationModifierHelper.js';
@@ -198,10 +198,25 @@ export const valueSpecReturnTDS = (val, graph) => {
198
198
  };
199
199
  export const convertTextToPrimitiveInstanceValue = (expectedType, value, observerContext) => {
200
200
  let result = null;
201
+ // Normalize precise primitive types (e.g. Varchar, BigInt, Timestamp) to
202
+ // their standard primitive equivalent so values entered through the editor
203
+ // are stored as standard PrimitiveInstanceValue regardless of whether the
204
+ // source column was declared with a precise type (e.g. accessor relation
205
+ // columns).
206
+ let resolvedType;
201
207
  if (expectedType instanceof PrimitiveType) {
202
- switch (expectedType.path) {
208
+ resolvedType = expectedType;
209
+ }
210
+ else if (expectedType instanceof PrecisePrimitiveType) {
211
+ const standard = getStandardPrimitiveTypeEquivalent(expectedType);
212
+ resolvedType = standard
213
+ ? getPrimitiveTypeInstanceFromEnum(standard)
214
+ : undefined;
215
+ }
216
+ if (resolvedType) {
217
+ switch (resolvedType.path) {
203
218
  case PRIMITIVE_TYPE.STRING: {
204
- result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(expectedType)));
219
+ result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(resolvedType)));
205
220
  instanceValue_setValues(result, [value.toString()], observerContext);
206
221
  break;
207
222
  }
@@ -212,10 +227,10 @@ export const convertTextToPrimitiveInstanceValue = (expectedType, value, observe
212
227
  if (isNaN(Number(value))) {
213
228
  return null;
214
229
  }
215
- const formattedNumber = expectedType.path === PRIMITIVE_TYPE.INTEGER
230
+ const formattedNumber = resolvedType.path === PRIMITIVE_TYPE.INTEGER
216
231
  ? Number.parseInt(Number(value).toString(), 10)
217
232
  : Number(value);
218
- result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(expectedType)));
233
+ result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(resolvedType)));
219
234
  instanceValue_setValues(result, [formattedNumber], observerContext);
220
235
  break;
221
236
  }
@@ -224,7 +239,7 @@ export const convertTextToPrimitiveInstanceValue = (expectedType, value, observe
224
239
  if (isNaN(Date.parse(value))) {
225
240
  return null;
226
241
  }
227
- result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(expectedType)));
242
+ result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(resolvedType)));
228
243
  instanceValue_setValues(result, [value], observerContext);
229
244
  break;
230
245
  }
@@ -236,7 +251,7 @@ export const convertTextToPrimitiveInstanceValue = (expectedType, value, observe
236
251
  !new Date(value.slice(1)).getTime()))) {
237
252
  return null;
238
253
  }
239
- result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(expectedType)));
254
+ result = new PrimitiveInstanceValue(GenericTypeExplicitReference.create(new GenericType(resolvedType)));
240
255
  instanceValue_setValues(result, [value], observerContext);
241
256
  break;
242
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ValueSpecificationEditorHelper.js","sourceRoot":"","sources":["../../../src/stores/shared/ValueSpecificationEditorHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValueSpecificationEditorHelper.js","sourceRoot":"","sources":["../../../src/stores/shared/ValueSpecificationEditorHelper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-query-builder",
3
- "version": "4.18.19",
3
+ "version": "4.18.21",
4
4
  "description": "Legend query builder core",
5
5
  "keywords": [
6
6
  "legend",
@@ -45,10 +45,10 @@
45
45
  "dependencies": {
46
46
  "@finos/legend-application": "16.0.113",
47
47
  "@finos/legend-art": "7.1.154",
48
- "@finos/legend-code-editor": "2.0.180",
49
- "@finos/legend-data-cube": "0.3.97",
50
- "@finos/legend-graph": "32.6.11",
51
- "@finos/legend-lego": "2.0.200",
48
+ "@finos/legend-code-editor": "2.0.182",
49
+ "@finos/legend-data-cube": "0.3.99",
50
+ "@finos/legend-graph": "32.6.13",
51
+ "@finos/legend-lego": "2.0.202",
52
52
  "@finos/legend-server-depot": "6.1.14",
53
53
  "@finos/legend-shared": "11.0.26",
54
54
  "@finos/legend-storage": "3.0.147",
@@ -66,6 +66,7 @@ import {
66
66
  type QueryBuilderFilterState,
67
67
  FilterValueSpecConditionValueState,
68
68
  FilterPropertyExpressionStateConditionValueState,
69
+ FilterRelationColumnConditionValueState,
69
70
  isCollectionProperty,
70
71
  type QueryBuilderFilterValueDropTarget,
71
72
  isExistsNodeChild,
@@ -109,6 +110,7 @@ import {
109
110
  SimpleFunctionExpression,
110
111
  VariableExpression,
111
112
  PrimitiveType,
113
+ PrecisePrimitiveType,
112
114
  Class,
113
115
  Enumeration,
114
116
  } from '@finos/legend-graph';
@@ -177,6 +179,7 @@ export const CAN_DROP_FILTER_NODE_DND_TYPES = [
177
179
  export const CAN_DROP_FILTER_VALUE_DND_TYPES = [
178
180
  QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
179
181
  QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
182
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.RELATION_COLUMN,
180
183
  QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
181
184
  QUERY_BUILDER_VARIABLE_DND_TYPE,
182
185
  ];
@@ -813,6 +816,55 @@ export const QueryBuilderFilterPropertyExpressionBadge = observer(
813
816
  },
814
817
  );
815
818
 
819
+ export const QueryBuilderFilterRelationColumnBadge = observer(
820
+ (props: {
821
+ rightConditionValue: FilterRelationColumnConditionValueState;
822
+ resetNode: () => void;
823
+ }) => {
824
+ const { rightConditionValue, resetNode } = props;
825
+ const type = rightConditionValue.type;
826
+
827
+ return (
828
+ <div className="query-builder-filter-property-expression-badge">
829
+ <div className="query-builder-filter-property-expression-badge__content">
830
+ <div
831
+ className={clsx(
832
+ 'query-builder-filter-property-expression-badge__type',
833
+ {
834
+ 'query-builder-filter-property-expression-badge__type--class':
835
+ type instanceof Class,
836
+ 'query-builder-filter-property-expression-badge__type--enumeration':
837
+ type instanceof Enumeration,
838
+ 'query-builder-filter-property-expression-badge__type--primitive':
839
+ type instanceof PrimitiveType ||
840
+ type instanceof PrecisePrimitiveType,
841
+ },
842
+ )}
843
+ >
844
+ {renderPropertyTypeIcon(type)}
845
+ </div>
846
+ <div
847
+ className="query-builder-filter-property-expression-badge__property"
848
+ title={rightConditionValue.columnName}
849
+ >
850
+ <div className="query-builder__property__name__display__content">
851
+ {rightConditionValue.columnName}
852
+ </div>
853
+ </div>
854
+ <button
855
+ className="query-builder-filter-property-expression-badge__action"
856
+ name="Reset"
857
+ title="Reset"
858
+ onClick={resetNode}
859
+ >
860
+ <RefreshIcon />
861
+ </button>
862
+ </div>
863
+ </div>
864
+ );
865
+ },
866
+ );
867
+
816
868
  const canDropTypeOntoNodeValue = (
817
869
  type: Type | undefined,
818
870
  condition: FilterConditionState,
@@ -917,6 +969,35 @@ const QueryBuilderFilterConditionEditor = observer(
917
969
  const variable = (item as QueryBuilderVariableDragSource)
918
970
  .variable;
919
971
  node.condition.buildRightConditionValueFromValueSpec(variable);
972
+ } else if (
973
+ type === QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.RELATION_COLUMN
974
+ ) {
975
+ if (
976
+ !(
977
+ node.condition.sourceState instanceof
978
+ FilterRelationColumnSourceState
979
+ )
980
+ ) {
981
+ throw new UnsupportedOperationError(
982
+ 'Relation columns can only be used as filter condition values when the filter source is a relation column.',
983
+ );
984
+ }
985
+ const columnNode = (
986
+ item as QueryBuilderExplorerTreeRelationColumnDragSource
987
+ ).node;
988
+ if (
989
+ columnNode.column.multiplicity.upperBound === undefined ||
990
+ columnNode.column.multiplicity.upperBound > 1
991
+ ) {
992
+ throw new UnsupportedOperationError(
993
+ 'Collection types are not supported for filter condition values.',
994
+ );
995
+ }
996
+ node.condition.buildRightConditionValueFromRelationColumn(
997
+ columnNode.column.name,
998
+ columnNode.column.genericType.value.rawType,
999
+ columnNode.column.multiplicity,
1000
+ );
920
1001
  } else {
921
1002
  applicationStore.notificationService.notifyWarning(
922
1003
  `Dragging and Dropping ${type} to filter panel is not supported.`,
@@ -1078,6 +1159,26 @@ const QueryBuilderFilterConditionEditor = observer(
1078
1159
  </PanelEntryDropZonePlaceholder>
1079
1160
  </div>
1080
1161
  );
1162
+ } else if (
1163
+ rightConditionValue instanceof FilterRelationColumnConditionValueState
1164
+ ) {
1165
+ return (
1166
+ <div
1167
+ ref={ref}
1168
+ className="query-builder-filter-tree__condition-node__value"
1169
+ >
1170
+ <PanelEntryDropZonePlaceholder
1171
+ isDragOver={isFilterValueDragOver}
1172
+ isDroppable={isFilterValueDroppable}
1173
+ label="Change Filter Value"
1174
+ >
1175
+ <QueryBuilderFilterRelationColumnBadge
1176
+ rightConditionValue={rightConditionValue}
1177
+ resetNode={resetNode}
1178
+ />
1179
+ </PanelEntryDropZonePlaceholder>
1180
+ </div>
1181
+ );
1081
1182
  }
1082
1183
  return null;
1083
1184
  };
@@ -49,6 +49,7 @@ import {
49
49
  EnumValueInstanceValue,
50
50
  GenericType,
51
51
  GenericTypeExplicitReference,
52
+ getCorrespondingStandardPrimitiveType,
52
53
  getMultiplicityDescription,
53
54
  getPrimitiveTypeInstanceFromEnum,
54
55
  InstanceValue,
@@ -56,6 +57,7 @@ import {
56
57
  isSubType,
57
58
  matchFunctionName,
58
59
  PRIMITIVE_TYPE,
60
+ PrecisePrimitiveType,
59
61
  PrimitiveInstanceValue,
60
62
  PrimitiveType,
61
63
  SimpleFunctionExpression,
@@ -785,6 +787,20 @@ const getPlaceHolder = (expectedType: Type | V1_PackageableType): string => {
785
787
  default:
786
788
  return 'Add';
787
789
  }
790
+ } else if (expectedType instanceof PrecisePrimitiveType) {
791
+ // Precise primitive types (e.g. Varchar, BigInt, Timestamp) flow in from
792
+ // accessor relation columns. Map them to their standard primitive
793
+ // equivalent so we can pick the right placeholder.
794
+ switch (getCorrespondingStandardPrimitiveType(expectedType.path)) {
795
+ case PRIMITIVE_TYPE.DATE:
796
+ case PRIMITIVE_TYPE.STRICTDATE:
797
+ return 'yyyy-mm-dd';
798
+ case PRIMITIVE_TYPE.DATETIME:
799
+ case PRIMITIVE_TYPE.STRICTTIME:
800
+ return 'yyyy-mm-ddThh:mm:ss';
801
+ default:
802
+ return 'Add';
803
+ }
788
804
  } else if (expectedType instanceof V1_PackageableType) {
789
805
  switch (expectedType.fullPath) {
790
806
  case PRIMITIVE_TYPE.DATE:
@@ -18,6 +18,7 @@ import type { Type } from '@finos/legend-graph';
18
18
  import {
19
19
  QUERY_BUILDER_EXPLORER_TREE_DND_TYPE,
20
20
  type QueryBuilderExplorerTreeDragSource,
21
+ type QueryBuilderExplorerTreeRelationColumnDragSource,
21
22
  } from '../../stores/explorer/QueryBuilderExplorerState.js';
22
23
  import {
23
24
  QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE,
@@ -46,6 +47,9 @@ export const getDNDItemType = (
46
47
  case QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY:
47
48
  return (item as QueryBuilderExplorerTreeDragSource).node.property
48
49
  .genericType.value.rawType;
50
+ case QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.RELATION_COLUMN:
51
+ return (item as QueryBuilderExplorerTreeRelationColumnDragSource).node
52
+ .column.genericType.value.rawType;
49
53
  case QUERY_BUILDER_VARIABLE_DND_TYPE:
50
54
  return (item as QueryBuilderVariableDragSource).variable.genericType
51
55
  ?.value.rawType;
@@ -98,6 +98,7 @@ export enum QUERY_BUILDER_STATE_HASH_STRUCTURE {
98
98
  FILTER_CONDITION_SOURCE_RELATION_COLUMN = 'FILTER_CONDITION_SOURCE_RELATION_COLUMN',
99
99
  FILTER_CONDITION_RIGHT_VALUE = 'FILTER_CONDITION_RIGHT_VALUE',
100
100
  FILTER_CONDITION_RIGHT_VALUE_SPEC = 'FILTER_CONDITION_RIGHT_VALUE_SPEC',
101
+ FILTER_CONDITION_RIGHT_VALUE_RELATION_COLUMN = 'FILTER_CONDITION_RIGHT_VALUE_RELATION_COLUMN',
101
102
  FILTER_OPERATOR_CONTAIN = 'FILTER_OPERATOR_CONTAIN',
102
103
  FILTER_OPERATOR_NOT_CONTAIN = 'FILTER_OPERATOR_NOT_CONTAIN',
103
104
  FILTER_OPERATOR_END_WITH = 'FILTER_OPERATOR_END_WITH',
@@ -22,6 +22,7 @@ import {
22
22
  matchFunctionName,
23
23
  VariableExpression,
24
24
  FunctionExpression,
25
+ RelationColumn,
25
26
  type SimpleFunctionExpression,
26
27
  type ValueSpecification,
27
28
  } from '@finos/legend-graph';
@@ -141,6 +142,27 @@ const buildPostFilterConditionValueState = (
141
142
  );
142
143
  return;
143
144
  }
145
+ } else if (
146
+ rightVal instanceof FunctionExpression &&
147
+ rightVal.func instanceof RelationColumn
148
+ ) {
149
+ // Handle relation-column accessor on the right-hand side (e.g. when the
150
+ // post-filter source is an accessor / relation-based projection).
151
+ const rightCol = returnUndefOnError(() =>
152
+ getTDSColumnState(
153
+ conditionState.postFilterState.tdsState,
154
+ (rightVal.func as RelationColumn).name,
155
+ ),
156
+ );
157
+ if (rightCol) {
158
+ conditionState.setRightConditionVal(
159
+ new PostFilterTDSColumnValueConditionValueState(
160
+ conditionState,
161
+ rightCol,
162
+ ),
163
+ );
164
+ return;
165
+ }
144
166
  }
145
167
  const val = rightVal
146
168
  ? simplifyValueExpression(
@@ -22,6 +22,7 @@ import {
22
22
  type LambdaFunction,
23
23
  CollectionInstanceValue,
24
24
  Enumeration,
25
+ getPrimitiveTypeInstanceFromEnum,
25
26
  PRIMITIVE_TYPE,
26
27
  VariableExpression,
27
28
  GenericTypeExplicitReference,
@@ -98,6 +99,15 @@ export class QueryBuilderPostFilterOperator_In
98
99
  if (!collectionType) {
99
100
  return false;
100
101
  }
102
+ // Compare standard primitive equivalents so columns declared with a
103
+ // precise primitive type (e.g. accessor relation columns: Varchar,
104
+ // BigInt, Timestamp) are still recognized as compatible with the
105
+ // standard primitives stored in the value collection.
106
+ const normalizedPropertyTypePath =
107
+ getStandardPrimitiveTypeEquivalent(propertyType) ?? propertyType.path;
108
+ const normalizedCollectionTypePath =
109
+ getStandardPrimitiveTypeEquivalent(collectionType) ??
110
+ collectionType.path;
101
111
  if (
102
112
  (
103
113
  [
@@ -106,7 +116,7 @@ export class QueryBuilderPostFilterOperator_In
106
116
  PRIMITIVE_TYPE.DECIMAL,
107
117
  PRIMITIVE_TYPE.FLOAT,
108
118
  ] as string[]
109
- ).includes(propertyType.path)
119
+ ).includes(normalizedPropertyTypePath)
110
120
  ) {
111
121
  return (
112
122
  [
@@ -115,9 +125,12 @@ export class QueryBuilderPostFilterOperator_In
115
125
  PRIMITIVE_TYPE.DECIMAL,
116
126
  PRIMITIVE_TYPE.FLOAT,
117
127
  ] as string[]
118
- ).includes(collectionType.path);
128
+ ).includes(normalizedCollectionTypePath);
119
129
  }
120
- return collectionType === propertyType;
130
+ return (
131
+ collectionType === propertyType ||
132
+ normalizedPropertyTypePath === normalizedCollectionTypePath
133
+ );
121
134
  } else if (valueSpec instanceof VariableExpression) {
122
135
  // check if not a single value
123
136
  if (valueSpec.multiplicity.upperBound === 1) {
@@ -135,9 +148,17 @@ export class QueryBuilderPostFilterOperator_In
135
148
  const propertyType = guaranteeNonNullable(
136
149
  postFilterConditionState.leftConditionValue.getColumnType(),
137
150
  );
151
+ // Normalize precise primitive types (e.g. Varchar, BigInt) to their
152
+ // standard equivalent so the collection's generic type matches the
153
+ // standard primitive values that downstream editors produce.
154
+ const standardPrimitive = getStandardPrimitiveTypeEquivalent(propertyType);
155
+ const collectionType =
156
+ standardPrimitive !== undefined
157
+ ? getPrimitiveTypeInstanceFromEnum(standardPrimitive)
158
+ : propertyType;
138
159
  return new CollectionInstanceValue(
139
160
  Multiplicity.ONE,
140
- GenericTypeExplicitReference.create(new GenericType(propertyType)),
161
+ GenericTypeExplicitReference.create(new GenericType(collectionType)),
141
162
  );
142
163
  }
143
164
 
@@ -93,7 +93,8 @@ export type QueryBuilderFilterNodeDropTarget =
93
93
  export type QueryBuilderFilterValueDropTarget =
94
94
  | QueryBuilderVariableDragSource
95
95
  | QueryBuilderProjectionColumnDragSource
96
- | QueryBuilderExplorerTreeDragSource;
96
+ | QueryBuilderExplorerTreeDragSource
97
+ | QueryBuilderExplorerTreeRelationColumnDragSource;
97
98
 
98
99
  export type QueryBuilderFilterConditionRearrangeDropTarget =
99
100
  QueryBuilderFilterConditionDragSource;
@@ -237,6 +238,64 @@ export class FilterPropertyExpressionStateConditionValueState extends FilterCond
237
238
  }
238
239
  }
239
240
 
241
+ // This class is used to represent the value of a filter condition when the value is
242
+ // a relation column accessor (which comes from DND a relation column from the explorer
243
+ // tree or from the fetch structure panel). Used when the filter source is also a
244
+ // relation column, allowing expressions like `$x.colA == $x.colB`.
245
+ export class FilterRelationColumnConditionValueState extends FilterConditionValueState {
246
+ columnName: string;
247
+ columnType: Type;
248
+ columnMultiplicity: Multiplicity;
249
+
250
+ constructor(
251
+ conditionState: FilterConditionState,
252
+ columnName: string,
253
+ columnType: Type,
254
+ columnMultiplicity: Multiplicity,
255
+ ) {
256
+ super(conditionState);
257
+ makeObservable(this, {
258
+ columnName: observable,
259
+ columnType: observable,
260
+ columnMultiplicity: observable,
261
+ changeColumn: action,
262
+ });
263
+ this.columnName = columnName;
264
+ this.columnType = columnType;
265
+ this.columnMultiplicity = columnMultiplicity;
266
+ }
267
+
268
+ override get type(): Type {
269
+ return this.columnType;
270
+ }
271
+
272
+ override get isCollection(): boolean {
273
+ return (
274
+ this.columnMultiplicity.upperBound === undefined ||
275
+ this.columnMultiplicity.upperBound > 1
276
+ );
277
+ }
278
+
279
+ changeColumn(
280
+ columnName: string,
281
+ columnType: Type,
282
+ columnMultiplicity: Multiplicity,
283
+ ): void {
284
+ this.columnName = columnName;
285
+ this.columnType = columnType;
286
+ this.columnMultiplicity = columnMultiplicity;
287
+ }
288
+
289
+ override get hashCode(): string {
290
+ return hashArray([
291
+ QUERY_BUILDER_STATE_HASH_STRUCTURE.FILTER_CONDITION_RIGHT_VALUE_RELATION_COLUMN,
292
+ this.columnName,
293
+ this.columnMultiplicity.lowerBound,
294
+ this.columnMultiplicity.upperBound ?? '',
295
+ ]);
296
+ }
297
+ }
298
+
240
299
  /**
241
300
  * Abstract base class for the left-hand side (source) of a filter condition.
242
301
  * This allows filtering on different source types (class properties, relation columns)
@@ -403,6 +462,7 @@ export class FilterConditionState implements Hashable {
403
462
  addExistsLambdaParamNames: action,
404
463
  buildRightConditionValueFromValueSpec: action,
405
464
  buildRightConditionValueFromPropertyExpressionState: action,
465
+ buildRightConditionValueFromRelationColumn: action,
406
466
  handleTypeaheadSearch: flow,
407
467
  operators: computed,
408
468
  hashCode: computed,
@@ -582,6 +642,32 @@ export class FilterConditionState implements Hashable {
582
642
  }
583
643
  }
584
644
 
645
+ buildRightConditionValueFromRelationColumn(
646
+ columnName: string,
647
+ columnType: Type,
648
+ columnMultiplicity: Multiplicity,
649
+ ): void {
650
+ if (
651
+ this.rightConditionValue instanceof
652
+ FilterRelationColumnConditionValueState
653
+ ) {
654
+ this.rightConditionValue.changeColumn(
655
+ columnName,
656
+ columnType,
657
+ columnMultiplicity,
658
+ );
659
+ } else {
660
+ this.setRightConditionValue(
661
+ new FilterRelationColumnConditionValueState(
662
+ this,
663
+ columnName,
664
+ columnType,
665
+ columnMultiplicity,
666
+ ),
667
+ );
668
+ }
669
+ }
670
+
585
671
  get hashCode(): string {
586
672
  return hashArray([
587
673
  QUERY_BUILDER_STATE_HASH_STRUCTURE.FILTER_CONDITION_STATE,
@@ -24,11 +24,14 @@ import {
24
24
  LambdaFunction,
25
25
  FunctionExpression,
26
26
  RelationColumn,
27
+ Multiplicity,
28
+ VariableExpression,
27
29
  } from '@finos/legend-graph';
28
30
  import { guaranteeType, assertTrue } from '@finos/legend-shared';
29
31
  import {
30
32
  FilterConditionState,
31
33
  FilterPropertyExpressionStateConditionValueState,
34
+ FilterRelationColumnConditionValueState,
32
35
  FilterRelationColumnSourceState,
33
36
  FilterValueSpecConditionValueState,
34
37
  type QueryBuilderFilterState,
@@ -76,6 +79,33 @@ export const buildFilterConditionExpression = (
76
79
  resolvedLambdaParameterName,
77
80
  );
78
81
  expression.parametersValues.push(rightConditionPropertyExpression);
82
+ } else if (
83
+ filterConditionState.rightConditionValue &&
84
+ filterConditionState.rightConditionValue instanceof
85
+ FilterRelationColumnConditionValueState
86
+ ) {
87
+ const rightValue = filterConditionState.rightConditionValue;
88
+ const relationType =
89
+ filterConditionState.filterState.queryBuilderState.sourceRelationType;
90
+ if (!relationType) {
91
+ throw new Error(
92
+ `Can't build expression for relation column '${rightValue.columnName}': no source relation type`,
93
+ );
94
+ }
95
+ const col = relationType.columns.find(
96
+ (c) => c.name === rightValue.columnName,
97
+ );
98
+ if (!col) {
99
+ throw new Error(
100
+ `Can't find column '${rightValue.columnName}' in relation`,
101
+ );
102
+ }
103
+ const colFuncExp = new FunctionExpression(col.name);
104
+ colFuncExp.func = col;
105
+ colFuncExp.parametersValues = [
106
+ new VariableExpression(resolvedLambdaParameterName, Multiplicity.ONE),
107
+ ];
108
+ expression.parametersValues.push(colFuncExp);
79
109
  }
80
110
  return expression;
81
111
  };
@@ -221,6 +251,19 @@ export const buildFilterConditionState = (
221
251
  ),
222
252
  ),
223
253
  );
254
+ } else if (
255
+ value instanceof FunctionExpression &&
256
+ value.func instanceof RelationColumn
257
+ ) {
258
+ const col = value.func;
259
+ filterConditionState.setRightConditionValue(
260
+ new FilterRelationColumnConditionValueState(
261
+ filterConditionState,
262
+ col.name,
263
+ col.genericType.value.rawType,
264
+ col.multiplicity,
265
+ ),
266
+ );
224
267
  } else {
225
268
  filterConditionState.setRightConditionValue(
226
269
  new FilterValueSpecConditionValueState(