@abaplint/cli 2.119.46 → 2.119.47

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 (2) hide show
  1. package/build/cli.js +546 -58
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -3116,19 +3116,22 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/exp
3116
3116
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
3117
3117
  const sql_group_by_1 = __webpack_require__(/*! ./sql_group_by */ "../core/build/src/abap/2_statements/expressions/sql_group_by.js");
3118
3118
  const sql_into_structure_1 = __webpack_require__(/*! ./sql_into_structure */ "../core/build/src/abap/2_statements/expressions/sql_into_structure.js");
3119
+ const sql_offset_1 = __webpack_require__(/*! ./sql_offset */ "../core/build/src/abap/2_statements/expressions/sql_offset.js");
3119
3120
  const sql_up_to_1 = __webpack_require__(/*! ./sql_up_to */ "../core/build/src/abap/2_statements/expressions/sql_up_to.js");
3120
3121
  function buildSelectSingleCore(allowInto = false) {
3121
3122
  const where = (0, combi_1.seq)("WHERE", _1.SQLCond);
3122
3123
  const sqlFields = (0, combi_1.ver)(version_1.Release.v750, _1.SQLFields, { also: combi_1.AlsoIn.OpenABAP });
3123
3124
  const privileged = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
3124
3125
  const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
3126
+ const extResult = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v766, _1.SQLExtendedResult));
3127
+ const creating = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v750, _1.SQLCreating));
3125
3128
  const client = (0, combi_1.optPrio)(_1.SQLClient);
3126
3129
  const byp = (0, combi_1.optPrio)(_1.SQLBypassingBuffer);
3127
3130
  const conn = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, _1.DatabaseConnection));
3128
3131
  const whereClause = (0, combi_1.optPrio)(where);
3129
3132
  const groupHaving = (0, combi_1.seq)((0, combi_1.optPrio)(sql_group_by_1.SQLGroupBy), (0, combi_1.optPrio)(_1.SQLHaving));
3130
3133
  const trailingOpts = (0, combi_1.seq)(conn, (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
3131
- const intoSingle = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
3134
+ const intoSingle = (0, combi_1.seq)((0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList), extResult, creating);
3132
3135
  if (!allowInto) {
3133
3136
  const singleBody = (0, combi_1.seq)(_1.SQLFrom, client, byp, whereClause, groupHaving, trailingOpts);
3134
3137
  return (0, combi_1.seq)(fieldList, singleBody);
@@ -3139,10 +3142,12 @@ function buildSelectSingleCore(allowInto = false) {
3139
3142
  }
3140
3143
  function buildSelectCore(allowInto = false, allowOrderBy = true) {
3141
3144
  const where = (0, combi_1.seq)("WHERE", _1.SQLCond);
3142
- const offset = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("OFFSET", _1.SQLSource));
3145
+ const offset = (0, combi_1.ver)(version_1.Release.v751, sql_offset_1.SQLOffset);
3143
3146
  const sqlFields = (0, combi_1.ver)(version_1.Release.v750, _1.SQLFields, { also: combi_1.AlsoIn.OpenABAP });
3144
3147
  const privileged = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
3145
3148
  const fieldList = (0, combi_1.optPrio)(_1.SQLFieldList);
3149
+ const extResult = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v766, _1.SQLExtendedResult));
3150
+ const creating = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v750, _1.SQLCreating));
3146
3151
  const client = (0, combi_1.optPrio)(_1.SQLClient);
3147
3152
  const byp = (0, combi_1.optPrio)(_1.SQLBypassingBuffer);
3148
3153
  const conn = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, _1.DatabaseConnection));
@@ -3153,8 +3158,8 @@ function buildSelectCore(allowInto = false, allowOrderBy = true) {
3153
3158
  ? [(0, combi_1.optPrio)((0, combi_1.seq)(_1.SQLOrderBy, (0, combi_1.optPrio)(sql_up_to_1.SQLUpTo), (0, combi_1.optPrio)(offset)))]
3154
3159
  : [];
3155
3160
  const trailingOpts = (0, combi_1.seq)(conn, (0, combi_1.optPrio)(_1.SQLHints), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(_1.SQLOptions));
3156
- const intoSingle = (0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList);
3157
- const intoForPackSize = _1.SQLIntoTable;
3161
+ const intoSingle = (0, combi_1.seq)((0, combi_1.altPrio)(sql_into_structure_1.SQLIntoStructure, _1.SQLIntoList), extResult, creating);
3162
+ const intoForPackSize = (0, combi_1.seq)(_1.SQLIntoTable, extResult, creating);
3158
3163
  if (!allowInto) {
3159
3164
  const afterFromNoInto = (0, combi_1.seq)(_1.SQLFrom, client, byp, (0, combi_1.seq)((0, combi_1.optPrio)(sqlFields), fae, whereClause, groupHaving, ...orderUpOff, trailingOpts));
3160
3165
  return (0, combi_1.altPrio)((0, combi_1.seq)("SINGLE", buildSelectSingleCore(false)), (0, combi_1.seq)((0, combi_1.optPrio)("DISTINCT"), fieldList, byp, afterFromNoInto));
@@ -4211,7 +4216,7 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/exp
4211
4216
  class DatabaseConnection extends combi_1.Expression {
4212
4217
  getRunnable() {
4213
4218
  const name = (0, combi_1.regex)(/[\w\/]+/);
4214
- return (0, combi_1.seq)("CONNECTION", (0, combi_1.altPrio)(name, _1.Dynamic));
4219
+ return (0, combi_1.seq)("CONNECTION", (0, combi_1.altPrio)(name, _1.ConstantString, _1.Dynamic));
4215
4220
  }
4216
4221
  }
4217
4222
  exports.DatabaseConnection = DatabaseConnection;
@@ -5345,7 +5350,18 @@ __exportStar(__webpack_require__(/*! ./sql_field */ "../core/build/src/abap/2_st
5345
5350
  __exportStar(__webpack_require__(/*! ./sql_fields_loop */ "../core/build/src/abap/2_statements/expressions/sql_fields_loop.js"), exports);
5346
5351
  __exportStar(__webpack_require__(/*! ./sql_fields */ "../core/build/src/abap/2_statements/expressions/sql_fields.js"), exports);
5347
5352
  __exportStar(__webpack_require__(/*! ./sql_for_all_entries */ "../core/build/src/abap/2_statements/expressions/sql_for_all_entries.js"), exports);
5353
+ __exportStar(__webpack_require__(/*! ./sql_extended_result */ "../core/build/src/abap/2_statements/expressions/sql_extended_result.js"), exports);
5354
+ __exportStar(__webpack_require__(/*! ./sql_creating */ "../core/build/src/abap/2_statements/expressions/sql_creating.js"), exports);
5355
+ __exportStar(__webpack_require__(/*! ./sql_creating_type_spec */ "../core/build/src/abap/2_statements/expressions/sql_creating_type_spec.js"), exports);
5356
+ __exportStar(__webpack_require__(/*! ./sql_creating_for_scope */ "../core/build/src/abap/2_statements/expressions/sql_creating_for_scope.js"), exports);
5357
+ __exportStar(__webpack_require__(/*! ./sql_creating_columns */ "../core/build/src/abap/2_statements/expressions/sql_creating_columns.js"), exports);
5358
+ __exportStar(__webpack_require__(/*! ./sql_provided_by */ "../core/build/src/abap/2_statements/expressions/sql_provided_by.js"), exports);
5359
+ __exportStar(__webpack_require__(/*! ./sql_expose_client_as */ "../core/build/src/abap/2_statements/expressions/sql_expose_client_as.js"), exports);
5360
+ __exportStar(__webpack_require__(/*! ./sql_defining_new_association */ "../core/build/src/abap/2_statements/expressions/sql_defining_new_association.js"), exports);
5361
+ __exportStar(__webpack_require__(/*! ./sql_cte_path_prefix */ "../core/build/src/abap/2_statements/expressions/sql_cte_path_prefix.js"), exports);
5362
+ __exportStar(__webpack_require__(/*! ./sql_typed_literal */ "../core/build/src/abap/2_statements/expressions/sql_typed_literal.js"), exports);
5348
5363
  __exportStar(__webpack_require__(/*! ./sql_from_source */ "../core/build/src/abap/2_statements/expressions/sql_from_source.js"), exports);
5364
+ __exportStar(__webpack_require__(/*! ./sql_from_body */ "../core/build/src/abap/2_statements/expressions/sql_from_body.js"), exports);
5349
5365
  __exportStar(__webpack_require__(/*! ./sql_from */ "../core/build/src/abap/2_statements/expressions/sql_from.js"), exports);
5350
5366
  __exportStar(__webpack_require__(/*! ./sql_function_input */ "../core/build/src/abap/2_statements/expressions/sql_function_input.js"), exports);
5351
5367
  __exportStar(__webpack_require__(/*! ./sql_function */ "../core/build/src/abap/2_statements/expressions/sql_function.js"), exports);
@@ -5359,6 +5375,8 @@ __exportStar(__webpack_require__(/*! ./sql_substring_regexpr */ "../core/build/s
5359
5375
  __exportStar(__webpack_require__(/*! ./sql_locate_regexpr */ "../core/build/src/abap/2_statements/expressions/sql_locate_regexpr.js"), exports);
5360
5376
  __exportStar(__webpack_require__(/*! ./sql_like_regexpr */ "../core/build/src/abap/2_statements/expressions/sql_like_regexpr.js"), exports);
5361
5377
  __exportStar(__webpack_require__(/*! ./sql_group_by */ "../core/build/src/abap/2_statements/expressions/sql_group_by.js"), exports);
5378
+ __exportStar(__webpack_require__(/*! ./sql_grouping_sets */ "../core/build/src/abap/2_statements/expressions/sql_grouping_sets.js"), exports);
5379
+ __exportStar(__webpack_require__(/*! ./sql_indicators */ "../core/build/src/abap/2_statements/expressions/sql_indicators.js"), exports);
5362
5380
  __exportStar(__webpack_require__(/*! ./sql_having */ "../core/build/src/abap/2_statements/expressions/sql_having.js"), exports);
5363
5381
  __exportStar(__webpack_require__(/*! ./sql_hints */ "../core/build/src/abap/2_statements/expressions/sql_hints.js"), exports);
5364
5382
  __exportStar(__webpack_require__(/*! ./sql_in */ "../core/build/src/abap/2_statements/expressions/sql_in.js"), exports);
@@ -5368,7 +5386,10 @@ __exportStar(__webpack_require__(/*! ./sql_field_list_loop_greedy */ "../core/bu
5368
5386
  __exportStar(__webpack_require__(/*! ./sql_into_table */ "../core/build/src/abap/2_statements/expressions/sql_into_table.js"), exports);
5369
5387
  __exportStar(__webpack_require__(/*! ./sql_join */ "../core/build/src/abap/2_statements/expressions/sql_join.js"), exports);
5370
5388
  __exportStar(__webpack_require__(/*! ./sql_join_source */ "../core/build/src/abap/2_statements/expressions/sql_join_source.js"), exports);
5389
+ __exportStar(__webpack_require__(/*! ./sql_offset */ "../core/build/src/abap/2_statements/expressions/sql_offset.js"), exports);
5371
5390
  __exportStar(__webpack_require__(/*! ./sql_options */ "../core/build/src/abap/2_statements/expressions/sql_options.js"), exports);
5391
+ __exportStar(__webpack_require__(/*! ./sql_dml_options */ "../core/build/src/abap/2_statements/expressions/sql_dml_options.js"), exports);
5392
+ __exportStar(__webpack_require__(/*! ./sql_mapping_from_entity */ "../core/build/src/abap/2_statements/expressions/sql_mapping_from_entity.js"), exports);
5372
5393
  __exportStar(__webpack_require__(/*! ./sql_package_size */ "../core/build/src/abap/2_statements/expressions/sql_package_size.js"), exports);
5373
5394
  __exportStar(__webpack_require__(/*! ./sql_order_by */ "../core/build/src/abap/2_statements/expressions/sql_order_by.js"), exports);
5374
5395
  __exportStar(__webpack_require__(/*! ./sql_over */ "../core/build/src/abap/2_statements/expressions/sql_over.js"), exports);
@@ -7499,7 +7520,9 @@ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/
7499
7520
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
7500
7521
  class SQLAliasField extends combi_1.Expression {
7501
7522
  getRunnable() {
7502
- return (0, combi_1.seq)((0, combi_1.regex)(/^(\/\w+\/)?\w+~(\/\w+\/)?\w+$/), (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), (0, combi_1.regex)(/^\w+$/))));
7523
+ const aliasField = (0, combi_1.regex)(/^(\/\w+\/)?\w+~(\/\w+\/)?\w+$/);
7524
+ const ctePrefixedAliasField = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), aliasField);
7525
+ return (0, combi_1.seq)((0, combi_1.altPrio)(ctePrefixedAliasField, aliasField), (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), (0, combi_1.regex)(/^\w+$/))));
7503
7526
  }
7504
7527
  }
7505
7528
  exports.SQLAliasField = SQLAliasField;
@@ -7591,6 +7614,7 @@ exports.SQLAssociationEntry = void 0;
7591
7614
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
7592
7615
  const sql_as_name_1 = __webpack_require__(/*! ./sql_as_name */ "../core/build/src/abap/2_statements/expressions/sql_as_name.js");
7593
7616
  const sql_path_for_entity_1 = __webpack_require__(/*! ./sql_path_for_entity */ "../core/build/src/abap/2_statements/expressions/sql_path_for_entity.js");
7617
+ const sql_defining_new_association_1 = __webpack_require__(/*! ./sql_defining_new_association */ "../core/build/src/abap/2_statements/expressions/sql_defining_new_association.js");
7594
7618
  const with_name_1 = __webpack_require__(/*! ./with_name */ "../core/build/src/abap/2_statements/expressions/with_name.js");
7595
7619
  const database_table_1 = __webpack_require__(/*! ./database_table */ "../core/build/src/abap/2_statements/expressions/database_table.js");
7596
7620
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
@@ -7598,7 +7622,8 @@ class SQLAssociationEntry extends combi_1.Expression {
7598
7622
  getRunnable() {
7599
7623
  const alias = (0, combi_1.seq)("AS", sql_as_name_1.SQLAsName);
7600
7624
  const redirected = (0, combi_1.seq)("REDIRECTED TO", with_name_1.WithName, "VIA", database_table_1.DatabaseTable);
7601
- return (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)(new sql_path_for_entity_1.SQLPathForEntity(), (0, combi_1.optPrio)(alias), (0, combi_1.optPrio)(redirected)));
7625
+ const existing = (0, combi_1.seq)(new sql_path_for_entity_1.SQLPathForEntity(), (0, combi_1.optPrio)(alias), (0, combi_1.optPrio)(redirected));
7626
+ return (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.altPrio)(new sql_defining_new_association_1.SQLDefiningNewAssociation(), existing));
7602
7627
  }
7603
7628
  }
