app/server.rb in sqlui-0.1.40 vs app/server.rb in sqlui-0.1.41
- old
+ new
@@ -10,10 +10,15 @@
require_relative 'sqlui'
# SQLUI Sinatra server.
class Server < Sinatra::Base
def self.init_and_run(config, resources_dir)
+ Mysql2::Client.default_query_options[:as] = :array
+ Mysql2::Client.default_query_options[:cast_booleans] = true
+ Mysql2::Client.default_query_options[:database_timezone] = :utc
+ Mysql2::Client.default_query_options[:cache_rows] = false
+
set :logging, true
set :bind, '0.0.0.0'
set :port, config.port
set :environment, config.environment
set :raise_errors, false
@@ -56,10 +61,11 @@
{
server: "#{config.name} - #{database.display_name}",
list_url_path: config.list_url_path,
schemas: DatabaseMetadata.lookup(client, database),
table_aliases: database.table_aliases,
+ joins: database.joins,
saved: Dir.glob("#{database.saved_path}/*.sql").to_h do |path|
contents = File.read(path)
comment_lines = contents.split("\n").take_while do |l|
l.start_with?('--')
end
@@ -162,11 +168,11 @@
result = results[-1]
# NOTE: the call to result.field_types must go before any other interaction with the result. Otherwise you will
# get a seg fault. Seems to be a bug in Mysql2.
if result
column_types = MysqlTypes.map_to_google_charts_types(result.field_types)
- rows = result.map(&:values)
- columns = result.first&.keys || []
+ rows = result.to_a
+ columns = result.fields
else
column_types = []
rows = []
columns = []
end