class Mkxms::Mssql::ClrFunction
Constants
- SQL_OBJECT_TYPE
Attributes
clr_impl[RW]
execute_as[RW]
name[RW]
result_table[RW]
returns[RW]
schema[RW]
Public Class Methods
new(attrs)
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 38 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_function_handler.rb, line 82 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_function_handler.rb, line 51 def procedure_def_sql [[].tap do |lines| lines << "CREATE FUNCTION [{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 << ")" case when returns lines << "RETURNS #{returns.type_spec}" when result_table lines << "RETURNS TABLE (" lines << result_table.columns.map do |col| " #{col.name} #{col.type_spec}" end.join(",\n") lines << ")" else raise RuntimeError.new("Function return not defined") end case execute_as when "OWNER" lines << "WITH EXECUTE AS OWNER" when String lines << "WITH EXECUTE AS '#{Utils.unquoted_name execute_as}'" end lines << "AS EXTERNAL NAME #{clr_impl.full_specifier};" end.join("\n")] end
result_column_properties_sql()
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 88 def result_column_properties_sql return [] unless result_table result_table.columns.map do |col| subitem_extended_properties_sql(col) end end
to_sql()
click to toggle source
# File lib/mkxms/mssql/clr_function_handler.rb, line 47 def to_sql (procedure_def_sql + extended_properties_sql + param_properties_sql + result_column_properties_sql).join("\n") end