on 2011 Feb 10 3:06 PM
As Karim has explained here, the default server capabilities for a particular server class are based on the oldest supported version of the according DBMS.
For example, for Microsoft SQL Server that is version 6.5, Service Pack 4 - released around 1998, methinks.
That's alright with me.
However, as these versions are often really old, it would be nice if SQL Anywhere could provide information for the default capabilities of newer versions. - I don't expect different server classes but would think of a document with capabilities that could be set for newer versions (or a bunch of scripts to update them?).
At the moment, one is somewhat on his own to find out whether a particular version might support more than the default capabilities, and that's a risky task not everyone likes to do. But relying on the defaults of an old version will often prevent efficient remote access and lead to unnecessary local computations.
I feel a somewhat "official" list would make updating the capabilities much more easy.
Request clarification before answering.
Volker,
You are correct. It has been some time since the default capability bits for the various SA remote servers has been updated. And as you pointed out, in addition to the bit settings being somewhat out of date, the list of capability bits and their meanings is not documented very well. I will open two enhancement requests to:
1) revisit the default settings for the various remote servers and get the settings updated to reflect the current set of released versions for each remote server class
and
2) get the set of capability bits, their meanings and their default setting properly documented.
Karim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Just as a refresh: I'm currently trying to use proxy tables with MS SQL 2008 R2, and when joining between a few of them, it often (and unnecessarily) falls back to "The query is being processed in NO PASSTHRU mode" - even though the original statement does work with MS SQL, too.
I'd tried to set the following cap bits (as they seem to get checked as not set):
ALTER SERVER MS_TEST CAPABILITY 'Full outer joins' ON; ALTER SERVER MS_TEST CAPABILITY 'Unrestricted ANSI ON' ON; ALTER SERVER MS_TEST CAPABILITY 'Case expression' ON; ALTER SERVER MS_TEST CAPABILITY 'Derived tables' ON;
But I do not know their exact meaning, and additionally are not aware whether that MS SQL Server version does fullfil all requirements, so that's basically a wild guessing...
Resume: At least a better documentation and a list for current remote server versions would be highly appreciated. As stated, I don't ask for the default caps to be adapted within the software, a mere list would be sufficient...
Hi Volker,
I don't think it's a good idea to turn on server capabilities you're not completely aware of. For your list, all except 'Unrestricted ANSI ON' can be looked up as SQL Anywhere online help entries, and switching the capability on imo means that the back-end supports the same syntax with the same semantics.
What could happen if you set them (not claiming completeness):
(best) They are actually supported and work semantically equivalent to SQL Anywhere.
They are not supported and pushing a statement to the remote server raises an exception.
There is a syntactically identical but semantically different construct that always returns a different result.
(worst) There is a syntactically identical but semantically different construct that sometimes returns a different result.
An example for (4.) that I happen to have some experience with is 'Like - TSQL', which means that the back-end LIKE operator supports the same patterns as T-SQL (including simple reg.exp.s, which is not ANSI standard SQL). If you use a pattern with only the standard like patterns _ and %, everything will work fine, but if you use one with a simple reg.exp. and the back-end does not interpret it the same way, you'll usually get a different result (but no error since it still is a syntactically correct search pattern).
No need to say that I support any request for more and more detailed official documentation on such topics.
HTH
Volker Stöffler DB-TecKnowledgy
I don't think it's a good idea to turn on server capabilities you're not completely aware of.
Yes, I certainly agree. As stated (note, it's an old posting from 2013), I just tried to figure out what exactly prevented the joins from being passed through, so that was just during tests.
BTW: Welcome here - I adjusted your links, this forum does not expect square brackets around URLs:)
User | Count |
---|---|
33 | |
22 | |
17 | |
8 | |
5 | |
5 | |
4 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.