#1249 integer type based on the type of adapter

This commit is contained in:
karel.picman@lbcfree.net 2021-05-11 10:42:59 +02:00
parent 1ecaf67e74
commit e88f937f81
2 changed files with 33 additions and 26 deletions

View File

@ -207,7 +207,6 @@ module DmsfUploadHelper
# 1 -> 1, -65 -> A
def self.gui_version(version)
version = version.to_i # catch the case where version is a BigDecimal
return version if version >= 0
(-version).chr
end

View File

@ -189,6 +189,14 @@ class DmsfQuery < Query
end
private
def get_integer_type
if Redmine::Database.mysql?
ActiveRecord::Base.connection.type_to_sql(:signed)
else
ActiveRecord::Base.connection.type_to_sql(:integer)
end
end
def dmsf_projects_scope
return nil unless sub_projects
@ -199,20 +207,20 @@ class DmsfQuery < Query
scope = Project.select(%{
projects.id AS id,
projects.id AS project_id,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS revision_id,
CAST(NULL AS #{get_integer_type}) AS revision_id,
projects.name AS title,
projects.identifier AS filename,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS size,
CAST(NULL AS #{get_integer_type}) AS size,
projects.updated_on AS updated,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS major_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS minor_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow_id,
CAST(NULL AS #{get_integer_type}) AS major_version,
CAST(NULL AS #{get_integer_type}) AS minor_version,
CAST(NULL AS #{get_integer_type}) AS workflow,
CAST(NULL AS #{get_integer_type}) AS workflow_id,
'' AS firstname,
'' AS lastname,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS author,
CAST(NULL AS #{get_integer_type}) AS author,
'project' AS type,
CAST(0 AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS deleted,
CAST(0 AS #{get_integer_type}) AS deleted,
0 AS sort #{cf_columns}}).visible
if dmsf_folder_id || deleted
scope.none
@ -230,15 +238,15 @@ class DmsfQuery < Query
scope = DmsfFolder.select(%{
dmsf_folders.id AS id,
dmsf_folders.project_id AS project_id,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS revision_id,
CAST(NULL AS #{get_integer_type}) AS revision_id,
dmsf_folders.title AS title,
NULL AS filename,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS size,
CAST(NULL AS #{get_integer_type}) AS size,
dmsf_folders.updated_at AS updated,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS major_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS minor_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow_id,
CAST(NULL AS #{get_integer_type}) AS major_version,
CAST(NULL AS #{get_integer_type}) AS minor_version,
CAST(NULL AS #{get_integer_type}) AS workflow,
CAST(NULL AS #{get_integer_type}) AS workflow_id,
users.firstname AS firstname,
users.lastname AS lastname,
users.id AS author,
@ -275,12 +283,12 @@ class DmsfQuery < Query
dmsf_links.target_id AS revision_id,
dmsf_links.name AS title,
dmsf_folders.title AS filename,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS size,
CAST(NULL AS #{get_integer_type}) AS size,
COALESCE(dmsf_folders.updated_at, dmsf_links.updated_at) AS updated,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS major_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS minor_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow_id,
CAST(NULL AS #{get_integer_type}) AS major_version,
CAST(NULL AS #{get_integer_type}) AS minor_version,
CAST(NULL AS #{get_integer_type}) AS workflow,
CAST(NULL AS #{get_integer_type}) AS workflow_id,
users.firstname AS firstname,
users.lastname AS lastname,
users.id AS author,
@ -387,15 +395,15 @@ class DmsfQuery < Query
scope = DmsfLink.select(%{
dmsf_links.id AS id,
dmsf_links.project_id AS project_id,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS revision_id,
CAST(NULL AS #{get_integer_type}) AS revision_id,
dmsf_links.name AS title,
dmsf_links.external_url AS filename,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS size,
CAST(NULL AS #{get_integer_type}) AS size,
dmsf_links.updated_at AS updated,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS major_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS minor_version,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow,
CAST(NULL AS #{ActiveRecord::Base.connection.type_to_sql(:integer)}) AS workflow_id,
CAST(NULL AS #{get_integer_type}) AS major_version,
CAST(NULL AS #{get_integer_type}) AS minor_version,
CAST(NULL AS #{get_integer_type}) AS workflow,
CAST(NULL AS #{get_integer_type}) AS workflow_id,
users.firstname AS firstname,
users.lastname AS lastname,
users.id AS author,