Provided by: aolserver4-dev_4.5.1-18.1_amd64 bug

NAME

       ns_set - commands

SYNOPSIS

       Manipulate sets of key-value pairs.

SYNTAX

       ns_set copy ?-persist? setId

       ns_set cput setId key value

       ns_set create ?-persist? name

       ns_set delete setId fieldNumber

       ns_set delkey setId key

       ns_set find setId key

       ns_set free setId

       ns_set get setId key

       ns_set icput setId key value

       ns_set idelkey setId key

       ns_set ifind setId key

       ns_set iget setId key

       ns_set isnull setId fieldNumber

       ns_set iunique setId key

       ns_set key setId fieldNumber

       ns_set merge high low

       ns_set move to from

       ns_set name setId

       ns_set new ?-persist? name

       ns_set print setId

       ns_set put setId key value

       ns_set size setId

       ns_set split ?-persist? setId ?splitChar?

       ns_set truncate setId size

       ns_set unique setId key

       ns_set update setId key value

       ns_set value setId fieldNumber

_________________________________________________________________

DESCRIPTION

       ns_set copy
              Returns  a  new set that has the same name and key value pairs as the passed-in set
              (setId). If -persist is specified, the new set will persist even after the  current
              transaction  ends,  and  you can free it later with ns_set free. If -persist is not
              specified, the new set is automatically freed when the transaction ends.

       ns_set cput
              appends a new field to the set with key key and value value if the field  does  not
              already exist in the set. The field number of the new field is returned.

       ns_set create
              (which is the same as ns_set new) allocates memory for a new set and returns the ID
              for the new set. If -persist is specified, the new set will persist even after  the
              current  transaction  ends, and you can free it later with ns_set free. If -persist
              is not specified, the new set is automatically freed when the transaction ends.

       ns_set delete
              deletes the field in the set at field number fieldNumber.

       ns_set delkey
              removes the first field in the set whose key is  key.  Note  that  there  could  be
              multiple  fields  in  the  set  with  this key; this command only removes the first
              occurrence.

       ns_set find
              returns the index of the first field in the specified set whose  key  name  matches
              the  specified key. Zero (0) is the index of the first field. If no matching fields
              are found, ns_set find returns -1.

       ns_set free
              frees the specified set. Sets must be explicitly freed  with  ns_set  free  if  the
              -persist  option  was used when creating the set. Otherwise, sets are automatically
              freed when the transaction ends.

       ns_set get
              returns the first value associated with the passed-in key. If the key  is  invalid,
              an empty string is returned.

       ns_set icput
              is the case-insensitive counterpart of ns_set cput.

       ns_set idelkey
              is the case-insensitive counterpart of ns_set delkey.

       ns_set ifind
              is the case-insensitive counterpart of ns_set find.

       ns_set iget
              is the case-insensitive counterpart of ns_set get.

       ns_set isnull
              returns 1 if the value of the field specified by fieldNumber is null and 0 if it is
              not. Note that an empty string is not the same as a null. ns_set isnull will return
              0 for an empty string.

       ns_set iunique
              returns  1  if the specified key is unique in the specified set and 0 if it is not.
              The test for uniqueness is performed case-insensitively. ns_set unique is the case-
              sensitive version of this function.

              For  example,  a client could send multiple "Accept:" headers which would end up in
              the header set for the connection. ns_set iunique would return 0 for the  "Accept:"
              key, because there are multiple fields with the key "Accept:".

       ns_set key
              extracts  the  key  of  the set at field number fieldNumber. This command is useful
              when looping through all the key-value pairs in the set.

       ns_set merge
              merges two sets. Any fields in the low set are appended to the high set if a  field
              with the same key name does not already exist in the high set.

       ns_set move
              moves all fields from the from set to the end of the to set, leaving the from set a
              valid, empty set.

       ns_set name
              returns the name of the set.

       ns_set new
              (which is the same as ns_set create) allocates memory for a new set and returns the
              ID  for  the new set. If -persist is specified, the new set will persist even after
              the current transaction ends, and you can  free  it  later  with  ns_set  free.  If
              -persist  is not specified, the new set is automatically freed when the transaction
              ends.

       ns_set print
              prints the specified set to stderr.

       ns_set put
              appends a new field to the set with key key and value value. Note that the field is
              appended  so  if  a  previous field has the same key as the new field, the previous
              field is returned by ns_set get command. The field  number  of  the  new  field  is
              returned.

       ns_set size
              returns the number of key-value pairs in the set.

       ns_set split
              splits  one  set  into  multiple sets based on the splitChar as described below and
              returns a Tcl list of the newly-allocated sets. It assumes that  the  keys  in  the
              specified  set (setId) contain a specific character (splitChar) that can be used to
              separate the name of a new set and the key in the new set. The default splitChar is
              a period (.).

              For  example,  if  two fields in the original set have "dog.food" and "cat.food" as
              their key names and "Yummy dog food!" and "Yummy cat food!" as their values, ns_set
              split  would  return  two  new sets named "dog" and "cat". The dog set would have a
              single field whose key is "food" and whose value is "Yummy dog food!". The cat  set
              would have a single field whose key is "food" and whose value is "Yummy cat food!".

       ns_set truncate
              reduces the set to the first size key-value pairs and frees the memory for the rest
              of the key-value pairs that may have been in the set.

       ns_set unique
              returns 1 if the specified key is unique in the specified set and 0 if it  is  not.
              The  test for uniqueness is performed case-sensitively. ns_set iunique is the case-
              insensitive version of this function.

       ns_set update
              updates the first field in the specified set whose key  is  key  and  replaces  its
              value  with  value. ns_set update is equivalent to ns_set delkey followed by ns_set
              put.

       ns_set value
              extracts the value of the set at field number fieldNumber. This command  is  useful
              when looping through all the key-value pairs in the set.

NOTES

       The  fields  in  the set are ordered by number. The field numbers range from 0 to one less
       than the total number of fields. For example, if you have a set with 5 fields,  you  would
       use "ns_set key $setid 4" to extract the key of the last field in the set.

KEYWORDS

       key value