evt-view_data-pg 0.1.0.3 → 0.1.0.4

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/view_data/pg/handler.rb +23 -9
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a025d61a60d7a1e140fa6e6fbf7d22cae912d3017a3ea2f4536c033fbad78f54
4
- data.tar.gz: 5d8911c42217d9fe3f7a555983ee2bc10b7aba8fc64a527518df33ebe961512f
3
+ metadata.gz: 3dfbb6cf145e72f2456ab1311cec51707c6b3feff92603a5cf6969f6eb757093
4
+ data.tar.gz: df119d97553f25f06def909d4478d617c64e35b500a43efe8a3d020fb51810d5
5
5
  SHA512:
6
- metadata.gz: 21ae0f5d42587cdcdeefcebe2ec55d34e58d5f8bf99f5c4ec8113959ab04ec14eaee3620e4a7364bca9797c8de1973e4f09ffdf2939098a7add59cb74a50ce97
7
- data.tar.gz: 1bff42af7d543998892abcfe49d590cea732aca813d179e9df1783f2e91c14abaf655375d2880dd64b52aa49877da2099bff0ecad963aa7639f20201c5e78759
6
+ metadata.gz: 23197b3ea27a3f2faa857a04742a054a09e6b0a03e731ff726ab14ed06eca91824d39134280eeb15e8aa39f1e2c67b9f5a7deee1a2a839a452772f6a0df63985
7
+ data.tar.gz: 27be3163a64302a2e144306db53ac38915f21c0a19e0a39655a7d7fa08ea6704b6655d238105aa3019cd38ea6b850caff06d434db508da0a578508c760c4f36d
@@ -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
+ double_quote(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 #{double_quote(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 = double_quote(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 = double_quote(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 #{double_quote(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 = double_quote(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 #{double_quote(table_name)}
114
124
  WHERE #{pkey_clause * ' AND '}
115
125
  SQL
116
126
 
@@ -124,6 +134,10 @@ 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 double_quote(text)
139
+ "\"#{text}\""
140
+ end
127
141
  end
128
142
  end
129
143
  end
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.3
4
+ version: 0.1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-12 00:00:00.000000000 Z
11
+ date: 2018-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-consumer-postgres