Limitation / customer experience after upgrading from version earlier than 21.x to version to 21.x and later
If the data being sorted contains special characters, such as hyphens, brackets, and so on, such data is sorted differently in different databases.
For example, the ticket summary contains the following data:
Summary |
|---|
Laptop issues |
[QA] email issues |
QA environment upgrade |
In PostgreSQL with default settings, sorting on the Summary field in Ascending order sorts and displays the data as follows:
Summary |
|---|
Laptop issues |
[QA] email issues |
QA environment upgrade |
In Microsoft SQL Server with default settings, sorting on the Summary field in Ascending order sorts and displays the data as follows:
Summary |
|---|
[QA] email issues |
Laptop issues |
QA environment upgrade |
If data sorting is not acceptable for business reasons, use one of the following options to resolve the issue:
- Fix the form properties or workflow that might be impacted because of a change in the sorting behavior.
- Identify specific form fields and raise a request with Support team to change collation at the database column level.
Search results based on accented characters works differently in Microsoft SQL Server and PostgreSQL.
If searches use qualifications (WHERE clause in database) that rely on accent characters, the search results might be different in Microsoft SQL and PostgreSQL.
PostgreSQL database does not support accent insensitive collation searches.
Hence, similar sounding words, such as “èvan” and “evan” are considered as different strings.
Best practice: We recommend you to use FTS indexes so that accent insensitive setting of databases are not used.
Microsoft SQL Server supports accent insensitive collation in searches.
Hence, similar sounding words, such as “èvan” and “evan” are treated as the same string.
If it is important to treat accented strings in the same manner as non-accented strings in searches, enable FTS indexes on those fields. FTS indexes have a configuration to enable accent insensitive searches.
PostgreSQL does not allow null byte ('\0') in a string on char/text/varchar fields. If you try to store a string containing null bytes, you receive an error.
ASCII NULL characters will not get loaded from external data entry.
Any existing data containing such characters will be lost during migration.Such character cannot be loaded in the target PostgreSQL database, so modify the calling program/workflow to stop sending this character.
If there was ASCII NULL character pre-upgrade, fix it in source to remove it and then perform migration.
Attachments or data with cumulative size of 1 GB will not be accepted in the system.
Attachments that are larger than 1 GB at source before migration will be lost in migration.
Do not upload attachments that are larger than 1 GB.
BMC will provide a list of entries that might contain attachments that are larger than 1 GB. You must download such attachments from the source system prior to migration and upload them elsewhere, such as internal FTP site or OneDrive, and provide links in the ticket for end users.
If the data contains single backslash character for example. (onbmc\user) and it needs to be used in WHERE clause of a query, it has to be escaped in PostgreSQL.
Example:
SELECT name FROM table WHERE login = ‘onbmc\\user’ will return the result as expected.
If the data contains single backslash character, for example, (onbmc\user) and it needs to be used in the WHERE clause of a query, it can be used as it is in MS SQL.
Example:
SELECT name FROM table WHERE login = ‘onbmc\user’ will return the result as expected.
Fix the custom workflows to make use of the correct qualification based on database type. Use $DATABASE$ keyword in the workflow qualification to ensure foolproof behavior that is independent of the database.
Creating or modifying data on a View form fails in PostgreSQL
Creating or modifying data on a View form fails if you use a View form that fetches data from a Database View. This issue occurs in PostgreSQL database when the Database view is not automatically updatable. See the information on Updatable Views in the PostgreSQL online documentation. .
Most Database views are not updatable by default. Views with joins or those using aggregate functions are not updatable in PostgreSQL.
Many views may be updatable by default because SQL Server Database Engine automatically finds and maps the update to underlying tables.
Change the logic in the workflow to use better constructs, such as Set Field or Push Field action, wherever possible.
If Direct SQL is the only option, change the SQL to make sure it works for all supported database types. For example, use a T table or simple view updates instead of join view updates.
Any use of direct SQL in a workflow must be compliant with all supported database types so that any change in the database does not affect the workflow.