7604
7629
  exports.SQLAssociationEntry = SQLAssociationEntry;
@@ -7769,7 +7794,7 @@ class SQLCompare extends combi_1.Expression {
7769
7794
  const arith = (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.plusPrio)((0, combi_1.seq)((0, combi_1.altPrio)("+", "-", "*", "/"), _1.SQLFieldName)), { also: combi_1.AlsoIn.OpenABAP });
7770
7795
  const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
7771
7796
  const at = (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(_1.SimpleSource3, paren)), { also: combi_1.AlsoIn.OpenABAP });
7772
- const lhs = (0, combi_1.altPrio)(_1.SQLCase, _1.SQLAggregation, _1.SQLFunction, _1.ConstantString, (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLPathForColumn, _1.SQLFieldName), (0, combi_1.optPrio)(arith)), at);
7797
+ const lhs = (0, combi_1.altPrio)(_1.SQLCase, _1.SQLAggregation, _1.SQLFunction, _1.ConstantString, (0, combi_1.seq)((0, combi_1.altPrio)(_1.SQLPathForColumn, _1.SQLAliasField, _1.SQLFieldName), (0, combi_1.optPrio)(arith)), at);
7773
7798
  const rhs = (0, combi_1.altPrio)((0, combi_1.seq)(_1.SQLCompareOperator, (0, combi_1.altPrio)(sub, _1.SQLCase, _1.SQLAggregation, _1.SQLFunction, (0, combi_1.seq)(source, (0, combi_1.optPrio)(arith)))), (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), (0, combi_1.altPrio)(_1.SQLIn, like, between)), sql_like_regexpr_1.SQLLikeRegexpr, nul);
7774
7799
  const rett = (0, combi_1.seq)(lhs, rhs);
7775
7800
  const exists = (0, combi_1.seq)("EXISTS", (0, combi_1.altPrio)(subSelect, simpleSubSelect));
@@ -7830,6 +7855,101 @@ exports.SQLCond = SQLCond;
7830
7855
 
7831
7856
  /***/ },
7832
7857
 
7858
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_creating.js"
7859
+ /*!***********************************************************************!*\
7860
+ !*** ../core/build/src/abap/2_statements/expressions/sql_creating.js ***!
7861
+ \***********************************************************************/
7862
+ (__unused_webpack_module, exports, __webpack_require__) {
7863
+
7864
+ "use strict";
7865
+
7866
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7867
+ exports.SQLCreating = void 0;
7868
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
7869
+ const sql_creating_type_spec_1 = __webpack_require__(/*! ./sql_creating_type_spec */ "../core/build/src/abap/2_statements/expressions/sql_creating_type_spec.js");
7870
+ const dynamic_1 = __webpack_require__(/*! ./dynamic */ "../core/build/src/abap/2_statements/expressions/dynamic.js");
7871
+ class SQLCreating extends combi_1.Expression {
7872
+ getRunnable() {
7873
+ const typeSpecs = (0, combi_1.seq)(sql_creating_type_spec_1.SQLCreatingTypeSpec, (0, combi_1.starPrio)(sql_creating_type_spec_1.SQLCreatingTypeSpec));
7874
+ return (0, combi_1.seq)("CREATING", (0, combi_1.altPrio)(dynamic_1.Dynamic, typeSpecs));
7875
+ }
7876
+ }
7877
+ exports.SQLCreating = SQLCreating;
7878
+ //# sourceMappingURL=sql_creating.js.map
7879
+
7880
+ /***/ },
7881
+
7882
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_creating_columns.js"
7883
+ /*!*******************************************************************************!*\
7884
+ !*** ../core/build/src/abap/2_statements/expressions/sql_creating_columns.js ***!
7885
+ \*******************************************************************************/
7886
+ (__unused_webpack_module, exports, __webpack_require__) {
7887
+
7888
+ "use strict";
7889
+
7890
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7891
+ exports.SQLCreatingColumns = void 0;
7892
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
7893
+ const sql_field_name_1 = __webpack_require__(/*! ./sql_field_name */ "../core/build/src/abap/2_statements/expressions/sql_field_name.js");
7894
+ class SQLCreatingColumns extends combi_1.Expression {
7895
+ getRunnable() {
7896
+ const guard = (0, combi_1.seq)((0, combi_1.stopBefore)("LOCATOR", "FOR"), (0, combi_1.stopBefore)("READER", "FOR"));
7897
+ return (0, combi_1.seq)("COLUMNS", sql_field_name_1.SQLFieldName, (0, combi_1.starPrio)((0, combi_1.seq)(guard, (0, combi_1.optPrio)(","), sql_field_name_1.SQLFieldName)));
7898
+ }
7899
+ }
7900
+ exports.SQLCreatingColumns = SQLCreatingColumns;
7901
+ //# sourceMappingURL=sql_creating_columns.js.map
7902
+
7903
+ /***/ },
7904
+
7905
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_creating_for_scope.js"
7906
+ /*!*********************************************************************************!*\
7907
+ !*** ../core/build/src/abap/2_statements/expressions/sql_creating_for_scope.js ***!
7908
+ \*********************************************************************************/
7909
+ (__unused_webpack_module, exports, __webpack_require__) {
7910
+
7911
+ "use strict";
7912
+
7913
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7914
+ exports.SQLCreatingForScope = void 0;
7915
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
7916
+ const sql_creating_columns_1 = __webpack_require__(/*! ./sql_creating_columns */ "../core/build/src/abap/2_statements/expressions/sql_creating_columns.js");
7917
+ class SQLCreatingForScope extends combi_1.Expression {
7918
+ getRunnable() {
7919
+ const forAllOther = (0, combi_1.seq)("FOR ALL OTHER", (0, combi_1.altPrio)("BLOB COLUMNS", "CLOB COLUMNS", "COLUMNS"));
7920
+ const forAll = (0, combi_1.seq)("FOR ALL", (0, combi_1.altPrio)("BLOB COLUMNS", "CLOB COLUMNS", "COLUMNS"));
7921
+ const forColumns = (0, combi_1.seq)("FOR", sql_creating_columns_1.SQLCreatingColumns);
7922
+ return (0, combi_1.altPrio)(forAllOther, forAll, forColumns);
7923
+ }
7924
+ }
7925
+ exports.SQLCreatingForScope = SQLCreatingForScope;
7926
+ //# sourceMappingURL=sql_creating_for_scope.js.map
7927
+
7928
+ /***/ },
7929
+
7930
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_creating_type_spec.js"
7931
+ /*!*********************************************************************************!*\
7932
+ !*** ../core/build/src/abap/2_statements/expressions/sql_creating_type_spec.js ***!
7933
+ \*********************************************************************************/
7934
+ (__unused_webpack_module, exports, __webpack_require__) {
7935
+
7936
+ "use strict";
7937
+
7938
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
7939
+ exports.SQLCreatingTypeSpec = void 0;
7940
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
7941
+ const sql_creating_for_scope_1 = __webpack_require__(/*! ./sql_creating_for_scope */ "../core/build/src/abap/2_statements/expressions/sql_creating_for_scope.js");
7942
+ class SQLCreatingTypeSpec extends combi_1.Expression {
7943
+ getRunnable() {
7944
+ const kind = (0, combi_1.altPrio)("LOCATOR", "READER");
7945
+ return (0, combi_1.seq)(kind, sql_creating_for_scope_1.SQLCreatingForScope);
7946
+ }
7947
+ }
7948
+ exports.SQLCreatingTypeSpec = SQLCreatingTypeSpec;
7949
+ //# sourceMappingURL=sql_creating_type_spec.js.map
7950
+
7951
+ /***/ },
7952
+
7833
7953
  /***/ "../core/build/src/abap/2_statements/expressions/sql_cte_associations.js"
7834
7954
  /*!*******************************************************************************!*\
7835
7955
  !*** ../core/build/src/abap/2_statements/expressions/sql_cte_associations.js ***!
@@ -7878,6 +7998,128 @@ exports.SQLCTEHierarchy = SQLCTEHierarchy;
7878
7998
 
7879
7999
  /***/ },
7880
8000
 
