MCPcopy Create free account
hub / github.com/apache/cloudberry / create_datumstreamwrite

Function create_datumstreamwrite

src/backend/utils/datumstream/datumstream.c:488–634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

486}
487
488DatumStreamWrite *
489create_datumstreamwrite(
490 char *compName,
491 int32 compLevel,
492 bool checksum,
493 int32 maxsz,
494 Form_pg_attribute attr,
495 char *relname,
496 Oid reloid,
497 char *title,
498 bool needsWAL,
499 RelFileNodeBackend *rnode,
500 const struct f_smgr_ao *smgrAO)
501{
502 DatumStreamWrite *acc = palloc0(sizeof(DatumStreamWrite));
503
504 int32 initialMaxDatumPerBlock;
505 int32 maxDatumPerBlock;
506
507 PGFunction *compressionFunctions;
508 CompressionState *compressionState;
509
510 CompressionState *verifyBlockCompressionState;
511
512 init_datumstream_info(
513 &acc->typeInfo,
514 &acc->datumStreamVersion,
515 &acc->rle_want_compression,
516 &acc->delta_want_compression,
517 &acc->ao_attr,
518 &acc->maxAoBlockSize,
519 compName,
520 compLevel,
521 checksum,
522 maxsz,
523 attr);
524
525 compressionFunctions = NULL;
526 compressionState = NULL;
527 verifyBlockCompressionState = NULL;
528 if (acc->ao_attr.compress)
529 {
530 /*
531 * BULK compression.
532 */
533 compressionFunctions = get_funcs_for_compression(acc->ao_attr.compressType);
534 if (compressionFunctions != NULL)
535 {
536 TupleDesc td = CreateTupleDesc(1, &attr);
537 StorageAttributes sa;
538
539 sa.comptype = acc->ao_attr.compressType;
540 sa.complevel = acc->ao_attr.compressLevel;
541 sa.blocksize = acc->maxAoBlockSize;
542
543 compressionState =
544 callCompressionConstructor(
545 compressionFunctions[COMPRESSION_CONSTRUCTOR], td, &sa, /* compress */ true);

Callers 2

open_ds_writeFunction · 0.85
aocs_addcol_initFunction · 0.85

Calls 11

init_datumstream_infoFunction · 0.85
CreateTupleDescFunction · 0.85
AoHeader_SizeFunction · 0.85
palloc0Function · 0.50
errmsgFunction · 0.50

Tested by

no test coverage detected