Files
Vinod Sridharan 3f9a507562 Merged PR 1539950: [OSS] Move helio_api and helio_distributed sources under documentdb
### Does this PR have any customer impact?
No

### Type (Feature, Refactoring, Bugfix, DevOps, Testing, Perf, etc)
Refactor

### Does it involve schema level changes? (Table, Column, Index, UDF, etc level changes)
No

### Are you introducing any new config? If yes, do you have tests with and without them being set?
No
### Release Note (Refer [Template](../docs/release_notes/pgmongo_template.md))

### Description
Move source files under new directory.

----
#### AI description  (iteration 1)
#### PR Classification
Code reorganization

#### PR Summary
This pull request moves the `helio_api` and `helio_distributed` sources under the `documentdb` directory, updating references and initialization logic accordingly.
- Added `pg_documentdb.c` for initializing the `pg_documentdb` extension.
- Added `documentdb_distributed.c` for initializing the `pg_documentdb_distributed` extension.
- Updated `validate_helio_extension_state.sh` to include new checks for `documentdb`.
- Moved `helio_api_extension_version.c` to `documentdb_extension_version.c` without code changes.
- Updated various `Makefile` configurations to reflect the new directory structure and dependencies.
2025-01-15 07:48:39 +00:00

47 lines
1.3 KiB
C

/*-------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
*
* include/utils/heap_utils.h
*
* Utility to maintain min/max heap.
*
*-------------------------------------------------------------------------
*/
#include <postgres.h>
#include <common/hashfn.h>
#include <utils/hsearch.h>
#include "commands/commands_common.h"
#ifndef HEAP_UTILS_H
#define HEAP_UTILS_H
/**
* Defines how the heap is sorted.
* For minheap, the comparator should return true if first < second.
* For maxheap, the comparator should return true if first > second.
*/
typedef bool (*HeapComparator)(const void *first, const void *second);
/*
* binaryheap
* heapNodes variable-length array of "space" nodes
* bh_size how many nodes are currently in "nodes"
* bh_space how many nodes can be stored in "nodes"
* heapComparator comparison function to define the heap property
*/
typedef struct BinaryHeap
{
bson_value_t *heapNodes;
int64_t heapSize;
int64_t heapSpace;
HeapComparator heapComparator;
} BinaryHeap;
BinaryHeap * AllocateHeap(int64_t capacity, HeapComparator comparator);
void PushToHeap(BinaryHeap *heap, const bson_value_t *value);
bson_value_t PopFromHeap(BinaryHeap *heap);
bson_value_t TopHeap(BinaryHeap *heap);
void FreeHeap(BinaryHeap *heap);
#endif