Indeed! That's what I get for defining my tables based on the pdf my manager gave me, instead of looking at the tables in psql directly. Thanks, I was stuck looking at my code for the problem.
Craig On May 16, 7:53 am, Michael Bayer <mike...@zzzcomputing.com> wrote: > On May 16, 2011, at 9:23 AM, Craig Swank wrote: > > > > > > > Hello, > > I am declaratively defining a table and am having trouble with adding > > a float column. I get this error: > > > InvalidRequestError: Unknown PG numeric type: 1043 > > > when I add a column with either: > > > from sqlalchemy.dialects.postgresql import NUMERIC > > > or > > > from sqlalchemy import Float > > > and the column definition looks like: > > > turbine_ok_hours = Column(Float(5)) > > > I am using sqlalchemy-0.6.7, posgresql 9.0, psycopg2--2.4. > > So that particular type needs to check the PostgreSQL type code in order to > know how to handle what's in the result set. The DBAPI, usually psycopg2, > sends back this code within every result set. 1043 as it turns out is > VARCHAR, so can't be handled numerically. Your turbine_ok_hours is likely a > VARCHAR. > > pg8000's source code has a nice table of all these values: > > # py type -> pg array typeoid > py_array_types = { > float: 1022, > bool: 1000, > str: 1009, # TEXT[] > unicode: 1009, # TEXT[] > decimal.Decimal: 1231, # NUMERIC[] > > } > > pg_types = { > 16: {"bin_in": boolrecv}, > 17: {"bin_in": bytearecv}, > 19: {"bin_in": varcharin}, # name type > 20: {"bin_in": int8recv}, > 21: {"bin_in": int2recv}, > 23: {"bin_in": int4recv}, > 25: {"bin_in": varcharin}, # TEXT type > 26: {"txt_in": numeric_in}, # oid type > 700: {"bin_in": float4recv}, > 701: {"bin_in": float8recv}, > 829: {"txt_in": varcharin}, # MACADDR type > 1000: {"bin_in": array_recv}, # BOOL[] > 1003: {"bin_in": array_recv}, # NAME[] > 1005: {"bin_in": array_recv}, # INT2[] > 1007: {"bin_in": array_recv}, # INT4[] > 1009: {"bin_in": array_recv}, # TEXT[] > 1014: {"bin_in": array_recv}, # CHAR[] > 1015: {"bin_in": array_recv}, # VARCHAR[] > 1016: {"bin_in": array_recv}, # INT8[] > 1021: {"bin_in": array_recv}, # FLOAT4[] > 1022: {"bin_in": array_recv}, # FLOAT8[] > 1042: {"bin_in": varcharin}, # CHAR type > 1043: {"bin_in": varcharin}, # VARCHAR type > 1082: {"txt_in": date_in}, > 1083: {"txt_in": time_in}, > 1114: {"bin_in": timestamp_recv}, > 1184: {"bin_in": timestamptz_recv}, # timestamp w/ tz > 1186: {"bin_in": interval_recv}, > 1231: {"bin_in": array_recv}, # NUMERIC[] > 1263: {"bin_in": array_recv}, # cstring[] > 1700: {"bin_in": numeric_recv}, > 2275: {"bin_in": varcharin}, # cstring > > > > } > > > This is the 6th table I've added so far for this project, and all the > > others are working fine. Any idea what may be wrong? I'm stumped. > > > Thanks, > > > Craig > > > -- > > You received this message because you are subscribed to the Google Groups > > "sqlalchemy" group. > > To post to this group, send email to sqlalchemy@googlegroups.com. > > To unsubscribe from this group, send email to > > sqlalchemy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.