/* * ExecWorkFile_CreateUnique * create a new work file with specified name, type and compression * In addition, it adds a unique suffix */ ExecWorkFile * ExecWorkFile_CreateUnique(const char *filename, ExecWorkFileType fileType, bool delOnClose, int compressType) { StringInfo uniquename = ExecWorkFile_AddUniqueSuffix(filename); ExecWorkFile *ewf = ExecWorkFile_Create(uniquename->data, fileType, delOnClose, compressType); pfree(uniquename->data); pfree(uniquename); return ewf; }
/* * Creates a LogicalTapeSet with a generated file name. */ LogicalTapeSet *LogicalTapeSetCreate(int ntapes, bool del_on_close) { char tmpprefix[MAXPGPATH]; int len = snprintf(tmpprefix, MAXPGPATH, "%s/slice%d_sort", PG_TEMP_FILES_DIR, currentSliceId); insist_log(len <= MAXPGPATH - 1, "could not generate temporary file name"); StringInfo uniquename = ExecWorkFile_AddUniqueSuffix(tmpprefix); LogicalTapeSet *lts = LogicalTapeSetCreate_Named(uniquename->data, ntapes, del_on_close); pfree(uniquename->data); pfree(uniquename); return lts; }