Class: SqlGenius::Core::Ai::SchemaContextBuilder
- Inherits:
-
Object
- Object
- SqlGenius::Core::Ai::SchemaContextBuilder
- 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
-
#call(tables, detail: :basic) ⇒ Object
Returns a formatted multi-line string describing the given tables.
-
#initialize(connection) ⇒ SchemaContextBuilder
constructor
A new instance of SchemaContextBuilder.
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 |