def write_array(arg)
return write_null if arg.nil?
return write_zero_array(arg) if arg.size == 0
type,array = check_type_array(arg)
case type
when T_NULL
return write_zero_array
when T_DECIMAL
return write_decimal_array(array)
when T_INTEGER8
return write_int8_array(array)
when T_INTEGER4
return write_int4_array(array)
when T_INTEGER2
return write_int2_array(array)
when T_INTEGER1
return write_int1_array(array)
when T_DOUBLE
return write_double_array(array)
when T_STRING
return write_string_array(array)
when T_BOOLEAN_TRUE
return write_bool_array(array)
else
write_list(arg)
end
end