Name

vector — make a vector

Synopsis

vector ( elem1 any ,
elem2 any ,
... ,
elem-n any );

Description

vector returns a new vector (one-dimensional array) constructed from the given arguments.

Parameters

elem1..n

Values of any types (not necessarily of one and the same type).

Return Values

A vector (heterogeneous array) of as many elements as there were arguments containing copies of the arguments.

Examples

Example24.439.Inspecting a vector with dbg_obj_print

SQL clients can not process vectors directly so the simplest way to look at the content of a vector is to print it no server's console.

dbg_obj_print (vector (1, 2.34, 'A string', atof('3.14')))


Example24.440.Pretty-print function for vectors

The following function gets a heterogeneous vector of strings, nubers and other vectors and returns a string that is an SQL expression that will return a copy of a given vector.

create procedure DUMP_VEC_IMPL (inout _vec any, inout _ses any)
{
  declare _len, _ctr integer;
  if (193 <> __tag (_vec))
    {
      if (isstring (_vec))
        http (WS.WS.STR_SQL_APOS (_vec), _ses);
      else
        http (cast (_vec as varchar), _ses);
      return;
    }
  _len := length (_vec);
  _ctr := 0;
  http ('\nvector (', _ses);
  while (_ctr < _len)
    {
      if (_ctr > 0)
        http (', ', _ses);
      DUMP_VEC_IMPL (_vec[_ctr], _ses);
      _ctr := _ctr+1;
    }
  http (')', _ses);
}

create function DUMP_VEC (in _vec any)
{
  declare _ses any;
  _ses := string_output();
  DUMP_VEC_IMPL (_vec, _ses);
  return string_output_string (_ses);
}

select DUMP_VEC (vector ('abc', 1, vector (3.1415), vector ()));
callret
VARCHAR
_______________________________________________________________________________

vector ('abc', 1,
vector (3.1415),
vector ())

1 Rows.