sqlui 0.1.9 → 0.1.10

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sqlui.rb +13 -2
  3. data/resources/sqlui.js +32 -13
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 419351d0941030d9b1ab17842fd289a7550a6b78a45d59213e2143b29442e363
4
- data.tar.gz: 7c66542a8e6503c7a38f05f5fc02fc17e022c08cf0303f411053968d4138e683
3
+ metadata.gz: 43388f7bb405a390a4ae0e49650475dcc64c7a649df8d7333a0a7f278974817e
4
+ data.tar.gz: 43104948aec2eba3df960657cfc242092ef2587ce5bca6223102351462c56c17
5
5
  SHA512:
6
- metadata.gz: 1fd9196bda8b7ba45082d03a8a0bc2606875cc0ca0b38371b4c3e924b612eb4d6d148452bfde1ba6a06ca75c4132f48312defe447dd64aaa4e94a19bdf0189fb
7
- data.tar.gz: de9b1c4ceb3caaf8a364a1964214002cd73161911aedd194fda78a72d24ea843e09982c86234e5265ee2dc55cabd396f6b209bf0a11689175e0da04b04fffeda
6
+ metadata.gz: d9752cbb037aaececfb4d1025bdbd3a4f1da1da35815321570ff64955589876c9f73c8a5605d7c4e8b43fc705b2d124b82d8249a35908acc1b191282f370f60e
7
+ data.tar.gz: 75897a760e3f24f21b2853ca6a368a5375f364731de82bdc65e17f87af67385b03c1fa6970d80b861f1f2f5b2efd0279d430522faf743ac86433a23dea3ba219
data/lib/sqlui.rb CHANGED
@@ -5,8 +5,9 @@ require 'set'
5
5
  class SQLUI
6
6
  MAX_ROWS = 1_000
7
7
 
8
- def initialize(client:, name:, saved_path:, max_rows: MAX_ROWS)
8
+ def initialize(client:, table_schema: nil, name:, saved_path:, max_rows: MAX_ROWS)
9
9
  @client = client
10
+ @table_schema = table_schema
10
11
  @name = name
11
12
  @saved_path = saved_path
12
13
  @max_rows = max_rows
@@ -77,6 +78,11 @@ class SQLUI
77
78
  end
78
79
 
79
80
  def load_metadata
81
+ if @table_schema
82
+ where_clause = "where table_schema = '#{@table_schema}'"
83
+ else
84
+ where_clause = "where table_schema not in('mysql', 'sys')"
85
+ end
80
86
  stats_result = @client.query(
81
87
  <<~SQL
82
88
  select
@@ -87,7 +93,7 @@ class SQLUI
87
93
  non_unique,
88
94
  column_name
89
95
  from information_schema.statistics
90
- where table_schema not in('mysql', 'sys')
96
+ #{where_clause}
91
97
  order by table_schema, table_name, if(index_name = "PRIMARY", 0, index_name), seq_in_index;
92
98
  SQL
93
99
  )
@@ -131,6 +137,11 @@ class SQLUI
131
137
  column[:column_name] = row['column_name']
132
138
  end
133
139
 
140
+ if @table_schema
141
+ where_clause = "where table_schema = '#{@table_schema}'"
142
+ else
143
+ where_clause = "where table_schema not in('information_schema' 'mysql', 'performance_schema', 'sys')"
144
+ end
134
145
  column_result = @client.query(
135
146
  <<~SQL
136
147
  select
data/resources/sqlui.js CHANGED
@@ -23951,19 +23951,18 @@ var sqlui = (function (exports) {
23951
23951
  }
23952
23952
 
23953
23953
  const schemasElement = document.getElementById("schemas");
23954
- const schemaNames = Object.keys(window.metadata["schemas"]);
23955
- schemaNames.forEach(function(schemaName) {
23956
- const optionElement = document.createElement("option");
23957
- optionElement.value = schemaName;
23958
- optionElement.innerText = schemaName;
23959
- schemasElement.appendChild(optionElement);
23960
- });
23961
23954
  const tablesElement = document.getElementById("tables");
23962
- schemasElement.addEventListener("change", function() {
23955
+ const columnsElement = document.getElementById("columns");
23956
+ const indexesElement = document.getElementById("indexes");
23957
+
23958
+ const schemaNames = Object.keys(window.metadata["schemas"]);
23959
+ if (schemaNames.length == 1) {
23960
+ schemasElement.style.display = 'none';
23961
+ // TODO: duplicate code
23963
23962
  while(tablesElement.firstChild) {
23964
23963
  tablesElement.removeChild(tablesElement.firstChild);
23965
23964
  }
23966
- const schemaName = schemasElement.value;
23965
+ const schemaName = schemaNames[0];
23967
23966
  const schema = window.metadata["schemas"][schemaName];
23968
23967
  const tableNames = Object.keys(schema["tables"]);
23969
23968
  tableNames.forEach(function(tableName) {
@@ -23972,9 +23971,29 @@ var sqlui = (function (exports) {
23972
23971
  optionElement.innerText = tableName;
23973
23972
  tablesElement.appendChild(optionElement);
23974
23973
  });
23975
- });
23976
- const columnsElement = document.getElementById("columns");
23977
- const indexesElement = document.getElementById("indexes");
23974
+ } else {
23975
+ schemasElement.style.display = 'flex';
23976
+ schemaNames.forEach(function(schemaName) {
23977
+ const optionElement = document.createElement("option");
23978
+ optionElement.value = schemaName;
23979
+ optionElement.innerText = schemaName;
23980
+ schemasElement.appendChild(optionElement);
23981
+ });
23982
+ schemasElement.addEventListener("change", function() {
23983
+ while(tablesElement.firstChild) {
23984
+ tablesElement.removeChild(tablesElement.firstChild);
23985
+ }
23986
+ const schemaName = schemasElement.value;
23987
+ const schema = window.metadata["schemas"][schemaName];
23988
+ const tableNames = Object.keys(schema["tables"]);
23989
+ tableNames.forEach(function(tableName) {
23990
+ const optionElement = document.createElement("option");
23991
+ optionElement.value = tableName;
23992
+ optionElement.innerText = tableName;
23993
+ tablesElement.appendChild(optionElement);
23994
+ });
23995
+ });
23996
+ }
23978
23997
  tablesElement.addEventListener("change", function() {
23979
23998
  while(columnsElement.firstChild) {
23980
23999
  columnsElement.removeChild(columnsElement.firstChild);
@@ -23982,7 +24001,7 @@ var sqlui = (function (exports) {
23982
24001
  while(indexesElement.firstChild) {
23983
24002
  indexesElement.removeChild(indexesElement.firstChild);
23984
24003
  }
23985
- const schemaName = schemasElement.value;
24004
+ const schemaName = schemaNames.length == 1 ? schemaNames[0] : schemasElement.value;
23986
24005
  const tableName = tablesElement.value;
23987
24006
  const table = window.metadata["schemas"][schemaName]["tables"][tableName];
23988
24007
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqlui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Dower
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-18 00:00:00.000000000 Z
11
+ date: 2022-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-core