8001
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_cte_path_prefix.js"
8002
+ /*!******************************************************************************!*\
8003
+ !*** ../core/build/src/abap/2_statements/expressions/sql_cte_path_prefix.js ***!
8004
+ \******************************************************************************/
8005
+ (__unused_webpack_module, exports, __webpack_require__) {
8006
+
8007
+ "use strict";
8008
+
8009
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8010
+ exports.SQLCTEPathPrefix = void 0;
8011
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8012
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
8013
+ class SQLCTEPathPrefix extends combi_1.Expression {
8014
+ getRunnable() {
8015
+ const tildeIdent = (0, combi_1.regex)(/^\w+~$/);
8016
+ return (0, combi_1.altPrio)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), tildeIdent), tildeIdent);
8017
+ }
8018
+ }
8019
+ exports.SQLCTEPathPrefix = SQLCTEPathPrefix;
8020
+ //# sourceMappingURL=sql_cte_path_prefix.js.map
8021
+
8022
+ /***/ },
8023
+
8024
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_defining_new_association.js"
8025
+ /*!***************************************************************************************!*\
8026
+ !*** ../core/build/src/abap/2_statements/expressions/sql_defining_new_association.js ***!
8027
+ \***************************************************************************************/
8028
+ (__unused_webpack_module, exports, __webpack_require__) {
8029
+
8030
+ "use strict";
8031
+
8032
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8033
+ exports.SQLDefiningNewAssociation = void 0;
8034
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8035
+ const sql_as_name_1 = __webpack_require__(/*! ./sql_as_name */ "../core/build/src/abap/2_statements/expressions/sql_as_name.js");
8036
+ const sql_cond_1 = __webpack_require__(/*! ./sql_cond */ "../core/build/src/abap/2_statements/expressions/sql_cond.js");
8037
+ const sql_path_join_type_1 = __webpack_require__(/*! ./sql_path_join_type */ "../core/build/src/abap/2_statements/expressions/sql_path_join_type.js");
8038
+ const database_table_1 = __webpack_require__(/*! ./database_table */ "../core/build/src/abap/2_statements/expressions/database_table.js");
8039
+ const with_name_1 = __webpack_require__(/*! ./with_name */ "../core/build/src/abap/2_statements/expressions/with_name.js");
8040
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
8041
+ class SQLDefiningNewAssociation extends combi_1.Expression {
8042
+ getRunnable() {
8043
+ const joinTag = (0, combi_1.optPrio)((0, combi_1.regex)(/^#[A-Z][A-Z0-9_]*$/i));
8044
+ const target = (0, combi_1.altPrio)(new database_table_1.DatabaseTable(true), with_name_1.WithName);
8045
+ return (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)("JOIN", joinTag, (0, combi_1.optPrio)(sql_path_join_type_1.SQLPathJoinType), target, "AS", sql_as_name_1.SQLAsName, "ON", sql_cond_1.SQLCond));
8046
+ }
8047
+ }
8048
+ exports.SQLDefiningNewAssociation = SQLDefiningNewAssociation;
8049
+ //# sourceMappingURL=sql_defining_new_association.js.map
8050
+
8051
+ /***/ },
8052
+
8053
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_dml_options.js"
8054
+ /*!**************************************************************************!*\
8055
+ !*** ../core/build/src/abap/2_statements/expressions/sql_dml_options.js ***!
8056
+ \**************************************************************************/
8057
+ (__unused_webpack_module, exports, __webpack_require__) {
8058
+
8059
+ "use strict";
8060
+
8061
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8062
+ exports.SQLDmlOptions = void 0;
8063
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8064
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
8065
+ const sql_source_simple_1 = __webpack_require__(/*! ./sql_source_simple */ "../core/build/src/abap/2_statements/expressions/sql_source_simple.js");
8066
+ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
8067
+ class SQLDmlOptions extends combi_1.Expression {
8068
+ getRunnable() {
8069
+ const usingClient = (0, combi_1.seq)("USING CLIENT", sql_source_simple_1.SQLSourceSimple);
8070
+ const general = (0, combi_1.per)(_1.SQLPrivilegedAccess, _1.DatabaseConnection);
8071
+ const body = (0, combi_1.alt)((0, combi_1.seq)(usingClient, (0, combi_1.optPrio)(general)), general);
8072
+ return (0, combi_1.ver)(version_1.Release.v914, (0, combi_1.seq)("OPTIONS", body));
8073
+ }
8074
+ }
8075
+ exports.SQLDmlOptions = SQLDmlOptions;
8076
+ //# sourceMappingURL=sql_dml_options.js.map
8077
+
8078
+ /***/ },
8079
+
8080
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_expose_client_as.js"
8081
+ /*!*******************************************************************************!*\
8082
+ !*** ../core/build/src/abap/2_statements/expressions/sql_expose_client_as.js ***!
8083
+ \*******************************************************************************/
8084
+ (__unused_webpack_module, exports, __webpack_require__) {
8085
+
8086
+ "use strict";
8087
+
8088
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8089
+ exports.SQLExposeClientAs = void 0;
8090
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8091
+ class SQLExposeClientAs extends combi_1.Expression {
8092
+ getRunnable() {
8093
+ return (0, combi_1.seq)("EXPOSE CLIENT AS", (0, combi_1.regex)(/^\w+$/));
8094
+ }
8095
+ }
8096
+ exports.SQLExposeClientAs = SQLExposeClientAs;
8097
+ //# sourceMappingURL=sql_expose_client_as.js.map
8098
+
8099
+ /***/ },
8100
+
8101
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_extended_result.js"
8102
+ /*!******************************************************************************!*\
8103
+ !*** ../core/build/src/abap/2_statements/expressions/sql_extended_result.js ***!
8104
+ \******************************************************************************/
8105
+ (__unused_webpack_module, exports, __webpack_require__) {
8106
+
8107
+ "use strict";
8108
+
8109
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8110
+ exports.SQLExtendedResult = void 0;
8111
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8112
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
8113
+ class SQLExtendedResult extends combi_1.Expression {
8114
+ getRunnable() {
8115
+ return (0, combi_1.seq)("EXTENDED RESULT", (0, combi_1.tok)(tokens_1.WAt), (0, combi_1.regex)(/^\w+$/));
8116
+ }
8117
+ }
8118
+ exports.SQLExtendedResult = SQLExtendedResult;
8119
+ //# sourceMappingURL=sql_extended_result.js.map
8120
+
8121
+ /***/ },
8122
+
7881
8123
  /***/ "../core/build/src/abap/2_statements/expressions/sql_field.js"
7882
8124
  /*!********************************************************************!*\
7883
8125
  !*** ../core/build/src/abap/2_statements/expressions/sql_field.js ***!
@@ -7900,7 +8142,7 @@ class SQLField extends combi_1.Expression {
7900
8142
  const abap = (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(_1.SimpleFieldChain2, atParen)), { also: combi_1.AlsoIn.OpenABAP });
7901
8143
  const as = (0, combi_1.seq)("AS", _1.SQLAsName);
7902
8144
  const parenFieldName = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFieldName, (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.WParenRight)));
7903
- const fieldNoAgg = (0, combi_1.altPrio)(_1.SQLCase, sql_function_1.SQLFunction, sql_path_for_column_1.SQLPathForColumn, _1.SQLFieldName, abap, _1.Constant, parenFieldName);
8145
+ const fieldNoAgg = (0, combi_1.altPrio)(_1.SQLCase, sql_function_1.SQLFunction, sql_path_for_column_1.SQLPathForColumn, _1.SQLTypedLiteral, _1.SQLFieldName, abap, _1.Constant, parenFieldName);
7904
8146
  const field = (0, combi_1.altPrio)(_1.SQLAggregation, fieldNoAgg);
7905
8147
  const parenField = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), field, (0, combi_1.tok)(tokens_1.WParenRightW));
7906
8148
  const parenFieldNoAgg = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), fieldNoAgg, (0, combi_1.tok)(tokens_1.WParenRightW));
@@ -7933,13 +8175,14 @@ exports.SQLField = SQLField;
7933
8175
  Object.defineProperty(exports, "__esModule", ({ value: true }));
7934
8176
  exports.SQLFieldAndValue = void 0;
7935
8177
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8178
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
7936
8179
  const integer_1 = __webpack_require__(/*! ./integer */ "../core/build/src/abap/2_statements/expressions/integer.js");
7937
- const sql_arithmetic_operator_1 = __webpack_require__(/*! ./sql_arithmetic_operator */ "../core/build/src/abap/2_statements/expressions/sql_arithmetic_operator.js");
7938
8180
  const sql_field_name_1 = __webpack_require__(/*! ./sql_field_name */ "../core/build/src/abap/2_statements/expressions/sql_field_name.js");
7939
8181
  const sql_source_1 = __webpack_require__(/*! ./sql_source */ "../core/build/src/abap/2_statements/expressions/sql_source.js");
7940
8182
  class SQLFieldAndValue extends combi_1.Expression {
7941
8183
  getRunnable() {
7942
- const opt1 = (0, combi_1.seq)((0, combi_1.altPrio)(integer_1.Integer, sql_field_name_1.SQLFieldName), sql_arithmetic_operator_1.SQLArithmeticOperator, sql_source_1.SQLSource);
8184
+ const op = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WPlusW), (0, combi_1.tok)(tokens_1.WDashW));
8185
+ const opt1 = (0, combi_1.seq)((0, combi_1.altPrio)(integer_1.Integer, sql_field_name_1.SQLFieldName), op, sql_source_1.SQLSource);
7943
8186
  const param = (0, combi_1.seq)(sql_field_name_1.SQLFieldName, "=", (0, combi_1.altPrio)(opt1, sql_source_1.SQLSource));
7944
8187
  return param;
7945
8188
  }
@@ -8138,29 +8381,41 @@ exports.SQLForAllEntries = SQLForAllEntries;
8138
8381
  Object.defineProperty(exports, "__esModule", ({ value: true }));
8139
8382
  exports.SQLFrom = void 0;
8140
8383
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8384
+ const sql_from_body_1 = __webpack_require__(/*! ./sql_from_body */ "../core/build/src/abap/2_statements/expressions/sql_from_body.js");
8385
+ class SQLFrom extends combi_1.Expression {
8386
+ getRunnable() {
8387
+ return (0, combi_1.seq)("FROM", new sql_from_body_1.SQLFromBody());
8388
+ }
8389
+ }
8390
+ exports.SQLFrom = SQLFrom;
8391
+ //# sourceMappingURL=sql_from.js.map
8392
+
8393
+ /***/ },
8394
+
8395
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_from_body.js"
8396
+ /*!************************************************************************!*\
8397
+ !*** ../core/build/src/abap/2_statements/expressions/sql_from_body.js ***!
8398
+ \************************************************************************/
8399
+ (__unused_webpack_module, exports, __webpack_require__) {
8400
+
8401
+ "use strict";
8402
+
8403
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8404
+ exports.SQLFromBody = void 0;
8405
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8141
8406
  const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
8142
8407
  const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
8143
8408
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
8144
- class SQLFrom extends combi_1.Expression {
8145
- // todo: rewrite/refactor this method
8409
+ class SQLFromBody extends combi_1.Expression {
8146
8410
  getRunnable() {
8147
8411
  const joins = (0, combi_1.starPrio)((0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), _1.SQLJoin));
8148
- // No opening parens
8149
- const from0 = (0, combi_1.seq)("FROM", _1.SQLFromSource, joins);
8150
- // 1 to 7 opening parens, with up to that many closing parens at the end (dynamic FROM, not allowed in KeyUser)
8151
- const from1 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
8152
- const from2 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
8153
- const from3 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
8154
- const from4 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
8155
- const from5 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
8156
- const from6 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
8157
- const from7 = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("FROM", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeftW), _1.SQLFromSource, joins, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW))));
8158
- const source = (0, combi_1.altPrio)(from7, from6, from5, from4, from3, from2, from1, from0);
8159
- return source;
8412
+ const leaf = (0, combi_1.seq)(_1.SQLFromSource, joins);
8413
+ const nested = (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), SQLFromBody, (0, combi_1.optPrio)((0, combi_1.tok)(tokens_1.WParenRightW)), joins));
8414
+ return (0, combi_1.altPrio)(nested, leaf);
8160
8415
  }
8161
8416
  }
8162
- exports.SQLFrom = SQLFrom;
8163
- //# sourceMappingURL=sql_from.js.map
8417
+ exports.SQLFromBody = SQLFromBody;
8418
+ //# sourceMappingURL=sql_from_body.js.map
8164
8419
 
8165
8420
  /***/ },
8166
8421
 
@@ -8185,12 +8440,13 @@ const sql_hierarchy_accessor_1 = __webpack_require__(/*! ./sql_hierarchy_accesso
8185
8440
  const sql_hierarchy_aggregate_1 = __webpack_require__(/*! ./sql_hierarchy_aggregate */ "../core/build/src/abap/2_statements/expressions/sql_hierarchy_aggregate.js");
8186
8441
  class SQLFromSource extends combi_1.Expression {
8187
8442
  getRunnable() {
8188
- // https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-US/abennews-752-open_sql.htm#!ABAP_MODIFICATION_1@1@
8189
8443
  const tab = (0, combi_1.ver)(version_1.Release.v752, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), _1.FieldChain), { also: combi_1.AlsoIn.OpenABAP });
8190
8444
  const aas = (0, combi_1.seq)("AS", _1.SQLAsName);
8191
8445
  const privileged = (0, combi_1.ver)(version_1.Release.v752, (0, combi_1.seq)("WITH", _1.SQLPrivilegedAccess));
8446
+ const providedBy = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v796, _1.SQLProvidedBy));
8447
+ const exposeClient = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v913, _1.SQLExposeClientAs));
8192
8448
  const pathForEntity = (0, combi_1.optPrio)((0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, new sql_path_for_entity_1.SQLPathForEntity()));
