@main[] $table[^table::create{group name first a first b second c third d third e }] ^do[unique key, no value columns, no options]{ ^table.hash[name] } ^do[non-unique key, no value columns, no options]{ ^table.hash[group] }[if key not unique ^$.distinct(1) must be specified] ^do[non-unique key, no value columns, options: ^$.distinct[tables] (backward)]{ ^table.hash[group][ $.distinct[tables] ] } ^do[non-unique key, no value columns, options: ^$.distinct[tables], ^$.type[hash] ]{ ^table.hash[group][ $.distinct[tables] $.type[hash] ] }[^$.distinct[tables] and ^$.type[...] can't be specified together] ^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[table]]{ ^table.hash[group][ $.distinct(1) $.type[table] ] } ^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[table]]{ ^table.hash[group][ $.type[table] ] }[non unique key without distinct option] ^do[unique key, no value columns, options: ^$.type[table]]{ ^table.hash[name][ $.type[table] ] } ^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[hash]]{ ^table.hash[group][ $.distinct(1) $.type[hash] ] } ^do[non-unique key, no value columns, options: ^$.distinct(1) (as above because ^$.type[hash] == default)]{ ^table.hash[group][ $.distinct(1) ] } ^do[non-unique key, no value columns, options: ^$.distinct(1) ^$.type[string]]{ ^table.hash[group][ $.distinct(1) $.type[string] ] }[with ^$.type[string] only one field must be specified] ^do[non-unique key, one value column (name), options: ^$.distinct(1) ^$.type[string]]{ ^table.hash[group;name][ $.distinct(1) $.type[string] ] } @do[sTitle;jCode;sExceptionComment][h]
^print[$v]}}}