ibis-project / ibis

the portable Python dataframe library
https://ibis-project.org
Apache License 2.0
5.23k stars 591 forks source link

bug: AttributeError: module 'sqlglot.expressions' has no attribute 'NULL when using sqlite #8159

Closed jieguangzhou closed 8 months ago

jieguangzhou commented 8 months ago

What happened?

Incompatible with new version of sqlglot(20.11)

What version of ibis are you using?

7.2.0

What backend(s) are you using, if any?

sqlite

Relevant log output

File ~/workspace/SuperDuperDB/superduperdb/env/lib/python3.10/site-packages/ibis/backends/sqlite/__init__.py:30
     28 from ibis import util
     29 from ibis.backends.base import CanListDatabases
---> 30 from ibis.backends.base.sql.alchemy import BaseAlchemyBackend
     31 from ibis.backends.sqlite import udf
     32 from ibis.backends.sqlite.compiler import SQLiteCompiler

File ~/workspace/SuperDuperDB/superduperdb/env/lib/python3.10/site-packages/ibis/backends/base/sql/alchemy/__init__.py:27
     25 from ibis.backends.base.sql import BaseSQLBackend
     26 from ibis.backends.base.sql.alchemy.geospatial import geospatial_supported
---> 27 from ibis.backends.base.sql.alchemy.query_builder import AlchemyCompiler
     28 from ibis.backends.base.sql.alchemy.registry import (
     29     fixed_arity,
     30     get_sqla_table,
   (...)
     36     variance_reduction,
     37 )
     38 from ibis.backends.base.sql.alchemy.translator import (
     39     AlchemyContext,
     40     AlchemyExprTranslator,
     41 )

File ~/workspace/SuperDuperDB/superduperdb/env/lib/python3.10/site-packages/ibis/backends/base/sql/alchemy/query_builder.py:14
     12 import ibis.expr.operations as ops
     13 from ibis.backends.base import _SQLALCHEMY_TO_SQLGLOT_DIALECT
---> 14 from ibis.backends.base.sql.alchemy.translator import (
     15     AlchemyContext,
     16     AlchemyExprTranslator,
     17 )
     18 from ibis.backends.base.sql.compiler import (
     19     Compiler,
     20     Select,
     21     SelectBuilder,
     22     TableSetFormatter,
     23 )
     24 from ibis.backends.base.sql.compiler.base import SetOp

File ~/workspace/SuperDuperDB/superduperdb/env/lib/python3.10/site-packages/ibis/backends/base/sql/alchemy/translator.py:11
      9 import ibis.expr.datatypes as dt
     10 import ibis.expr.operations as ops
---> 11 from ibis.backends.base.sql.alchemy.datatypes import AlchemyType
     12 from ibis.backends.base.sql.alchemy.registry import (
     13     fixed_arity,
     14     sqlalchemy_operation_registry,
     15 )
     16 from ibis.backends.base.sql.compiler import ExprTranslator, QueryContext

File ~/workspace/SuperDuperDB/superduperdb/env/lib/python3.10/site-packages/ibis/backends/base/sql/alchemy/datatypes.py:12
     10 import ibis.expr.datatypes as dt
     11 from ibis.backends.base.sql.alchemy.geospatial import geospatial_supported
---> 12 from ibis.backends.base.sqlglot.datatypes import SqlglotType
     13 from ibis.common.collections import FrozenDict
     14 from ibis.formats import TypeMapper

File ~/workspace/SuperDuperDB/superduperdb/env/lib/python3.10/site-packages/ibis/backends/base/sqlglot/__init__.py:85
     83 C = ColGen()
     84 F = FuncGen()
---> 85 NULL = sg.exp.NULL
     86 FALSE = sg.exp.FALSE
     87 TRUE = sg.exp.TRUE

AttributeError: module 'sqlglot.expressions' has no attribute 'NULL'

Code of Conduct

jieguangzhou commented 8 months ago

Chore!: deprecate NULL, TRUE, FALSE constant expressions

cpcloud commented 8 months ago

Thanks for the report!

This was fixed yesterday by #8151 and will be released next week in 8.0.0.