8193
- return (0, combi_1.seq)((0, combi_1.altPrio)(new sql_hierarchy_aggregate_1.SQLHierarchyAggregate(), new sql_hierarchy_accessor_1.SQLHierarchyAccessor(), new sql_hierarchy_source_1.SQLHierarchySource(), (0, combi_1.seq)(with_name_1.WithName, pathForEntity), (0, combi_1.seq)(new _1.DatabaseTable(true), (0, combi_1.optPrio)(_1.SQLCDSParameters), pathForEntity), tab), (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(aas));
8449
+ return (0, combi_1.seq)((0, combi_1.altPrio)(new sql_hierarchy_aggregate_1.SQLHierarchyAggregate(), new sql_hierarchy_accessor_1.SQLHierarchyAccessor(), new sql_hierarchy_source_1.SQLHierarchySource(), (0, combi_1.seq)(with_name_1.WithName, pathForEntity), (0, combi_1.seq)(new _1.DatabaseTable(true), (0, combi_1.optPrio)(_1.SQLCDSParameters), pathForEntity), tab), providedBy, (0, combi_1.optPrio)(privileged), (0, combi_1.optPrio)(aas), exposeClient);
8194
8450
  }
8195
8451
  }
8196
8452
  exports.SQLFromSource = SQLFromSource;
@@ -8639,6 +8895,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
8639
8895
  const dynamic_1 = __webpack_require__(/*! ./dynamic */ "../core/build/src/abap/2_statements/expressions/dynamic.js");
8640
8896
  const sql_field_name_1 = __webpack_require__(/*! ./sql_field_name */ "../core/build/src/abap/2_statements/expressions/sql_field_name.js");
8641
8897
  const sql_field_1 = __webpack_require__(/*! ./sql_field */ "../core/build/src/abap/2_statements/expressions/sql_field.js");
8898
+ const sql_grouping_sets_1 = __webpack_require__(/*! ./sql_grouping_sets */ "../core/build/src/abap/2_statements/expressions/sql_grouping_sets.js");
8642
8899
  class SQLGroupBy extends combi_1.Expression {
8643
8900
  getRunnable() {
8644
8901
  const fieldName = (0, combi_1.alt)(sql_field_name_1.SQLFieldName, dynamic_1.Dynamic);
@@ -8646,7 +8903,8 @@ class SQLGroupBy extends combi_1.Expression {
8646
8903
  const newGroup = (0, combi_1.ver)(version_1.Release.v740sp02, (0, combi_1.seq)("GROUP BY", expr, (0, combi_1.altPrio)((0, combi_1.plus)((0, combi_1.seq)(",", expr)), (0, combi_1.optPrio)((0, combi_1.plus)(fieldName)))), { also: combi_1.AlsoIn.OpenABAP });
8647
8904
  const old = (0, combi_1.seq)((0, combi_1.plus)((0, combi_1.seq)(fieldName, ",")), fieldName);
8648
8905
  const oldGroup = (0, combi_1.seq)("GROUP BY", (0, combi_1.altPrio)(old, (0, combi_1.plus)(fieldName)));
8649
- return (0, combi_1.altPrio)(newGroup, oldGroup);
8906
+ const groupingSetsGroup = (0, combi_1.ver)(version_1.Release.v772, (0, combi_1.seq)("GROUP BY", sql_grouping_sets_1.SQLGroupingSets));
8907
+ return (0, combi_1.altPrio)(groupingSetsGroup, newGroup, oldGroup);
8650
8908
  }
8651
8909
  }
8652
8910
  exports.SQLGroupBy = SQLGroupBy;
@@ -8654,6 +8912,31 @@ exports.SQLGroupBy = SQLGroupBy;
8654
8912
 
8655
8913
  /***/ },
8656
8914
 
8915
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_grouping_sets.js"
8916
+ /*!****************************************************************************!*\
8917
+ !*** ../core/build/src/abap/2_statements/expressions/sql_grouping_sets.js ***!
8918
+ \****************************************************************************/
8919
+ (__unused_webpack_module, exports, __webpack_require__) {
8920
+
8921
+ "use strict";
8922
+
8923
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
8924
+ exports.SQLGroupingSets = void 0;
8925
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8926
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
8927
+ const sql_field_1 = __webpack_require__(/*! ./sql_field */ "../core/build/src/abap/2_statements/expressions/sql_field.js");
8928
+ class SQLGroupingSets extends combi_1.Expression {
8929
+ getRunnable() {
8930
+ const set = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.optPrio)((0, combi_1.seq)(sql_field_1.SQLField, (0, combi_1.starPrio)((0, combi_1.seq)(",", sql_field_1.SQLField)))), (0, combi_1.tok)(tokens_1.WParenRightW));
8931
+ const sets = (0, combi_1.seq)(set, (0, combi_1.starPrio)((0, combi_1.seq)(",", set)));
8932
+ return (0, combi_1.seq)("GROUPING SETS", (0, combi_1.tok)(tokens_1.WParenLeftW), sets, (0, combi_1.tok)(tokens_1.WParenRightW));
8933
+ }
8934
+ }
8935
+ exports.SQLGroupingSets = SQLGroupingSets;
8936
+ //# sourceMappingURL=sql_grouping_sets.js.map
8937
+
8938
+ /***/ },
8939
+
8657
8940
  /***/ "../core/build/src/abap/2_statements/expressions/sql_having.js"
8658
8941
  /*!*********************************************************************!*\
8659
8942
  !*** ../core/build/src/abap/2_statements/expressions/sql_having.js ***!
@@ -8842,6 +9125,34 @@ exports.SQLIn = SQLIn;
8842
9125
 
8843
9126
  /***/ },
8844
9127
 
9128
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_indicators.js"
9129
+ /*!*************************************************************************!*\
9130
+ !*** ../core/build/src/abap/2_statements/expressions/sql_indicators.js ***!
9131
+ \*************************************************************************/
9132
+ (__unused_webpack_module, exports, __webpack_require__) {
9133
+
9134
+ "use strict";
9135
+
9136
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9137
+ exports.SQLIndicators = void 0;
9138
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
9139
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
9140
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
9141
+ class SQLIndicators extends combi_1.Expression {
9142
+ getRunnable() {
9143
+ const name = (0, combi_1.regex)(/^%?\w+$/);
9144
+ const staticForm = (0, combi_1.seq)((0, combi_1.optPrio)("NOT"), "NULL", (0, combi_1.alt)((0, combi_1.seq)("STRUCTURE", name), (0, combi_1.seq)("BITFIELD", name)));
9145
+ const lparen = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.tok)(tokens_1.WParenLeft));
9146
+ const rparen = (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.tok)(tokens_1.ParenRightW));
9147
+ const dynamicForm = (0, combi_1.seq)(lparen, name, rparen);
9148
+ return (0, combi_1.ver)(version_1.Release.v915, (0, combi_1.seq)("INDICATORS", (0, combi_1.altPrio)(staticForm, dynamicForm)));
9149
+ }
9150
+ }
9151
+ exports.SQLIndicators = SQLIndicators;
9152
+ //# sourceMappingURL=sql_indicators.js.map
9153
+
9154
+ /***/ },
9155
+
8845
9156
  /***/ "../core/build/src/abap/2_statements/expressions/sql_into_list.js"
8846
9157
  /*!************************************************************************!*\
8847
9158
  !*** ../core/build/src/abap/2_statements/expressions/sql_into_list.js ***!
@@ -8880,10 +9191,12 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
8880
9191
  exports.SQLIntoStructure = void 0;
8881
9192
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8882
9193
  const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
9194
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
8883
9195
  class SQLIntoStructure extends combi_1.Expression {
8884
9196
  getRunnable() {
8885
9197
  const intoSimple = (0, combi_1.seq)((0, combi_1.optPrio)("CORRESPONDING FIELDS OF"), _1.SQLTarget);
8886
- return (0, combi_1.seq)("INTO", intoSimple);
9198
+ const indicators = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v915, _1.SQLIndicators));
9199
+ return (0, combi_1.seq)("INTO", intoSimple, indicators);
8887
9200
  }
8888
9201
  }
8889
9202
  exports.SQLIntoStructure = SQLIntoStructure;
@@ -8903,9 +9216,11 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
8903
9216
  exports.SQLIntoTable = void 0;
8904
9217
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
8905
9218
  const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/expressions/index.js");
9219
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
8906
9220
  class SQLIntoTable extends combi_1.Expression {
8907
9221
  getRunnable() {
8908
- const into = (0, combi_1.seq)((0, combi_1.altPrio)("INTO", "APPENDING"), (0, combi_1.optPrio)("CORRESPONDING FIELDS OF"), "TABLE", _1.SQLTarget);
9222
+ const indicators = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v915, _1.SQLIndicators));
9223
+ const into = (0, combi_1.seq)((0, combi_1.altPrio)("INTO", "APPENDING"), (0, combi_1.optPrio)("CORRESPONDING FIELDS OF"), "TABLE", _1.SQLTarget, indicators);
8909
9224
  return into;
8910
9225
  }
8911
9226
  }
@@ -8931,8 +9246,9 @@ const sql_join_source_1 = __webpack_require__(/*! ./sql_join_source */ "../core/
8931
9246
  class SQLJoin extends combi_1.Expression {
8932
9247
  getRunnable() {
8933
9248
  const joinType = (0, combi_1.seq)((0, combi_1.optPrio)((0, combi_1.altPrio)("INNER", "LEFT OUTER", "LEFT", "RIGHT OUTER", "RIGHT")), "JOIN");
8934
- const join = (0, combi_1.seq)(joinType, new sql_join_source_1.SQLJoinSource(), "ON", _1.SQLCond);
8935
- const crossJoin = (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("CROSS JOIN", new sql_join_source_1.SQLJoinSource()), { also: combi_1.AlsoIn.OpenABAP });
9249
+ const joinTag = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v795, (0, combi_1.regex)(/^#[A-Z][A-Z0-9_]*$/i)));
9250
+ const join = (0, combi_1.seq)(joinType, joinTag, new sql_join_source_1.SQLJoinSource(), "ON", _1.SQLCond);
9251
+ const crossJoin = (0, combi_1.ver)(version_1.Release.v750, (0, combi_1.seq)("CROSS JOIN", joinTag, new sql_join_source_1.SQLJoinSource()), { also: combi_1.AlsoIn.OpenABAP });
8936
9252
  return (0, combi_1.altPrio)(crossJoin, join);
8937
9253
  }
8938
9254
  }
@@ -9023,6 +9339,28 @@ exports.SQLLocateRegexpr = SQLLocateRegexpr;
9023
9339
 
9024
9340
  /***/ },
9025
9341
 
9342
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_mapping_from_entity.js"
9343
+ /*!**********************************************************************************!*\
9344
+ !*** ../core/build/src/abap/2_statements/expressions/sql_mapping_from_entity.js ***!
9345
+ \**********************************************************************************/
9346
+ (__unused_webpack_module, exports, __webpack_require__) {
9347
+
9348
+ "use strict";
9349
+
9350
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9351
+ exports.SQLMappingFromEntity = void 0;
9352
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
9353
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
9354
+ class SQLMappingFromEntity extends combi_1.Expression {
9355
+ getRunnable() {
9356
+ return (0, combi_1.ver)(version_1.Release.v789, "MAPPING FROM ENTITY");
9357
+ }
9358
+ }
9359
+ exports.SQLMappingFromEntity = SQLMappingFromEntity;
9360
+ //# sourceMappingURL=sql_mapping_from_entity.js.map
9361
+
9362
+ /***/ },
9363
+
9026
9364
  /***/ "../core/build/src/abap/2_statements/expressions/sql_occurrences_regexpr.js"
9027
9365
  /*!**********************************************************************************!*\
9028
9366
  !*** ../core/build/src/abap/2_statements/expressions/sql_occurrences_regexpr.js ***!
@@ -9048,6 +9386,28 @@ exports.SQLOccurrencesRegexpr = SQLOccurrencesRegexpr;
9048
9386
 
9049
9387
  /***/ },
9050
9388
 
9389
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_offset.js"
9390
+ /*!*********************************************************************!*\
9391
+ !*** ../core/build/src/abap/2_statements/expressions/sql_offset.js ***!
9392
+ \*********************************************************************/
9393
+ (__unused_webpack_module, exports, __webpack_require__) {
9394
+
9395
+ "use strict";
9396
+
9397
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9398
+ exports.SQLOffset = void 0;
9399
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
9400
+ const sql_source_1 = __webpack_require__(/*! ./sql_source */ "../core/build/src/abap/2_statements/expressions/sql_source.js");
9401
+ class SQLOffset extends combi_1.Expression {
9402
+ getRunnable() {
9403
+ return (0, combi_1.seq)("OFFSET", sql_source_1.SQLSource);
9404
+ }
9405
+ }
9406
+ exports.SQLOffset = SQLOffset;
9407
+ //# sourceMappingURL=sql_offset.js.map
9408
+
9409
+ /***/ },
9410
+
9051
9411
  /***/ "../core/build/src/abap/2_statements/expressions/sql_options.js"
