always deal with the trunk, and i would advise you take a look at lib/ sqlalchemy/databases/mysql.py. the typing system within the module is quite simple, and should probably have an Enum type (which probably would subclass MSString), etc.
On Jun 22, 2006, at 7:42 PM, Mike Bernson wrote: > Would you accept a patch add a more types into the mysql types. I > would > to add a number of them to get a more complete list. Not sure I would > get all of them. > > Is 1654 a version to look at and make the patch for or is there a > better > place to start from ? > > I would also like to be able to get unsigned arg for math type. > > I would also like length on all types. some have default size like > dates. I would also be willing send this in as part of patch. > > I would like to see flag added to the math types for signed/unsigned. > I am not sure if having new types is a better way of doing things. > > Are there any examples of custom types that I can look at. > > I have a package that build screens and is trying to get information > from the database about size and type. Also if enums then also want > the > list of values allowed. > > > > Michael Bayer wrote: >> MySQL-specific types arent present in the mysql module as of yet. >> they >> default to MSString when reflecting and cant be matched. i >> committed an >> extra param "*extra" to the MSString constructor in revision 1654 to >> consume the extra arguments coming back from those types, so youll >> get >> better results. >> >> On Jun 22, 2006, at 6:05 PM, Mike Bernson wrote: >> >>> I am starting looking into what type of object come back for >>> different >>> column types from mysql. >>> >>> I am using version 0.2.3 with mysql version 5 >>> >>> Here is error with a print statement near the problem turned on >>> >>> [EMAIL PROTECTED]:~/src/myranch/packages/screen/screen/views 276> python >>> test1.py >>> coltype: 'tinyint' args: '(2)' >>> args! ['2'] >>> coltype: 'tinyint' args: '(2)' >>> args! ['2'] >>> coltype: 'smallint' args: '(2)' >>> args! ['2'] >>> coltype: 'smallint' args: '(2)' >>> args! ['2'] >>> coltype: 'int' args: '(2)' >>> args! ['2'] >>> coltype: 'int' args: '(2)' >>> args! ['2'] >>> coltype: 'int' args: '(2)' >>> args! ['2'] >>> coltype: 'int' args: '(2)' >>> args! ['2'] >>> coltype: 'bigint' args: '(10)' >>> args! ['10'] >>> coltype: 'bigint' args: '(10)' >>> args! ['10'] >>> coltype: 'double' args: '(10,4)' >>> args! ['10', '4'] >>> coltype: 'double' args: '(10,4)' >>> args! ['10', '4'] >>> coltype: 'float' args: '(10,4)' >>> args! ['10', '4'] >>> Traceback (most recent call last): >>> File "test1.py", line 9, in ? >>> table = Table('testing', metadata, autoload=True) >>> File "/home/mike/src/SQLAlchemy-0.2.3/lib/sqlalchemy/ >>> schema.py", line >>> 96, in __call__ >>> metadata.engine.reflecttable(table) >>> File "/home/mike/src/SQLAlchemy-0.2.3/lib/sqlalchemy/engine/ >>> base.py", >>> line 484, in reflecttable >>> self.dialect.reflecttable(conn, table) >>> File >>> "/home/mike/src/SQLAlchemy-0.2.3/lib/sqlalchemy/databases/mysql.py", >>> line 207, in reflecttable >>> coltype = coltype(*[int(a) for a in args]) >>> TypeError: __init__() takes at most 2 arguments (3 given) >>> >>> Here is the python code: >>> from pkg_resources import require >>> require('SQLAlchemy') >>> >>> from sqlalchemy import * >>> >>> engine = create_engine("mysql:///wood_memorial") >>> metadata = BoundMetaData(engine) >>> table = Table('testing', metadata, autoload=True) >>> >>> >>> here is the create for the table: >>> >>> use wood_memorial >>> >>> create table testing ( >>> type_tiny TINYINT(2) DEFAULT 1, >>> type_utiny TINYINT(2) unsigned DEFAULT 2, >>> type_small SMALLINT(2) DEFAULT 1, >>> type_usmall SMALLINT(2) unsigned DEFAULT 2, >>> type_int INT(2) DEFAULT 2, >>> type_uint INT(2) unsigned, >>> type_integer INTEGER(2) DEFAULT 2, >>> type_uinteger INTEGER(2) unsigned, >>> type_bigint BIGINT(10), >>> type_ubigint BIGINT(10) unsigned, >>> type_double DOUBLE(10,4), >>> type_udobule DOUBLE(10,4) unsigned, >>> type_float FLOAT(10,4), >>> type_ufloat FLOAT(10,4) unsigned, >>> type_decimal DECIMAL(10,4), >>> type_udecimal DECIMAL(10,4) unsigned, >>> type_numeric NUMERIC(10,4), >>> type_unumeric NUMERIC(10,4) unsigned, >>> type_date DATE, >>> type_time TIME, >>> type_timestape TIMESTAMP, >>> type_datetime DATETIME, >>> type_year YEAR, >>> type_char_ascii CHAR(10) ASCII, >>> type_char_unicode CHAR(10) ASCII, >>> type_varchar VARCHAR(10), >>> type_unum enum('1','2','3') >>> >>> ) >>> >>> Using Tomcat but need to do more? Need to support web services, >>> security? >>> Get stuff done quickly with pre-integrated technology to make >>> your job >>> easier >>> Download IBM WebSphere Application Server v.1.0.1 based on Apache >>> Geronimo >>> http://sel.as-us.falkag.net/sel? >>> cmd=lnk&kid=120709&bid=263057&dat=121642 >>> _______________________________________________ >>> Sqlalchemy-users mailing list >>> Sqlalchemy-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users >> Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Sqlalchemy-users mailing list Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users