Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,786 changes: 2,537 additions & 249 deletions misc/python/materialize/parallel_workload/action.py

Large diffs are not rendered by default.

74 changes: 17 additions & 57 deletions misc/python/materialize/parallel_workload/column.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,11 @@ def create(self) -> str:
return result


class WebhookColumn(Column):
class SourceColumn(Column):
"""Column of a source, taking its name from the upstream schema instead of
generating one. The per-source subclasses only exist to keep the column
lists of the different source kinds distinct in type annotations."""

def __init__(
self,
name: str,
Expand All @@ -105,69 +109,25 @@ def name(self, in_query: bool = False) -> str:
return identifier(self.raw_name) if in_query else self.raw_name


class KafkaColumn(Column):
def __init__(
self,
name: str,
data_type: type[DataType],
nullable: bool,
db_object: "DBObject",
):
self.raw_name = name
self.data_type = data_type
self.nullable = nullable
self.db_object = db_object
class WebhookColumn(SourceColumn):
pass

def name(self, in_query: bool = False) -> str:
return identifier(self.raw_name) if in_query else self.raw_name

class KafkaColumn(SourceColumn):
pass

class MySqlColumn(Column):
def __init__(
self,
name: str,
data_type: type[DataType],
nullable: bool,
db_object: "DBObject",
):
self.raw_name = name
self.data_type = data_type
self.nullable = nullable
self.db_object = db_object

def name(self, in_query: bool = False) -> str:
return identifier(self.raw_name) if in_query else self.raw_name
class LoadGeneratorColumn(SourceColumn):
pass


class PostgresColumn(Column):
def __init__(
self,
name: str,
data_type: type[DataType],
nullable: bool,
db_object: "DBObject",
):
self.raw_name = name
self.data_type = data_type
self.nullable = nullable
self.db_object = db_object
class MySqlColumn(SourceColumn):
pass

def name(self, in_query: bool = False) -> str:
return identifier(self.raw_name) if in_query else self.raw_name

class PostgresColumn(SourceColumn):
pass

class SqlServerColumn(Column):
def __init__(
self,
name: str,
data_type: type[DataType],
nullable: bool,
db_object: "DBObject",
):
self.raw_name = name
self.data_type = data_type
self.nullable = nullable
self.db_object = db_object

def name(self, in_query: bool = False) -> str:
return identifier(self.raw_name) if in_query else self.raw_name
class SqlServerColumn(SourceColumn):
pass
Loading
Loading