9052
9412
  /*!**********************************************************************!*\
9053
9413
  !*** ../core/build/src/abap/2_statements/expressions/sql_options.js ***!
@@ -9065,10 +9425,10 @@ const _1 = __webpack_require__(/*! . */ "../core/build/src/abap/2_statements/exp
9065
9425
  class SQLOptions extends combi_1.Expression {
9066
9426
  getRunnable() {
9067
9427
  const usingClients = (0, combi_1.alt)((0, combi_1.seq)("CLIENTS IN", (0, combi_1.alt)(sql_source_simple_1.SQLSourceSimple, "T000")), "ALL CLIENTS", (0, combi_1.seq)("CLIENT", sql_source_simple_1.SQLSourceSimple));
9068
- const privilegedAccess = (0, combi_1.ver)(version_1.Release.v758, _1.SQLPrivilegedAccess);
9428
+ const privilegedAccess = _1.SQLPrivilegedAccess;
9069
9429
  const general = (0, combi_1.per)(privilegedAccess, _1.SQLBypassingBuffer, _1.DatabaseConnection);
9070
9430
  const usingClause = (0, combi_1.seq)("USING", usingClients, (0, combi_1.optPrio)(general));
9071
- return (0, combi_1.ver)(version_1.Release.v758, (0, combi_1.seq)("OPTIONS", (0, combi_1.alt)(usingClause, general)));
9431
+ return (0, combi_1.ver)(version_1.Release.v796, (0, combi_1.seq)("OPTIONS", (0, combi_1.alt)(usingClause, general)));
9072
9432
  }
9073
9433
  }
9074
9434
  exports.SQLOptions = SQLOptions;
@@ -9088,11 +9448,15 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
9088
9448
  exports.SQLOrderBy = void 0;
9089
9449
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
9090
9450
  const dynamic_1 = __webpack_require__(/*! ./dynamic */ "../core/build/src/abap/2_statements/expressions/dynamic.js");
9451
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
9452
+ const sql_field_1 = __webpack_require__(/*! ./sql_field */ "../core/build/src/abap/2_statements/expressions/sql_field.js");
9091
9453
  const sql_field_name_1 = __webpack_require__(/*! ./sql_field_name */ "../core/build/src/abap/2_statements/expressions/sql_field_name.js");
9092
9454
  class SQLOrderBy extends combi_1.Expression {
9093
9455
  getRunnable() {
9094
9456
  const ding = (0, combi_1.alt)("ASCENDING", "DESCENDING");
9095
- const ofields = (0, combi_1.plus)((0, combi_1.seq)(sql_field_name_1.SQLFieldName, (0, combi_1.opt)(ding), (0, combi_1.opt)(",")));
9457
+ const nulls = (0, combi_1.ver)(version_1.Release.v778, (0, combi_1.seq)("NULLS", (0, combi_1.alt)("FIRST", "LAST")));
9458
+ const item = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Release.v789, sql_field_1.SQLField), sql_field_name_1.SQLFieldName);
9459
+ const ofields = (0, combi_1.plus)((0, combi_1.seq)(item, (0, combi_1.opt)(ding), (0, combi_1.opt)(nulls), (0, combi_1.opt)(",")));
9096
9460
  const order = (0, combi_1.seq)("ORDER BY", (0, combi_1.altPrio)("PRIMARY KEY", dynamic_1.Dynamic, ofields));
9097
9461
  return order;
9098
9462
  }
@@ -9224,10 +9588,12 @@ exports.SQLPathForEntity = void 0;
9224
9588
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
9225
9589
  const sql_path_segment_1 = __webpack_require__(/*! ./sql_path_segment */ "../core/build/src/abap/2_statements/expressions/sql_path_segment.js");
9226
9590
  const database_table_1 = __webpack_require__(/*! ./database_table */ "../core/build/src/abap/2_statements/expressions/database_table.js");
9591
+ const sql_cte_path_prefix_1 = __webpack_require__(/*! ./sql_cte_path_prefix */ "../core/build/src/abap/2_statements/expressions/sql_cte_path_prefix.js");
9227
9592
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
9228
9593
  class SQLPathForEntity extends combi_1.Expression {
9229
9594
  getRunnable() {
9230
- return (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)((0, combi_1.optPrio)(database_table_1.DatabaseTable), (0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment())));
9595
+ const prefix = (0, combi_1.altPrio)(new sql_cte_path_prefix_1.SQLCTEPathPrefix(), new database_table_1.DatabaseTable());
9596
+ return (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)((0, combi_1.optPrio)(prefix), (0, combi_1.plus)(new sql_path_segment_1.SQLPathSegment())));
9231
9597
  }
9232
9598
  }
9233
9599
  exports.SQLPathForEntity = SQLPathForEntity;
@@ -9248,7 +9614,10 @@ exports.SQLPathJoinType = void 0;
9248
9614
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
9249
9615
  class SQLPathJoinType extends combi_1.Expression {
9250
9616
  getRunnable() {
9251
- return (0, combi_1.altPrio)("EXACT ONE TO ONE", "ONE TO ONE", "MANY TO MANY", "MANY TO ONE", "ONE TO MANY", "LEFT OUTER", "RIGHT OUTER", "INNER");
9617
+ const innerLike = (0, combi_1.altPrio)("INNER", "LEFT OUTER", "RIGHT OUTER");
9618
+ const card = (0, combi_1.altPrio)("EXACT ONE", "MANY", "ONE");
9619
+ const joinCard = (0, combi_1.seq)(card, "TO", card);
9620
+ return (0, combi_1.altPrio)((0, combi_1.seq)(innerLike, (0, combi_1.optPrio)(joinCard)), joinCard);
9252
9621
  }
9253
9622
  }
9254
9623
  exports.SQLPathJoinType = SQLPathJoinType;
@@ -9279,7 +9648,8 @@ class SQLPathSegment extends combi_1.Expression {
9279
9648
  this.nws = nws;
9280
9649
  }
9281
9650
  getRunnable() {
9282
- const filter = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.BracketLeftW), (0, combi_1.optPrio)(sql_path_cardinality_1.SQLPathCardinality), (0, combi_1.optPrio)(sql_path_join_type_1.SQLPathJoinType), (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.optPrio)("WHERE"), sql_cond_1.SQLCond)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WBracketRightW), (0, combi_1.tok)(tokens_1.WBracketRight))));
9651
+ const joinTag = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v795, (0, combi_1.regex)(/^#[A-Z][A-Z0-9_]*$/i)));
9652
+ const filter = (0, combi_1.ver)(version_1.Release.v751, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.BracketLeftW), joinTag, (0, combi_1.optPrio)(sql_path_cardinality_1.SQLPathCardinality), (0, combi_1.optPrio)(sql_path_join_type_1.SQLPathJoinType), (0, combi_1.optPrio)((0, combi_1.seq)((0, combi_1.optPrio)("WHERE"), sql_cond_1.SQLCond)), (0, combi_1.altPrio)((0, combi_1.tok)(tokens_1.WBracketRightW), (0, combi_1.tok)(tokens_1.WBracketRight))));
9283
9653
  const params = (0, combi_1.ver)(version_1.Release.v751, sql_cds_parameters_1.SQLCDSParameters);
9284
9654
  const name = this.nws
9285
9655
  ? (0, combi_1.tok)(tokens_1.AssociationName)
@@ -9307,7 +9677,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
9307
9677
  const sql_source_simple_1 = __webpack_require__(/*! ./sql_source_simple */ "../core/build/src/abap/2_statements/expressions/sql_source_simple.js");
9308
9678
  class SQLPrivilegedAccess extends combi_1.Expression {
9309
9679
  getRunnable() {
9310
- const accessLevel = (0, combi_1.verLang)(version_1.LanguageVersion.Cloud, (0, combi_1.seq)("LEVEL", sql_source_simple_1.SQLSourceSimple));
9680
+ const accessLevel = (0, combi_1.ver)(version_1.Release.v917, (0, combi_1.seq)("LEVEL", sql_source_simple_1.SQLSourceSimple));
9311
9681
  return (0, combi_1.seq)("PRIVILEGED ACCESS", (0, combi_1.optPrio)(accessLevel));
9312
9682
  }
9313
9683
  }
@@ -9316,6 +9686,28 @@ exports.SQLPrivilegedAccess = SQLPrivilegedAccess;
9316
9686
 
9317
9687
  /***/ },
9318
9688
 
9689
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_provided_by.js"
9690
+ /*!**************************************************************************!*\
9691
+ !*** ../core/build/src/abap/2_statements/expressions/sql_provided_by.js ***!
9692
+ \**************************************************************************/
9693
+ (__unused_webpack_module, exports, __webpack_require__) {
9694
+
9695
+ "use strict";
9696
+
9697
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
9698
+ exports.SQLProvidedBy = void 0;
9699
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
9700
+ const database_table_1 = __webpack_require__(/*! ./database_table */ "../core/build/src/abap/2_statements/expressions/database_table.js");
9701
+ class SQLProvidedBy extends combi_1.Expression {
9702
+ getRunnable() {
9703
+ return (0, combi_1.seq)("PROVIDED BY", (0, combi_1.altPrio)(new database_table_1.DatabaseTable(true), (0, combi_1.regex)(/^[\w\/]+$/)));
9704
+ }
9705
+ }
9706
+ exports.SQLProvidedBy = SQLProvidedBy;
9707
+ //# sourceMappingURL=sql_provided_by.js.map
9708
+
9709
+ /***/ },
9710
+
9319
9711
  /***/ "../core/build/src/abap/2_statements/expressions/sql_regexpr_from.js"
9320
9712
  /*!***************************************************************************!*\
9321
9713
  !*** ../core/build/src/abap/2_statements/expressions/sql_regexpr_from.js ***!
@@ -9529,7 +9921,7 @@ class SQLSource extends combi_1.Expression {
9529
9921
  getRunnable() {
9530
9922
  const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), _1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
9531
9923
  const at = (0, combi_1.ver)(version_1.Release.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(_1.SimpleSource3, paren)), { also: combi_1.AlsoIn.OpenABAP });
9532
- return (0, combi_1.altPrio)(_1.SQLAliasField, _1.SimpleSource3, at);
9924
+ return (0, combi_1.altPrio)(_1.SQLTypedLiteral, _1.SQLAliasField, _1.SimpleSource3, at);
9533
9925
  }
9534
9926
  }
9535
9927
  exports.SQLSource = SQLSource;
@@ -9644,6 +10036,37 @@ exports.SQLTarget = SQLTarget;
9644
10036
 
9645
10037
  /***/ },
9646
10038
 
10039
+ /***/ "../core/build/src/abap/2_statements/expressions/sql_typed_literal.js"
10040
+ /*!****************************************************************************!*\
10041
+ !*** ../core/build/src/abap/2_statements/expressions/sql_typed_literal.js ***!
10042
+ \****************************************************************************/
10043
+ (__unused_webpack_module, exports, __webpack_require__) {
10044
+
10045
+ "use strict";
10046
+
10047
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
10048
+ exports.SQLTypedLiteral = void 0;
10049
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
10050
+ const TYPED_LITERAL_TYPES = [
10051
+ "CHAR", "CLNT", "CUKY", "CURR", "DATN", "DATS", "DEC",
10052
+ "DECFLOAT16", "DECFLOAT34",
10053
+ "D16N", "D34N", "D16D", "D34D", "D16R", "D34R",
10054
+ "FLTP",
10055
+ "INT1", "INT2", "INT4", "INT8",
10056
+ "LANG", "NUMC", "QUAN", "RAW", "RAWSTRING",
10057
+ "SSTRING", "STRING", "TIMN", "TIMS", "UNIT", "UTCLONG",
10058
+ ];
10059
+ class SQLTypedLiteral extends combi_1.Expression {
10060
+ getRunnable() {
10061
+ const typeName = (0, combi_1.regex)(new RegExp("^(" + TYPED_LITERAL_TYPES.join("|") + ")$", "i"));
10062
+ return (0, combi_1.seq)(typeName, (0, combi_1.regex)(/^`.*`$/));
10063
+ }
10064
+ }
10065
+ exports.SQLTypedLiteral = SQLTypedLiteral;
10066
+ //# sourceMappingURL=sql_typed_literal.js.map
10067
+
10068
+ /***/ },
10069
+
9647
10070
  /***/ "../core/build/src/abap/2_statements/expressions/sql_up_to.js"
