From 00eb6144ea2f097e3f88763cda9bd04cbe9118ce Mon Sep 17 00:00:00 2001 From: Sebastian Listl <s.listl@adito.de> Date: Fri, 30 Oct 2020 13:17:10 +0100 Subject: [PATCH] 1067733 ContextUtils.getSelectMap not working with mariaDB --- process/Context_lib/process.js | 10 +++++++--- process/Sql_lib/process.js | 22 ++++++++++++++-------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index fcf879f0488..a9b9eac3121 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -494,6 +494,10 @@ ContextSelector.prototype.setGroupBy = function(pValue) ContextUtils.getSelectMap = function() { var maskingUtils = new SqlMaskingUtils(); + var isOracle = maskingUtils.dbType == db.DBTYPE_ORACLE10_CLUSTER + || maskingUtils.dbType == db.DBTYPE_ORACLE10_OCI + || maskingUtils.dbType == db.DBTYPE_ORACLE10_THIN; + return { "Organisation": ContextSelector.create("ORGANISATION", "CONTACT.CONTACTID", "ORGANISATION.NAME") .setJoinExpression("join CONTACT on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID and CONTACT.PERSON_ID is null") @@ -539,7 +543,7 @@ ContextUtils.getSelectMap = function() .setTitleExpression(maskingUtils.cast(maskingUtils.concat([ KeywordUtils.getResolvedTitleSqlPart("ContractType", "CONTRACTTYPE"), maskingUtils.cast("CONTRACTCODE", SQLTYPES.VARCHAR, 10) - ], " "), SQLTYPES.NVARCHAR, 50)) + ], " "), isOracle ? SQLTYPES.NVARCHAR : SQLTYPES.VARCHAR, 50)) .setContactIdField("CONTACT_ID") .setCreationDateField("CONTRACTSTART") .setStateField("CONTRACTSTATUS") @@ -551,7 +555,7 @@ ContextUtils.getSelectMap = function() maskingUtils.cast("OFFERCODE", SQLTYPES.VARCHAR, 10), "'-'", maskingUtils.cast("VERSNR", SQLTYPES.VARCHAR, 10) - ], "", false), SQLTYPES.NVARCHAR, 50)) + ], "", false), isOracle ? SQLTYPES.NVARCHAR : SQLTYPES.VARCHAR, 50)) .setContactIdField("CONTACT_ID") .setCreationDateField("OFFERDATE") .setStateField("STATUS") @@ -560,7 +564,7 @@ ContextUtils.getSelectMap = function() .setTitleExpression(maskingUtils.cast(maskingUtils.concat([ KeywordUtils.getResolvedTitleSqlPart("OrderType", "ORDERTYPE"), maskingUtils.cast("SALESORDERCODE", SQLTYPES.VARCHAR, 10) - ], " "), SQLTYPES.NVARCHAR, 50)) + ], " "), isOracle ? SQLTYPES.NVARCHAR : SQLTYPES.VARCHAR, 50)) .setContactIdField("CONTACT_ID") .setCreationDateField("SALESORDERDATE") .setStateField("ORDERSTATUS") diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index fc73644c520..75c6923e249 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -3406,6 +3406,7 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt case db.DBTYPE_MYSQL4: switch(pTargetDatatype) { + case SQLTYPES.NVARCHAR: case SQLTYPES.VARCHAR: case SQLTYPES.CHAR: case SQLTYPES.INTEGER: @@ -3445,18 +3446,23 @@ SqlMaskingUtils.prototype.cast = function (pField, pTargetDatatype, pTargetLengt case SQLTYPES.INTEGER: case SQLTYPES.CHAR: case SQLTYPES.VARCHAR: + case SQLTYPES.NVARCHAR: sqlDataType = _mapDefaults(pTargetDatatype); break; } break; case db.DBTYPE_SQLSERVER2000: - case SQLTYPES.DATE: - case SQLTYPES.DECIMAL: - case SQLTYPES.INTEGER: - case SQLTYPES.CHAR: - case SQLTYPES.VARCHAR: - sqlDataType = _mapDefaults(pTargetDatatype); - break; + switch(pTargetDatatype) + { + case SQLTYPES.DATE: + case SQLTYPES.DECIMAL: + case SQLTYPES.INTEGER: + case SQLTYPES.CHAR: + case SQLTYPES.VARCHAR: + case SQLTYPES.NVARCHAR: + sqlDataType = _mapDefaults(pTargetDatatype); + break; + } //TODO: firebird support? } @@ -3586,7 +3592,7 @@ SqlMaskingUtils.prototype.concat = function (pFields, pSeparator, pAutoTrimField if (pSeparator === null || pSeparator === undefined) pSeparator = "' '"; - else if (pSeparator) + else if (pSeparator || pSeparator === "") pSeparator = "'" + db.quote(pSeparator, this.alias) + "'"; var doEmptyStringCheck = true; -- GitLab