Class: SqlGenius::Core::Ai::SchemaContextBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/sql_genius/core/ai/schema_context_builder.rb

Overview

Builds formatted schema-description strings for AI prompt context. Used by SchemaReview, RewriteQuery, IndexAdvisor, and MigrationRisk.

Consolidates the ~10 lines of schema description logic that were duplicated across 4 AI features in the Rails adapter’s app/controllers/concerns/sql_genius/ai_features.rb.

Instance Method Summary collapse

Constructor Details

#initialize(connection) ⇒ SchemaContextBuilder

Returns a new instance of SchemaContextBuilder.



13
14
15
# File 'lib/sql_genius/core/ai/schema_context_builder.rb', line 13

def initialize(connection)
  @connection = connection
end

Instance Method Details

#call(tables, detail: :basic) ⇒ Object

Returns a formatted multi-line string describing the given tables.

detail:

:basic             — name, row count, primary key, columns, indexes
:with_cardinality  — adds information_schema.STATISTICS cardinality per index


22
23
24
# File 'lib/sql_genius/core/ai/schema_context_builder.rb', line 22

def call(tables, detail: :basic)
  Array(tables).filter_map { |t| describe_table(t, detail: detail) }.join("\n\n")
end