anchor.diff:  is_time_partitioned_alias(TableAlias) when is_atom(TableAlias) ->
       is_time_partitioned_alias(atom_to_list(TableAlias));
   is_time_partitioned_alias(TableAlias) when is_list(TableAlias) ->
  -    case is_node_sharded_alias(TableAlias) of
  -        false -> 
  -            false;
  -        true ->
  -            case string:tokens(lists:reverse(TableAlias), "_") of
  -                [[$@|RN]|_] -> 
  -                    try 
  -                        _ = list_to_integer(lists:reverse(RN)),
  -                        true    % timestamp partitioned and node sharded alias
  -                    catch
  -                        _:_ -> false
  -                    end;
  -                 _ ->      
  -                    false       % node sharded alias only
  -            end
  +    TableAliasRev = lists:reverse(TableAlias),
  +    case TableAliasRev of
  +        [$_,$@|_] ->    is_reverse_timed_name(tl(TableAliasRev));
  +        [$@|_] ->       is_reverse_timed_name(TableAliasRev);
  +         _ ->           false
  +    end.
  +
  +is_reverse_timed_name(TableAliasRev) ->
  +    case string:tokens(TableAliasRev, "_") of
  +        [[$@|RN]|_] -> 
  +            try 
  +                _ = list_to_integer(lists:reverse(RN)),
  +                true    % timestamp partitioned
  +            catch
  +                _:_ -> false
  +            end;
  +         _ ->      
  +            false       % unsharded or node sharded alias only
       end.
   
   is_local_node_sharded_table(Name) when is_atom(Name) -> 
  
positive.code:                 _ ->    
                      imem_if:create_table(TableName, column_names(ColInfos), if_opts(Opts0) ++ [{user_properties, [DDTableRow]}])                                      % entry exists or ddTable does not exists yet
              end,
              
              imem_cache:clear({?MODULE, trigger, MySchema, TableName});
          TableAlias ->
              %% not a sharded table
  
negative.code:         false ->    physical_table_names(atom_to_list(TableAlias))
      end;
  physical_table_names(TableAlias) when is_list(TableAlias) ->
      TableAliasRev = lists:reverse(TableAlias),
      case TableAliasRev of
          [$@|_] ->       
              case string:tokens(TableAliasRev, "_") of
                  [[$@|RN]|_] ->      % timestamp sharded node sharded partitions 
                      try 
                          _ = list_to_integer(lists:reverse(RN)),
                          {BaseName,_} = lists:split(length(TableAlias)-length(RN)-1, TableAlias),
                          Pred = fun(TN) -> lists:member($@, atom_to_list(TN)) end,
                          lists:filter(Pred,tables_starting_with(BaseName))
                      catch
                          _:_ -> tables_starting_with(TableAlias)
                      end;
                   _ ->               % node sharded table only   
                      tables_starting_with(TableAlias)
              end;
          [$_,$@|_] ->    
              case string:tokens(tl(TableAliasRev), "_") of
                  [[$@|RN]|_] ->      % timestamp sharded cluster table 
                      try 
                          _ = list_to_integer(lists:reverse(RN)),
                          {BaseName,_} = lists:split(length(TableAlias)-length(RN)-2, TableAlias),
                          Pred = fun(TN) -> lists:member($@, atom_to_list(TN)) end,
                          lists:filter(Pred,tables_starting_with(BaseName))
                      catch
  