code: func tableForPointer(m *DbMap, i interface{}, checkPk bool) (*TableMap, reflect.Value, error) {
  	v := reflect.ValueOf(i)
  	if v.Kind() != reflect.Ptr {
  		return nil, v, fmt.Errorf("value %v not a pointer", v)
  	}
  	v = v.Elem()
  	t := m.TableForType(v.Type())
  	if t == nil {
  		return nil, v, fmt.Errorf("could not find table for %v", v.Type())
  	}
  	if checkPk && len(t.Keys) < 1 {
  		return t, v, &NoKeysErr{t}
  	}
  	return t, v, nil
  }
docs: // Return a table for a pointer;  error if i is not a pointer or if the
  // table is not found