That was actually what I tried first - the code that parses the version string didn't handle the @@VERSION string. If you look at the regex they're completely different strings.
On Wednesday, April 2, 2014 8:10:53 PM UTC-5, Jeremy Evans wrote: > > On Wednesday, April 2, 2014 4:57:00 PM UTC-7, Nathan Walker wrote: >> >> I'm not certain that it'll be possible to solve this problem - for the >> most part I'm posting this so that if any other unlucky soul has to deal >> with this particular database there'll be a direction to go for the >> workaround. >> >> I'm trying to connect my favorite SQL gem to a MSSQL / PDW instance. >> (Parallel Data Warehouse, it seems to be a MS-branded distributed SQL >> Server version) >> >> The key point here is that PDW doesn't seem to support the SERVERPROPERTY >> command, which makes Sequel very angry and me very sad. It throws an >> exception from within lib/sequel/adapters/shared/mssql.rb:166 (as one would >> expect), and I can't really do anything. I hacked my way around it by >> monkey-patching the server_version method to always return 10000000 - it >> appears to be a SQL Server 2008 version - and then everything else seems to >> work. >> >> "SELECT @@VERSION" returns: >> Microsoft SQL Server 2008 R2 (RTM) - 10.0.3595.0 (X64) Jul 27 2012 >> 20:35:00 Copyright (c) Microsoft Corporation Parallel Data Warehouse >> (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2) >> >> In my research it doesn't look like all SQL Server instances support the >> @@VERSION either - so couldn't just switch the query. I'd be happy to try >> other commands against the server but it belongs to our IT group so I don't >> have much info to share about the instance specifically. For all I know >> they've somehow disabled SERVERPROPERTY on this specific instance. >> >> In any case: Sequel is awesome and works with PDW with a *little* bit of >> tweaking. >> > > Instead of hacking the adapter, you may be able to do: > > Sequel::MSSQL::DatabaseMethods.send(remove_const, :SERVER_VERSION_SQL) > Sequel::MSSQL::DatabaseMethods::SERVER_VERSION_SQL = 'SELECT @@VERSION' > > One simple way to support this would to add a :server_version Database > option, and have it use that if given instead of doing a database query. > Alternatively, we could have it fallback to using @@VERSION if > SERVERPROPERTY raises an error, but I like that approach less. I'm open to > other ideas if anyone has any. > > Thanks, > Jeremy > -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sequel-talk. For more options, visit https://groups.google.com/d/optout.
