evt-view_data-pg 0.1.0.0 → 0.1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3a446a1a6d3124fa58e589403e99c2c2ea670283
4
- data.tar.gz: 26ef15ffe45116c6002f983091c0c2538f4aba9f
2
+ SHA256:
3
+ metadata.gz: 84d64468734921a664c06fca5d76df5e9cde7465177aa1459265db8dfa9c5a4d
4
+ data.tar.gz: d5dc467ffd5c40d7306cb72ea5380814783ffb3bd331af5b1848be3412b4a716
5
5
  SHA512:
6
- metadata.gz: 33d0921b2fcf365b97f321bc94acdb2cb9c5a7e4dd87c5fdddef6922628a74b9891b1833009a1f64b81c658c6c10f3899b3e40405047c1dd5c76ae01406b2c8e
7
- data.tar.gz: aee4c805bb139e93d6ef9a758f1f3eeda1905863a4dc58d401e9c9e1e03f31f9fed07b72f782733bb06632243b65575338ab35dbe46f88d05c9cb0348c788419
6
+ metadata.gz: 9ced2d7e48241acac3a2e1785b354903bac841c0699f09a325c6552d4f7d53b00f02e497a835efa62781b452c7a59a41e83e31ba177cf2e58cfa8d00c7d830f1
7
+ data.tar.gz: 8c4182f58b0968e6217b4b6958ae9658a0e32b5b3f37d1ed299837e43c1dff4d707623938a1096fc1afd9b3b1c99d2867c66954f34fb6bc728e106ba73def6a4
@@ -8,7 +8,7 @@ module ViewData
8
8
 
9
9
  if drop
10
10
  session.execute("DROP TABLE IF EXISTS #{name}")
11
- session.execute("DROP TYPE some_enum_type")
11
+ session.execute("DROP TYPE IF EXISTS some_enum_type")
12
12
  end
13
13
 
14
14
  begin
@@ -6,7 +6,7 @@ module ViewData
6
6
 
7
7
  include ViewData::Commands
8
8
 
9
- dependency :session, MessageStore::Postgres::Session
9
+ dependency :session, Session
10
10
  dependency :get_primary_key_columns, PrimaryKey::GetColumns
11
11
 
12
12
  def configure
@@ -27,6 +27,10 @@ module ViewData
27
27
 
28
28
  columns = pkey_columns + data_columns
29
29
 
30
+ quoted_columns = columns.map do |column|
31
+ quote_column(column)
32
+ end
33
+
30
34
  values = pkey_values + data_values
31
35
 
32
36
  values_clause = values.count.times.map do |i|
@@ -34,7 +38,7 @@ module ViewData
34
38
  end
35
39
 
36
40
  statement = <<~SQL.chomp
37
- INSERT INTO #{table_name} (#{columns * ', '})
41
+ INSERT INTO #{quote_table_name(table_name)} (#{quoted_columns * ', '})
38
42
  VALUES (#{values_clause * ', '})
39
43
  SQL
40
44
 
@@ -64,22 +68,26 @@ module ViewData
64
68
  data_columns = update.data.keys
65
69
  data_values = update.data.values
66
70
 
67
- set_clause = data_columns.map.with_index do |column_name, index|
71
+ set_clause = data_columns.map.with_index do |column, index|
72
+ quoted_column = quote_column(column)
73
+
68
74
  reference = index + 1
69
75
 
70
- "#{column_name} = $#{reference}"
76
+ "#{quoted_column} = $#{reference}"
71
77
  end
72
78
 
73
- pkey_clause = pkey_columns.map.with_index do |column_name, index|
79
+ pkey_clause = pkey_columns.map.with_index do |column, index|
80
+ quoted_column = quote_column(column)
81
+
74
82
  reference = index + data_columns.count + 1
75
83
 
76
- "#{column_name} = $#{reference}"
84
+ "#{quoted_column} = $#{reference}"
77
85
  end
78
86
 
79
87
  values = data_values + pkey_values
80
88
 
81
89
  statement = <<~SQL.chomp
82
- UPDATE #{table_name}
90
+ UPDATE #{quote_table_name(table_name)}
83
91
  SET #{set_clause * ', '}
84
92
  WHERE #{pkey_clause * ' AND '}
85
93
  SQL
@@ -103,14 +111,16 @@ module ViewData
103
111
  pkey_columns = get_primary_key_columns.(table_name)
104
112
  pkey_values = Array(delete.identifier)
105
113
 
106
- pkey_clause = pkey_columns.map.with_index do |column_name, index|
114
+ pkey_clause = pkey_columns.map.with_index do |column, index|
115
+ quoted_column = quote_column(column)
116
+
107
117
  reference = index + 1
108
118
 
109
- "#{column_name} = $#{reference}"
119
+ "#{quoted_column} = $#{reference}"
110
120
  end
111
121
 
112
122
  statement = <<~SQL.chomp
113
- DELETE FROM #{table_name}
123
+ DELETE FROM #{quote_table_name(table_name)}
114
124
  WHERE #{pkey_clause * ' AND '}
115
125
  SQL
116
126
 
@@ -124,6 +134,14 @@ module ViewData
124
134
  logger.info(tag: :data) { "SQL: #{statement}" }
125
135
  logger.info(tag: :data) { pkey_values.pretty_inspect }
126
136
  end
137
+
138
+ def quote_column(column)
139
+ session.connect.quote_ident(column.to_s)
140
+ end
141
+
142
+ def quote_table_name(name)
143
+ session.connect.quote_ident(name.to_s.split('.'))
144
+ end
127
145
  end
128
146
  end
129
147
  end
@@ -2,6 +2,9 @@ module ViewData
2
2
  module PG
3
3
  module PrimaryKey
4
4
  class GetColumns
5
+ include Configure
6
+ include Dependency
7
+
5
8
  configure :get_primary_key_columns
6
9
 
7
10
  dependency :session, Session
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-view_data-pg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.0
4
+ version: 0.1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-04 00:00:00.000000000 Z
11
+ date: 2020-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-consumer-postgres
@@ -84,7 +84,7 @@ homepage: https://github.com/eventide-contrib/view-data-pg
84
84
  licenses:
85
85
  - MIT
86
86
  metadata: {}
87
- post_install_message:
87
+ post_install_message:
88
88
  rdoc_options: []
89
89
  require_paths:
90
90
  - lib
@@ -99,9 +99,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
99
  - !ruby/object:Gem::Version
100
100
  version: '0'
101
101
  requirements: []
102
- rubyforge_project:
103
- rubygems_version: 2.6.11
104
- signing_key:
102
+ rubygems_version: 3.1.4
103
+ signing_key:
105
104
  specification_version: 4
106
105
  summary: Create and populate PostgreSQL view databases from event streams
107
106
  test_files: []