9648
10071
  /*!********************************************************************!*\
9649
10072
  !*** ../core/build/src/abap/2_statements/expressions/sql_up_to.js ***!
@@ -12784,9 +13207,12 @@ const sql_client_1 = __webpack_require__(/*! ../expressions/sql_client */ "../co
12784
13207
  class DeleteDatabase {
12785
13208
  getMatcher() {
12786
13209
  const where = (0, combi_1.seq)("WHERE", (0, combi_1.altPrio)(expressions_1.SQLCond, expressions_1.Dynamic));
12787
- const from = (0, combi_1.seq)("FROM", expressions_1.DatabaseTable, (0, combi_1.optPrio)(sql_client_1.SQLClient), (0, combi_1.optPrio)(expressions_1.DatabaseConnection), (0, combi_1.opt)(where));
12788
- const fromSomething = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSourceSimple);
12789
- const table = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.optPrio)(sql_client_1.SQLClient), (0, combi_1.optPrio)(expressions_1.DatabaseConnection), (0, combi_1.optPrio)(fromSomething));
13210
+ const upToOffset = (0, combi_1.ver)(version_1.Release.v764, (0, combi_1.altPrio)((0, combi_1.seq)(expressions_1.SQLUpTo, (0, combi_1.optPrio)(expressions_1.SQLOffset)), (0, combi_1.seq)(expressions_1.SQLOffset, (0, combi_1.optPrio)(expressions_1.SQLUpTo))));
13211
+ const orderByTail = (0, combi_1.ver)(version_1.Release.v764, (0, combi_1.seq)(expressions_1.SQLOrderBy, (0, combi_1.optPrio)(upToOffset)));
13212
+ const trailing = (0, combi_1.optPrio)((0, combi_1.altPrio)(orderByTail, upToOffset));
13213
+ const from = (0, combi_1.seq)("FROM", expressions_1.DatabaseTable, (0, combi_1.optPrio)(sql_client_1.SQLClient), (0, combi_1.optPrio)(expressions_1.DatabaseConnection), (0, combi_1.opt)(where), trailing, (0, combi_1.optPrio)(expressions_1.SQLDmlOptions));
13214
+ const fromSomething = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSourceSimple, (0, combi_1.optPrio)(expressions_1.SQLIndicators), (0, combi_1.optPrio)(expressions_1.SQLMappingFromEntity));
13215
+ const table = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.optPrio)(sql_client_1.SQLClient), (0, combi_1.optPrio)(expressions_1.DatabaseConnection), (0, combi_1.optPrio)(fromSomething), (0, combi_1.optPrio)(expressions_1.SQLDmlOptions));
12790
13216
  const ret = (0, combi_1.seq)("DELETE", (0, combi_1.altPrio)(from, table));
12791
13217
  return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
12792
13218
  }
@@ -14027,7 +14453,8 @@ const sql_into_structure_1 = __webpack_require__(/*! ../expressions/sql_into_str
14027
14453
  class FetchNextCursor {
14028
14454
  getMatcher() {
14029
14455
  const size = (0, combi_1.seq)("PACKAGE SIZE", expressions_1.SQLSourceSimple);
14030
- const ret = (0, combi_1.seq)("FETCH NEXT CURSOR", expressions_1.SQLSourceSimple, (0, combi_1.alt)(sql_into_structure_1.SQLIntoStructure, expressions_1.SQLIntoTable, expressions_1.SQLIntoList), (0, combi_1.optPrio)(size));
14456
+ const extResult = (0, combi_1.optPrio)((0, combi_1.ver)(version_1.Release.v766, expressions_1.SQLExtendedResult));
14457
+ const ret = (0, combi_1.seq)("FETCH NEXT CURSOR", expressions_1.SQLSourceSimple, (0, combi_1.alt)(sql_into_structure_1.SQLIntoStructure, expressions_1.SQLIntoTable, expressions_1.SQLIntoList), extResult, (0, combi_1.optPrio)(size));
14031
14458
  return (0, combi_1.verNotLang)(version_1.LanguageVersion.Cloud, ret);
14032
14459
  }
14033
14460
  }
@@ -15161,6 +15588,7 @@ __exportStar(__webpack_require__(/*! ./insert_database */ "../core/build/src/aba
15161
15588
  __exportStar(__webpack_require__(/*! ./insert_field_group */ "../core/build/src/abap/2_statements/statements/insert_field_group.js"), exports);
15162
15589
  __exportStar(__webpack_require__(/*! ./update_database */ "../core/build/src/abap/2_statements/statements/update_database.js"), exports);
15163
15590
  __exportStar(__webpack_require__(/*! ./modify_database */ "../core/build/src/abap/2_statements/statements/modify_database.js"), exports);
15591
+ __exportStar(__webpack_require__(/*! ./merge_database */ "../core/build/src/abap/2_statements/statements/merge_database.js"), exports);
15164
15592
  __exportStar(__webpack_require__(/*! ./modify_internal */ "../core/build/src/abap/2_statements/statements/modify_internal.js"), exports);
15165
15593
  __exportStar(__webpack_require__(/*! ./raise */ "../core/build/src/abap/2_statements/statements/raise.js"), exports);
15166
15594
  __exportStar(__webpack_require__(/*! ./define */ "../core/build/src/abap/2_statements/statements/define.js"), exports);
@@ -15441,10 +15869,13 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
15441
15869
  class InsertDatabase {
15442
15870
  getMatcher() {
15443
15871
  const sub = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), expressions_1.Select, (0, combi_1.tok)(tokens_1.WParenRightW));
15444
- const f = (0, combi_1.seq)((0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), "FROM", (0, combi_1.opt)("TABLE"), (0, combi_1.alt)(expressions_1.SQLSource, sub), (0, combi_1.opt)("ACCEPTING DUPLICATE KEYS"));
15445
- const from = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.opt)((0, combi_1.alt)(f, expressions_1.SQLClient, expressions_1.DatabaseConnection)));
15446
- const into = (0, combi_1.seq)("INTO", expressions_1.DatabaseTable, (0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), "VALUES", expressions_1.SQLSource);
15447
- return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("INSERT", (0, combi_1.alt)(from, into)));
15872
+ const fromItabOrWa = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.optPrio)(expressions_1.SQLIndicators), (0, combi_1.optPrio)(expressions_1.SQLMappingFromEntity));
15873
+ const fromSubquery = (0, combi_1.seq)("FROM", sub);
15874
+ const fromClause = (0, combi_1.alt)(fromItabOrWa, fromSubquery);
15875
+ const fromTrailer = (0, combi_1.seq)((0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), fromClause, (0, combi_1.opt)("ACCEPTING DUPLICATE KEYS"), (0, combi_1.optPrio)(expressions_1.SQLDmlOptions));
15876
+ const insertFromForm = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.opt)((0, combi_1.alt)(fromTrailer, expressions_1.SQLClient, expressions_1.DatabaseConnection)));
15877
+ const insertIntoForm = (0, combi_1.seq)("INTO", expressions_1.DatabaseTable, (0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), "VALUES", expressions_1.SQLSource, (0, combi_1.optPrio)(expressions_1.SQLIndicators), (0, combi_1.optPrio)(expressions_1.SQLMappingFromEntity), (0, combi_1.optPrio)(expressions_1.SQLDmlOptions));
15878
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("INSERT", (0, combi_1.alt)(insertFromForm, insertIntoForm)));
15448
15879
  }
15449
15880
  }
15450
15881
  exports.InsertDatabase = InsertDatabase;
@@ -15862,6 +16293,50 @@ exports.LoopExtract = LoopExtract;
15862
16293
 
15863
16294
  /***/ },
15864
16295
 
16296
+ /***/ "../core/build/src/abap/2_statements/statements/merge_database.js"
16297
+ /*!************************************************************************!*\
16298
+ !*** ../core/build/src/abap/2_statements/statements/merge_database.js ***!
16299
+ \************************************************************************/
16300
+ (__unused_webpack_module, exports, __webpack_require__) {
16301
+
16302
+ "use strict";
16303
+
16304
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
16305
+ exports.MergeDatabase = void 0;
16306
+ const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
16307
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
16308
+ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
16309
+ const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
16310
+ const _select_core_1 = __webpack_require__(/*! ../expressions/_select_core */ "../core/build/src/abap/2_statements/expressions/_select_core.js");
16311
+ class MergeDatabase {
16312
+ getMatcher() {
16313
+ const targetSpec = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.optPrio)((0, combi_1.seq)("AS", expressions_1.SQLAsName)));
16314
+ const subSelect = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), "SELECT", (0, _select_core_1.buildSelectCore)(false, false), (0, combi_1.tok)(tokens_1.WParenRightW), (0, combi_1.optPrio)((0, combi_1.seq)("AS", expressions_1.SQLAsName)));
16315
+ const itabSource = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), expressions_1.SQLAsName, "AS", expressions_1.SQLAsName, (0, combi_1.optPrio)((0, combi_1.seq)("DECLARE CLIENT", expressions_1.SQLFieldName)));
16316
+ const tableSource = (0, combi_1.seq)(expressions_1.DatabaseTable, (0, combi_1.optPrio)((0, combi_1.seq)("AS", expressions_1.SQLAsName)));
16317
+ const usingClause = (0, combi_1.seq)("USING", (0, combi_1.altPrio)(subSelect, itabSource, tableSource));
16318
+ const onClause = (0, combi_1.seq)("ON", expressions_1.SQLCond);
16319
+ const setEntry = (0, combi_1.seq)(expressions_1.SQLFieldName, "=", expressions_1.SQLField);
16320
+ const setList = (0, combi_1.seq)(setEntry, (0, combi_1.starPrio)((0, combi_1.seq)(",", setEntry)));
16321
+ const matchedAction = (0, combi_1.altPrio)("DELETE", (0, combi_1.seq)("UPDATE", (0, combi_1.altPrio)("ALL", (0, combi_1.seq)("SET", setList))));
16322
+ const whenMatched = (0, combi_1.seq)("WHEN MATCHED", (0, combi_1.optPrio)((0, combi_1.seq)("AND", expressions_1.SQLCond)), "THEN", matchedAction);
16323
+ const insertCols = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), expressions_1.SQLFieldName, (0, combi_1.starPrio)((0, combi_1.seq)(",", expressions_1.SQLFieldName)), (0, combi_1.tok)(tokens_1.WParenRightW));
16324
+ const insertValues = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), expressions_1.SQLField, (0, combi_1.starPrio)((0, combi_1.seq)(",", expressions_1.SQLField)), (0, combi_1.tok)(tokens_1.WParenRightW));
16325
+ const notMatchedAction = (0, combi_1.seq)("INSERT", (0, combi_1.altPrio)("ALL", (0, combi_1.seq)(insertCols, "VALUES", insertValues)));
16326
+ const whenNotMatched = (0, combi_1.seq)("WHEN NOT MATCHED", (0, combi_1.optPrio)((0, combi_1.seq)("AND", expressions_1.SQLCond)), "THEN", notMatchedAction);
16327
+ const whenClauses = (0, combi_1.altPrio)((0, combi_1.seq)(whenMatched, (0, combi_1.optPrio)(whenNotMatched)), whenNotMatched);
16328
+ const optionsClause = (0, combi_1.seq)("OPTIONS", (0, combi_1.altPrio)(expressions_1.SQLPrivilegedAccess, expressions_1.SQLClient, (0, combi_1.seq)(expressions_1.SQLClient, expressions_1.SQLPrivilegedAccess), (0, combi_1.seq)(expressions_1.SQLPrivilegedAccess, expressions_1.SQLClient)));
16329
+ const trailingOptions = (0, combi_1.optPrio)(optionsClause);
16330
+ const staticForm = (0, combi_1.seq)("INTO", targetSpec, (0, combi_1.optPrio)(usingClause), (0, combi_1.optPrio)(onClause), (0, combi_1.optPrio)(whenClauses), trailingOptions);
16331
+ const ret = (0, combi_1.ver)(version_1.Release.v917, (0, combi_1.seq)("MERGE", (0, combi_1.alt)(staticForm, expressions_1.Dynamic)));
16332
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
16333
+ }
16334
+ }
16335
+ exports.MergeDatabase = MergeDatabase;
16336
+ //# sourceMappingURL=merge_database.js.map
16337
+
16338
+ /***/ },
16339
+
15865
16340
  /***/ "../core/build/src/abap/2_statements/statements/message.js"
