Skip to content

Add sql bind logic for TableAvailable to simplify TablesContext logic #34029

@strongduanmu

Description

@strongduanmu

Feature Request

Is your feature request related to a problem?

No

Describe the feature you would like.

Currently, TablesContext is used to process tables in SQL statements, as well as the database and schema information to which the tables belong. It also provides the findTableNames method, which is responsible for finding the table information based on columns and metadata.

This method can handle simple SQL scenarios, but for complex multi-table associations and nested subqueries, findTableNames has difficulty analyzing the correct table, which can cause some functional abnormalities.

In order to completely solve this problem, we need to use SQLBindEngine to process these statements. Currently, statements that implement the TableAvailable interface need to be bound in SQL BindEngine. The binding goal is to find the library and schema to which the TableNameSegment in SimpleTableSegement belongs, and then set the TableSegmentBoundInfo object.

The following are the statements that need to implement SQLBind.

  • AlterIndexStatementContext @YaoFly
  • AlterTableStatementContext @strongduanmu
  • AlterViewStatementContext
  • AnalyzeTableStatementContext
  • CloseStatementContext
  • CommentStatementContext
  • CopyStatementContext @lubochen
  • CreateIndexStatementContext
  • CreateTableStatementContext @strongduanmu
  • CreateViewStatementContext
  • CursorStatementContext
  • DeleteStatementContext @strongduanmu
  • DenyUserStatementContext
  • DropIndexStatementContext @YaoFly
  • DropTableStatementContext
  • DropViewStatementContext @chakkk309
  • ExplainStatementContext
  • FetchStatementContext
  • FlushStatementContext
  • GrantStatementContext
  • InsertStatementContext @strongduanmu
  • LoadDataStatementContext @YaoFly
  • LoadXMLStatementContext @YaoFly
  • MoveStatementContext
  • OptimizeTableStatementContext
  • PrepareStatementContext
  • RenameTableStatementContext
  • RevokeStatementContext
  • SelectStatementContext @strongduanmu
  • ShowColumnsStatementContext
  • ShowCreateTableStatementContext
  • ShowIndexStatementContext
  • TruncateStatementContext
  • UpdateStatementContext @strongduanmu

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions