dwh 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -0
- data/README.md +10 -1
- data/docs/guides/adapters.md +158 -0
- data/docs/guides/getting-started.md +6 -1
- data/docs/guides/usage.md +33 -1
- data/lib/dwh/adapters/athena.rb +8 -1
- data/lib/dwh/adapters/databricks.rb +328 -0
- data/lib/dwh/adapters/duck_db.rb +8 -2
- data/lib/dwh/adapters/my_sql.rb +7 -1
- data/lib/dwh/adapters/postgres.rb +11 -5
- data/lib/dwh/adapters/redshift.rb +48 -0
- data/lib/dwh/adapters/sql_server.rb +8 -2
- data/lib/dwh/adapters/sqlite.rb +364 -0
- data/lib/dwh/adapters/trino.rb +7 -1
- data/lib/dwh/adapters.rb +3 -3
- data/lib/dwh/column.rb +12 -1
- data/lib/dwh/functions/dates.rb +15 -0
- data/lib/dwh/settings/databricks.yml +14 -15
- data/lib/dwh/settings/druid.yml +3 -3
- data/lib/dwh/settings/duckdb.yml +2 -2
- data/lib/dwh/settings/mysql.yml +2 -2
- data/lib/dwh/settings/postgres.yml +11 -11
- data/lib/dwh/settings/redshift.yml +15 -24
- data/lib/dwh/settings/snowflake.yml +15 -15
- data/lib/dwh/settings/sqlite.yml +42 -0
- data/lib/dwh/settings.rb +6 -2
- data/lib/dwh/table.rb +18 -10
- data/lib/dwh/version.rb +1 -1
- data/lib/dwh.rb +6 -4
- metadata +6 -16
data/lib/dwh/settings/mysql.yml
CHANGED
|
@@ -24,8 +24,8 @@ extract_minute: 'MINUTE(@exp)'
|
|
|
24
24
|
extract_year_month: 'CAST(CONCAT(YEAR(@exp), LPAD(MONTH(@exp), 2, "0")) AS UNSIGNED)'
|
|
25
25
|
default_week_start_day: "sunday"
|
|
26
26
|
week_start_day: "monday"
|
|
27
|
-
sunday_week_start_day: "DATE(DATE_SUB(@exp, INTERVAL
|
|
28
|
-
monday_week_start_day: "DATE(DATE_SUB(@exp, INTERVAL
|
|
27
|
+
sunday_week_start_day: "DATE(DATE_SUB(@exp, INTERVAL DAYOFWEEK(@exp)-1 DAY ))"
|
|
28
|
+
monday_week_start_day: "DATE(DATE_SUB(@exp, INTERVAL DAYOFWEEK(@exp)-2 DAY ))"
|
|
29
29
|
cast: "CAST(@exp AS @type)"
|
|
30
30
|
|
|
31
31
|
# string functions
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
date_add: "(@exp + '@val @unit'::interval)"
|
|
3
|
-
date_diff: "
|
|
3
|
+
date_diff: "AGE(@start_exp, @end_exp)"
|
|
4
4
|
date_format_sql: "TO_CHAR(@exp, '@format')"
|
|
5
5
|
date_literal: "'@val'::DATE"
|
|
6
6
|
date_time_literal: "'@val'::TIMESTAMP"
|
|
@@ -12,16 +12,16 @@ abbreviated_month_name_format: "Mon"
|
|
|
12
12
|
sunday_week_start_day: "( DATE_TRUNC('WEEK', @exp + INTERVAL '1 DAY') - INTERVAL '1 DAY' )"
|
|
13
13
|
monday_week_start_day: "( DATE_TRUNC('WEEK', @exp - INTERVAL '1 DAY') + INTERVAL '1 DAY' )"
|
|
14
14
|
|
|
15
|
-
extract_year: '
|
|
16
|
-
extract_month: '
|
|
17
|
-
extract_quarter: '
|
|
18
|
-
extract_day_of_year: '
|
|
19
|
-
extract_day_of_month: '
|
|
20
|
-
extract_day_of_week: '
|
|
21
|
-
extract_week_of_year: '
|
|
22
|
-
extract_hour: '
|
|
23
|
-
extract_minute: '
|
|
24
|
-
extract_year_month: "
|
|
15
|
+
extract_year: 'EXTRACT(year from @exp)'
|
|
16
|
+
extract_month: 'EXTRACT(month from @exp)'
|
|
17
|
+
extract_quarter: 'EXTRACT(quarter from @exp)'
|
|
18
|
+
extract_day_of_year: 'EXTRACT(DOY from @exp)'
|
|
19
|
+
extract_day_of_month: 'EXTRACT(DAY from @exp)'
|
|
20
|
+
extract_day_of_week: 'EXTRACT(DOW from @exp)'
|
|
21
|
+
extract_week_of_year: 'EXTRACT(WEEK from @exp)'
|
|
22
|
+
extract_hour: 'EXTRACT(HOUR from @exp)'
|
|
23
|
+
extract_minute: 'EXTRACT(MINUTE from @exp)'
|
|
24
|
+
extract_year_month: "CAST((EXTRACT(YEAR FROM @exp)::varchar || TO_CHAR(@exp, 'MM')) as INTEGER)"
|
|
25
25
|
|
|
26
26
|
cast: "@exp::@type"
|
|
27
27
|
|
|
@@ -1,28 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
# quotes and string lit
|
|
3
|
-
quote: "\"@exp\""
|
|
4
|
-
string_literal: "'@exp'"
|
|
5
|
-
|
|
6
1
|
# Date Literal Formats
|
|
7
|
-
date_format: "%Y-%m-%d"
|
|
8
|
-
date_time_format: "%Y-%m-%d %H:%M:%S"
|
|
9
|
-
date_time_tz_format: "%Y-%m-%d %H:%M:%S %Z"
|
|
10
|
-
date_type: "string" # alternative is int, integer, dateint
|
|
11
2
|
day_name_format: "Day"
|
|
12
3
|
abbreviated_day_name_format: "Dy"
|
|
13
4
|
month_name_format: "Month"
|
|
14
5
|
abbreviated_month_name_format: "Mon"
|
|
15
6
|
|
|
16
7
|
# Date functions patterns
|
|
17
|
-
current_date: "
|
|
18
|
-
current_time: "
|
|
19
|
-
current_timestamp: "
|
|
20
|
-
truncate_date: "
|
|
21
|
-
date_add: "
|
|
22
|
-
date_diff: "
|
|
8
|
+
current_date: "CURRENT_DATE"
|
|
9
|
+
current_time: "CURRENT_TIME"
|
|
10
|
+
current_timestamp: "CURRENT_TIMESTAMP"
|
|
11
|
+
truncate_date: "DATE_TRUNC('@unit', @exp)"
|
|
12
|
+
date_add: "DATEADD(@unit, @val, @exp)"
|
|
13
|
+
date_diff: "DATEDIFF(@unit, @start_exp, @end_exp)"
|
|
23
14
|
date_format_sql: "TO_CHAR(@exp, '@format')"
|
|
24
|
-
date_literal: "'@val'"
|
|
25
|
-
date_time_literal: "
|
|
15
|
+
date_literal: "'@val'::DATE"
|
|
16
|
+
date_time_literal: "'@val'::TIMESTAMP"
|
|
26
17
|
extract_year: 'EXTRACT(YEAR FROM @exp)'
|
|
27
18
|
extract_month: 'EXTRACT(MONTH FROM @exp)'
|
|
28
19
|
extract_quarter: 'EXTRACT(QUARTER FROM @exp)'
|
|
@@ -33,15 +24,15 @@ extract_week_of_year: 'EXTRACT(WEEK FROM @exp)'
|
|
|
33
24
|
extract_hour: 'EXTRACT(HOUR FROM @exp)'
|
|
34
25
|
extract_minute: 'EXTRACT(MINUTE FROM @exp)'
|
|
35
26
|
extract_year_month: "TO_CHAR(@exp, 'YYYYMM')::INTEGER"
|
|
36
|
-
default_week_start_day: "
|
|
37
|
-
week_start_day: "
|
|
38
|
-
sunday_week_start_day: "DATEADD(day, -1, DATE_TRUNC(WEEK, DATEADD(DAY,
|
|
39
|
-
monday_week_start_day: "DATEADD(day,
|
|
27
|
+
default_week_start_day: "monday" # Redshift uses Sunday as default
|
|
28
|
+
week_start_day: "monday"
|
|
29
|
+
sunday_week_start_day: "DATEADD(day, -1, DATE_TRUNC('WEEK', DATEADD(DAY, 1, @exp)))"
|
|
30
|
+
monday_week_start_day: "DATEADD(day, 1, DATE_TRUNC('WEEK', DATEADD(day, -1, @exp)))"
|
|
40
31
|
|
|
41
32
|
# string functions
|
|
42
|
-
trim: "
|
|
43
|
-
lower_case: "
|
|
44
|
-
upper_case: "
|
|
33
|
+
trim: "TRIM(@exp)"
|
|
34
|
+
lower_case: "LOWER(@exp)"
|
|
35
|
+
upper_case: "UPPER(@exp)"
|
|
45
36
|
|
|
46
37
|
# null handling
|
|
47
38
|
if_null: "COALESCE(@exp, @when_null)"
|
|
@@ -10,29 +10,29 @@ month_name_format: "MMMM"
|
|
|
10
10
|
abbreviated_month_name_format: "MON"
|
|
11
11
|
|
|
12
12
|
# Date functions patterns
|
|
13
|
-
current_date: "
|
|
14
|
-
current_time: "
|
|
15
|
-
current_timestamp: "
|
|
13
|
+
current_date: "CURRENT_DATE()"
|
|
14
|
+
current_time: "CURRENT_TIME()"
|
|
15
|
+
current_timestamp: "CURRENT_TIMESTAMP()"
|
|
16
16
|
|
|
17
|
-
date_add: "
|
|
18
|
-
date_diff: "
|
|
17
|
+
date_add: "DATEADD(@unit, @val, @exp)"
|
|
18
|
+
date_diff: "DATEDIFF(@unit, @start_exp, @end_exp)"
|
|
19
19
|
date_format_sql: "TO_VARCHAR(@exp, '@format')"
|
|
20
20
|
date_literal: "'@val'::DATE"
|
|
21
21
|
date_time_literal: "'@val'::TIMESTAMP"
|
|
22
|
-
extract_year: '
|
|
23
|
-
extract_month: '
|
|
24
|
-
extract_quarter: '
|
|
22
|
+
extract_year: 'YEAR(@exp)'
|
|
23
|
+
extract_month: 'MONTH(@exp)'
|
|
24
|
+
extract_quarter: 'QUARTER(@exp)'
|
|
25
25
|
extract_day_of_year: 'DAYOFYEAR(@exp)'
|
|
26
|
-
extract_day_of_month: '
|
|
26
|
+
extract_day_of_month: 'DAY(@exp)'
|
|
27
27
|
extract_day_of_week: 'DAYOFWEEK(@exp)'
|
|
28
|
-
extract_week_of_year: '
|
|
29
|
-
extract_hour: '
|
|
30
|
-
extract_minute: '
|
|
31
|
-
extract_year_month: '
|
|
28
|
+
extract_week_of_year: 'WEEK(@exp)'
|
|
29
|
+
extract_hour: 'HOUR(@exp)'
|
|
30
|
+
extract_minute: 'MINUTE(@exp)'
|
|
31
|
+
extract_year_month: 'CAST((TO_VARCHAR(@exp, ''YYYY'') || TO_VARCHAR(@exp, ''MM'')) as integer)'
|
|
32
32
|
default_week_start_day: "monday"
|
|
33
33
|
week_start_day: "monday"
|
|
34
|
-
sunday_week_start_day: "
|
|
35
|
-
monday_week_start_day: "
|
|
34
|
+
sunday_week_start_day: "DATEADD(day, -1,DATE_TRUNC('week', DATEADD(day,1, @exp)))"
|
|
35
|
+
monday_week_start_day: "DATEADD(day, 1,DATE_TRUNC('week', DATEADD(day,-1, @exp)))"
|
|
36
36
|
|
|
37
37
|
# array operations
|
|
38
38
|
array_in_list: "ARRAY_CONTAINS(@exp, ARRAY_CONSTRUCT(@list))"
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
# Date Literal Formats
|
|
4
|
+
day_name_format: "%A"
|
|
5
|
+
abbreviated_day_name_format: "%a"
|
|
6
|
+
month_name_format: "%B"
|
|
7
|
+
abbreviated_month_name_format: "%b"
|
|
8
|
+
|
|
9
|
+
# Date functions patterns
|
|
10
|
+
# SQLite uses strftime for most date operations
|
|
11
|
+
date_add: "datetime(@exp, '+@val @unit')"
|
|
12
|
+
date_diff: "CAST((julianday(@end_exp) - julianday(@start_exp)) AS INTEGER)"
|
|
13
|
+
date_format_sql: "strftime('@format', @exp)"
|
|
14
|
+
extract_year: "CAST(strftime('%Y', @exp) AS INTEGER)"
|
|
15
|
+
extract_month: "CAST(strftime('%m', @exp) AS INTEGER)"
|
|
16
|
+
extract_quarter: "CAST(((strftime('%m', @exp) - 1) / 3) + 1 AS INTEGER)"
|
|
17
|
+
extract_day_of_year: "CAST(strftime('%j', @exp) AS INTEGER)"
|
|
18
|
+
extract_day_of_month: "CAST(strftime('%d', @exp) AS INTEGER)"
|
|
19
|
+
extract_day_of_week: "CAST(strftime('%w', @exp) AS INTEGER)"
|
|
20
|
+
extract_week_of_year: "CAST(strftime('%W', @exp) AS INTEGER)"
|
|
21
|
+
extract_hour: "CAST(strftime('%H', @exp) AS INTEGER)"
|
|
22
|
+
extract_minute: "CAST(strftime('%M', @exp) AS INTEGER)"
|
|
23
|
+
extract_year_month: "CAST(strftime('%Y%m', @exp) AS INTEGER)"
|
|
24
|
+
default_week_start_day: "monday"
|
|
25
|
+
week_start_day: "monday"
|
|
26
|
+
sunday_week_start_day: "date(@exp, '-' || strftime('%w', @exp) || ' days')"
|
|
27
|
+
monday_week_start_day: "date(@exp, '-' || ((CAST(strftime('%w', @exp) AS INTEGER) + 6) % 7) || ' days')"
|
|
28
|
+
|
|
29
|
+
cast: "CAST(@exp AS @type)"
|
|
30
|
+
|
|
31
|
+
# string functions
|
|
32
|
+
trim: "TRIM(@exp)"
|
|
33
|
+
lower_case: "LOWER(@exp)"
|
|
34
|
+
upper_case: "UPPER(@exp)"
|
|
35
|
+
|
|
36
|
+
# Relevant db capabilities for query gen
|
|
37
|
+
create_temp_table_template: "CREATE TEMP TABLE @table AS \n@sql"
|
|
38
|
+
|
|
39
|
+
# array operations - SQLite has limited native array support
|
|
40
|
+
# These would need JSON extension or custom implementation
|
|
41
|
+
# array_in_list: "EXISTS(SELECT 1 FROM json_each(@exp) WHERE value IN @list)"
|
|
42
|
+
# array_exclude_list: "NOT EXISTS(SELECT 1 FROM json_each(@exp) WHERE value IN @list)"
|
data/lib/dwh/settings.rb
CHANGED
|
@@ -44,7 +44,11 @@ module DWH
|
|
|
44
44
|
logger.debug "#{adapter_name} Adapter didn't have a settings YAML file. Using only base settings."
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
@adapter_settings.
|
|
47
|
+
@adapter_settings.transform_keys! do |key|
|
|
48
|
+
key.to_sym
|
|
49
|
+
rescue StandardError
|
|
50
|
+
key
|
|
51
|
+
end
|
|
48
52
|
end
|
|
49
53
|
|
|
50
54
|
# By default settings_file are expected to be in a
|
|
@@ -69,7 +73,7 @@ module DWH
|
|
|
69
73
|
end
|
|
70
74
|
|
|
71
75
|
def adapter_name
|
|
72
|
-
name.
|
|
76
|
+
name.split('::').last.downcase
|
|
73
77
|
end
|
|
74
78
|
|
|
75
79
|
def using_base_settings?
|
data/lib/dwh/table.rb
CHANGED
|
@@ -22,16 +22,16 @@ module DWH
|
|
|
22
22
|
|
|
23
23
|
@physical_name = parts.last
|
|
24
24
|
@table_stats = table_stats
|
|
25
|
-
@catalog = catalog
|
|
26
|
-
@schema = schema
|
|
25
|
+
@catalog = catalog&.strip
|
|
26
|
+
@schema = schema&.strip
|
|
27
27
|
|
|
28
|
-
@catalog = parts.first if @catalog.nil? && parts.length > 2
|
|
28
|
+
@catalog = parts.first.strip if @catalog.nil? && parts.length > 2
|
|
29
29
|
|
|
30
30
|
if @schema.nil?
|
|
31
31
|
if parts.length == 2
|
|
32
|
-
@schema = parts.first
|
|
32
|
+
@schema = parts.first.strip
|
|
33
33
|
elsif parts.length > 2
|
|
34
|
-
@schema = parts[1]
|
|
34
|
+
@schema = parts[1].strip
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -50,12 +50,20 @@ module DWH
|
|
|
50
50
|
[catalog, schema].compact.join('.')
|
|
51
51
|
end
|
|
52
52
|
|
|
53
|
+
def catalog?
|
|
54
|
+
catalog && !catalog.empty?
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def schema?
|
|
58
|
+
schema && !schema.empty?
|
|
59
|
+
end
|
|
60
|
+
|
|
53
61
|
def catalog_and_schema?
|
|
54
|
-
catalog && schema
|
|
62
|
+
catalog? && schema?
|
|
55
63
|
end
|
|
56
64
|
|
|
57
65
|
def catalog_or_schema?
|
|
58
|
-
catalog || schema
|
|
66
|
+
catalog? || schema?
|
|
59
67
|
end
|
|
60
68
|
|
|
61
69
|
def stats
|
|
@@ -82,13 +90,13 @@ module DWH
|
|
|
82
90
|
|
|
83
91
|
def self.from_hash_or_json(physical_name, metadata)
|
|
84
92
|
metadata = JSON.parse(metadata) if metadata.is_a?(String)
|
|
85
|
-
metadata.
|
|
93
|
+
metadata.transform_keys!(&:to_sym)
|
|
86
94
|
|
|
87
|
-
stats = TableStats.new(**metadata[:stats]
|
|
95
|
+
stats = TableStats.new(**metadata[:stats]&.transform_keys!(&:to_sym)) if metadata.key?(:stats)
|
|
88
96
|
table = new(physical_name, table_stats: stats)
|
|
89
97
|
|
|
90
98
|
metadata[:columns]&.each do |col|
|
|
91
|
-
col.
|
|
99
|
+
col.transform_keys!(&:to_sym)
|
|
92
100
|
table << Column.new(
|
|
93
101
|
name: col[:name],
|
|
94
102
|
data_type: col[:data_type],
|
data/lib/dwh/version.rb
CHANGED
data/lib/dwh.rb
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
require 'faraday'
|
|
2
|
-
require 'active_support/core_ext/string/inflections'
|
|
3
|
-
require 'active_support/core_ext/hash/keys'
|
|
4
|
-
require 'active_support/core_ext/object/blank'
|
|
5
|
-
require 'active_support/duration'
|
|
6
2
|
|
|
7
3
|
require_relative 'dwh/version'
|
|
8
4
|
require_relative 'dwh/errors'
|
|
@@ -19,7 +15,10 @@ require_relative 'dwh/adapters/snowflake'
|
|
|
19
15
|
require_relative 'dwh/adapters/my_sql'
|
|
20
16
|
require_relative 'dwh/adapters/sql_server'
|
|
21
17
|
require_relative 'dwh/adapters/duck_db'
|
|
18
|
+
require_relative 'dwh/adapters/sqlite'
|
|
22
19
|
require_relative 'dwh/adapters/athena'
|
|
20
|
+
require_relative 'dwh/adapters/redshift'
|
|
21
|
+
require_relative 'dwh/adapters/databricks'
|
|
23
22
|
|
|
24
23
|
# DWH encapsulates the full functionality of this gem.
|
|
25
24
|
#
|
|
@@ -48,7 +47,10 @@ module DWH
|
|
|
48
47
|
register(:mysql, Adapters::MySql)
|
|
49
48
|
register(:sqlserver, Adapters::SqlServer)
|
|
50
49
|
register(:duckdb, Adapters::DuckDb)
|
|
50
|
+
register(:sqlite, Adapters::Sqlite)
|
|
51
51
|
register(:athena, Adapters::Athena)
|
|
52
|
+
register(:redshift, Adapters::Redshift)
|
|
53
|
+
register(:databricks, Adapters::Databricks)
|
|
52
54
|
|
|
53
55
|
# start_reaper
|
|
54
56
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dwh
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ajo Abraham
|
|
@@ -9,20 +9,6 @@ bindir: exe
|
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
|
-
- !ruby/object:Gem::Dependency
|
|
13
|
-
name: activesupport
|
|
14
|
-
requirement: !ruby/object:Gem::Requirement
|
|
15
|
-
requirements:
|
|
16
|
-
- - "~>"
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: 8.0.2
|
|
19
|
-
type: :runtime
|
|
20
|
-
prerelease: false
|
|
21
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
-
requirements:
|
|
23
|
-
- - "~>"
|
|
24
|
-
- !ruby/object:Gem::Version
|
|
25
|
-
version: 8.0.2
|
|
26
12
|
- !ruby/object:Gem::Dependency
|
|
27
13
|
name: connection_pool
|
|
28
14
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -168,13 +154,16 @@ files:
|
|
|
168
154
|
- lib/dwh.rb
|
|
169
155
|
- lib/dwh/adapters.rb
|
|
170
156
|
- lib/dwh/adapters/athena.rb
|
|
157
|
+
- lib/dwh/adapters/databricks.rb
|
|
171
158
|
- lib/dwh/adapters/druid.rb
|
|
172
159
|
- lib/dwh/adapters/duck_db.rb
|
|
173
160
|
- lib/dwh/adapters/my_sql.rb
|
|
174
161
|
- lib/dwh/adapters/open_authorizable.rb
|
|
175
162
|
- lib/dwh/adapters/postgres.rb
|
|
163
|
+
- lib/dwh/adapters/redshift.rb
|
|
176
164
|
- lib/dwh/adapters/snowflake.rb
|
|
177
165
|
- lib/dwh/adapters/sql_server.rb
|
|
166
|
+
- lib/dwh/adapters/sqlite.rb
|
|
178
167
|
- lib/dwh/adapters/trino.rb
|
|
179
168
|
- lib/dwh/behaviors.rb
|
|
180
169
|
- lib/dwh/capabilities.rb
|
|
@@ -197,6 +186,7 @@ files:
|
|
|
197
186
|
- lib/dwh/settings/postgres.yml
|
|
198
187
|
- lib/dwh/settings/redshift.yml
|
|
199
188
|
- lib/dwh/settings/snowflake.yml
|
|
189
|
+
- lib/dwh/settings/sqlite.yml
|
|
200
190
|
- lib/dwh/settings/sqlserver.yml
|
|
201
191
|
- lib/dwh/settings/trino.yml
|
|
202
192
|
- lib/dwh/streaming_stats.rb
|
|
@@ -225,7 +215,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
225
215
|
- !ruby/object:Gem::Version
|
|
226
216
|
version: '0'
|
|
227
217
|
requirements: []
|
|
228
|
-
rubygems_version: 3.
|
|
218
|
+
rubygems_version: 3.6.9
|
|
229
219
|
specification_version: 4
|
|
230
220
|
summary: Data warehouse adapters for interacting with popular data warehouses.
|
|
231
221
|
test_files: []
|