Skip to content

Instantly share code, notes, and snippets.

@pybokeh
Created May 31, 2023 00:33
Show Gist options
  • Save pybokeh/e2d64ad2a9d5f4283eaaede3f18b5d5c to your computer and use it in GitHub Desktop.
Save pybokeh/e2d64ad2a9d5f4283eaaede3f18b5d5c to your computer and use it in GitHub Desktop.
Error when trying to define column data type
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "8e2a11d5-0486-46b8-b5b3-bc4739f494f0",
"metadata": {},
"outputs": [],
"source": [
"import duckdb\n",
"import ibis\n",
"import pandas as pd\n",
"from ibis import _\n",
"ibis.options.interactive = True"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "0a65806d-92eb-4598-8041-73763202f8ab",
"metadata": {},
"outputs": [],
"source": [
"client = ibis.duckdb.connect()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "f5113a44-5d32-4f7c-8138-6118c84d0c9a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"LocalReportNumber,DocumentNumber,CrashSeverity,HitSkip,LocalInformation,SecondaryCrash,PhotosTaken,OH2,OH3,OH1P,OHOther,PrivateProperty,ReportingAgencyNCIC,NumberOfUnits,UnitInError,County,InCityVillageTownship,CityVillageTownshipName,CrashDateTime,FIPSPlaceCode,Latitude,Longitude,LocationRouteType,LocationRouteNumber,LocationPrefix,LocationRoadName,LocationRoadType,DistanceFromReference,DistanceReferenceMeasurement,DirectionFromReference,ReferenceRouteType,ReferenceRouteNumber,ReferencePrefix,ReferenceName,ReferencePointUsed,ReferenceRoadType,IntersectionOrApproachRelated,NumberOfApproaches,WithinInterchangeArea,LocationFirstHarmfulEvent,MannerOfCollision,Weather,LightCondition,ActiveSchoolZoneRelated,WorkZoneRelated,WorkersPresent,LawEnforcementPresentInWorkZone,WorkZoneType,WorkZoneLocation,Narrative,ReportTakenBy,Supplement,CrashReportedDateTime,DispatchedDateTime,ArrivedDateTime,SceneClearedDateTime,OtherInvestigationTime,TotalTimeRoadwayClosed,OfficerName,OfficerBadgeNumber,CheckedByOfficerName,CheckedByBadgeNumber,RoadwayDivided,DividedLaneTravelDirection,DividedMedianType,RoadContour,RoadCondition,RoadSurface,TotalInjured,TotalKilled,TotalMinutes,AnimalRelated,AnimalDeerRelated,AlcoholRelated,DrugRelated,BicycleRelated,MotorCycleRelated,SpeedRelated,PedestrianRelated,SemiTruckRelated,SmallTruckRelated,YouthRelated,TeenRelated,DUI21Related,SeniorRelated,FatalNotReportable,CommercialRelated,CommercialAtFault\n",
"\t2023-00000344,20232053802,Property Damage Only,,,False,True,False,False,False,False,False,\t00205,2,1,Allen County,Village,Spencerville,4/5/2023 10:24:00 AM,74034,40.708760,-84.353421,,,East,4TH,Street,,,,,,North,BROADWAY,Intersection,Street,False,,False,On Roadway,Backing,Sleet; Hail,Daylight,False,False,False,False,,,Unit 1 & 2 were traveling south on Broadway; stopped at a red light. Unit 1 proceeded to back up so a semi could make the right hand turn from 4th St onto Broadway. Unit 1 then struck Unit 2; causing minor damage to Unit 2. Unit 1 had no damage that could be seen. The driver of Unit 1 stated that she did not see the car behind her when she was backing up. Unit 1 accepted full blame.,Police,False,4/5/2023 10:24:00 AM,4/5/2023 10:24:00 AM,4/5/2023 10:24:00 AM,4/5/2023 10:33:00 AM,0,0,MILLER,612,MILLER,612,False,,,Straight Level,Dry,Blacktop; Bituminous; Asphalt,0,0,9,False,False,False,False,False,False,False,False,False,False,False,False,False,True,False,False,False\n"
]
}
],
"source": [
"!head -2 ./data/CrashStatistics.csv"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a1cb9883-ab56-4511-b377-6b1f5d716eef",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\u001b[0;31mSignature:\u001b[0m\n",
"\u001b[0mclient\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m \u001b[0msource_list\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'str | list[str] | tuple[str]'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m \u001b[0mtable_name\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'str | None'\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;34m'Any'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\n",
"\u001b[0;34m\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;34m'ir.Table'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mDocstring:\u001b[0m\n",
"Register a CSV file as a table in the current database.\n",
"\n",
"Parameters\n",
"----------\n",
"source_list\n",
" The data source(s). May be a path to a file or directory of CSV files, or an\n",
" iterable of CSV files.\n",
"table_name\n",
" An optional name to use for the created table. This defaults to\n",
" a sequentially generated name.\n",
"kwargs\n",
" Additional keyword arguments passed to DuckDB loading function.\n",
" See https://duckdb.org/docs/data/csv for more information.\n",
"\n",
"Returns\n",
"-------\n",
"ir.Table\n",
" The just-registered table\n",
"\u001b[0;31mFile:\u001b[0m ~/envs/sql_dev/lib/python3.10/site-packages/ibis/backends/duckdb/__init__.py\n",
"\u001b[0;31mType:\u001b[0m method"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"client.read_csv?"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "fd876a84-2b7e-47a4-8ebc-f37af238a628",
"metadata": {},
"outputs": [
{
"ename": "CompileError",
"evalue": "No literal value renderer is available for literal value \"{'LocalReportNumber': 'VARCHAR'}\" with datatype NULL",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mCompileError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[5], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m veh_crash_stats \u001b[38;5;241m=\u001b[39m \u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m./data/CrashStatistics.csv\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mdtypes\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mLocalReportNumber\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mVARCHAR\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/ibis/backends/duckdb/__init__.py:322\u001b[0m, in \u001b[0;36mBackend.read_csv\u001b[0;34m(self, source_list, table_name, **kwargs)\u001b[0m\n\u001b[1;32m 317\u001b[0m kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mauto_detect\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mauto_detect\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcolumns\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m kwargs)\n\u001b[1;32m 318\u001b[0m source \u001b[38;5;241m=\u001b[39m sa\u001b[38;5;241m.\u001b[39mselect(sa\u001b[38;5;241m.\u001b[39mliteral_column(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m*\u001b[39m\u001b[38;5;124m\"\u001b[39m))\u001b[38;5;241m.\u001b[39mselect_from(\n\u001b[1;32m 319\u001b[0m sa\u001b[38;5;241m.\u001b[39mfunc\u001b[38;5;241m.\u001b[39mread_csv(sa\u001b[38;5;241m.\u001b[39mfunc\u001b[38;5;241m.\u001b[39mlist_value(\u001b[38;5;241m*\u001b[39msource_list), _format_kwargs(kwargs))\n\u001b[1;32m 320\u001b[0m )\n\u001b[0;32m--> 322\u001b[0m view \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compile_temp_view\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtable_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msource\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 323\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbegin() \u001b[38;5;28;01mas\u001b[39;00m con:\n\u001b[1;32m 324\u001b[0m con\u001b[38;5;241m.\u001b[39mexec_driver_sql(view)\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/ibis/backends/duckdb/__init__.py:231\u001b[0m, in \u001b[0;36mBackend._compile_temp_view\u001b[0;34m(self, table_name, source)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_compile_temp_view\u001b[39m(\u001b[38;5;28mself\u001b[39m, table_name, source):\n\u001b[0;32m--> 231\u001b[0m raw_source \u001b[38;5;241m=\u001b[39m \u001b[43msource\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompile\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 232\u001b[0m \u001b[43m \u001b[49m\u001b[43mdialect\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcon\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcompile_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mliteral_binds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 233\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mCREATE OR REPLACE TEMPORARY VIEW \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtable_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m AS \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mraw_source\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/elements.py:280\u001b[0m, in \u001b[0;36mCompilerElement.compile\u001b[0;34m(self, bind, dialect, **kw)\u001b[0m\n\u001b[1;32m 275\u001b[0m url \u001b[38;5;241m=\u001b[39m util\u001b[38;5;241m.\u001b[39mpreloaded\u001b[38;5;241m.\u001b[39mengine_url\n\u001b[1;32m 276\u001b[0m dialect \u001b[38;5;241m=\u001b[39m url\u001b[38;5;241m.\u001b[39mURL\u001b[38;5;241m.\u001b[39mcreate(\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstringify_dialect\n\u001b[1;32m 278\u001b[0m )\u001b[38;5;241m.\u001b[39mget_dialect()()\n\u001b[0;32m--> 280\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/elements.py:288\u001b[0m, in \u001b[0;36mCompilerElement._compiler\u001b[0;34m(self, dialect, **kw)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m TYPE_CHECKING:\n\u001b[1;32m 287\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m, ClauseElement)\n\u001b[0;32m--> 288\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdialect\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstatement_compiler\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:1426\u001b[0m, in \u001b[0;36mSQLCompiler.__init__\u001b[0;34m(self, dialect, statement, cache_key, column_keys, for_executemany, linting, **kwargs)\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtruncated_names: Dict[Tuple[\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mstr\u001b[39m], \u001b[38;5;28mstr\u001b[39m] \u001b[38;5;241m=\u001b[39m {}\n\u001b[1;32m 1424\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_truncated_counters: Dict[\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mint\u001b[39m] \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m-> 1426\u001b[0m \u001b[43mCompiled\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstatement\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1428\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39misinsert \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39misupdate \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39misdelete:\n\u001b[1;32m 1429\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m TYPE_CHECKING:\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:867\u001b[0m, in \u001b[0;36mCompiled.__init__\u001b[0;34m(self, dialect, statement, schema_translate_map, render_schema_translate, compile_kwargs)\u001b[0m\n\u001b[1;32m 865\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(statement, Executable)\n\u001b[1;32m 866\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexecution_options \u001b[38;5;241m=\u001b[39m statement\u001b[38;5;241m.\u001b[39m_execution_options\n\u001b[0;32m--> 867\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstring \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstatement\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcompile_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 869\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m render_schema_translate:\n\u001b[1;32m 870\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstring \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39m_render_schema_translates(\n\u001b[1;32m 871\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstring, schema_translate_map\n\u001b[1;32m 872\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:912\u001b[0m, in \u001b[0;36mCompiled.process\u001b[0;34m(self, obj, **kwargs)\u001b[0m\n\u001b[1;32m 911\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess\u001b[39m(\u001b[38;5;28mself\u001b[39m, obj: Visitable, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mstr\u001b[39m:\n\u001b[0;32m--> 912\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:4737\u001b[0m, in \u001b[0;36mSQLCompiler.visit_select\u001b[0;34m(self, select_stmt, asfrom, insert_into, fromhints, compound_index, select_wraps_for, lateral, from_linter, **kwargs)\u001b[0m\n\u001b[1;32m 4705\u001b[0m translate \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m(\n\u001b[1;32m 4706\u001b[0m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 4707\u001b[0m [\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4727\u001b[0m )\n\u001b[1;32m 4728\u001b[0m )\n\u001b[1;32m 4730\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_result_columns \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 4731\u001b[0m ResultColumnsEntry(\n\u001b[1;32m 4732\u001b[0m key, name, \u001b[38;5;28mtuple\u001b[39m(translate\u001b[38;5;241m.\u001b[39mget(o, o) \u001b[38;5;28;01mfor\u001b[39;00m o \u001b[38;5;129;01min\u001b[39;00m obj), type_\n\u001b[1;32m 4733\u001b[0m )\n\u001b[1;32m 4734\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, name, obj, type_ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_result_columns\n\u001b[1;32m 4735\u001b[0m ]\n\u001b[0;32m-> 4737\u001b[0m text \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compose_select_body\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 4738\u001b[0m \u001b[43m \u001b[49m\u001b[43mtext\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4739\u001b[0m \u001b[43m \u001b[49m\u001b[43mselect_stmt\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4740\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompile_state\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4741\u001b[0m \u001b[43m \u001b[49m\u001b[43minner_columns\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4742\u001b[0m \u001b[43m \u001b[49m\u001b[43mfroms\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4743\u001b[0m \u001b[43m \u001b[49m\u001b[43mbyfrom\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4744\u001b[0m \u001b[43m \u001b[49m\u001b[43mtoplevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4745\u001b[0m \u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4746\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4748\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m select_stmt\u001b[38;5;241m.\u001b[39m_statement_hints:\n\u001b[1;32m 4749\u001b[0m per_dialect \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 4750\u001b[0m ht\n\u001b[1;32m 4751\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m (dialect_name, ht) \u001b[38;5;129;01min\u001b[39;00m select_stmt\u001b[38;5;241m.\u001b[39m_statement_hints\n\u001b[1;32m 4752\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dialect_name \u001b[38;5;129;01min\u001b[39;00m (\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m*\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdialect\u001b[38;5;241m.\u001b[39mname)\n\u001b[1;32m 4753\u001b[0m ]\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:4885\u001b[0m, in \u001b[0;36mSQLCompiler._compose_select_body\u001b[0;34m(self, text, select, compile_state, inner_columns, froms, byfrom, toplevel, kwargs)\u001b[0m\n\u001b[1;32m 4871\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 4872\u001b[0m [\n\u001b[1;32m 4873\u001b[0m f\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4881\u001b[0m ]\n\u001b[1;32m 4882\u001b[0m )\n\u001b[1;32m 4883\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4884\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[0;32m-> 4885\u001b[0m [\n\u001b[1;32m 4886\u001b[0m f\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\n\u001b[1;32m 4887\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 4888\u001b[0m asfrom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 4889\u001b[0m from_linter\u001b[38;5;241m=\u001b[39mfrom_linter,\n\u001b[1;32m 4890\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 4891\u001b[0m )\n\u001b[1;32m 4892\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m froms\n\u001b[1;32m 4893\u001b[0m ]\n\u001b[1;32m 4894\u001b[0m )\n\u001b[1;32m 4895\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4896\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault_from()\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:4886\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 4871\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 4872\u001b[0m [\n\u001b[1;32m 4873\u001b[0m f\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4881\u001b[0m ]\n\u001b[1;32m 4882\u001b[0m )\n\u001b[1;32m 4883\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4884\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 4885\u001b[0m [\n\u001b[0;32m-> 4886\u001b[0m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 4887\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4888\u001b[0m \u001b[43m \u001b[49m\u001b[43masfrom\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 4889\u001b[0m \u001b[43m \u001b[49m\u001b[43mfrom_linter\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrom_linter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4890\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4891\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4892\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m froms\n\u001b[1;32m 4893\u001b[0m ]\n\u001b[1;32m 4894\u001b[0m )\n\u001b[1;32m 4895\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4896\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault_from()\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2898\u001b[0m, in \u001b[0;36mSQLCompiler.visit_function\u001b[0;34m(self, func, add_to_result_map, **kwargs)\u001b[0m\n\u001b[1;32m 2880\u001b[0m name \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 2881\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39mquote(name)\n\u001b[1;32m 2882\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39m_requires_quotes_illegal_chars(name)\n\u001b[1;32m 2883\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(name, elements\u001b[38;5;241m.\u001b[39mquoted_name)\n\u001b[1;32m 2884\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m name\n\u001b[1;32m 2885\u001b[0m )\n\u001b[1;32m 2886\u001b[0m name \u001b[38;5;241m=\u001b[39m name \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%(expr)s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2887\u001b[0m text \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 2888\u001b[0m [\n\u001b[1;32m 2889\u001b[0m (\n\u001b[1;32m 2890\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39mquote(tok)\n\u001b[1;32m 2891\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39m_requires_quotes_illegal_chars(tok)\n\u001b[1;32m 2892\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(name, elements\u001b[38;5;241m.\u001b[39mquoted_name)\n\u001b[1;32m 2893\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m tok\n\u001b[1;32m 2894\u001b[0m )\n\u001b[1;32m 2895\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m tok \u001b[38;5;129;01min\u001b[39;00m func\u001b[38;5;241m.\u001b[39mpackagenames\n\u001b[1;32m 2896\u001b[0m ]\n\u001b[1;32m 2897\u001b[0m \u001b[38;5;241m+\u001b[39m [name]\n\u001b[0;32m-> 2898\u001b[0m ) \u001b[38;5;241m%\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mexpr\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfunction_argspec\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m}\n\u001b[1;32m 2900\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m func\u001b[38;5;241m.\u001b[39m_with_ordinality:\n\u001b[1;32m 2901\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m WITH ORDINALITY\u001b[39m\u001b[38;5;124m\"\u001b[39m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2914\u001b[0m, in \u001b[0;36mSQLCompiler.function_argspec\u001b[0;34m(self, func, **kwargs)\u001b[0m\n\u001b[1;32m 2913\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfunction_argspec\u001b[39m(\u001b[38;5;28mself\u001b[39m, func, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2914\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclause_expr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2366\u001b[0m, in \u001b[0;36mSQLCompiler.visit_grouping\u001b[0;34m(self, grouping, asfrom, **kwargs)\u001b[0m\n\u001b[1;32m 2365\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mvisit_grouping\u001b[39m(\u001b[38;5;28mself\u001b[39m, grouping, asfrom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2366\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m(\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[43mgrouping\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43melement\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2734\u001b[0m, in \u001b[0;36mSQLCompiler.visit_clauselist\u001b[0;34m(self, clauselist, **kw)\u001b[0m\n\u001b[1;32m 2731\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 2732\u001b[0m sep \u001b[38;5;241m=\u001b[39m OPERATORS[clauselist\u001b[38;5;241m.\u001b[39moperator]\n\u001b[0;32m-> 2734\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_generate_delimited_list\u001b[49m\u001b[43m(\u001b[49m\u001b[43mclauselist\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclauses\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msep\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2700\u001b[0m, in \u001b[0;36mSQLCompiler._generate_delimited_list\u001b[0;34m(self, elements, separator, **kw)\u001b[0m\n\u001b[1;32m 2699\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_generate_delimited_list\u001b[39m(\u001b[38;5;28mself\u001b[39m, elements, separator, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw):\n\u001b[0;32m-> 2700\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mseparator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjoin\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2701\u001b[0m \u001b[43m \u001b[49m\u001b[43ms\u001b[49m\n\u001b[1;32m 2702\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ms\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43melements\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2703\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ms\u001b[49m\n\u001b[1;32m 2704\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2700\u001b[0m, in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 2699\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_generate_delimited_list\u001b[39m(\u001b[38;5;28mself\u001b[39m, elements, separator, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw):\n\u001b[0;32m-> 2700\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m separator\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 2701\u001b[0m s\n\u001b[1;32m 2702\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m (c\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m elements)\n\u001b[1;32m 2703\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m s\n\u001b[1;32m 2704\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2702\u001b[0m, in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 2699\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_generate_delimited_list\u001b[39m(\u001b[38;5;28mself\u001b[39m, elements, separator, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw):\n\u001b[1;32m 2700\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m separator\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 2701\u001b[0m s\n\u001b[0;32m-> 2702\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m (\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m elements)\n\u001b[1;32m 2703\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m s\n\u001b[1;32m 2704\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2626\u001b[0m, in \u001b[0;36mSQLCompiler.visit_textclause\u001b[0;34m(self, textclause, add_to_result_map, **kw)\u001b[0m\n\u001b[1;32m 2621\u001b[0m add_to_result_map(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28;01mNone\u001b[39;00m, (textclause,), sqltypes\u001b[38;5;241m.\u001b[39mNULLTYPE)\n\u001b[1;32m 2623\u001b[0m \u001b[38;5;66;03m# un-escape any \\:params\u001b[39;00m\n\u001b[1;32m 2624\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m BIND_PARAMS_ESC\u001b[38;5;241m.\u001b[39msub(\n\u001b[1;32m 2625\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m m: m\u001b[38;5;241m.\u001b[39mgroup(\u001b[38;5;241m1\u001b[39m),\n\u001b[0;32m-> 2626\u001b[0m \u001b[43mBIND_PARAMS\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msub\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2627\u001b[0m \u001b[43m \u001b[49m\u001b[43mdo_bindparam\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost_process_text\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtextclause\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2628\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m,\n\u001b[1;32m 2629\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2610\u001b[0m, in \u001b[0;36mSQLCompiler.visit_textclause.<locals>.do_bindparam\u001b[0;34m(m)\u001b[0m\n\u001b[1;32m 2608\u001b[0m name \u001b[38;5;241m=\u001b[39m m\u001b[38;5;241m.\u001b[39mgroup(\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2609\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m textclause\u001b[38;5;241m.\u001b[39m_bindparams:\n\u001b[0;32m-> 2610\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtextclause\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_bindparams\u001b[49m\u001b[43m[\u001b[49m\u001b[43mname\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2611\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 2612\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbindparam_string(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw)\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:912\u001b[0m, in \u001b[0;36mCompiled.process\u001b[0;34m(self, obj, **kwargs)\u001b[0m\n\u001b[1;32m 911\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess\u001b[39m(\u001b[38;5;28mself\u001b[39m, obj: Visitable, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mstr\u001b[39m:\n\u001b[0;32m--> 912\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:3622\u001b[0m, in \u001b[0;36mSQLCompiler.visit_bindparam\u001b[0;34m(self, bindparam, within_columns_clause, literal_binds, skip_bind_expression, literal_execute, render_postcompile, **kwargs)\u001b[0m\n\u001b[1;32m 3619\u001b[0m post_compile \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 3621\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m literal_binds:\n\u001b[0;32m-> 3622\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrender_literal_bindparam\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3623\u001b[0m \u001b[43m \u001b[49m\u001b[43mbindparam\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mwithin_columns_clause\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\n\u001b[1;32m 3624\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3625\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bindparam\u001b[38;5;241m.\u001b[39mexpanding:\n\u001b[1;32m 3626\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m(\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m ret\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:3761\u001b[0m, in \u001b[0;36mSQLCompiler.render_literal_bindparam\u001b[0;34m(self, bindparam, render_literal_value, bind_expression_template, **kw)\u001b[0m\n\u001b[1;32m 3759\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m replacement_expr\n\u001b[1;32m 3760\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 3761\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrender_literal_value\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbindparam\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtype\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/dialects/postgresql/base.py:1864\u001b[0m, in \u001b[0;36mPGCompiler.render_literal_value\u001b[0;34m(self, value, type_)\u001b[0m\n\u001b[1;32m 1863\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrender_literal_value\u001b[39m(\u001b[38;5;28mself\u001b[39m, value, type_):\n\u001b[0;32m-> 1864\u001b[0m value \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrender_literal_value\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtype_\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1866\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdialect\u001b[38;5;241m.\u001b[39m_backslash_escapes:\n\u001b[1;32m 1867\u001b[0m value \u001b[38;5;241m=\u001b[39m value\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:3788\u001b[0m, in \u001b[0;36mSQLCompiler.render_literal_value\u001b[0;34m(self, value, type_)\u001b[0m\n\u001b[1;32m 3779\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\u001b[38;5;241m.\u001b[39mCompileError(\n\u001b[1;32m 3780\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCould not render literal value \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3781\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00msql_util\u001b[38;5;241m.\u001b[39m_repr_single_value(value)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3784\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmore detail.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3785\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 3787\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 3788\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\u001b[38;5;241m.\u001b[39mCompileError(\n\u001b[1;32m 3789\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo literal value renderer is available for literal value \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3790\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00msql_util\u001b[38;5;241m.\u001b[39m_repr_single_value(value)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 3791\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwith datatype \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtype_\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3792\u001b[0m )\n",
"\u001b[0;31mCompileError\u001b[0m: No literal value renderer is available for literal value \"{'LocalReportNumber': 'VARCHAR'}\" with datatype NULL"
]
}
],
"source": [
"veh_crash_stats = client.read_csv(\n",
" './data/CrashStatistics.csv',\n",
" dtypes={\n",
" \"LocalReportNumber\": 'VARCHAR'\n",
" },\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "2f7f818a-6285-4255-bf17-5ecfc07120ec",
"metadata": {},
"outputs": [
{
"ename": "CompileError",
"evalue": "No literal value renderer is available for literal value \"{'LocalReportNumber': 'VARCHAR'}\" with datatype NULL",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mCompileError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[6], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m veh_crash_stats \u001b[38;5;241m=\u001b[39m \u001b[43mclient\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m./data/CrashStatistics.csv\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m{\u001b[49m\n\u001b[1;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mLocalReportNumber\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mVARCHAR\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\n\u001b[1;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43m}\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 6\u001b[0m \u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/ibis/backends/duckdb/__init__.py:322\u001b[0m, in \u001b[0;36mBackend.read_csv\u001b[0;34m(self, source_list, table_name, **kwargs)\u001b[0m\n\u001b[1;32m 317\u001b[0m kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mauto_detect\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwargs\u001b[38;5;241m.\u001b[39mpop(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mauto_detect\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcolumns\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m kwargs)\n\u001b[1;32m 318\u001b[0m source \u001b[38;5;241m=\u001b[39m sa\u001b[38;5;241m.\u001b[39mselect(sa\u001b[38;5;241m.\u001b[39mliteral_column(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m*\u001b[39m\u001b[38;5;124m\"\u001b[39m))\u001b[38;5;241m.\u001b[39mselect_from(\n\u001b[1;32m 319\u001b[0m sa\u001b[38;5;241m.\u001b[39mfunc\u001b[38;5;241m.\u001b[39mread_csv(sa\u001b[38;5;241m.\u001b[39mfunc\u001b[38;5;241m.\u001b[39mlist_value(\u001b[38;5;241m*\u001b[39msource_list), _format_kwargs(kwargs))\n\u001b[1;32m 320\u001b[0m )\n\u001b[0;32m--> 322\u001b[0m view \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compile_temp_view\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtable_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msource\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 323\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbegin() \u001b[38;5;28;01mas\u001b[39;00m con:\n\u001b[1;32m 324\u001b[0m con\u001b[38;5;241m.\u001b[39mexec_driver_sql(view)\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/ibis/backends/duckdb/__init__.py:231\u001b[0m, in \u001b[0;36mBackend._compile_temp_view\u001b[0;34m(self, table_name, source)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_compile_temp_view\u001b[39m(\u001b[38;5;28mself\u001b[39m, table_name, source):\n\u001b[0;32m--> 231\u001b[0m raw_source \u001b[38;5;241m=\u001b[39m \u001b[43msource\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompile\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 232\u001b[0m \u001b[43m \u001b[49m\u001b[43mdialect\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcon\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcompile_kwargs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mliteral_binds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[1;32m 233\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 234\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mCREATE OR REPLACE TEMPORARY VIEW \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtable_name\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m AS \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mraw_source\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/elements.py:280\u001b[0m, in \u001b[0;36mCompilerElement.compile\u001b[0;34m(self, bind, dialect, **kw)\u001b[0m\n\u001b[1;32m 275\u001b[0m url \u001b[38;5;241m=\u001b[39m util\u001b[38;5;241m.\u001b[39mpreloaded\u001b[38;5;241m.\u001b[39mengine_url\n\u001b[1;32m 276\u001b[0m dialect \u001b[38;5;241m=\u001b[39m url\u001b[38;5;241m.\u001b[39mURL\u001b[38;5;241m.\u001b[39mcreate(\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstringify_dialect\n\u001b[1;32m 278\u001b[0m )\u001b[38;5;241m.\u001b[39mget_dialect()()\n\u001b[0;32m--> 280\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/elements.py:288\u001b[0m, in \u001b[0;36mCompilerElement._compiler\u001b[0;34m(self, dialect, **kw)\u001b[0m\n\u001b[1;32m 286\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m TYPE_CHECKING:\n\u001b[1;32m 287\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m, ClauseElement)\n\u001b[0;32m--> 288\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdialect\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstatement_compiler\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:1426\u001b[0m, in \u001b[0;36mSQLCompiler.__init__\u001b[0;34m(self, dialect, statement, cache_key, column_keys, for_executemany, linting, **kwargs)\u001b[0m\n\u001b[1;32m 1423\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtruncated_names: Dict[Tuple[\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mstr\u001b[39m], \u001b[38;5;28mstr\u001b[39m] \u001b[38;5;241m=\u001b[39m {}\n\u001b[1;32m 1424\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_truncated_counters: Dict[\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mint\u001b[39m] \u001b[38;5;241m=\u001b[39m {}\n\u001b[0;32m-> 1426\u001b[0m \u001b[43mCompiled\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdialect\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstatement\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1428\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39misinsert \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39misupdate \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39misdelete:\n\u001b[1;32m 1429\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m TYPE_CHECKING:\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:867\u001b[0m, in \u001b[0;36mCompiled.__init__\u001b[0;34m(self, dialect, statement, schema_translate_map, render_schema_translate, compile_kwargs)\u001b[0m\n\u001b[1;32m 865\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(statement, Executable)\n\u001b[1;32m 866\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mexecution_options \u001b[38;5;241m=\u001b[39m statement\u001b[38;5;241m.\u001b[39m_execution_options\n\u001b[0;32m--> 867\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstring \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstatement\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcompile_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 869\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m render_schema_translate:\n\u001b[1;32m 870\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstring \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39m_render_schema_translates(\n\u001b[1;32m 871\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstring, schema_translate_map\n\u001b[1;32m 872\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:912\u001b[0m, in \u001b[0;36mCompiled.process\u001b[0;34m(self, obj, **kwargs)\u001b[0m\n\u001b[1;32m 911\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess\u001b[39m(\u001b[38;5;28mself\u001b[39m, obj: Visitable, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mstr\u001b[39m:\n\u001b[0;32m--> 912\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:4737\u001b[0m, in \u001b[0;36mSQLCompiler.visit_select\u001b[0;34m(self, select_stmt, asfrom, insert_into, fromhints, compound_index, select_wraps_for, lateral, from_linter, **kwargs)\u001b[0m\n\u001b[1;32m 4705\u001b[0m translate \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m(\n\u001b[1;32m 4706\u001b[0m \u001b[38;5;28mzip\u001b[39m(\n\u001b[1;32m 4707\u001b[0m [\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4727\u001b[0m )\n\u001b[1;32m 4728\u001b[0m )\n\u001b[1;32m 4730\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_result_columns \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 4731\u001b[0m ResultColumnsEntry(\n\u001b[1;32m 4732\u001b[0m key, name, \u001b[38;5;28mtuple\u001b[39m(translate\u001b[38;5;241m.\u001b[39mget(o, o) \u001b[38;5;28;01mfor\u001b[39;00m o \u001b[38;5;129;01min\u001b[39;00m obj), type_\n\u001b[1;32m 4733\u001b[0m )\n\u001b[1;32m 4734\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m key, name, obj, type_ \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_result_columns\n\u001b[1;32m 4735\u001b[0m ]\n\u001b[0;32m-> 4737\u001b[0m text \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compose_select_body\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 4738\u001b[0m \u001b[43m \u001b[49m\u001b[43mtext\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4739\u001b[0m \u001b[43m \u001b[49m\u001b[43mselect_stmt\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4740\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompile_state\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4741\u001b[0m \u001b[43m \u001b[49m\u001b[43minner_columns\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4742\u001b[0m \u001b[43m \u001b[49m\u001b[43mfroms\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4743\u001b[0m \u001b[43m \u001b[49m\u001b[43mbyfrom\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4744\u001b[0m \u001b[43m \u001b[49m\u001b[43mtoplevel\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4745\u001b[0m \u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4746\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4748\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m select_stmt\u001b[38;5;241m.\u001b[39m_statement_hints:\n\u001b[1;32m 4749\u001b[0m per_dialect \u001b[38;5;241m=\u001b[39m [\n\u001b[1;32m 4750\u001b[0m ht\n\u001b[1;32m 4751\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m (dialect_name, ht) \u001b[38;5;129;01min\u001b[39;00m select_stmt\u001b[38;5;241m.\u001b[39m_statement_hints\n\u001b[1;32m 4752\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m dialect_name \u001b[38;5;129;01min\u001b[39;00m (\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m*\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdialect\u001b[38;5;241m.\u001b[39mname)\n\u001b[1;32m 4753\u001b[0m ]\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:4885\u001b[0m, in \u001b[0;36mSQLCompiler._compose_select_body\u001b[0;34m(self, text, select, compile_state, inner_columns, froms, byfrom, toplevel, kwargs)\u001b[0m\n\u001b[1;32m 4871\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 4872\u001b[0m [\n\u001b[1;32m 4873\u001b[0m f\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4881\u001b[0m ]\n\u001b[1;32m 4882\u001b[0m )\n\u001b[1;32m 4883\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4884\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[0;32m-> 4885\u001b[0m [\n\u001b[1;32m 4886\u001b[0m f\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\n\u001b[1;32m 4887\u001b[0m \u001b[38;5;28mself\u001b[39m,\n\u001b[1;32m 4888\u001b[0m asfrom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m,\n\u001b[1;32m 4889\u001b[0m from_linter\u001b[38;5;241m=\u001b[39mfrom_linter,\n\u001b[1;32m 4890\u001b[0m \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs,\n\u001b[1;32m 4891\u001b[0m )\n\u001b[1;32m 4892\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m froms\n\u001b[1;32m 4893\u001b[0m ]\n\u001b[1;32m 4894\u001b[0m )\n\u001b[1;32m 4895\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4896\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault_from()\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:4886\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 4871\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 4872\u001b[0m [\n\u001b[1;32m 4873\u001b[0m f\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 4881\u001b[0m ]\n\u001b[1;32m 4882\u001b[0m )\n\u001b[1;32m 4883\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4884\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 4885\u001b[0m [\n\u001b[0;32m-> 4886\u001b[0m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 4887\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4888\u001b[0m \u001b[43m \u001b[49m\u001b[43masfrom\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 4889\u001b[0m \u001b[43m \u001b[49m\u001b[43mfrom_linter\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrom_linter\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4890\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 4891\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4892\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m f \u001b[38;5;129;01min\u001b[39;00m froms\n\u001b[1;32m 4893\u001b[0m ]\n\u001b[1;32m 4894\u001b[0m )\n\u001b[1;32m 4895\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 4896\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefault_from()\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2898\u001b[0m, in \u001b[0;36mSQLCompiler.visit_function\u001b[0;34m(self, func, add_to_result_map, **kwargs)\u001b[0m\n\u001b[1;32m 2880\u001b[0m name \u001b[38;5;241m=\u001b[39m (\n\u001b[1;32m 2881\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39mquote(name)\n\u001b[1;32m 2882\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39m_requires_quotes_illegal_chars(name)\n\u001b[1;32m 2883\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(name, elements\u001b[38;5;241m.\u001b[39mquoted_name)\n\u001b[1;32m 2884\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m name\n\u001b[1;32m 2885\u001b[0m )\n\u001b[1;32m 2886\u001b[0m name \u001b[38;5;241m=\u001b[39m name \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m%(expr)s\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 2887\u001b[0m text \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 2888\u001b[0m [\n\u001b[1;32m 2889\u001b[0m (\n\u001b[1;32m 2890\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39mquote(tok)\n\u001b[1;32m 2891\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpreparer\u001b[38;5;241m.\u001b[39m_requires_quotes_illegal_chars(tok)\n\u001b[1;32m 2892\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(name, elements\u001b[38;5;241m.\u001b[39mquoted_name)\n\u001b[1;32m 2893\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m tok\n\u001b[1;32m 2894\u001b[0m )\n\u001b[1;32m 2895\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m tok \u001b[38;5;129;01min\u001b[39;00m func\u001b[38;5;241m.\u001b[39mpackagenames\n\u001b[1;32m 2896\u001b[0m ]\n\u001b[1;32m 2897\u001b[0m \u001b[38;5;241m+\u001b[39m [name]\n\u001b[0;32m-> 2898\u001b[0m ) \u001b[38;5;241m%\u001b[39m {\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mexpr\u001b[39m\u001b[38;5;124m\"\u001b[39m: \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfunction_argspec\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfunc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m}\n\u001b[1;32m 2900\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m func\u001b[38;5;241m.\u001b[39m_with_ordinality:\n\u001b[1;32m 2901\u001b[0m text \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m WITH ORDINALITY\u001b[39m\u001b[38;5;124m\"\u001b[39m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2914\u001b[0m, in \u001b[0;36mSQLCompiler.function_argspec\u001b[0;34m(self, func, **kwargs)\u001b[0m\n\u001b[1;32m 2913\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mfunction_argspec\u001b[39m(\u001b[38;5;28mself\u001b[39m, func, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2914\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclause_expr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2366\u001b[0m, in \u001b[0;36mSQLCompiler.visit_grouping\u001b[0;34m(self, grouping, asfrom, **kwargs)\u001b[0m\n\u001b[1;32m 2365\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mvisit_grouping\u001b[39m(\u001b[38;5;28mself\u001b[39m, grouping, asfrom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2366\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m(\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[43mgrouping\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43melement\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2734\u001b[0m, in \u001b[0;36mSQLCompiler.visit_clauselist\u001b[0;34m(self, clauselist, **kw)\u001b[0m\n\u001b[1;32m 2731\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 2732\u001b[0m sep \u001b[38;5;241m=\u001b[39m OPERATORS[clauselist\u001b[38;5;241m.\u001b[39moperator]\n\u001b[0;32m-> 2734\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_generate_delimited_list\u001b[49m\u001b[43m(\u001b[49m\u001b[43mclauselist\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mclauses\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msep\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2700\u001b[0m, in \u001b[0;36mSQLCompiler._generate_delimited_list\u001b[0;34m(self, elements, separator, **kw)\u001b[0m\n\u001b[1;32m 2699\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_generate_delimited_list\u001b[39m(\u001b[38;5;28mself\u001b[39m, elements, separator, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw):\n\u001b[0;32m-> 2700\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mseparator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjoin\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2701\u001b[0m \u001b[43m \u001b[49m\u001b[43ms\u001b[49m\n\u001b[1;32m 2702\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ms\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43melements\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2703\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43ms\u001b[49m\n\u001b[1;32m 2704\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2700\u001b[0m, in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 2699\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_generate_delimited_list\u001b[39m(\u001b[38;5;28mself\u001b[39m, elements, separator, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw):\n\u001b[0;32m-> 2700\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m separator\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 2701\u001b[0m s\n\u001b[1;32m 2702\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m (c\u001b[38;5;241m.\u001b[39m_compiler_dispatch(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m elements)\n\u001b[1;32m 2703\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m s\n\u001b[1;32m 2704\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2702\u001b[0m, in \u001b[0;36m<genexpr>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 2699\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_generate_delimited_list\u001b[39m(\u001b[38;5;28mself\u001b[39m, elements, separator, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw):\n\u001b[1;32m 2700\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m separator\u001b[38;5;241m.\u001b[39mjoin(\n\u001b[1;32m 2701\u001b[0m s\n\u001b[0;32m-> 2702\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m s \u001b[38;5;129;01min\u001b[39;00m (\u001b[43mc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m c \u001b[38;5;129;01min\u001b[39;00m elements)\n\u001b[1;32m 2703\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m s\n\u001b[1;32m 2704\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2626\u001b[0m, in \u001b[0;36mSQLCompiler.visit_textclause\u001b[0;34m(self, textclause, add_to_result_map, **kw)\u001b[0m\n\u001b[1;32m 2621\u001b[0m add_to_result_map(\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28;01mNone\u001b[39;00m, (textclause,), sqltypes\u001b[38;5;241m.\u001b[39mNULLTYPE)\n\u001b[1;32m 2623\u001b[0m \u001b[38;5;66;03m# un-escape any \\:params\u001b[39;00m\n\u001b[1;32m 2624\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m BIND_PARAMS_ESC\u001b[38;5;241m.\u001b[39msub(\n\u001b[1;32m 2625\u001b[0m \u001b[38;5;28;01mlambda\u001b[39;00m m: m\u001b[38;5;241m.\u001b[39mgroup(\u001b[38;5;241m1\u001b[39m),\n\u001b[0;32m-> 2626\u001b[0m \u001b[43mBIND_PARAMS\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msub\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2627\u001b[0m \u001b[43m \u001b[49m\u001b[43mdo_bindparam\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpost_process_text\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtextclause\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtext\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2628\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m,\n\u001b[1;32m 2629\u001b[0m )\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:2610\u001b[0m, in \u001b[0;36mSQLCompiler.visit_textclause.<locals>.do_bindparam\u001b[0;34m(m)\u001b[0m\n\u001b[1;32m 2608\u001b[0m name \u001b[38;5;241m=\u001b[39m m\u001b[38;5;241m.\u001b[39mgroup(\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m 2609\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m textclause\u001b[38;5;241m.\u001b[39m_bindparams:\n\u001b[0;32m-> 2610\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtextclause\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_bindparams\u001b[49m\u001b[43m[\u001b[49m\u001b[43mname\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2611\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 2612\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbindparam_string(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw)\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:912\u001b[0m, in \u001b[0;36mCompiled.process\u001b[0;34m(self, obj, **kwargs)\u001b[0m\n\u001b[1;32m 911\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprocess\u001b[39m(\u001b[38;5;28mself\u001b[39m, obj: Visitable, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: Any) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mstr\u001b[39m:\n\u001b[0;32m--> 912\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mobj\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_compiler_dispatch\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/visitors.py:143\u001b[0m, in \u001b[0;36mVisitable._generate_compiler_dispatch.<locals>._compiler_dispatch\u001b[0;34m(self, visitor, **kw)\u001b[0m\n\u001b[1;32m 141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m visitor\u001b[38;5;241m.\u001b[39mvisit_unsupported_compilation(\u001b[38;5;28mself\u001b[39m, err, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkw) \u001b[38;5;66;03m# type: ignore # noqa: E501\u001b[39;00m\n\u001b[1;32m 142\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 143\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:3622\u001b[0m, in \u001b[0;36mSQLCompiler.visit_bindparam\u001b[0;34m(self, bindparam, within_columns_clause, literal_binds, skip_bind_expression, literal_execute, render_postcompile, **kwargs)\u001b[0m\n\u001b[1;32m 3619\u001b[0m post_compile \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 3621\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m literal_binds:\n\u001b[0;32m-> 3622\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrender_literal_bindparam\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3623\u001b[0m \u001b[43m \u001b[49m\u001b[43mbindparam\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mwithin_columns_clause\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\n\u001b[1;32m 3624\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3625\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bindparam\u001b[38;5;241m.\u001b[39mexpanding:\n\u001b[1;32m 3626\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m(\u001b[39m\u001b[38;5;132;01m%s\u001b[39;00m\u001b[38;5;124m)\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m%\u001b[39m ret\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:3761\u001b[0m, in \u001b[0;36mSQLCompiler.render_literal_bindparam\u001b[0;34m(self, bindparam, render_literal_value, bind_expression_template, **kw)\u001b[0m\n\u001b[1;32m 3759\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m replacement_expr\n\u001b[1;32m 3760\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 3761\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrender_literal_value\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbindparam\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtype\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/dialects/postgresql/base.py:1864\u001b[0m, in \u001b[0;36mPGCompiler.render_literal_value\u001b[0;34m(self, value, type_)\u001b[0m\n\u001b[1;32m 1863\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrender_literal_value\u001b[39m(\u001b[38;5;28mself\u001b[39m, value, type_):\n\u001b[0;32m-> 1864\u001b[0m value \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrender_literal_value\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtype_\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1866\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdialect\u001b[38;5;241m.\u001b[39m_backslash_escapes:\n\u001b[1;32m 1867\u001b[0m value \u001b[38;5;241m=\u001b[39m value\u001b[38;5;241m.\u001b[39mreplace(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[0;32m~/envs/sql_dev/lib/python3.10/site-packages/sqlalchemy/sql/compiler.py:3788\u001b[0m, in \u001b[0;36mSQLCompiler.render_literal_value\u001b[0;34m(self, value, type_)\u001b[0m\n\u001b[1;32m 3779\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\u001b[38;5;241m.\u001b[39mCompileError(\n\u001b[1;32m 3780\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCould not render literal value \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3781\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00msql_util\u001b[38;5;241m.\u001b[39m_repr_single_value(value)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 3784\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmore detail.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3785\u001b[0m ) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 3787\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 3788\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m exc\u001b[38;5;241m.\u001b[39mCompileError(\n\u001b[1;32m 3789\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo literal value renderer is available for literal value \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3790\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00msql_util\u001b[38;5;241m.\u001b[39m_repr_single_value(value)\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 3791\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwith datatype \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtype_\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 3792\u001b[0m )\n",
"\u001b[0;31mCompileError\u001b[0m: No literal value renderer is available for literal value \"{'LocalReportNumber': 'VARCHAR'}\" with datatype NULL"
]
}
],
"source": [
"veh_crash_stats = client.read_csv(\n",
" './data/CrashStatistics.csv',\n",
" columns={\n",
" \"LocalReportNumber\": 'VARCHAR'\n",
" },\n",
")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Py3.10 (sql_dev)",
"language": "python",
"name": "sql_dev"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment