marty 2.6.6 → 2.6.7

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
2
  SHA256:
3
- metadata.gz: 1f77ca834ce7eeb1587f8d62efa516ce7262e36d1e89db6a378605463b402ba7
4
- data.tar.gz: 78bf895b5cf2c433107cde56de4c95e10ff4201344464a3cfab85a0f8fc5538c
3
+ metadata.gz: 4617855bbed5e317b7983641b7f6565ec24a85a0690b8494cc17d1ac5b1372ed
4
+ data.tar.gz: 3155a823f0c5d0add5c361256c75f8c7c3851a9cf4fc257c9490bf76cedd9a01
5
5
  SHA512:
6
- metadata.gz: a09feaaeed242cc80a6b53c49d3a520f8e0fb0891b0afdac1b3f4787c7280c67e9d821361edcc5b3a68127caebb32f7b44e45f05ab424d0a8fb8ba12543b0d36
7
- data.tar.gz: 93c296049983ba212d6655a376541f0123d750ed4a3c3e45983c5488bc038732818e154a931c075a795c356f3af4d80ca578cdb153ffa59a995fd29158c5e3bf
6
+ metadata.gz: d95e2defaa45dcc3a3fce8fd087654ea205591b7eaca786bfd9536f523f0de392e2917c410aa404accb038f17a1f8663dae06cf3d9ef4175f4eca914b3a33432
7
+ data.tar.gz: a4a8300480ea3cc8bd69c2cad1a2f162c9edc0cbfdd812f2acd98c686507d93d6083a682211f6085371c464c360d521dfe7adcb5c03fe32ab845dd83d8bf7ba2
@@ -165,8 +165,8 @@ class Marty::DataGrid < Marty::Base
165
165
 
166
166
  PLV_DT_FMT = '%Y-%m-%d %H:%M:%S.%N6'
167
167
 
168
- def self.plv_lookup_grid_distinct(h_passed, dgh, ret_grid_data = false,
169
- distinct = true)
168
+ def self.plpg_lookup_grid_distinct(h_passed, dgh, ret_grid_data = false,
169
+ distinct = true)
170
170
  cd = dgh['created_dt']
171
171
  @@dtcache ||= {}
172
172
  @@dtcache[cd] ||= cd.strftime(PLV_DT_FMT)
@@ -199,7 +199,7 @@ class Marty::DataGrid < Marty::Base
199
199
  parms, sqls, ress, dg = res['error_extra'].values_at(
200
200
  'params', 'sql', 'results', 'dg')
201
201
 
202
- raise "DG #{name}: Error in PLV8 call: #{msg}\n"\
202
+ raise "DG #{name}: Error in PLPG call: #{msg}\n"\
203
203
  "params: #{parms}\n"\
204
204
  "sqls: #{sqls}\n"\
205
205
  "results: #{ress}\n"\
@@ -251,7 +251,7 @@ class Marty::DataGrid < Marty::Base
251
251
  # "name" => <grid name>
252
252
  # "data" => <grid's data array>
253
253
  # "metadata" => <grid's metadata (array of hashes)>
254
- vhash = plv_lookup_grid_distinct(h, dgh, return_grid_data, distinct)
254
+ vhash = plpg_lookup_grid_distinct(h, dgh, return_grid_data, distinct)
255
255
 
256
256
  return vhash if vhash['result'].nil? || !dgh['data_type']
257
257
 
@@ -0,0 +1,13 @@
1
+ class RemovePlv8Extension < ActiveRecord::Migration[5.1]
2
+ def up
3
+ connection.execute <<-SQL
4
+ DROP EXTENSION IF EXISTS plv8;
5
+ SQL
6
+ end
7
+
8
+ def down
9
+ connection.execute <<-SQL
10
+ CREATE EXTENSION IF NOT EXISTS plv8;
11
+ SQL
12
+ end
13
+ end
data/lib/marty/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = '2.6.6'
2
+ VERSION = '2.6.7'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marty
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.6
4
+ version: 2.6.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2019-05-03 00:00:00.000000000 Z
17
+ date: 2019-05-13 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: pg
@@ -343,9 +343,6 @@ files:
343
343
  - config/database.yml.travis
344
344
  - config/locales/en.yml
345
345
  - config/routes.rb
346
- - db/js/errinfo_v1.js
347
- - db/js/lookup_grid_distinct_v1.js
348
- - db/js/query_grid_dir_v1.js
349
346
  - db/migrate/001_create_marty_scripts.rb
350
347
  - db/migrate/003_create_marty_users.rb
351
348
  - db/migrate/004_create_marty_roles.rb
@@ -381,13 +378,13 @@ files:
381
378
  - db/migrate/302_add_api_configs_validate_result.rb
382
379
  - db/migrate/303_create_marty_logs.rb
383
380
  - db/migrate/304_drop_marty_api_logs.rb
384
- - db/migrate/400_create_dg_plv8_v1_fns.rb
385
381
  - db/migrate/410_jsonb_promise_result.rb
386
382
  - db/migrate/411_create_vw_promises.rb
387
383
  - db/migrate/500_add_api_class_to_marty_api_config.rb
388
384
  - db/migrate/501_create_dg_plpgsql_v1_fns.rb
389
385
  - db/migrate/502_add_promise_type_enum.rb
390
386
  - db/migrate/503_add_promise_type_to_promises.rb
387
+ - db/migrate/504_remove_plv8_extension.rb
391
388
  - db/seeds.rb
392
389
  - db/sql/lookup_grid_distinct_v1.sql
393
390
  - db/sql/query_grid_dir_v1.sql