15866
16341
  /*!*****************************************************************!*\
15867
16342
  !*** ../core/build/src/abap/2_statements/statements/message.js ***!
@@ -15983,12 +16458,16 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
15983
16458
  exports.ModifyDatabase = void 0;
15984
16459
  const combi_1 = __webpack_require__(/*! ../combi */ "../core/build/src/abap/2_statements/combi.js");
15985
16460
  const expressions_1 = __webpack_require__(/*! ../expressions */ "../core/build/src/abap/2_statements/expressions/index.js");
16461
+ const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "../core/build/src/abap/1_lexer/tokens/index.js");
15986
16462
  const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src/version.js");
15987
16463
  class ModifyDatabase {
15988
16464
  getMatcher() {
15989
- const from = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource);
16465
+ const sub = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WParenLeftW), expressions_1.Select, (0, combi_1.tok)(tokens_1.WParenRightW));
16466
+ const fromTable = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.optPrio)(expressions_1.SQLIndicators), (0, combi_1.optPrio)(expressions_1.SQLMappingFromEntity));
16467
+ const fromSubquery = (0, combi_1.seq)("FROM", sub);
16468
+ const from = (0, combi_1.alt)(fromTable, fromSubquery);
15990
16469
  const options = (0, combi_1.per)(expressions_1.DatabaseConnection, from, expressions_1.SQLClient);
15991
- return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("MODIFY", expressions_1.DatabaseTable, options));
16470
+ return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, (0, combi_1.seq)("MODIFY", expressions_1.DatabaseTable, options, (0, combi_1.optPrio)(expressions_1.SQLDmlOptions)));
15992
16471
  }
15993
16472
  }
15994
16473
  exports.ModifyDatabase = ModifyDatabase;
@@ -19303,9 +19782,10 @@ class UpdateDatabase {
19303
19782
  getMatcher() {
19304
19783
  const parameters = (0, combi_1.seq)(expressions_1.SQLFieldAndValue, (0, combi_1.star)((0, combi_1.seq)((0, combi_1.opt)(","), expressions_1.SQLFieldAndValue)));
19305
19784
  const set = (0, combi_1.seq)("SET", (0, combi_1.alt)(parameters, expressions_1.Dynamic), (0, combi_1.opt)((0, combi_1.seq)("WHERE", expressions_1.SQLCond)));
19306
- const indicators = (0, combi_1.seq)("INDICATORS SET STRUCTURE", expressions_1.ComponentName);
19307
- const fromTable = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.opt)((0, combi_1.ver)(version_2.Release.v755, indicators)));
19308
- const ret = (0, combi_1.seq)("UPDATE", expressions_1.DatabaseTable, (0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), (0, combi_1.opt)((0, combi_1.alt)(fromTable, set)));
19785
+ const setStructure = (0, combi_1.seq)("INDICATORS SET STRUCTURE", expressions_1.ComponentName);
19786
+ const updateIndicators = (0, combi_1.altPrio)((0, combi_1.ver)(version_2.Release.v915, expressions_1.SQLIndicators), (0, combi_1.ver)(version_2.Release.v755, setStructure));
19787
+ const fromTable = (0, combi_1.seq)("FROM", (0, combi_1.opt)("TABLE"), expressions_1.SQLSource, (0, combi_1.optPrio)(updateIndicators), (0, combi_1.optPrio)(expressions_1.SQLMappingFromEntity));
19788
+ const ret = (0, combi_1.seq)("UPDATE", expressions_1.DatabaseTable, (0, combi_1.opt)(expressions_1.SQLClient), (0, combi_1.opt)(expressions_1.DatabaseConnection), (0, combi_1.opt)((0, combi_1.alt)(fromTable, set)), (0, combi_1.optPrio)(expressions_1.SQLDmlOptions));
19309
19789
  return (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, ret);
19310
19790
  }
19311
19791
  }
