Module: Upkeep::SQLGlot
- Defined in:
- lib/upkeep/sqlglot.rb,
lib/upkeep/sqlglot.rb,
lib/upkeep/sqlglot/native.rb,
lib/upkeep/sqlglot/native_library.rb
Defined Under Namespace
Modules: Dialect, Native, NativeLibrary
Classes: ColumnRef, Error, GenerateError, LibraryNotFoundError, LineageConfig, LineageGraph, LineageNode, MappingSchema, ParseError, Scope, SemanticError, Source, TableRef, TranspileError
Class Method Summary
collapse
Class Method Details
.build_scope(statement) ⇒ Object
347
348
349
350
351
|
# File 'lib/upkeep/sqlglot.rb', line 347
def build_scope(statement)
Scope.from_native(
JSON.parse(Native.build_scope(JSON.generate(statement)))
)
end
|
.generate(statement, dialect: nil) ⇒ Object
329
330
331
|
# File 'lib/upkeep/sqlglot.rb', line 329
def generate(statement, dialect: nil)
Native.generate(JSON.generate(statement), Dialect.resolve(dialect))
end
|
.lineage(column, statement, schema, config = nil) ⇒ Object
353
354
355
356
357
358
359
360
361
362
363
364
365
|
# File 'lib/upkeep/sqlglot.rb', line 353
def lineage(column, statement, schema, config = nil)
config ||= LineageConfig.new(dialect: schema.dialect)
LineageGraph.from_native(
JSON.parse(
Native.lineage(
column.to_s,
JSON.generate(statement),
JSON.generate(schema.to_dependency_native),
JSON.generate(config.to_h)
)
)
)
end
|
.parse(sql, dialect: nil) ⇒ Object
317
318
319
|
# File 'lib/upkeep/sqlglot.rb', line 317
def parse(sql, dialect: nil)
JSON.parse(Native.parse(sql.to_s, Dialect.resolve(dialect)))
end
|
.qualify_columns(statement, schema) ⇒ Object
337
338
339
340
341
342
343
344
345
|
# File 'lib/upkeep/sqlglot.rb', line 337
def qualify_columns(statement, schema)
JSON.parse(
Native.qualify_columns(
JSON.generate(statement),
JSON.generate(schema.to_dependency_native),
schema.dialect
)
)
end
|
.transpile(sql, from: nil, to: nil) ⇒ Object
.version ⇒ Object
333
334
335
|
# File 'lib/upkeep/sqlglot.rb', line 333
def version
Native.version
end
|