@sap/cds-compiler 5.6.0 → 5.7.0
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.
- package/CHANGELOG.md +31 -0
- package/bin/cdsse.js +1 -0
- package/bin/cdsv2m.js +2 -1
- package/doc/Versioning.md +4 -4
- package/lib/api/options.js +1 -0
- package/lib/base/builtins.js +2 -2
- package/lib/base/dictionaries.js +1 -2
- package/lib/base/keywords.js +3 -1
- package/lib/base/lazyload.js +1 -1
- package/lib/base/message-registry.js +169 -144
- package/lib/base/messages.js +69 -59
- package/lib/base/model.js +3 -3
- package/lib/base/node-helpers.js +17 -16
- package/lib/base/optionProcessorHelper.js +13 -14
- package/lib/base/shuffle.js +4 -1
- package/lib/checks/structuredAnnoExpressions.js +1 -1
- package/lib/compiler/assert-consistency.js +1 -1
- package/lib/compiler/builtins.js +2 -1
- package/lib/compiler/extend.js +20 -5
- package/lib/compiler/resolve.js +45 -9
- package/lib/compiler/shared.js +1 -0
- package/lib/edm/annotations/edmJson.js +3 -3
- package/lib/edm/annotations/genericTranslation.js +5 -1
- package/lib/edm/annotations/vocabularyDefinitions.js +2 -2
- package/lib/edm/edmUtils.js +2 -1
- package/lib/gen/BaseParser.js +32 -32
- package/lib/gen/CdlParser.js +2237 -2196
- package/lib/json/from-csn.js +2 -0
- package/lib/json/to-csn.js +13 -4
- package/lib/language/docCommentParser.js +11 -5
- package/lib/language/errorStrategy.js +3 -3
- package/lib/language/genericAntlrParser.js +2 -0
- package/lib/model/csnUtils.js +6 -1
- package/lib/optionProcessor.js +5 -1
- package/lib/parsers/AstBuildingParser.js +151 -72
- package/lib/parsers/CdlGrammar.g4 +125 -83
- package/lib/parsers/Lexer.js +5 -3
- package/lib/parsers/index.js +1 -1
- package/lib/render/toCdl.js +6 -5
- package/lib/render/toHdbcds.js +1 -1
- package/lib/render/toSql.js +5 -3
- package/lib/render/utils/common.js +19 -6
- package/lib/render/utils/standardDatabaseFunctions.js +576 -0
- package/lib/transform/addTenantFields.js +2 -1
- package/lib/transform/db/flattening.js +18 -77
- package/lib/transform/db/groupByOrderBy.js +2 -2
- package/lib/transform/db/rewriteCalculatedElements.js +14 -19
- package/lib/transform/db/temporal.js +2 -1
- package/lib/transform/odata/adaptAnnotationRefs.js +79 -0
- package/lib/transform/odata/createForeignKeys.js +4 -71
- package/lib/transform/odata/flattening.js +11 -1
- package/lib/transform/transformUtils.js +20 -85
- package/package.json +2 -1
- package/bin/cds_update_annotations.js +0 -180
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
// "sloppy": with an upcoming _minor_ version of the compiler, the compilation
|
|
29
29
|
// might lead to an error anyway or the compiled CSN might look different.
|
|
30
30
|
|
|
31
|
+
/* eslint @stylistic/js/no-multi-spaces: 0 */
|
|
32
|
+
/* eslint @stylistic/js/max-len: 0 */
|
|
33
|
+
/* eslint @stylistic/js/key-spacing: 0 */
|
|
34
|
+
|
|
31
35
|
'use strict';
|
|
32
36
|
|
|
33
37
|
const { CompilerAssertion } = require('./error');
|
|
@@ -75,6 +79,7 @@ const centralMessages = {
|
|
|
75
79
|
'def-unexpected-calcview-assoc': { severity: 'Error' },
|
|
76
80
|
'chained-array-of': { severity: 'Error' },
|
|
77
81
|
'def-missing-type': { severity: 'Error', configurableFor: [ 'compile' ] },
|
|
82
|
+
'def-missing-argument': { severity: 'Error' },
|
|
78
83
|
'check-proper-type-of': { severity: 'Info', errorFor: [ 'for.odata', 'to.edmx', 'to.hdbcds', 'to.sql', 'to.hdi', 'to.rename', 'for.effective' ] },
|
|
79
84
|
|
|
80
85
|
'def-duplicate-autoexposed': { severity: 'Error' },
|
|
@@ -127,8 +132,9 @@ const centralMessages = {
|
|
|
127
132
|
'anno-undefined-element': { severity: 'Error' },
|
|
128
133
|
'ref-unknown-var': { severity: 'Info' },
|
|
129
134
|
'ref-obsolete-parameters': { severity: 'Error', configurableFor: 'v4' },
|
|
130
|
-
|
|
135
|
+
// does not hurt us, but makes it tedious to detect parameter refs
|
|
131
136
|
'ref-undefined-param': { severity: 'Error' },
|
|
137
|
+
'ref-undefined-enum': { severity: 'Warning', errorFor: [ 'to.sql', 'to.hdbcds', 'to.hdi' ] },
|
|
132
138
|
'anno-undefined-param': { severity: 'Error' },
|
|
133
139
|
'ref-rejected-on': { severity: 'Error' },
|
|
134
140
|
'ref-expected-element': { severity: 'Error' },
|
|
@@ -205,12 +211,12 @@ const centralMessages = {
|
|
|
205
211
|
'odata-anno-def': { severity: 'Info' },
|
|
206
212
|
'query-ignoring-assoc-in-union': { severity: 'Info' },
|
|
207
213
|
// for to.sql.migration - cannot be supplied by the user!
|
|
208
|
-
'migration-unsupported-precision-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script'] },
|
|
209
|
-
'migration-unsupported-element-drop': { severity: 'Error', configurableFor: [ 'to.sql.migration-script'] },
|
|
210
|
-
'migration-unsupported-length-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script'] },
|
|
211
|
-
'migration-unsupported-scale-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script'] },
|
|
212
|
-
'migration-unsupported-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script'] },
|
|
213
|
-
'migration-unsupported-table-drop': { severity: 'Error', configurableFor: [ 'to.sql.migration-script'] }
|
|
214
|
+
'migration-unsupported-precision-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script' ] },
|
|
215
|
+
'migration-unsupported-element-drop': { severity: 'Error', configurableFor: [ 'to.sql.migration-script' ] },
|
|
216
|
+
'migration-unsupported-length-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script' ] },
|
|
217
|
+
'migration-unsupported-scale-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script' ] },
|
|
218
|
+
'migration-unsupported-change': { severity: 'Error', configurableFor: [ 'to.sql.migration-script' ] },
|
|
219
|
+
'migration-unsupported-table-drop': { severity: 'Error', configurableFor: [ 'to.sql.migration-script' ] },
|
|
214
220
|
// end of to.sql.migration specific
|
|
215
221
|
};
|
|
216
222
|
|
|
@@ -247,7 +253,7 @@ for (const oldName in oldMessageIds) {
|
|
|
247
253
|
|
|
248
254
|
const centralMessageTexts = {
|
|
249
255
|
'api-deprecated-v5': {
|
|
250
|
-
std: 'Support for generating hdbcds output is deprecated with @sap/cds-compiler v5 and later'
|
|
256
|
+
std: 'Support for generating hdbcds output is deprecated with @sap/cds-compiler v5 and later',
|
|
251
257
|
},
|
|
252
258
|
'api-invalid-option': {
|
|
253
259
|
std: 'Invalid option $(NAME)!',
|
|
@@ -256,14 +262,14 @@ const centralMessageTexts = {
|
|
|
256
262
|
value: 'Expected option $(PROP) to have $(VALUE). Found: $(OTHERVALUE)',
|
|
257
263
|
value2: 'Expected option $(OPTION) to have value $(VALUE) or $(RAWVALUE); found: $(OTHERVALUE)',
|
|
258
264
|
type: 'Expected option $(OPTION) to be of type $(VALUE). Found: $(OTHERVALUE)',
|
|
259
|
-
forbidden: 'Option $(OPTION) can\'t be used with API function $(MODULE)'
|
|
265
|
+
forbidden: 'Option $(OPTION) can\'t be used with API function $(MODULE)',
|
|
260
266
|
},
|
|
261
267
|
|
|
262
268
|
'api-invalid-variable-replacement': {
|
|
263
269
|
std: 'Option $(OPTION) does not support $(NAME)',
|
|
264
270
|
user: 'Option $(OPTION) expects $(PROP) instead of $(OTHERPROP). See <https://cap.cloud.sap/docs/guides/databases#configuring-variables> for details',
|
|
265
271
|
locale: 'Option $(OPTION) expects $(PROP) instead of $(OTHERPROP). See <https://cap.cloud.sap/docs/guides/databases#configuring-variables> for details',
|
|
266
|
-
|
|
272
|
+
noDollar: 'Option $(OPTION) does not know $(NAME). Did you forget a leading $(CODE)?',
|
|
267
273
|
},
|
|
268
274
|
|
|
269
275
|
'api-invalid-combination': {
|
|
@@ -325,7 +331,7 @@ const centralMessageTexts = {
|
|
|
325
331
|
},
|
|
326
332
|
|
|
327
333
|
'name-duplicate-element': {
|
|
328
|
-
|
|
334
|
+
std: 'Generated element $(NAME) conflicts with another element',
|
|
329
335
|
'flatten-element-gen': 'Generated element $(NAME) conflicts with other generated element',
|
|
330
336
|
'flatten-element-exist': 'Flattened name of structured element conflicts with existing element $(NAME)',
|
|
331
337
|
'flatten-fkey-gen': 'Duplicate definition of foreign key element $(NAME) for association $(ART)',
|
|
@@ -341,7 +347,7 @@ const centralMessageTexts = {
|
|
|
341
347
|
'name-missing-alias': {
|
|
342
348
|
std: 'Missing table alias for this subquery',
|
|
343
349
|
duplicate: 'Missing table alias for this subquery; add $(CODE) to fix name clash of internal and explicit table alias',
|
|
344
|
-
hdbcds: 'Missing table alias for a subquery; SAP HANA CDS requires table aliases'
|
|
350
|
+
hdbcds: 'Missing table alias for a subquery; SAP HANA CDS requires table aliases',
|
|
345
351
|
},
|
|
346
352
|
|
|
347
353
|
// Syntax messages, both CDL and CSN parser: ----------------------------------
|
|
@@ -361,7 +367,7 @@ const centralMessageTexts = {
|
|
|
361
367
|
'or-asterisk': 'Expecting a non-negative integer or string $(OP) for property $(PROP)',
|
|
362
368
|
},
|
|
363
369
|
'syntax-ignoring-decimal': {
|
|
364
|
-
std: 'Ignoring decimal places, because an integer was expected'
|
|
370
|
+
std: 'Ignoring decimal places, because an integer was expected',
|
|
365
371
|
},
|
|
366
372
|
'syntax-unexpected-anno': {
|
|
367
373
|
std: 'Annotations can\'t be used in a column with $(CODE)',
|
|
@@ -382,19 +388,19 @@ const centralMessageTexts = {
|
|
|
382
388
|
type: 'The dot-separated element name parts in property $(PROP) must not be empty', // CSN v0
|
|
383
389
|
},
|
|
384
390
|
'syntax-invalid-literal': {
|
|
385
|
-
|
|
391
|
+
std: 'Invalid literal value',
|
|
386
392
|
'uneven-hex': 'A binary literal must have an even number of characters',
|
|
387
393
|
'invalid-hex': 'A binary literal must only contain characters ‹0-9›, ‹a-f› and ‹A-F›',
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
+
time: 'A time literal must look like ‹hh:mm:ss› or ‹hh:mm› where each letter represents a digit. A timezone is optional',
|
|
395
|
+
date: 'A date literal must look like ‹YYYY-MM-DD› where each letter represents a digit',
|
|
396
|
+
timestamp: 'A timestamp literal must look like ‹YYYY-MM-DD hh:mm:ss.u…u› or ‹YYYY-MM-DD hh:mm› where each letter represents a digit, ‹u…u› represents 1 to 7 digits. A timezone is optional',
|
|
397
|
+
number: 'The string value in property $(PROP) does not represent a number',
|
|
398
|
+
expecting: 'Expecting literal type $(OP) for the value in property $(OTHERPROP)',
|
|
399
|
+
typeof: 'String $(RAWVALUE) is no valid literal type for the string value in property $(OTHERPROP)',
|
|
394
400
|
},
|
|
395
401
|
'syntax-invalid-source': {
|
|
396
402
|
std: 'The given source is invalid', // unused
|
|
397
|
-
'cdl-stackoverflow': 'The parser ran into a stack overflow. Does your CDS file contain too many nested artifacts?'
|
|
403
|
+
'cdl-stackoverflow': 'The parser ran into a stack overflow. Does your CDS file contain too many nested artifacts?',
|
|
398
404
|
},
|
|
399
405
|
'syntax-missing-ellipsis': 'Expecting an array item $(NEWCODE) after an item with $(CODE)',
|
|
400
406
|
'syntax-unexpected-ellipsis': {
|
|
@@ -403,6 +409,12 @@ const centralMessageTexts = {
|
|
|
403
409
|
'csn-duplicate': 'Unexpected object with property $(PROP) after previous array item $(CODE)',
|
|
404
410
|
'csn-nested': 'Unexpected object with property $(PROP) in nested array',
|
|
405
411
|
},
|
|
412
|
+
'syntax-invalid-anno': {
|
|
413
|
+
std: 'Unexpected $(OFFENDING), invalid annotation value, expecting $(EXPECTING)',
|
|
414
|
+
empty: 'Unexpected $(OFFENDING), empty structure flattens to nothing, expecting $(EXPECTING)',
|
|
415
|
+
ellipsis: 'Unexpected $(OFFENDING) in inner array value, expecting $(EXPECTING)',
|
|
416
|
+
bracket: 'Missing array item $(CODE) before $(OFFENDING), expecting $(EXPECTING)',
|
|
417
|
+
},
|
|
406
418
|
'syntax-unsupported-masked': { // configurable Error
|
|
407
419
|
std: 'The keyword $(KEYWORD) is not supported',
|
|
408
420
|
csn: 'The property $(PROP) is not supported',
|
|
@@ -442,16 +454,24 @@ const centralMessageTexts = {
|
|
|
442
454
|
'syntax-invalid-text-block': 'Missing newline in text block',
|
|
443
455
|
// 'syntax-missing-newline' (Warning), 'syntax-missing-as',
|
|
444
456
|
// 'syntax-missing-token'
|
|
445
|
-
'syntax-unexpected-extension':
|
|
457
|
+
'syntax-unexpected-extension': {
|
|
458
|
+
std: 'Unexpected $(KEYWORD) inside $(CODE) block',
|
|
459
|
+
'new-parser': 'Unexpected $(OFFENDING) inside $(CODE) block, expecting $(EXPECTING)',
|
|
460
|
+
},
|
|
446
461
|
'syntax-unexpected-null': 'Keyword $(KEYWORD) must appear after the enum definition and not before',
|
|
447
462
|
'syntax-unexpected-token': {
|
|
448
463
|
std: 'Mismatched $(OFFENDING), expecting $(EXPECTING)',
|
|
449
|
-
unwanted: 'Extraneous $(OFFENDING), expecting $(EXPECTING)'
|
|
464
|
+
unwanted: 'Extraneous $(OFFENDING), expecting $(EXPECTING)',
|
|
465
|
+
noRepeatedCardinality: 'Unexpected $(OFFENDING), cardinality already provided at $(LOCATION) via $(CODE), expecting $(EXPECTING)',
|
|
466
|
+
nestedExpand: 'Unexpected $(OFFENDING), nested projections are valid after a reference only, expecting $(EXPECTING)',
|
|
450
467
|
},
|
|
451
468
|
'syntax-unexpected-vocabulary': {
|
|
452
|
-
std: 'Annotations can\'t be defined inside contexts or services', //
|
|
469
|
+
std: 'Annotations can\'t be defined inside contexts or services', // used inside extensions
|
|
453
470
|
service: 'Annotations can\'t be defined inside services',
|
|
454
471
|
context: 'Annotations can\'t be defined inside contexts',
|
|
472
|
+
'extend-new': 'Unexpected $(OFFENDING) definition inside a context or service, expecting $(EXPECTING)',
|
|
473
|
+
'service-new': 'Unexpected $(OFFENDING) definition inside a service, expecting $(EXPECTING)',
|
|
474
|
+
'context-new': 'Unexpected $(OFFENDING) definition inside a context, expecting $(EXPECTING)',
|
|
455
475
|
},
|
|
456
476
|
// 'syntax-unexpected-alias' (is 'syntax-unexpected-property' in CSN)
|
|
457
477
|
'syntax-unsupported-param': {
|
|
@@ -471,7 +491,7 @@ const centralMessageTexts = {
|
|
|
471
491
|
},
|
|
472
492
|
'syntax-deprecated-property': { // Configurable error
|
|
473
493
|
std: 'Deprecated property $(PROP)', // unused
|
|
474
|
-
|
|
494
|
+
zero: 'Deprecated CSN v0.1.0 property $(PROP) is ignored',
|
|
475
495
|
'zero-replace': 'Replace CSN v0.1.0 property $(PROP) by $(OTHERPROP)',
|
|
476
496
|
},
|
|
477
497
|
'syntax-deprecated-value': { // Configurable error
|
|
@@ -557,7 +577,7 @@ const centralMessageTexts = {
|
|
|
557
577
|
std: 'Calculated elements are not supported, yet',
|
|
558
578
|
nested: 'Calculated elements in structures are not supported, yet',
|
|
559
579
|
'on-write': 'Calculated elements on-write are not supported, yet',
|
|
560
|
-
|
|
580
|
+
hdbcds: 'Calculated elements on-write are not supported for HDBCDS',
|
|
561
581
|
},
|
|
562
582
|
// 'syntax-unknown-property' (Warning? Better configurable Error)
|
|
563
583
|
|
|
@@ -583,7 +603,7 @@ const centralMessageTexts = {
|
|
|
583
603
|
'ref-deprecated-orderby': 'Replace source element reference $(ID) by $(NEWCODE); auto-corrected',
|
|
584
604
|
'ref-missing-self-counterpart' : {
|
|
585
605
|
std: 'Expected to find a matching element in $self-comparison for foreign key $(PROP) of association $(NAME)',
|
|
586
|
-
unmanaged: 'Expected to find a matching element in $self-comparison for $(PROP) of association $(NAME)'
|
|
606
|
+
unmanaged: 'Expected to find a matching element in $self-comparison for $(PROP) of association $(NAME)',
|
|
587
607
|
},
|
|
588
608
|
'ref-unexpected-self': {
|
|
589
609
|
std: 'Unexpected $(ID) reference; is valid only in ON-conditions of unmanaged associations',
|
|
@@ -622,7 +642,7 @@ const centralMessageTexts = {
|
|
|
622
642
|
aspect: 'Element $(ID) has not been found in the anonymous target aspect',
|
|
623
643
|
query: 'The current query has no element $(ART)',
|
|
624
644
|
alias: 'Element $(ART) has not been found in the sub query for alias $(ALIAS)',
|
|
625
|
-
virtual: 'Element $(ART) has not been found. Use $(CODE) to add virtual elements in queries'
|
|
645
|
+
virtual: 'Element $(ART) has not been found. Use $(CODE) to add virtual elements in queries',
|
|
626
646
|
},
|
|
627
647
|
'anno-undefined-element': {
|
|
628
648
|
std: 'Element $(ART) has not been found',
|
|
@@ -638,8 +658,9 @@ const centralMessageTexts = {
|
|
|
638
658
|
self: 'Variable $(ID) has not been found. Use $(ALIAS) to refer an element with the same name',
|
|
639
659
|
value: 'No value found for variable $(ID). Use option $(OPTION) to specify a value for $(ID)',
|
|
640
660
|
},
|
|
661
|
+
'ref-undefined-enum' : 'Enum symbol $(ID) is not defined in $(TYPE)',
|
|
641
662
|
'ref-unknown-var': {
|
|
642
|
-
std: 'No replacement found for special variable $(ID)'
|
|
663
|
+
std: 'No replacement found for special variable $(ID)',
|
|
643
664
|
},
|
|
644
665
|
'ref-unexpected-draft-enabled': 'Composition in draft-enabled entity can\'t lead to another entity with $(ANNO)',
|
|
645
666
|
'ref-rejected-on': { // TODO: currently not used - just remove?
|
|
@@ -683,7 +704,7 @@ const centralMessageTexts = {
|
|
|
683
704
|
'assoc-stored': 'Associations and compositions can\'t be used as values in stored calculated elements',
|
|
684
705
|
|
|
685
706
|
'managed-filter': 'Unexpected managed association $(NAME) in filter expression of $(ID)',
|
|
686
|
-
'unmanaged-filter': 'Unexpected unmanaged association $(NAME) in filter expression of $(ID)'
|
|
707
|
+
'unmanaged-filter': 'Unexpected unmanaged association $(NAME) in filter expression of $(ID)',
|
|
687
708
|
},
|
|
688
709
|
'ref-unexpected-calculated': {
|
|
689
710
|
std: 'Unexpected reference to calculated element',
|
|
@@ -705,30 +726,30 @@ const centralMessageTexts = {
|
|
|
705
726
|
'ref-unexpected-filter': {
|
|
706
727
|
std: 'Unexpected filter in path $(ELEMREF)', // unused
|
|
707
728
|
'on-condition': 'ON-conditions must not contain filters, step $(ID) of path $(ELEMREF)',
|
|
708
|
-
calc: 'Unexpected filter in path $(ELEMREF) of stored calculated element; only simple paths can be used here'
|
|
729
|
+
calc: 'Unexpected filter in path $(ELEMREF) of stored calculated element; only simple paths can be used here',
|
|
709
730
|
},
|
|
710
731
|
'ref-unexpected-args': {
|
|
711
732
|
std: 'Unexpected arguments in path $(ELEMREF)', // unused
|
|
712
733
|
'on-condition': 'ON-conditions must not contain parameters, step $(ID) of path $(ELEMREF)',
|
|
713
|
-
calc: 'Unexpected arguments in path $(ELEMREF) of stored calculated element; only simple paths can be used here'
|
|
734
|
+
calc: 'Unexpected arguments in path $(ELEMREF) of stored calculated element; only simple paths can be used here',
|
|
714
735
|
},
|
|
715
736
|
'ref-unsupported-type': {
|
|
716
737
|
std: 'Type $(TYPE) is not supported',
|
|
717
738
|
dialect: 'Type $(TYPE) is not supported for SQL dialect $(VALUE)',
|
|
718
739
|
hana: 'Type $(TYPE) is only supported for SQL dialect $(VALUE), not $(OTHERVALUE)',
|
|
719
740
|
hdbcds:'Type $(TYPE) is not supported in HDBCDS',
|
|
720
|
-
odata: 'Type $(TYPE) is not supported for OData $(VERSION)'
|
|
741
|
+
odata: 'Type $(TYPE) is not supported for OData $(VERSION)',
|
|
721
742
|
},
|
|
722
743
|
'ref-unexpected-var': {
|
|
723
744
|
std: 'Variable $(NAME) can\'t be used here',
|
|
724
|
-
|
|
745
|
+
annotation: 'Variable $(NAME) can only be used in annotation values',
|
|
725
746
|
},
|
|
726
747
|
|
|
727
748
|
'rewrite-not-supported': {
|
|
728
749
|
// TODO: Better text ?
|
|
729
750
|
std: 'The ON-condition is not rewritten here - provide an explicit ON-condition',
|
|
730
751
|
'inline-expand': 'The ON-condition is not rewritten in nested projections - provide an explicit ON-condition',
|
|
731
|
-
|
|
752
|
+
secondary: 'The ON-condition is not rewritten due to multiple associations in this path - provide an explicit ON-condition',
|
|
732
753
|
},
|
|
733
754
|
'rewrite-not-projected': {
|
|
734
755
|
std: 'Projected association $(NAME) uses non-projected element $(ELEMREF)',
|
|
@@ -736,7 +757,7 @@ const centralMessageTexts = {
|
|
|
736
757
|
},
|
|
737
758
|
'type-unsupported-rewrite': {
|
|
738
759
|
std: 'Rewriting the ON-condition not supported here', // unused: merge with 'rewrite-not-supported'
|
|
739
|
-
'sub-element': 'Rewriting the ON-condition of unmanaged association in sub element is not supported'
|
|
760
|
+
'sub-element': 'Rewriting the ON-condition of unmanaged association in sub element is not supported',
|
|
740
761
|
},
|
|
741
762
|
'rewrite-undefined-key': 'Expected element $(ID) to be available in $(TARGET), as it is required to match the foreign key of $(NAME)',
|
|
742
763
|
|
|
@@ -780,8 +801,8 @@ const centralMessageTexts = {
|
|
|
780
801
|
std: 'Unexpected $(KEYWORD) on an association/composition', // unused
|
|
781
802
|
multi: 'Unexpected $(KEYWORD); expected exactly one foreign key in combination with default value, but found $(COUNT)',
|
|
782
803
|
structuredKey: 'Unexpected $(KEYWORD) in combination with structured foreign key $(NAME); $(KEYWORD) requires a non-structured foreign key',
|
|
783
|
-
|
|
784
|
-
|
|
804
|
+
onCond: 'Unexpected $(KEYWORD) on an association/composition with ON-condition; $(KEYWORD) requires exactly one foreign key',
|
|
805
|
+
targetAspect: 'Unexpected $(KEYWORD) on composition of aspect',
|
|
785
806
|
map: 'Unexpected $(KEYWORD) for type $(TYPE)',
|
|
786
807
|
},
|
|
787
808
|
'type-expecting-service-target': {
|
|
@@ -805,17 +826,17 @@ const centralMessageTexts = {
|
|
|
805
826
|
'ext-undefined-key': 'Foreign key $(NAME) has not been found',
|
|
806
827
|
'ext-undefined-action': {
|
|
807
828
|
std: 'Action $(ART) has not been found',
|
|
808
|
-
action: 'Artifact $(ART) has no action $(NAME)'
|
|
829
|
+
action: 'Artifact $(ART) has no action $(NAME)',
|
|
809
830
|
},
|
|
810
831
|
'ext-undefined-param': {
|
|
811
832
|
std: 'Parameter $(ART) has not been found',
|
|
812
|
-
param: 'Artifact $(ART) has no parameter $(NAME)'
|
|
833
|
+
param: 'Artifact $(ART) has no parameter $(NAME)',
|
|
813
834
|
},
|
|
814
835
|
|
|
815
836
|
// annotation checks against their definition
|
|
816
837
|
'anno-expecting-value': {
|
|
817
|
-
|
|
818
|
-
|
|
838
|
+
std: 'Expecting a value for the annotation; see annotation definition for $(ANNO)',
|
|
839
|
+
type: 'Expecting a value of type $(TYPE) for the annotation',
|
|
819
840
|
},
|
|
820
841
|
|
|
821
842
|
'def-unexpected-paramview-assoc': {
|
|
@@ -831,8 +852,8 @@ const centralMessageTexts = {
|
|
|
831
852
|
},
|
|
832
853
|
'def-unexpected-calcview-assoc': {
|
|
833
854
|
std: 'unused',
|
|
834
|
-
|
|
835
|
-
|
|
855
|
+
source: 'Unexpected definition of an association in an entity annotated with $(ANNO)',
|
|
856
|
+
target: 'Expected association target not to be annotated with $(ANNO)',
|
|
836
857
|
},
|
|
837
858
|
'def-invalid-key': {
|
|
838
859
|
std: 'The current element can\'t be defined as primary key', // (unused)
|
|
@@ -865,7 +886,12 @@ const centralMessageTexts = {
|
|
|
865
886
|
|
|
866
887
|
'def-missing-element': {
|
|
867
888
|
std: 'Expecting entity to have at least one element which is neither virtual nor calculated',
|
|
868
|
-
view: 'Expecting view to have at least one non-virtual element'
|
|
889
|
+
view: 'Expecting view to have at least one non-virtual element',
|
|
890
|
+
},
|
|
891
|
+
|
|
892
|
+
'def-missing-argument': {
|
|
893
|
+
std: 'Expected function $(NAME) to have $(N) arguments, received $(LITERAL)',
|
|
894
|
+
alternative: 'Expected function $(NAME) to have $(N) or $(M) arguments, received $(LITERAL)',
|
|
869
895
|
},
|
|
870
896
|
|
|
871
897
|
'def-invalid-texts-aspect': {
|
|
@@ -873,7 +899,7 @@ const centralMessageTexts = {
|
|
|
873
899
|
'no-aspect': '$(ART) must be an aspect',
|
|
874
900
|
key: '$(ART) must be a key',
|
|
875
901
|
'no-key': '$(ART) must not be key',
|
|
876
|
-
|
|
902
|
+
missing: '$(ART) must have an element $(NAME)',
|
|
877
903
|
},
|
|
878
904
|
'def-invalid-element-type': {
|
|
879
905
|
std: 'Element $(ELEMREF) of $(ART) must be of type $(TYPE)',
|
|
@@ -961,7 +987,7 @@ const centralMessageTexts = {
|
|
|
961
987
|
'ext-duplicate-extend-type-unrelated-layer': 'Duplicate type extension for type $(TYPE)',
|
|
962
988
|
'ext-invalid-type-property': {
|
|
963
989
|
std: 'Type property $(PROP) can only be extended',
|
|
964
|
-
|
|
990
|
+
indirect: 'Type property $(PROP) can only be extended if directly provided at the definition',
|
|
965
991
|
'new-prop': 'Type property $(PROP) can only be extended, not added',
|
|
966
992
|
string: 'Only numerical properties can be extended, but found string for $(PROP)',
|
|
967
993
|
number: 'Value of type property $(PROP) must be $(NUMBER) or higher, it can\'t be smaller than originally provided',
|
|
@@ -979,11 +1005,11 @@ const centralMessageTexts = {
|
|
|
979
1005
|
std: 'Target $(TARGET) of $(NAME) is missing element $(ID); use $(KEYWORD) with an explicit ON-condition',
|
|
980
1006
|
redirected: 'Target $(TARGET) of $(NAME) is missing element $(ID); add an ON-condition to $(KEYWORD)',
|
|
981
1007
|
},
|
|
982
|
-
'query-unexpected-assoc-hdbcds': 'Publishing a managed association in a view is not possible for “hdbcds” naming mode',
|
|
983
|
-
'query-unexpected-structure-hdbcds': 'Publishing a structured element in a view is not possible for “hdbcds” naming mode',
|
|
1008
|
+
'query-unexpected-assoc-hdbcds': 'Publishing a managed association in a view is not possible for “hdbcds” naming mode', // eslint-disable-line cds-compiler/message-no-quotes
|
|
1009
|
+
'query-unexpected-structure-hdbcds': 'Publishing a structured element in a view is not possible for “hdbcds” naming mode', // eslint-disable-line cds-compiler/message-no-quotes
|
|
984
1010
|
'query-ignoring-param-nullability': {
|
|
985
1011
|
std: 'Ignoring nullability constraint on parameter when generating SAP HANA CDS view',
|
|
986
|
-
sql: 'Ignoring nullability constraint on parameter when generating SQL view'
|
|
1012
|
+
sql: 'Ignoring nullability constraint on parameter when generating SQL view',
|
|
987
1013
|
},
|
|
988
1014
|
'query-ignoring-filter': {
|
|
989
1015
|
std: 'Ignoring filter on published association due to explicit redirection', // unused
|
|
@@ -996,7 +1022,7 @@ const centralMessageTexts = {
|
|
|
996
1022
|
},
|
|
997
1023
|
'query-unsupported-calc': {
|
|
998
1024
|
std: 'Using nested projections next to calculated elements is not supported, yet',
|
|
999
|
-
inside: 'Using calculated elements in nested projections is not supported, yet'
|
|
1025
|
+
inside: 'Using calculated elements in nested projections is not supported, yet',
|
|
1000
1026
|
},
|
|
1001
1027
|
'query-mismatched-element': {
|
|
1002
1028
|
std: 'Specified element $(NAME) differs from inferred element in property $(PROP)',
|
|
@@ -1017,8 +1043,8 @@ const centralMessageTexts = {
|
|
|
1017
1043
|
calculatedElement: 'Unexpected property $(PROP) in the specified element $(NAME); calculated elements are not supported in queries',
|
|
1018
1044
|
},
|
|
1019
1045
|
'query-ignoring-assoc-in-union': {
|
|
1020
|
-
|
|
1021
|
-
|
|
1046
|
+
managed: 'Ignoring managed association $(NAME) that is published in a UNION',
|
|
1047
|
+
std: 'Ignoring association $(NAME) that is published in a UNION',
|
|
1022
1048
|
},
|
|
1023
1049
|
'query-missing-element': {
|
|
1024
1050
|
std: 'Element $(ID) is missing in specified elements',
|
|
@@ -1060,7 +1086,7 @@ const centralMessageTexts = {
|
|
|
1060
1086
|
|
|
1061
1087
|
'type-unsupported-key-sqlite': {
|
|
1062
1088
|
std: 'Added element $(ID) is a primary key change and will not work with dialect $(NAME)',
|
|
1063
|
-
changed: 'Changed element $(ID) is a primary key change and will not work with dialect $(NAME)'
|
|
1089
|
+
changed: 'Changed element $(ID) is a primary key change and will not work with dialect $(NAME)',
|
|
1064
1090
|
},
|
|
1065
1091
|
|
|
1066
1092
|
'type-invalid-cast': {
|
|
@@ -1070,7 +1096,7 @@ const centralMessageTexts = {
|
|
|
1070
1096
|
'expr-to-structure': 'Can\'t cast an expression to a structured type',
|
|
1071
1097
|
'val-to-structure': 'Can\'t cast $(VALUE) to a structured type',
|
|
1072
1098
|
'from-assoc': 'Invalid type cast on an association',
|
|
1073
|
-
|
|
1099
|
+
assoc: 'Can\'t cast to an association',
|
|
1074
1100
|
},
|
|
1075
1101
|
|
|
1076
1102
|
// -----------------------------------------------------------------------------------
|
|
@@ -1119,9 +1145,9 @@ const centralMessageTexts = {
|
|
|
1119
1145
|
'odata-spec-violation-constraints': 'Partial referential constraints produced for OData $(VERSION)',
|
|
1120
1146
|
'odata-spec-violation-id': {
|
|
1121
1147
|
std: 'Expected EDM name $(ID) to start with an alphabetic character or underscore, followed by a maximum of 127 alphabetic characters, digits, or underscores',
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1148
|
+
v2firstchar: 'Unexpected first character $(PROP) of EDM Name $(ID) for OData $(VERSION)',
|
|
1149
|
+
qualifier: 'Expected annotation qualifier $(ID) to start with an alphabetic character or underscore, followed by a maximum of 127 alphabetic characters, digits, or underscores',
|
|
1150
|
+
vocrefalias: 'Expected value $(VALUE) of vocabulary reference attribute $(ID) to start with an alphabetic character or underscore, followed by a maximum of 127 alphabetic characters, digits, or underscores',
|
|
1125
1151
|
},
|
|
1126
1152
|
// version independent messages
|
|
1127
1153
|
'odata-spec-violation-key-array': {
|
|
@@ -1134,7 +1160,7 @@ const centralMessageTexts = {
|
|
|
1134
1160
|
},
|
|
1135
1161
|
'odata-spec-violation-key-type': {
|
|
1136
1162
|
std: 'Unexpected $(TYPE) mapped to $(ID) as type for key element $(NAME)', // structured
|
|
1137
|
-
scalar: 'Unexpected $(TYPE) mapped to $(ID) as type for key element' // flat
|
|
1163
|
+
scalar: 'Unexpected $(TYPE) mapped to $(ID) as type for key element', // flat
|
|
1138
1164
|
},
|
|
1139
1165
|
'odata-spec-violation-no-key': 'Expected entity to have a primary key',
|
|
1140
1166
|
'odata-spec-violation-type-unknown': 'Unknown EDM Type $(TYPE)',
|
|
@@ -1146,7 +1172,7 @@ const centralMessageTexts = {
|
|
|
1146
1172
|
facet_anno: 'Unexpected EDM Type facet $(NAME) of type $(TYPE) for OData $(VERSION) in $(ANNO)',
|
|
1147
1173
|
external: 'Referenced type $(TYPE) marked as $(ANNO) can\'t be rendered as $(CODE) in service $(NAME) for OData $(VERSION)',
|
|
1148
1174
|
scale: 'Expected scale $(NUMBER) to be less than or equal to precision $(RAWVALUE)',
|
|
1149
|
-
scale_anno: 'Expected scale $(NUMBER) to be less than or equal to precision $(RAWVALUE) in $(ANNO)'
|
|
1175
|
+
scale_anno: 'Expected scale $(NUMBER) to be less than or equal to precision $(RAWVALUE) in $(ANNO)',
|
|
1150
1176
|
},
|
|
1151
1177
|
'odata-spec-violation-property-name': 'Expected element name to be different from declaring $(META)',
|
|
1152
1178
|
'odata-spec-violation-namespace': {
|
|
@@ -1162,15 +1188,15 @@ const centralMessageTexts = {
|
|
|
1162
1188
|
},
|
|
1163
1189
|
'odata-navigation': {
|
|
1164
1190
|
std: 'No OData navigation property generated, target $(TARGET) is outside of service $(SERVICE)',
|
|
1165
|
-
oncond: 'No OData navigation property generated for association with arbitrary ON-condition and target $(TARGET) outside of service $(SERVICE)'
|
|
1191
|
+
oncond: 'No OData navigation property generated for association with arbitrary ON-condition and target $(TARGET) outside of service $(SERVICE)',
|
|
1166
1192
|
},
|
|
1167
1193
|
'odata-parameter-order': 'Unexpected mandatory after optional parameter',
|
|
1168
1194
|
'odata-key-recursive': 'Unexpected recursive key $(NAME)',
|
|
1169
1195
|
'odata-key-uuid-default-anno': 'Expected element of type $(TYPE) to be annotated with $(ANNO) when used as primary key in $(ID)',
|
|
1170
1196
|
'odata-ignoring-param-default': {
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1197
|
+
std: 'Ignoring default value',
|
|
1198
|
+
xpr: 'Ignoring unexpected expression as default value',
|
|
1199
|
+
colitem: 'Ignoring unexpected default value for a structured or collection like parameter',
|
|
1174
1200
|
},
|
|
1175
1201
|
// -----------------------------------------------------------------------------------
|
|
1176
1202
|
// All odata-anno MUST have a '$(ANNO)' parameter to indicate error location
|
|
@@ -1178,101 +1204,100 @@ const centralMessageTexts = {
|
|
|
1178
1204
|
// Annotation Preprocessing:
|
|
1179
1205
|
// -----------------------------------------------------------------------------------
|
|
1180
1206
|
'odata-anno-preproc': {
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1207
|
+
std: 'unused message text',
|
|
1208
|
+
nokey: 'Expected target $(NAME) to have a key element for $(ANNO)',
|
|
1209
|
+
multkeys: 'Expected target $(NAME) to have only one key element for $(ANNO)',
|
|
1210
|
+
vhlnokey: 'Expected value help list entity $(NAME) to have a key element for $(ANNO)',
|
|
1211
|
+
vhlmultkeys: 'Expected value help list entity $(NAME) to have only one key element for $(ANNO)',
|
|
1212
|
+
notforentity: 'Unexpected usage of $(ANNO) for an entity',
|
|
1213
|
+
viaassoc: 'Expected value to be a path for $(ANNO)',
|
|
1214
|
+
noassoc: 'Expected association $(ID) to exist for $(ANNO)',
|
|
1215
|
+
vallistignored: '$(NAME) is ignored for $(ANNO) as $(CODE) is present',
|
|
1216
|
+
notastring: 'Expected value to be a string for $(ANNO)',
|
|
1217
|
+
notexist: 'Expected entity $(ID) to exist for $(ANNO)',
|
|
1218
|
+
txtarr: 'Expected $(ANNO) shortcut to have a $(NAME) annotation',
|
|
1193
1219
|
},
|
|
1194
1220
|
// -----------------------------------------------------------------------------------
|
|
1195
1221
|
// GenericTranslation:
|
|
1196
1222
|
// -----------------------------------------------------------------------------------
|
|
1197
1223
|
'odata-anno-dict': {
|
|
1198
1224
|
// ANNO w/o sub elements, term qualifiers and context stack
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1225
|
+
std: 'Vocabulary dictionary inconsistency: Type $(TYPE) not found for $(ANNO)',
|
|
1226
|
+
experimental: '$(ANNO) is experimental and can be changed or removed at any time, do not use productively!',
|
|
1227
|
+
redefinition: '$(ANNO) is an official OASIS/SAP annotation and can\'t be redefined',
|
|
1202
1228
|
},
|
|
1203
1229
|
'odata-anno-vocref': {
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1230
|
+
std: 'Vocabulary reference $(ID) doesn\'t match alias $(NAME), reference is ignored',
|
|
1231
|
+
redef: 'Vocabulary reference $(ID) is the alias of the official OASIS/SAP vocabulary $(TYPE) which can\'t be redefined, reference is ignored',
|
|
1232
|
+
service: 'Vocabulary reference collides with service $(NAME), reference is ignored',
|
|
1233
|
+
malformed: 'Vocabulary reference $(ID) has invalid or missing value for attribute $(NAME), reference is ignored',
|
|
1208
1234
|
},
|
|
1209
1235
|
'odata-anno-dict-enum': {
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1236
|
+
std : 'Unexpected annotation definition $(NAME) with many enum type',
|
|
1237
|
+
type: 'Unexpected annotation definition $(NAME) with many enum type $(TYPE)',
|
|
1238
|
+
value: 'Expected all enum elements of type $(TYPE) to have a value in annotation definition $(NAME)',
|
|
1213
1239
|
},
|
|
1214
1240
|
'odata-anno-value': {
|
|
1215
|
-
|
|
1241
|
+
nested: 'Missing $(STR) annotation for $(ANNO)',
|
|
1216
1242
|
// -----------------------------------------------------------------------------------
|
|
1217
1243
|
// All messages of odata-anno-value below here MUST have $(ANNO) filled with msgctx.anno
|
|
1218
1244
|
// -----------------------------------------------------------------------------------
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1245
|
+
enum: 'Value $(VALUE) is not one out of $(RAWVALUES) for $(ANNO) of type $(TYPE)',
|
|
1246
|
+
std: 'Unexpected value $(VALUE) for $(ANNO) of type $(TYPE)',
|
|
1247
|
+
incompval: 'Unexpected $(STR) value for $(ANNO) of type $(TYPE)',
|
|
1248
|
+
nestedcollection: 'Nested collections are not supported for $(ANNO)',
|
|
1249
|
+
enumincollection: 'Enum inside collection is not supported for $(ANNO)',
|
|
1250
|
+
multexpr: 'EDM JSON code contains more than one dynamic expression: $(RAWVALUES) for $(ANNO)',
|
|
1225
1251
|
},
|
|
1226
1252
|
'odata-anno-type': {
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1253
|
+
std: '$(NAME) is not a known property for $(ANNO) of type $(TYPE)',
|
|
1254
|
+
unknown: '$(TYPE) is not a known vocabulary type for $(ANNO)',
|
|
1255
|
+
abstract: 'Unexpected abstract type $(TYPE) for $(ANNO), use $(CODE) to specify a concrete type',
|
|
1256
|
+
derived: 'Expected specified $(TYPE) to be derived from $(NAME) for $(ANNO)',
|
|
1257
|
+
literal: 'Expected value $(RAWVALUE) of specified $(CODE) to be a string literal for $(ANNO)',
|
|
1232
1258
|
},
|
|
1233
1259
|
'odata-anno-def': {
|
|
1234
1260
|
// All $(ANNO) w/o sub elements, term qualifiers and context stack
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1261
|
+
std: '$(ANNO) is not a known annotation in an official OASIS/SAP namespace',
|
|
1262
|
+
deprecated: '$(ANNO) is deprecated. $(DEPR)',
|
|
1263
|
+
notapplied: '$(ANNO) is not applied (AppliesTo: $(RAWVALUES))',
|
|
1238
1264
|
},
|
|
1239
1265
|
'odata-anno-xpr': {
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
}
|
|
1246
|
-
,
|
|
1266
|
+
std: 'unused',
|
|
1267
|
+
notadynexpr: '$(OP) is not a renderable dynamic expression in $(ANNO)',
|
|
1268
|
+
use: 'Function $(OP) is not a renderable dynamic expression in $(ANNO), use $(CODE) instead',
|
|
1269
|
+
canonfuncalias: 'Expected function name $(CODE) to be of the form $(META).$(OTHERMETA) for $(OP) in $(ANNO)',
|
|
1270
|
+
unexpected: 'Unexpected expression in $(ANNO)',
|
|
1271
|
+
},
|
|
1247
1272
|
'odata-anno-xpr-type': {
|
|
1248
|
-
|
|
1249
|
-
|
|
1273
|
+
std: 'Expected one qualified type name for $(OP) in $(ANNO)',
|
|
1274
|
+
edm: 'Expected a qualified EDM type name for $(OP) in $(ANNO) but found $(TYPE)',
|
|
1250
1275
|
},
|
|
1251
1276
|
'odata-anno-xpr-args': {
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1277
|
+
std: 'Unexpected arguments for $(OP) in $(ANNO)',
|
|
1278
|
+
exactly: 'Expected exactly $(COUNT) argument(s) for $(OP) in $(ANNO)',
|
|
1279
|
+
atleast: 'Expected at least $(COUNT) argument(s) for $(OP) in $(ANNO)',
|
|
1280
|
+
atmost: 'Expected at most $(COUNT) argument(s) for $(OP) in $(ANNO)',
|
|
1281
|
+
wrongcount: 'Expected exactly one $(PROP) for $(OP) in $(ANNO)',
|
|
1282
|
+
wrongval: 'Unexpected value for $(OP) in $(ANNO)',
|
|
1283
|
+
wrongval_meta: 'Expected value for $(OP) to be a $(META) in $(ANNO)',
|
|
1284
|
+
wrongval_meta_list: 'Expected value for $(OP) to be a $(META) or $(RAWVALUES) in $(ANNO)',
|
|
1260
1285
|
},
|
|
1261
1286
|
'odata-anno-xpr-ref': {
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1287
|
+
std: '$(ANNO) can\'t be propagated to $(NAME) because path $(ELEMREF) is not resolvable via type reference $(CODE)',
|
|
1288
|
+
args: 'Unexpected arguments or filters in $(ELEMREF) in $(ANNO)',
|
|
1289
|
+
flatten_builtin: 'Expected path $(ELEMREF) in $(ANNO) to end in a scalar typed leaf element while flattening $(NAME)',
|
|
1290
|
+
flatten_builtin_type: 'Expected path $(ELEMREF) in $(ANNO) to end in a scalar typed leaf element while flattening',
|
|
1291
|
+
invalid: 'Invalid path $(ELEMREF) in $(ANNO)',
|
|
1267
1292
|
// genericTranslation
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1293
|
+
notaparam: 'EDM Element path $(ELEMREF) can\'t be used in $(ANNO) which is applied to a parameter entity',
|
|
1294
|
+
notaneelement: 'EDM Parameter path $(ELEMREF) can\'t be used in $(ANNO) which is applied to a type entity',
|
|
1295
|
+
notrendered: 'EDM Path step $(COUNT) of $(ELEMREF) in $(ANNO) refers to an unrendered property in the OData API',
|
|
1296
|
+
magic: 'Unexpected magic variable $(ELEMREF) in $(ANNO)',
|
|
1297
|
+
bparam_v2_expl: 'Unexpected explicit binding parameter path $(ELEMREF) for OData $(VERSION) in $(ANNO)',
|
|
1298
|
+
bparam_v2_impl: 'Unexpected implicit binding parameter path $(ELEMREF) for OData $(VERSION) in $(ANNO)',
|
|
1274
1299
|
// forOdata/generateForeignKeys
|
|
1275
|
-
|
|
1300
|
+
fk_substitution: 'Expected foreign key path $(ELEMREF) in $(ANNO) to end in a scalar typed leaf element',
|
|
1276
1301
|
},
|
|
1277
1302
|
// -----------------------------------------------------------------------------------
|
|
1278
1303
|
// OData Message section ends here, no messages below this line
|
|
@@ -1282,36 +1307,36 @@ const centralMessageTexts = {
|
|
|
1282
1307
|
// -----------------------------------------------------------------------------------
|
|
1283
1308
|
'migration-unsupported-key-change': {
|
|
1284
1309
|
std: 'Added element $(ID) is a primary key change and will not work if the table contains data',
|
|
1285
|
-
changed: 'Changed element $(ID) is a primary key change and will not work if the table contains data'
|
|
1310
|
+
changed: 'Changed element $(ID) is a primary key change and will not work if the table contains data',
|
|
1286
1311
|
},
|
|
1287
|
-
'migration-unsupported-precision-change': {
|
|
1312
|
+
'migration-unsupported-precision-change': {
|
|
1288
1313
|
std: 'Changed element $(ID) is a precision change and is not supported',
|
|
1289
|
-
script: 'Changed element $(ID) is a precision change and might lead to data loss'
|
|
1314
|
+
script: 'Changed element $(ID) is a precision change and might lead to data loss',
|
|
1290
1315
|
},
|
|
1291
|
-
'migration-unsupported-element-drop': {
|
|
1316
|
+
'migration-unsupported-element-drop': {
|
|
1292
1317
|
std: 'Dropping elements is not supported',
|
|
1293
|
-
script: 'Dropping elements leads to data loss'
|
|
1318
|
+
script: 'Dropping elements leads to data loss',
|
|
1294
1319
|
},
|
|
1295
|
-
'migration-unsupported-length-change': {
|
|
1320
|
+
'migration-unsupported-length-change': {
|
|
1296
1321
|
std: 'Changed element $(ID) is a length reduction and is not supported',
|
|
1297
|
-
script: 'Changed element $(ID) is a length reduction and might lead to data loss'
|
|
1322
|
+
script: 'Changed element $(ID) is a length reduction and might lead to data loss',
|
|
1298
1323
|
},
|
|
1299
|
-
'migration-unsupported-scale-change': {
|
|
1324
|
+
'migration-unsupported-scale-change': {
|
|
1300
1325
|
std: 'Changed element $(ID) is a scale change and is not supported',
|
|
1301
|
-
script: 'Changed element $(ID) is a scale change and might lead to data loss'
|
|
1326
|
+
script: 'Changed element $(ID) is a scale change and might lead to data loss',
|
|
1302
1327
|
},
|
|
1303
|
-
'migration-unsupported-change': {
|
|
1328
|
+
'migration-unsupported-change': {
|
|
1304
1329
|
std: 'Changed element $(ID) is a lossy type change from $(NAME) to $(TYPE) and is not supported',
|
|
1305
|
-
script: 'Changed element $(ID) is a lossy type change from $(NAME) to $(TYPE) and might lead to data loss'
|
|
1330
|
+
script: 'Changed element $(ID) is a lossy type change from $(NAME) to $(TYPE) and might lead to data loss',
|
|
1306
1331
|
},
|
|
1307
|
-
'migration-unsupported-table-drop': {
|
|
1332
|
+
'migration-unsupported-table-drop': {
|
|
1308
1333
|
std: 'Dropping tables is not supported',
|
|
1309
|
-
script: 'Dropping tables leads to data loss'
|
|
1334
|
+
script: 'Dropping tables leads to data loss',
|
|
1310
1335
|
},
|
|
1311
1336
|
// -----------------------------------------------------------------------------------
|
|
1312
1337
|
// to.sql.migration specific error messages end here
|
|
1313
1338
|
// -----------------------------------------------------------------------------------
|
|
1314
|
-
}
|
|
1339
|
+
};
|
|
1315
1340
|
|
|
1316
1341
|
/**
|
|
1317
1342
|
* Configuration for a message in the central message register.
|