blaze / blaze/blaze

ENH: MSSQL Compatibility

Open
#1,508 0 comments 0 reactions 0 assignees View on GitHub
mssql testing
Dominant language
Python
Stars
3.2k
Forks
389
PR merge metrics
No merged PRs in 30d

Description

Hello,

My company uses MSSQL, so that's the box I need to work with.

I'm interested in making blaze work on it for a project/idea of mine. But it seems some functionality is missing/broken.

First, to get MSSQL to work, I noticed that some datatypes have to be mapped. I _think_ the correct place to do this is in `odo`. I've filed a PR [here](https://github.com/blaze/odo/pull/430).

So now I'm trying to understand the mechanics of blaze. I noticed that most things work, (sums, avg, split-apply-combine sum/avg). But I ran into an issue getting power (i.e., x *\* 2) to work. It seems blaze is trying to use the function `pow`, but on MSSQL, the function is actually `Power` (case insensitive).

Anyone have suggestions on how to fix? I'm not sure if this is a SQL Alchemy thing or something else.

On another note, I don't have any idea how I can write a unit test that would work for this. I presume we'd have to use Appveyor or something else that supports MSSQL as travis-ci doesn't (AFAIK). Setting up that might be a little hard... But I'm willing to try...

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing how Blaze compiles power expressions such as `x ** 2` through SQLAlchemy and compare that with the MSSQL behavior described here; review odo PR #430 for datatype mappings. Check the existing unit-test setup and whether AppVeyor or another MSSQL-capable runner is available. Done means MSSQL compatibility and power expressions work with regression coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, sql, sqlalchemy
Domain
backend, databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.