MCPcopy Create free account
hub / github.com/acking-you/static_flow / build_article_batch

Function build_article_batch

crates/cli/src/schema.rs:134–279  ·  view source on GitHub ↗
(records: &[ArticleRecord])

Source from the content-addressed store, hash-verified

132}
133
134pub fn build_article_batch(records: &[ArticleRecord]) -> Result<RecordBatch> {
135 let mut id_builder = StringBuilder::new();
136 let mut title_builder = StringBuilder::new();
137 let mut content_builder = StringBuilder::new();
138 let mut content_en_builder = StringBuilder::new();
139 let mut summary_builder = StringBuilder::new();
140 let mut detailed_summary_builder = StringBuilder::new();
141 let mut tags_builder = ListBuilder::new(StringBuilder::new());
142 let mut category_builder = StringBuilder::new();
143 let mut author_builder = StringBuilder::new();
144 let mut date_builder = StringBuilder::new();
145 let mut featured_builder = StringBuilder::new();
146 let mut read_time_builder = Int32Builder::new();
147 let mut article_kind_builder = StringBuilder::new();
148 let mut source_url_builder = StringBuilder::new();
149 let mut interactive_page_id_builder = StringBuilder::new();
150 let mut vector_en_builder =
151 FixedSizeListBuilder::new(Float32Builder::new(), TEXT_VECTOR_DIM_EN as i32)
152 .with_field(Field::new_list_field(DataType::Float32, false));
153 let mut vector_zh_builder =
154 FixedSizeListBuilder::new(Float32Builder::new(), TEXT_VECTOR_DIM_ZH as i32)
155 .with_field(Field::new_list_field(DataType::Float32, false));
156 let mut created_at_builder = TimestampMillisecondBuilder::new();
157 let mut updated_at_builder = TimestampMillisecondBuilder::new();
158
159 for record in records {
160 id_builder.append_value(&record.id);
161 title_builder.append_value(&record.title);
162 content_builder.append_value(&record.content);
163 if let Some(content_en) = &record.content_en {
164 content_en_builder.append_value(content_en);
165 } else {
166 content_en_builder.append_null();
167 }
168 summary_builder.append_value(&record.summary);
169 if let Some(detailed_summary) = &record.detailed_summary {
170 detailed_summary_builder.append_value(detailed_summary);
171 } else {
172 detailed_summary_builder.append_null();
173 }
174
175 for tag in &record.tags {
176 tags_builder.values().append_value(tag);
177 }
178 tags_builder.append(true);
179
180 category_builder.append_value(&record.category);
181 author_builder.append_value(&record.author);
182 date_builder.append_value(&record.date);
183
184 if let Some(featured) = &record.featured_image {
185 featured_builder.append_value(featured);
186 } else {
187 featured_builder.append_null();
188 }
189
190 read_time_builder.append_value(record.read_time);
191 if let Some(article_kind) = &record.article_kind {

Callers 2

upsert_articlesFunction · 0.85

Calls 3

article_schemaFunction · 0.85
appendMethod · 0.80
lenMethod · 0.80

Tested by 1