Skip to content

make HashTableLookupExpr serializable #24277

Description

@jayshrivastava

Is your feature request related to a problem or challenge?

See

/// Test that HashTableLookupExpr serializes to lit(true)
///
/// HashTableLookupExpr contains a runtime hash table that cannot be serialized.
/// The serialization code replaces it with lit(true) which is safe because
/// it's a performance optimization filter, not a correctness requirement.
#[test]
fn roundtrip_hash_table_lookup_expr_to_lit() -> Result<()> {

If you take an ExecutionPlan and serialize it, all occurrences of HashTableLookupExpr are replaced with lit(true). This makes it difficult to send dynamic filters across the network.

Describe the solution you'd like

Ideally, there's some way to serialize and deserialize these expressions, potentially by serializing the seed

  message HashTableLookupExpr {
    repeated PhysicalExprNode on_columns = 1;
    uint64 seed = 2;
    repeated fixed64 build_hashes = 3;
  }

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions