class Mkxms::Mssql::ClrAggregate
Constants
- SQL_OBJECT_TYPE
Attributes
clr_impl[RW]
execute_as[RW]
name[RW]
returns[RW]
schema[RW]
Public Class Methods
new(attrs)
click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 15 def initialize(attrs) @schema = attrs['schema'] @name = attrs['name'] @execute_as = attrs['execute-as'] end
Public Instance Methods
param_properties_sql()
click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 46 def param_properties_sql params.map do |param| subitem_extended_properties_sql(param) end end
procedure_def_sql()
click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 28 def procedure_def_sql [[].tap do |lines| lines << "IF NOT EXISTS (" lines << " SELECT * FROM xmigra.ignored_clr_assemblies asm" lines << " WHERE asm.name = #{clr_impl.assembly.sql_quoted}" lines << ")" lines << "CREATE AGGREGATE [{filename}] (" lines << params.map do |param| " #{param.name} #{param.type_spec}".tap do |param_spec| param_spec << " = #{param.default_value}" if param.default_value end end.join(",\n") lines << ")" lines << "RETURNS #{returns.type_spec}" if returns lines << "EXTERNAL NAME #{clr_impl.full_specifier};" end.join("\n")] end
to_sql()
click to toggle source
# File lib/mkxms/mssql/clr_aggregate_handler.rb, line 24 def to_sql (procedure_def_sql + extended_properties_sql + param_properties_sql) end