@@ -22155,7 +22635,7 @@ class Normal {
22155
22635
  getMatcher() {
22156
22636
  // note that the sequence of alternatives here influences performance
22157
22637
  return (0, _combi_1.alt)((0, _combi_1.sta)(Statements.Move), (0, _combi_1.sta)(Statements.Call), (0, _combi_1.sta)(Statements.Data), (0, _combi_1.sub)(Structures.If), (0, _combi_1.sta)(Statements.Clear), (0, _combi_1.sta)(Statements.FieldSymbol), (0, _combi_1.sta)(Statements.CreateObject), (0, _combi_1.sta)(Statements.CallFunction), (0, _combi_1.sta)(_statement_1.MacroCall), (0, _combi_1.sub)(Structures.LoopAtScreen), (0, _combi_1.sub)(Structures.Loop), (0, _combi_1.sub)(Structures.LoopExtract), (0, _combi_1.sta)(Statements.Append), (0, _combi_1.sub)(Structures.Try), (0, _combi_1.sub)(Structures.OnChange), (0, _combi_1.sta)(Statements.ReadTable), (0, _combi_1.sta)(Statements.Assert), (0, _combi_1.sta)(Statements.Return), (0, _combi_1.sta)(Statements.Select), (0, _combi_1.sta)(Statements.Assign), (0, _combi_1.sta)(Statements.InsertInternal), (0, _combi_1.sta)(Statements.DeleteInternal), (0, _combi_1.sta)(Statements.Concatenate), (0, _combi_1.sub)(Structures.Case), (0, _combi_1.sub)(Structures.CaseType), (0, _combi_1.sub)(Structures.Enhancement), (0, _combi_1.sub)(Structures.EnhancementSection), (0, _combi_1.sta)(Statements.AddCorresponding), (0, _combi_1.sta)(Statements.Add), (0, _combi_1.sta)(Statements.AssignLocalCopy), (0, _combi_1.sta)(Statements.AuthorityCheck), (0, _combi_1.sta)(Statements.Back), (0, _combi_1.sta)(Statements.Break), (0, _combi_1.sta)(Statements.BreakId), (0, _combi_1.sta)(Statements.CallDatabase), (0, _combi_1.sta)(Statements.CallDialog), (0, _combi_1.sta)(Statements.CallKernel), (0, _combi_1.sta)(Statements.CallOLE), (0, _combi_1.sta)(Statements.CallScreen), (0, _combi_1.sta)(Statements.ModifyScreen), (0, _combi_1.sta)(Statements.CallSelectionScreen), (0, _combi_1.sta)(Statements.CallTransaction), (0, _combi_1.sta)(Statements.CallTransformation), (0, _combi_1.sta)(Statements.Check), (0, _combi_1.sta)(Statements.ClassDefinitionLoad), (0, _combi_1.sta)(Statements.CloseCursor), (0, _combi_1.sta)(Statements.CloseDataset), (0, _combi_1.sta)(Statements.Collect), (0, _combi_1.sta)(Statements.Commit), (0, _combi_1.sta)(Statements.Communication), (0, _combi_1.sta)(Statements.Compute), (0, _combi_1.sta)(Statements.CallBadi), (0, _combi_1.sta)(Statements.Condense), (0, _combi_1.sta)(Statements.Constant), (0, _combi_1.sta)(Statements.Contexts), (0, _combi_1.sta)(Statements.Continue), (0, _combi_1.sta)(Statements.ConvertText), (0, _combi_1.sta)(Statements.Convert), (0, _combi_1.sta)(Statements.CreateData), (0, _combi_1.sta)(Statements.CreateOLE), (0, _combi_1.sta)(Statements.DeleteCluster), (0, _combi_1.sta)(Statements.DeleteDatabase), (0, _combi_1.sta)(Statements.DeleteDataset), (0, _combi_1.sta)(Statements.DeleteDynpro), (0, _combi_1.sta)(Statements.DeleteMemory), (0, _combi_1.sta)(Statements.DeleteReport), (0, _combi_1.sta)(Statements.DeleteTextpool), (0, _combi_1.sta)(Statements.Demand), (0, _combi_1.sta)(Statements.Describe), (0, _combi_1.sta)(Statements.Detail), (0, _combi_1.sta)(Statements.Divide), (0, _combi_1.sta)(Statements.EditorCall), (0, _combi_1.sta)(Statements.EnhancementPoint), (0, _combi_1.sta)(Statements.Exit), (0, _combi_1.sta)(Statements.ExportDynpro), (0, _combi_1.sta)(Statements.Export), (0, _combi_1.sta)(Statements.Extract), (0, _combi_1.sta)(Statements.FetchNextCursor), (0, _combi_1.sta)(Statements.FieldGroup), (0, _combi_1.sta)(Statements.Fields), (0, _combi_1.sta)(Statements.Find), (0, _combi_1.sta)(Statements.Format), (0, _combi_1.sta)(Statements.FreeMemory), (0, _combi_1.sta)(Statements.FreeObject), (0, _combi_1.sta)(Statements.Free), (0, _combi_1.sta)(Statements.GenerateDynpro), (0, _combi_1.sta)(Statements.GenerateReport), (0, _combi_1.sta)(Statements.GenerateSubroutine), (0, _combi_1.sta)(Statements.GetBadi), (0, _combi_1.sta)(Statements.GetBit), (0, _combi_1.sta)(Statements.GetCursor), (0, _combi_1.sta)(Statements.GetDataset), (0, _combi_1.sta)(Statements.GetLocale), (0, _combi_1.sta)(Statements.GetParameter), (0, _combi_1.sta)(Statements.GetPFStatus), (0, _combi_1.sta)(Statements.GetProperty), (0, _combi_1.sta)(Statements.GetReference), (0, _combi_1.sta)(Statements.GetRunTime), (0, _combi_1.sta)(Statements.GetTime), (0, _combi_1.sta)(Statements.Hide), (0, _combi_1.sta)(Statements.Nodes), (0, _combi_1.sta)(Statements.ImportDynpro), (0, _combi_1.sta)(Statements.ImportNametab), (0, _combi_1.sta)(Statements.MoveCorresponding), (0, _combi_1.sta)(Statements.Import), (0, _combi_1.sta)(Statements.Infotypes), (0, _combi_1.sta)(Statements.Include), // include does not have to be at top level
22158
- (0, _combi_1.sta)(Statements.InsertDatabase), (0, _combi_1.sta)(Statements.InsertReport), (0, _combi_1.sta)(Statements.InsertTextpool), (0, _combi_1.sta)(Statements.InsertFieldGroup), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.Leave), (0, _combi_1.sta)(Statements.LoadReport), (0, _combi_1.sta)(Statements.Local), (0, _combi_1.sta)(Statements.With), (0, _combi_1.sta)(Statements.LogPoint), (0, _combi_1.sta)(Statements.Message), (0, _combi_1.sta)(Statements.ModifyLine), (0, _combi_1.sta)(Statements.ModifyDatabase), (0, _combi_1.sta)(Statements.ModifyInternal), (0, _combi_1.sta)(Statements.Multiply), (0, _combi_1.sta)(Statements.NewLine), (0, _combi_1.sta)(Statements.NewPage), (0, _combi_1.sta)(Statements.OpenCursor), (0, _combi_1.sta)(Statements.OpenDataset), (0, _combi_1.sta)(Statements.Overlay), (0, _combi_1.sta)(Statements.Pack), (0, _combi_1.sta)(Statements.Perform), (0, _combi_1.sta)(Statements.FormDefinition), (0, _combi_1.sta)(Statements.Position), (0, _combi_1.sta)(Statements.Put), (0, _combi_1.sta)(Statements.PrintControl), (0, _combi_1.sta)(Statements.RaiseEvent), (0, _combi_1.sta)(Statements.RaiseEntityEvent), (0, _combi_1.sta)(Statements.Raise), (0, _combi_1.sta)(Statements.Ranges), (0, _combi_1.sta)(Statements.ReadDataset), (0, _combi_1.sta)(Statements.ReadLine), (0, _combi_1.sta)(Statements.ReadReport), (0, _combi_1.sta)(Statements.ReadTextpool), (0, _combi_1.sta)(Statements.Receive), (0, _combi_1.sta)(Statements.RefreshControl), (0, _combi_1.sta)(Statements.Refresh), (0, _combi_1.sta)(Statements.Reject), (0, _combi_1.sta)(Statements.Replace), (0, _combi_1.sta)(Statements.Reserve), (0, _combi_1.sta)(Statements.Resume), (0, _combi_1.sta)(Statements.Retry), (0, _combi_1.sta)(Statements.Rollback), (0, _combi_1.sta)(Statements.Scan), (0, _combi_1.sta)(Statements.ScrollList), (0, _combi_1.sta)(Statements.Search), (0, _combi_1.sta)(Statements.SetBit), (0, _combi_1.sta)(Statements.SetBlank), (0, _combi_1.sta)(Statements.SetCountry), (0, _combi_1.sta)(Statements.SetCursor), (0, _combi_1.sta)(Statements.SetDataset), (0, _combi_1.sta)(Statements.SetExtendedCheck), (0, _combi_1.sta)(Statements.SetHandler), (0, _combi_1.sta)(Statements.SetLanguage), (0, _combi_1.sta)(Statements.SetLeft), (0, _combi_1.sta)(Statements.SetLocale), (0, _combi_1.sta)(Statements.SetMargin), (0, _combi_1.sta)(Statements.SetParameter), (0, _combi_1.sta)(Statements.SetPFStatus), (0, _combi_1.sta)(Statements.SetProperty), (0, _combi_1.sta)(Statements.SetRunTime), (0, _combi_1.sta)(Statements.SetScreen), (0, _combi_1.sta)(Statements.SetTitlebar), (0, _combi_1.sta)(Statements.SetUserCommand), (0, _combi_1.sta)(Statements.SetUpdateTask), (0, _combi_1.sta)(Statements.Shift), (0, _combi_1.sta)(Statements.Skip), (0, _combi_1.sta)(Statements.SortDataset), (0, _combi_1.sta)(Statements.Sort), (0, _combi_1.sta)(Statements.Static), (0, _combi_1.sta)(Statements.Split), (0, _combi_1.sta)(Statements.Stop), (0, _combi_1.sta)(Statements.Submit), (0, _combi_1.sta)(Statements.Summary), (0, _combi_1.sta)(Statements.SubtractCorresponding), (0, _combi_1.sta)(Statements.Subtract), (0, _combi_1.sta)(Statements.SuppressDialog), (0, _combi_1.sta)(Statements.Supply), (0, _combi_1.sta)(Statements.Sum), (0, _combi_1.sta)(Statements.SyntaxCheck), (0, _combi_1.sta)(Statements.SystemCall), (0, _combi_1.sta)(Statements.Tables), (0, _combi_1.sta)(Statements.Transfer), (0, _combi_1.sta)(Statements.Translate), (0, _combi_1.sta)(Statements.Type), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.Uline), (0, _combi_1.sta)(Statements.Unassign), (0, _combi_1.sta)(Statements.Unpack), (0, _combi_1.sta)(Statements.UpdateDatabase), (0, _combi_1.sta)(Statements.Wait), (0, _combi_1.sta)(Statements.Window), (0, _combi_1.sta)(Statements.Write), (0, _combi_1.sta)(Statements.CommitEntities), (0, _combi_1.sta)(Statements.GetPermissions), (0, _combi_1.sta)(Statements.SetLocks), (0, _combi_1.sta)(Statements.ModifyEntities), (0, _combi_1.sta)(Statements.ReadEntities), (0, _combi_1.sta)(Statements.RollbackEntities), (0, _combi_1.sta)(Statements.Module), // todo, should be dynpro specific
22638
+ (0, _combi_1.sta)(Statements.InsertDatabase), (0, _combi_1.sta)(Statements.InsertReport), (0, _combi_1.sta)(Statements.InsertTextpool), (0, _combi_1.sta)(Statements.InsertFieldGroup), (0, _combi_1.sta)(Statements.InterfaceLoad), (0, _combi_1.sta)(Statements.Leave), (0, _combi_1.sta)(Statements.LoadReport), (0, _combi_1.sta)(Statements.Local), (0, _combi_1.sta)(Statements.With), (0, _combi_1.sta)(Statements.LogPoint), (0, _combi_1.sta)(Statements.Message), (0, _combi_1.sta)(Statements.MergeDatabase), (0, _combi_1.sta)(Statements.ModifyLine), (0, _combi_1.sta)(Statements.ModifyDatabase), (0, _combi_1.sta)(Statements.ModifyInternal), (0, _combi_1.sta)(Statements.Multiply), (0, _combi_1.sta)(Statements.NewLine), (0, _combi_1.sta)(Statements.NewPage), (0, _combi_1.sta)(Statements.OpenCursor), (0, _combi_1.sta)(Statements.OpenDataset), (0, _combi_1.sta)(Statements.Overlay), (0, _combi_1.sta)(Statements.Pack), (0, _combi_1.sta)(Statements.Perform), (0, _combi_1.sta)(Statements.FormDefinition), (0, _combi_1.sta)(Statements.Position), (0, _combi_1.sta)(Statements.Put), (0, _combi_1.sta)(Statements.PrintControl), (0, _combi_1.sta)(Statements.RaiseEvent), (0, _combi_1.sta)(Statements.RaiseEntityEvent), (0, _combi_1.sta)(Statements.Raise), (0, _combi_1.sta)(Statements.Ranges), (0, _combi_1.sta)(Statements.ReadDataset), (0, _combi_1.sta)(Statements.ReadLine), (0, _combi_1.sta)(Statements.ReadReport), (0, _combi_1.sta)(Statements.ReadTextpool), (0, _combi_1.sta)(Statements.Receive), (0, _combi_1.sta)(Statements.RefreshControl), (0, _combi_1.sta)(Statements.Refresh), (0, _combi_1.sta)(Statements.Reject), (0, _combi_1.sta)(Statements.Replace), (0, _combi_1.sta)(Statements.Reserve), (0, _combi_1.sta)(Statements.Resume), (0, _combi_1.sta)(Statements.Retry), (0, _combi_1.sta)(Statements.Rollback), (0, _combi_1.sta)(Statements.Scan), (0, _combi_1.sta)(Statements.ScrollList), (0, _combi_1.sta)(Statements.Search), (0, _combi_1.sta)(Statements.SetBit), (0, _combi_1.sta)(Statements.SetBlank), (0, _combi_1.sta)(Statements.SetCountry), (0, _combi_1.sta)(Statements.SetCursor), (0, _combi_1.sta)(Statements.SetDataset), (0, _combi_1.sta)(Statements.SetExtendedCheck), (0, _combi_1.sta)(Statements.SetHandler), (0, _combi_1.sta)(Statements.SetLanguage), (0, _combi_1.sta)(Statements.SetLeft), (0, _combi_1.sta)(Statements.SetLocale), (0, _combi_1.sta)(Statements.SetMargin), (0, _combi_1.sta)(Statements.SetParameter), (0, _combi_1.sta)(Statements.SetPFStatus), (0, _combi_1.sta)(Statements.SetProperty), (0, _combi_1.sta)(Statements.SetRunTime), (0, _combi_1.sta)(Statements.SetScreen), (0, _combi_1.sta)(Statements.SetTitlebar), (0, _combi_1.sta)(Statements.SetUserCommand), (0, _combi_1.sta)(Statements.SetUpdateTask), (0, _combi_1.sta)(Statements.Shift), (0, _combi_1.sta)(Statements.Skip), (0, _combi_1.sta)(Statements.SortDataset), (0, _combi_1.sta)(Statements.Sort), (0, _combi_1.sta)(Statements.Static), (0, _combi_1.sta)(Statements.Split), (0, _combi_1.sta)(Statements.Stop), (0, _combi_1.sta)(Statements.Submit), (0, _combi_1.sta)(Statements.Summary), (0, _combi_1.sta)(Statements.SubtractCorresponding), (0, _combi_1.sta)(Statements.Subtract), (0, _combi_1.sta)(Statements.SuppressDialog), (0, _combi_1.sta)(Statements.Supply), (0, _combi_1.sta)(Statements.Sum), (0, _combi_1.sta)(Statements.SyntaxCheck), (0, _combi_1.sta)(Statements.SystemCall), (0, _combi_1.sta)(Statements.Tables), (0, _combi_1.sta)(Statements.Transfer), (0, _combi_1.sta)(Statements.Translate), (0, _combi_1.sta)(Statements.Type), (0, _combi_1.sta)(Statements.TypePools), (0, _combi_1.sta)(Statements.Uline), (0, _combi_1.sta)(Statements.Unassign), (0, _combi_1.sta)(Statements.Unpack), (0, _combi_1.sta)(Statements.UpdateDatabase), (0, _combi_1.sta)(Statements.Wait), (0, _combi_1.sta)(Statements.Window), (0, _combi_1.sta)(Statements.Write), (0, _combi_1.sta)(Statements.CommitEntities), (0, _combi_1.sta)(Statements.GetPermissions), (0, _combi_1.sta)(Statements.SetLocks), (0, _combi_1.sta)(Statements.ModifyEntities), (0, _combi_1.sta)(Statements.ReadEntities), (0, _combi_1.sta)(Statements.RollbackEntities), (0, _combi_1.sta)(Statements.Module), // todo, should be dynpro specific
22159
22639
  (0, _combi_1.sta)(Statements.Field), // todo, should be dynpro specific
22160
22640
  (0, _combi_1.sub)(Structures.Chain), // todo, should be dynpro specific
22161
22641
  (0, _combi_1.sub)(Structures.Define), (0, _combi_1.sub)(Structures.TestInjection), (0, _combi_1.sub)(Structures.TestSeam), (0, _combi_1.sub)(Structures.TypeMesh), (0, _combi_1.sub)(Structures.Provide), (0, _combi_1.sub)(Structures.CatchSystemExceptions), (0, _combi_1.sub)(Structures.At), (0, _combi_1.sub)(Structures.AtFirst), (0, _combi_1.sub)(Structures.AtLast), (0, _combi_1.sub)(Structures.Constants), (0, _combi_1.sub)(Structures.Types), (0, _combi_1.sub)(Structures.Statics), (0, _combi_1.sub)(Structures.Select), (0, _combi_1.sub)(Structures.Data), (0, _combi_1.sub)(Structures.TypeEnum), (0, _combi_1.sub)(Structures.While), (0, _combi_1.sub)(Structures.With), (0, _combi_1.sub)(Structures.Do), (0, _combi_1.sub)(Structures.ExecSQL));
@@ -32712,7 +33192,15 @@ class Select {
32712
33192
  const fields = (_a = node.findFirstExpression(Expressions.SQLAggregation)) === null || _a === void 0 ? void 0 : _a.concatTokens();
32713
33193
  const c = new RegExp(/^count\(\s*\*\s*\)$/, "i");
32714
33194
  if (fields === undefined || c.test(fields) === false) {
32715
- const nameToken = from === null || from === void 0 ? void 0 : from.findDirectExpression(Expressions.SQLFromSource);
33195
+ let body = from === null || from === void 0 ? void 0 : from.findDirectExpression(Expressions.SQLFromBody);
33196
+ while (body) {
33197
+ const inner = body.findDirectExpression(Expressions.SQLFromBody);
33198
+ if (inner === undefined) {
33199
+ break;
33200
+ }
33201
+ body = inner;
33202
+ }
33203
+ const nameToken = body === null || body === void 0 ? void 0 : body.findDirectExpression(Expressions.SQLFromSource);
32716
33204
  if (nameToken) {
32717
33205
  const found = input.scope.findVariable(nameToken.concatTokens());
32718
33206
  if (found) {
@@ -67423,7 +67911,7 @@ class Registry {
67423
67911
  }
67424
67912
  static abaplintVersion() {
67425
67913
  // magic, see build script "version.js"
67426
- return "2.119.46";
67914
+ return "2.119.47";
67427
67915
  }
67428
67916
  getDDICReferences() {
67429
67917
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.119.46",
3
+ "version": "2.119.47",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "homepage": "https://abaplint.org",
41
41
  "devDependencies": {
42
- "@abaplint/core": "^2.119.46",
42
+ "@abaplint/core": "^2.119.47",
43
43
  "@types/chai": "^4.3.20",
44
44
  "@types/minimist": "^1.2.5",
45
45
  "@types/mocha": "^10.0.10",