MSSQL backend, thru either pymssq, adodbapi or pyodbc interfaces.
IDENTITY columns are supported by using SA schema.Sequence() objects. In other words:
Table('test', mss_engine, Column('id', Integer, Sequence('blah',100,10), primary_key=True), Column('name', String(20)) ).create()
would yield:
CREATE TABLE test ( id INTEGER NOT NULL IDENTITY(100,10) PRIMARY KEY, name VARCHAR(20) )
Note that the start & increment values for sequences are optional and will default to 1,1.
Support for SET IDENTITY_INSERT ON mode (automagic on / off for INSERT s)
Support for auto-fetching of @@IDENTITY/@@SCOPE_IDENTITY() on INSERT
select._limit implemented as SELECT TOP n
Experimental implemention of LIMIT / OFFSET with row_number()
Known issues / TODO:
overrides bindparam/result processing to not convert any unicode strings
Floating point class for decimal arithmetic.
Represents the number as a triple tuple.
To show the internals exactly as they are.
Compares one to another.
-1 => a < b 0 => a = b 1 => a > b NaN => one is NaN Like __cmp__, but returns Decimal instances.
Returns the larger value.
like max(self, other) except if one is not a number, returns NaN (and signals if one is sNaN). Also rounds.
Returns the smaller value.
like min(self, other) except if one is not a number, returns NaN (and signals if one is sNaN). Also rounds.
Quantize self so its exponent is the same as that of exp.
Similar to self._rescale(exp._exp) but with error checking.
Remainder nearest to 0- abs(remainder-near) <= other/2
Test whether self and other have the same exponent.
same as self._exp == other._exp, except NaN == sNaN
Return the square root of self.
Uses a converging algorithm (Xn+1 = 0.5*(Xn + self / Xn)) Should quadratically approach the right answer.
Convert to engineering-type string.
Engineering notation has an exponent which is a multiple of 3, so there are up to 3 digits left of the decimal place.
Same rules for when in exponential and when as a value as in __str__.
Rounds to the nearest integer, without raising inexact, rounded.
Returns the absolute value of self.
If the second argument is 0, do not round.
Returns self + other.
-INF + INF (or the reverse) cause InvalidOperation errors.
Returns self + other.
-INF + INF (or the reverse) cause InvalidOperation errors.
Return self * other.
(+-) INF * 0 (or its reverse) raise InvalidOperation.
Return self * other.
(+-) INF * 0 (or its reverse) raise InvalidOperation.
Returns a copy, unless it is a sNaN.
Rounds the number (if more then precision digits)
Return self ** n (mod modulo)
If modulo is None (default), don't take it mod modulo.
Move bind parameters to the right-hand side of an operator, where possible.
Look for LIMIT and OFFSET in a select statement, and if so tries to wrap it in a subquery with row_number() criterion.
Pull the raw pymmsql connection out--sensative to "pool.ConnectionFairy" and pymssql.pymssqlCnx Classes
A tuple of the database server version.
Formats the remote server version as a tuple of version values, e.g. (9, 0, 1399). If there are strings in the version number they will be in the tuple too, so don't count on these all being int values.
This is a fast check that does not require a round trip. It is also cached per-Connection.
Turn off the INDENTITY_INSERT mode if it's been activated, and fetch recently inserted IDENTIFY values (works only for one column).
MS-SQL has a special mode for inserting non-NULL values into IDENTITY columns.
Activate it if the feature is turned on and needed.