Opened 17 years ago
Closed 17 years ago
#5061 closed (duplicate)
New backend for Sql Server using pymssql
Reported by: | Owned by: | Adrian Holovaty | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Keywords: | ms sql server | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
Related to this thread I code a new backend for Sql Server using Sql Server.
This is a alpha version... and I put it here so can get early feedback. Is not production ready.
Hacked on
- Sql Server 2000 SP1
- WinXP PRO 64 bits
- Python 2.4
- Django rev 5783
What's on:
- Merge of several code & tickets around, including the original ado_mssql code as base.
- Based on pymssql 0.8.0 so in theroy must work across plataforms. This have some bugs and issues so please install it from pymssql site and then apply the patch here. Include detection of boolean types, support of autocommit, splits on GO, and not mask python errors as sql server fault.
- Fix problems with dateformat on nonenglish sql instalations.
- Tested using included django\tests>runtests.py, with the tutorial, satchmo rev 590 with not fatal errors.
- Detection of Sql Server version, so later can apply optimizations based on this information.
- Implemented client.py (so python manage.py dbshell work).
What's left
- No LIMIT/OFFSET emulation. I'm learning about the Oracle backend for apply a similar aproach. I think however is a doable task with the refactoring of query class.
- No get_deferrable_sql (aka CASCADE delete/update on relations). Sql Server is very sensitive about circular references.
- Testing against Sql 2005 and on linux.
- Login using integrated security (on windows)
- Check what happend with multiples collations
What's uggly
- Barney and their friends
- Seriously, check db\models line 242+: How detect properly autoinc fields?
Note:
See TracTickets
for help on using tickets.
Dupe of #5062, which includes patches.