Module: ForestAdminDatasourceSnowflake::Parser::Relation
- Defined in:
- lib/forest_admin_datasource_snowflake/parser/relation.rb
Constant Summary collapse
- PK_TABLE_NAME_IDX =
3- PK_COLUMN_NAME_IDX =
4- FK_TABLE_NAME_IDX =
7- FK_COLUMN_NAME_IDX =
8- QUERY =
'SHOW IMPORTED KEYS IN SCHEMA'.freeze
Class Method Summary collapse
Class Method Details
.discover(datasource) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/forest_admin_datasource_snowflake/parser/relation.rb', line 13 def discover(datasource) rows = datasource.with_connection do |conn| stmt = conn.prepare(QUERY) begin stmt.execute stmt.fetch_all || [] ensure stmt.drop end end rows.map do |row| { source_table: row[FK_TABLE_NAME_IDX], source_column: row[FK_COLUMN_NAME_IDX], target_table: row[PK_TABLE_NAME_IDX], target_column: row[PK_COLUMN_NAME_IDX] } end end |