data/db/js/errinfo_v1.js DELETED
@@ -1,16 +0,0 @@
1
- // PARAM: err JSONB
2
- // RETURN: JSONB
3
- var locre = /at.*[ (]([a-z][a-z0-9_]*[:][0-9]+)[:][0-9]+/i;
4
- var stack = err.stack;
5
- var res = '';
6
- if (stack) {
7
- var lines = stack.split('\\n');
8
- for (i=0, len=lines.length; i<len; ++i) {
9
- m = locre.exec(lines[i]);
10
- if (m) {
11
- res += m[1];
12
- }
13
- }
14
- return { "error": res + " " + err.message };
15
- }
16
- else return { "error": err };
@@ -1,64 +0,0 @@
1
- // PARAM: h JSONB
2
- // PARAM: row_info JSONB
3
- // PARAM: return_grid_data boolean default false
4
- // PARAM: dis boolean default false
5
- // RETURN: JSONB
6
- var sqls = []
7
- var ress = []
8
- try {
9
- var query_dir = plv8.find_function('query_grid_dir');
10
- var errinfo = plv8.find_function('errinfo');
11
- var ih = {};
12
- var sql = 'SELECT metadata, lenient, name, group_id, data FROM marty_data_grids WHERE id = $1'
13
- var dg = plv8.execute(sql, [row_info['id']])[0];
14
- var res;
15
- ['h','v'].forEach(function(dir) {
16
- var infos = dg["metadata"].filter(function(md) { return md["dir"] == dir; });
17
- if (infos.length == 0)
18
- {
19
- ih[dir] = [0]
20
- return
21
- }
22
- a = query_dir(h, infos, row_info);
23
- sqls.push(a);
24
- ih[dir] = []
25
- if (a) {
26
- res = plv8.execute(a[0], a[1]);
27
- ress.push(res);
28
- for (var j = 0; j < res.length; j++)
29
- {
30
- ih[dir].push(res[j]["index"])
31
- }
32
- }
33
- if (dis && ih[dir].length > 1) {
34
- throw Error("matches > 1");
35
- }
36
- });
37
- if ((ih["v"].length == 0 || ih["h"].length == 0) &&
38
- !dg['lenient'] && !return_grid_data) {
39
- throw Error("Data Grid lookup failed");
40
- }
41
-
42
- vi = ih["v"].length > 0 ? Math.min.apply(9999, ih["v"]) : null
43
- hi = ih["h"].length > 0 ? Math.min.apply(9999, ih["h"]) : null
44
-
45
- var result = null;
46
- if (vi!==null && hi!==null) {
47
- result = dg["data"][vi][hi];
48
- }
49
- return { "result" : result,
50
- "name" : dg["name"],
51
- "data" : return_grid_data ? dg["data"] : null,
52
- "metadata" : return_grid_data ? dg["metadata"] : null
53
- };
54
- } catch (err) {
55
- ei = errinfo(err);
56
-
57
- ei["error_extra"] = {}
58
- ei["error_extra"]["sql"] = sqls;
59
- ei["error_extra"]["results"] = ress;
60
- ei["error_extra"]["params"] = h;
61
- ei["error_extra"]["dg"] = dg;
62
-
63
- return ei;
64
- }
@@ -1,61 +0,0 @@
1
- // PARAM: h JSONB
2
- // PARAM: infos JSONB[]
3
- // PARAM: row_info JSONB
4
- // RETURN: JSONB
5
- var getfilter = function(type, idx) {
6
- switch(type) {
7
- case "boolean":
8
- return "key = $" + idx + " OR ";
9
- case "numrange":
10
- return "key @> $" + idx + "::numeric OR ";
11
- case "int4range":
12
- return "key @> $" + idx + "::integer OR ";
13
- case "integer":
14
- return "key @> ARRAY[$" + idx + "::integer] OR ";
15
- default:
16
- return "key @> ARRAY[$" + idx + "::text] OR ";
17
- }
18
- }
19
-
20
- var temp = [];
21
- var args = [];
22
-
23
- var sql;
24
- for (var sqlidx=1, i = 0; i < infos.length; i++) {
25
- var type = infos[i]["type"];
26
- var attr = infos[i]["attr"];
27
- var v = h[attr];
28
- if (!h.hasOwnProperty(attr)) {
29
- //throw Error("missing attr " + attr)
30
- continue;
31
- }
32
- switch (type) {
33
- case 'boolean':
34
- case "numrange":
35
- case "int4range":
36
- case "integer":
37
- tab = "marty_grid_index_" + type + "s";
38
- break;
39
- default:
40
- tab = 'marty_grid_index_strings';
41
- };
42
-
43
- sql = "SELECT DISTINCT index from " + tab +
44
- " WHERE data_grid_id = $" + sqlidx++ +
45
- " AND created_dt = $" + sqlidx++ +
46
- " AND attr = $" + sqlidx++ + ' ';
47
-
48
- args.push(row_info["group_id"]);
49
- args.push(row_info["created_dt"]);
50
- args.push(attr);
51
-
52
- if (v!==null) {
53
- filt = getfilter(type, sqlidx++);
54
- args.push(v);
55
- } else filt = ''
56
- sql += ' AND (' + filt + "key is NULL) ";
57
-
58
- temp.push(sql);
59
- }
60
- if (temp ==[]) return null;
61
- return [temp.join(" INTERSECT "), args];
@@ -1,12 +0,0 @@
1
- class CreateDgPlv8V1Fns < ActiveRecord::Migration[4.2]
2
- def change
3
- connection.execute <<-SQL
4
- -- required to utilize plv8 extension
5
- CREATE EXTENSION IF NOT EXISTS plv8;
6
- SQL
7
- marty_path = Gem.loaded_specs["marty"].full_gem_path
8
- Dir.glob("#{marty_path}/db/js/*_v1.js") do |f|
9
- connection.execute(Marty::Migrations.get_plv8_migration(f))
10
- end
11
- end
12
- end