MCPcopy
hub / github.com/tanelpoder/0xtools / _materialize_source

Method _materialize_source

xtop/core/materializer.py:73–154  ·  view source on GitHub ↗

Materialize a single data source

(self, source: str)

Source from the content-addressed store, hash-verified

71 return timings
72
73 def _materialize_source(self, source: str):
74 """Materialize a single data source"""
75 table_name = self.TABLE_NAMES[source]
76
77 # Drop existing table if it exists
78 self.conn.execute(f"DROP TABLE IF EXISTS {table_name}")
79
80 if source == 'samples':
81 # Create enriched samples table with computed columns
82 query = f"""
83 CREATE TABLE {table_name} AS
84 SELECT
85 samples.*,
86 -- Computed columns
87 COALESCE(REGEXP_REPLACE(FILENAME, '[0-9]+', '*', 'g'), '-') AS FILENAMESUM,
88 CASE
89 WHEN FILENAME IS NULL THEN '-'
90 WHEN REGEXP_MATCHES(FILENAME, '\\.([^\\.]+)$')
91 THEN REGEXP_EXTRACT(FILENAME, '(\\.([^\\.]+))$', 1)
92 ELSE '-'
93 END AS FEXT,
94 CASE
95 WHEN COMM LIKE 'ora_p%'
96 THEN regexp_replace(COMM, '(?:p[0-9a-z]+_)', 'p*_', 'g')
97 ELSE regexp_replace(COMM, '[0-9]+', '*', 'g')
98 END AS COMM2,
99 CASE
100 WHEN EXTRA_INFO LIKE '%"connection"%'
101 THEN json_extract_string(EXTRA_INFO, '$.connection')
102 ELSE '-'
103 END AS CONNECTION
104 FROM read_csv_auto('{self.datadir}/xcapture_samples_*.csv') AS samples
105 """
106 elif source == 'syscend':
107 query = f"""
108 CREATE TABLE {table_name} AS
109 SELECT * FROM read_csv_auto('{self.datadir}/xcapture_syscend_*.csv')
110 """
111 elif source == 'iorqend':
112 query = f"""
113 CREATE TABLE {table_name} AS
114 SELECT * FROM read_csv_auto('{self.datadir}/xcapture_iorqend_*.csv')
115 """
116 elif source == 'kstacks':
117 query = f"""
118 CREATE TABLE {table_name} AS
119 SELECT
120 KSTACK_HASH,
121 KSTACK_SYMS
122 FROM read_csv_auto('{self.datadir}/xcapture_kstacks_*.csv')
123 """
124 elif source == 'ustacks':
125 query = f"""
126 CREATE TABLE {table_name} AS
127 SELECT
128 USTACK_HASH,
129 USTACK_SYMS
130 FROM read_csv_auto('{self.datadir}/xcapture_ustacks_*.csv')

Callers 1

materialize_allMethod · 0.95

Calls 2

_create_indexesMethod · 0.95
executeMethod · 0.45

Tested by

no test coverage detected