fix: _loads_domains in SQLA2 #929
Merged
GitHub Actions / Test Results - 3.9, true
failed
Apr 7, 2024 in 0s
1 fail, 35 skipped, 52 pass in 17s
88 tests 52 ✅ 17s ⏱️
1 suites 35 💤
1 files 1 ❌
Results for commit 4c67e26.
Annotations
Check warning on line 0 in duckdb_engine.tests.test_datatypes
github-actions / Test Results - 3.9, true
test_unsigned_integer_type[UHugeInteger] (duckdb_engine.tests.test_datatypes) failed
results.xml [took 0s]
Raw output
sqlalchemy.exc.ProgrammingError: (duckdb.duckdb.CatalogException) Catalog Error: Type with name UHugeInt does not exist!
Did you mean "hugeint"?
[SQL:
CREATE TABLE "table" (
id INTEGER NOT NULL,
a UHugeInt,
PRIMARY KEY (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/f405)
self = <sqlalchemy.engine.base.Connection object at 0x7f49855c4430>
dialect = <duckdb_engine.Dialect object at 0x7f4991b938b0>
context = <sqlalchemy.dialects.postgresql.psycopg2.PGExecutionContext_psycopg2 object at 0x7f49855c48b0>
statement = <sqlalchemy.dialects.postgresql.base.PGDDLCompiler object at 0x7f49855c4640>
parameters = [()]
#x1B[94mdef#x1B[39;49;00m #x1B[92m_exec_single_context#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
dialect: Dialect,#x1B[90m#x1B[39;49;00m
context: ExecutionContext,#x1B[90m#x1B[39;49;00m
statement: Union[#x1B[96mstr#x1B[39;49;00m, Compiled],#x1B[90m#x1B[39;49;00m
parameters: Optional[_AnyMultiExecuteParams],#x1B[90m#x1B[39;49;00m
) -> CursorResult[Any]:#x1B[90m#x1B[39;49;00m
#x1B[90m #x1B[39;49;00m#x1B[33m"""continue the _execute_context() method for a single DBAPI#x1B[39;49;00m
#x1B[33m cursor.execute() or cursor.executemany() call.#x1B[39;49;00m
#x1B[33m#x1B[39;49;00m
#x1B[33m """#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m dialect.bind_typing #x1B[95mis#x1B[39;49;00m BindTyping.SETINPUTSIZES:#x1B[90m#x1B[39;49;00m
generic_setinputsizes = context._prepare_set_input_sizes()#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m generic_setinputsizes:#x1B[90m#x1B[39;49;00m
#x1B[94mtry#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
dialect.do_set_input_sizes(#x1B[90m#x1B[39;49;00m
context.cursor, generic_setinputsizes, context#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[94mexcept#x1B[39;49;00m #x1B[96mBaseException#x1B[39;49;00m #x1B[94mas#x1B[39;49;00m e:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m._handle_dbapi_exception(#x1B[90m#x1B[39;49;00m
e, #x1B[96mstr#x1B[39;49;00m(statement), parameters, #x1B[94mNone#x1B[39;49;00m, context#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
cursor, str_statement, parameters = (#x1B[90m#x1B[39;49;00m
context.cursor,#x1B[90m#x1B[39;49;00m
context.statement,#x1B[90m#x1B[39;49;00m
context.parameters,#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
effective_parameters: Optional[_AnyExecuteParams]#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[95mnot#x1B[39;49;00m context.executemany:#x1B[90m#x1B[39;49;00m
effective_parameters = parameters[#x1B[94m0#x1B[39;49;00m]#x1B[90m#x1B[39;49;00m
#x1B[94melse#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
effective_parameters = parameters#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m._has_events #x1B[95mor#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.engine._has_events:#x1B[90m#x1B[39;49;00m
#x1B[94mfor#x1B[39;49;00m fn #x1B[95min#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.dispatch.before_cursor_execute:#x1B[90m#x1B[39;49;00m
str_statement, effective_parameters = fn(#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
cursor,#x1B[90m#x1B[39;49;00m
str_statement,#x1B[90m#x1B[39;49;00m
effective_parameters,#x1B[90m#x1B[39;49;00m
context,#x1B[90m#x1B[39;49;00m
context.executemany,#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m._echo:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m._log_info(str_statement)#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
stats = context._get_cache_stats()#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[95mnot#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.engine.hide_parameters:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m._log_info(#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33m[#x1B[39;49;00m#x1B[33m%s#x1B[39;49;00m#x1B[33m] #x1B[39;49;00m#x1B[33m%r#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
stats,#x1B[90m#x1B[39;49;00m
sql_util._repr_params(#x1B[90m#x1B[39;49;00m
effective_parameters,#x1B[90m#x1B[39;49;00m
batches=#x1B[94m10#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
ismulti=context.executemany,#x1B[90m#x1B[39;49;00m
),#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[94melse#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m._log_info(#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33m[#x1B[39;49;00m#x1B[33m%s#x1B[39;49;00m#x1B[33m] [SQL parameters hidden due to hide_parameters=True]#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
stats,#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
evt_handled: #x1B[96mbool#x1B[39;49;00m = #x1B[94mFalse#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mtry#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m context.execute_style #x1B[95mis#x1B[39;49;00m ExecuteStyle.EXECUTEMANY:#x1B[90m#x1B[39;49;00m
effective_parameters = cast(#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33m_CoreMultiExecuteParams#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, effective_parameters#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.dialect._has_events:#x1B[90m#x1B[39;49;00m
#x1B[94mfor#x1B[39;49;00m fn #x1B[95min#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.dialect.dispatch.do_executemany:#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m fn(#x1B[90m#x1B[39;49;00m
cursor,#x1B[90m#x1B[39;49;00m
str_statement,#x1B[90m#x1B[39;49;00m
effective_parameters,#x1B[90m#x1B[39;49;00m
context,#x1B[90m#x1B[39;49;00m
):#x1B[90m#x1B[39;49;00m
evt_handled = #x1B[94mTrue#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mbreak#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[95mnot#x1B[39;49;00m evt_handled:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.dialect.do_executemany(#x1B[90m#x1B[39;49;00m
cursor,#x1B[90m#x1B[39;49;00m
str_statement,#x1B[90m#x1B[39;49;00m
effective_parameters,#x1B[90m#x1B[39;49;00m
context,#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[94melif#x1B[39;49;00m #x1B[95mnot#x1B[39;49;00m effective_parameters #x1B[95mand#x1B[39;49;00m context.no_parameters:#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.dialect._has_events:#x1B[90m#x1B[39;49;00m
#x1B[94mfor#x1B[39;49;00m fn #x1B[95min#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.dialect.dispatch.do_execute_no_params:#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m fn(cursor, str_statement, context):#x1B[90m#x1B[39;49;00m
evt_handled = #x1B[94mTrue#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mbreak#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[95mnot#x1B[39;49;00m evt_handled:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.dialect.do_execute_no_params(#x1B[90m#x1B[39;49;00m
cursor, str_statement, context#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[94melse#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
effective_parameters = cast(#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33m_CoreSingleExecuteParams#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, effective_parameters#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.dialect._has_events:#x1B[90m#x1B[39;49;00m
#x1B[94mfor#x1B[39;49;00m fn #x1B[95min#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m.dialect.dispatch.do_execute:#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m fn(#x1B[90m#x1B[39;49;00m
cursor,#x1B[90m#x1B[39;49;00m
str_statement,#x1B[90m#x1B[39;49;00m
effective_parameters,#x1B[90m#x1B[39;49;00m
context,#x1B[90m#x1B[39;49;00m
):#x1B[90m#x1B[39;49;00m
evt_handled = #x1B[94mTrue#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mbreak#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m #x1B[95mnot#x1B[39;49;00m evt_handled:#x1B[90m#x1B[39;49;00m
> #x1B[96mself#x1B[39;49;00m.dialect.do_execute(#x1B[90m#x1B[39;49;00m
cursor, str_statement, effective_parameters, context#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:1971:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/default.py#x1B[0m:919: in do_execute
cursor.execute(statement, parameters)#x1B[90m#x1B[39;49;00m
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <duckdb_engine.ConnectionWrapper object at 0x7f49855c45b0>
statement = '\nCREATE TABLE "table" (\n\tid INTEGER NOT NULL, \n\ta UHugeInt, \n\tPRIMARY KEY (id)\n)\n\n'
parameters = (), context = None
#x1B[94mdef#x1B[39;49;00m #x1B[92mexecute#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
statement: #x1B[96mstr#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
parameters: Optional[Tuple] = #x1B[94mNone#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
context: Optional[Any] = #x1B[94mNone#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
) -> #x1B[94mNone#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[94mtry#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m statement.lower() == #x1B[33m"#x1B[39;49;00m#x1B[33mcommit#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: #x1B[90m# this is largely for ipython-sql#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.__c.commit()#x1B[90m#x1B[39;49;00m
#x1B[94melif#x1B[39;49;00m statement.lower() #x1B[95min#x1B[39;49;00m (#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mregister#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mregister(?, ?)#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mregister($1, $2)#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
):#x1B[90m#x1B[39;49;00m
#x1B[94massert#x1B[39;49;00m parameters #x1B[95mand#x1B[39;49;00m #x1B[96mlen#x1B[39;49;00m(parameters) == #x1B[94m2#x1B[39;49;00m, parameters#x1B[90m#x1B[39;49;00m
view_name, df = parameters#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.__c.register(view_name, df)#x1B[90m#x1B[39;49;00m
#x1B[94melif#x1B[39;49;00m parameters #x1B[95mis#x1B[39;49;00m #x1B[94mNone#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.__c.execute(statement)#x1B[90m#x1B[39;49;00m
#x1B[94melse#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
> #x1B[96mself#x1B[39;49;00m.__c.execute(statement, parameters)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31mE duckdb.duckdb.CatalogException: Catalog Error: Type with name UHugeInt does not exist!#x1B[0m
#x1B[1m#x1B[31mE Did you mean "hugeint"?#x1B[0m
#x1B[1m#x1B[31mduckdb_engine/__init__.py#x1B[0m:163: CatalogException
#x1B[33mThe above exception was the direct cause of the following exception:#x1B[0m
engine = Engine(duckdb:///:memory:)
session = <sqlalchemy.orm.session.Session object at 0x7f49855229d0>
coltype = <class 'duckdb_engine.datatypes.UHugeInteger'>
#x1B[37m@mark#x1B[39;49;00m.parametrize(#x1B[33m"#x1B[39;49;00m#x1B[33mcoltype#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, types)#x1B[90m#x1B[39;49;00m
#x1B[94mdef#x1B[39;49;00m #x1B[92mtest_unsigned_integer_type#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
engine: Engine, session: Session, coltype: Type[Integer]#x1B[90m#x1B[39;49;00m
) -> #x1B[94mNone#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
Base = declarative_base()#x1B[90m#x1B[39;49;00m
#x1B[90m#x1B[39;49;00m
tname = #x1B[33m"#x1B[39;49;00m#x1B[33mtable#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
table = #x1B[96mtype#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mTable#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
(Base,),#x1B[90m#x1B[39;49;00m
{#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33m__tablename__#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: tname,#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mid#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: Column(Integer, primary_key=#x1B[94mTrue#x1B[39;49;00m, default=#x1B[94m0#x1B[39;49;00m),#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33ma#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: Column(coltype),#x1B[90m#x1B[39;49;00m
},#x1B[90m#x1B[39;49;00m
)#x1B[90m#x1B[39;49;00m
> Base.metadata.create_all(engine)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31mduckdb_engine/tests/test_datatypes.py#x1B[0m:46:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/sql/schema.py#x1B[0m:5825: in create_all
bind._run_ddl_visitor(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:3255: in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:2461: in _run_ddl_visitor
visitorcallable(#x1B[96mself#x1B[39;49;00m.dialect, #x1B[96mself#x1B[39;49;00m, **kwargs).traverse_single(element)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/sql/visitors.py#x1B[0m:664: in traverse_single
#x1B[94mreturn#x1B[39;49;00m meth(obj, **kw)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/sql/ddl.py#x1B[0m:918: in visit_metadata
#x1B[96mself#x1B[39;49;00m.traverse_single(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/sql/visitors.py#x1B[0m:664: in traverse_single
#x1B[94mreturn#x1B[39;49;00m meth(obj, **kw)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/sql/ddl.py#x1B[0m:951: in visit_table
CreateTable(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/sql/ddl.py#x1B[0m:314: in _invoke_with
#x1B[94mreturn#x1B[39;49;00m bind.execute(#x1B[96mself#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:1422: in execute
#x1B[94mreturn#x1B[39;49;00m meth(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/sql/ddl.py#x1B[0m:180: in _execute_on_connection
#x1B[94mreturn#x1B[39;49;00m connection._execute_ddl(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:1533: in _execute_ddl
ret = #x1B[96mself#x1B[39;49;00m._execute_context(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:1850: in _execute_context
#x1B[94mreturn#x1B[39;49;00m #x1B[96mself#x1B[39;49;00m._exec_single_context(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:1990: in _exec_single_context
#x1B[96mself#x1B[39;49;00m._handle_dbapi_exception(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:2357: in _handle_dbapi_exception
#x1B[94mraise#x1B[39;49;00m sqlalchemy_exception.with_traceback(exc_info[#x1B[94m2#x1B[39;49;00m]) #x1B[94mfrom#x1B[39;49;00m #x1B[04m#x1B[96me#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/base.py#x1B[0m:1971: in _exec_single_context
#x1B[96mself#x1B[39;49;00m.dialect.do_execute(#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31m.tox/duckdb_master/lib/python3.9/site-packages/sqlalchemy/engine/default.py#x1B[0m:919: in do_execute
cursor.execute(statement, parameters)#x1B[90m#x1B[39;49;00m
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <duckdb_engine.ConnectionWrapper object at 0x7f49855c45b0>
statement = '\nCREATE TABLE "table" (\n\tid INTEGER NOT NULL, \n\ta UHugeInt, \n\tPRIMARY KEY (id)\n)\n\n'
parameters = (), context = None
#x1B[94mdef#x1B[39;49;00m #x1B[92mexecute#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
statement: #x1B[96mstr#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
parameters: Optional[Tuple] = #x1B[94mNone#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
context: Optional[Any] = #x1B[94mNone#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
) -> #x1B[94mNone#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[94mtry#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[94mif#x1B[39;49;00m statement.lower() == #x1B[33m"#x1B[39;49;00m#x1B[33mcommit#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: #x1B[90m# this is largely for ipython-sql#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.__c.commit()#x1B[90m#x1B[39;49;00m
#x1B[94melif#x1B[39;49;00m statement.lower() #x1B[95min#x1B[39;49;00m (#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mregister#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mregister(?, ?)#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
#x1B[33m"#x1B[39;49;00m#x1B[33mregister($1, $2)#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
):#x1B[90m#x1B[39;49;00m
#x1B[94massert#x1B[39;49;00m parameters #x1B[95mand#x1B[39;49;00m #x1B[96mlen#x1B[39;49;00m(parameters) == #x1B[94m2#x1B[39;49;00m, parameters#x1B[90m#x1B[39;49;00m
view_name, df = parameters#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.__c.register(view_name, df)#x1B[90m#x1B[39;49;00m
#x1B[94melif#x1B[39;49;00m parameters #x1B[95mis#x1B[39;49;00m #x1B[94mNone#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
#x1B[96mself#x1B[39;49;00m.__c.execute(statement)#x1B[90m#x1B[39;49;00m
#x1B[94melse#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
> #x1B[96mself#x1B[39;49;00m.__c.execute(statement, parameters)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31mE sqlalchemy.exc.ProgrammingError: (duckdb.duckdb.CatalogException) Catalog Error: Type with name UHugeInt does not exist!#x1B[0m
#x1B[1m#x1B[31mE Did you mean "hugeint"?#x1B[0m
#x1B[1m#x1B[31mE [SQL: #x1B[0m
#x1B[1m#x1B[31mE CREATE TABLE "table" (#x1B[0m
#x1B[1m#x1B[31mE id INTEGER NOT NULL, #x1B[0m
#x1B[1m#x1B[31mE a UHugeInt, #x1B[0m
#x1B[1m#x1B[31mE PRIMARY KEY (id)#x1B[0m
#x1B[1m#x1B[31mE )#x1B[0m
#x1B[1m#x1B[31mE #x1B[0m
#x1B[1m#x1B[31mE ]#x1B[0m
#x1B[1m#x1B[31mE (Background on this error at: https://sqlalche.me/e/20/f405)#x1B[0m
#x1B[1m#x1B[31mduckdb_engine/__init__.py#x1B[0m:163: ProgrammingError
Loading