Module materialize.query_fitness.pick

Expand source code Browse git
# Copyright Materialize, Inc. and contributors. All rights reserved.
#
# Use of this software is governed by the Business Source License
# included in the LICENSE file at the root of this repository.
#
# As of the Change Date specified in that file, in accordance with
# the Business Source License, use of this software will be governed
# by the Apache License, Version 2.0.


import sys

import pg8000
import sqlparse

from materialize.query_fitness.all_parts_essential import AllPartsEssential

threshold = 0.5


def main() -> None:
    conn = pg8000.connect(database="pstoev", password="pstoev")
    fitness_func = AllPartsEssential(conn=conn)

    for query in sys.stdin:
        fitness = fitness_func.fitness(query)

        if fitness > 0.5:
            dump_slt(conn, query)


def dump_slt(conn: pg8000.Connection, query: str) -> None:
    query = sqlparse.format(query.rstrip(), reindent=True, keyword_case="upper")
    cursor = conn.cursor()
    cursor.execute("ROLLBACK")
    cursor.execute(query)
    row = cursor.fetchone()
    assert row is not None
    cols = len(row)
    colspec = "I" * cols
    print(
        f"""

query {colspec}
{query}
----
9999999999 values hashing to YY

query T multiline
EXPLAIN {query}
----
EOF"""
    )


if __name__ == "__main__":
    main()

Functions

def dump_slt(conn: pg8000.legacy.Connection, query: str) ‑> None
Expand source code Browse git
def dump_slt(conn: pg8000.Connection, query: str) -> None:
    query = sqlparse.format(query.rstrip(), reindent=True, keyword_case="upper")
    cursor = conn.cursor()
    cursor.execute("ROLLBACK")
    cursor.execute(query)
    row = cursor.fetchone()
    assert row is not None
    cols = len(row)
    colspec = "I" * cols
    print(
        f"""

query {colspec}
{query}
----
9999999999 values hashing to YY

query T multiline
EXPLAIN {query}
----
EOF"""
    )
def main() ‑> None
Expand source code Browse git
def main() -> None:
    conn = pg8000.connect(database="pstoev", password="pstoev")
    fitness_func = AllPartsEssential(conn=conn)

    for query in sys.stdin:
        fitness = fitness_func.fitness(query)

        if fitness > 0.5:
            dump_slt(conn, query)