Skip to content

Latest commit

 

History

History
125 lines (105 loc) · 2.11 KB

File metadata and controls

125 lines (105 loc) · 2.11 KB

description: promote_and_broadcast a set of nodes.

Module: expression_impl.promote_and_broadcast

View source on GitHub

promote_and_broadcast a set of nodes.

For example, suppose an expr represents:

+
|
+-session*   (stars indicate repeated)
     |
     +-event*
     |   |
     |   +-val*-int64
     |
     +-user_info? (question mark indicates optional)
           |
           +-age? int64

session: {
  event: {
    val: 1
  }
  event: {
    val: 4
    val: 5
  }
  user_info: {
    age: 25
  }
}

session: {
  event: {
    val: 7
  }
  event: {
    val: 8
    val: 9
  }
  user_info: {
    age: 20
  }
}
promote_and_broadcast.promote_and_broadcast(
    path.Path(["event"]),{"nage":path.Path(["user_info","age"])})

creates:

+
|
+-session*   (stars indicate repeated)
     |
     +-event*
     |   |
     |   +-val*-int64
     |   |
     |   +-nage*-int64
     |
     +-user_info? (question mark indicates optional)
           |
           +-age? int64

session: {
  event: {
    nage: 25
    val: 1
  }
  event: {
    nage: 25
    val: 4
    val: 5
  }
  user_info: {
    age: 25
  }
}

session: {
  event: {
    nage: 20
    val: 7
  }
  event: {
    nage: 20
    val: 8
    val: 9
  }
  user_info: {
    age: 20
  }
}

Functions

promote_and_broadcast(...): Promote and broadcast a set of paths to a particular location.

promote_and_broadcast_anonymous(...): Promotes then broadcasts the origin until its parent is new_parent.