I’ve just released SQL 4 CDS v6.3 with a number of useful improvements and fixes.

INSERT/UPDATE/DELETE performance improvements

Bulk data modifications are now able to be performed in parallel if you use client secret or certificate authenticate connections as well as OAuth username & password. This can give a huge performance benefit when you use these authentication types.

Multi-table improvements

Rather than using standard join syntax, it’s also possible to execute a query across multiple tables using syntax such as:

SELECT account.name,
FROM   account,
WHERE  account.accountid = contact.parentcustomerid

In this update, this query is automatically converted to the equivalent join to produce an efficient FetchXML query. The Intellisense suggestions are also improved for this syntax.

Join performance improvements

When a large number of joins are used in a query, it could take several seconds to convert it to FetchXML. This version massively speeds up this process so you can execute queries with multiple joins much quicker.

Query hint improvements

Query hints give you a lot of power to control individual queries by bypassing plugins and other custom features, but it’s easy to misspell them. This update provides validation of the hint names as well as removing any bespoke SQL 4 CDS hints before executing a query against the TDS endpoint.

Audit record deletion

In online instances, audit records can’t be deleted individually but can be removed using a bulk delete job. This update automatically converts a DELETE FROM audit ... query to a bulk delete job regardless of the “Use bulk delete operations” setting.

FetchXML improvements

The FetchXML generated by this version is easier to read and edit in FetchXML Builder as it removes the unnecessary nesting of filters. It also fixes a bug with the automatic page size calculation so large result sets should be retrieved faster.

3 thoughts on “SQL 4 CDS 6.3 Released”

  1. Hi Mark,

    I have a question:
    Is there a way using SQL4CDS to query the values of a MultiSelect PickList column that is not defined as a global option set but local within the entity?


  2. Hi Mark,
    when issuing a delete statement (SQL like) the name of the Bulk Delete job is defaulted to
    SQL 4 CDS Audits Bulk Delete Job
    Is there a way for us to specify what the job will be called without using the post method but the SQL like code?
    If not it might be useful to add a time stamp in the name of the job.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.