Revert "Use text_substr for getting top comment"

This reverts commit 9531cfd3bf.
pull/6753/head
Gokhan Gulbiz 2023-03-20 11:02:34 +03:00
parent 34e1dafb18
commit 1df9260f82
No known key found for this signature in database
GPG Key ID: 608EF06B6BD1B45B
1 changed files with 27 additions and 8 deletions

View File

@ -63,6 +63,7 @@ static int CreateTenantStats(MultiTenantMonitor *monitor);
static int FindTenantStats(MultiTenantMonitor *monitor);
static size_t MultiTenantMonitorshmemSize(void);
static char * ExtractTopComment(const char *inputString);
static char * Substring(const char *str, int start, int end);
static char * EscapeCommentChars(const char *str);
static char * UnescapeCommentChars(const char *str);
@ -645,14 +646,7 @@ ExtractTopComment(const char *inputString)
if (commentEndCharsIndex > commentStartCharsLength)
{
Datum substringTextDatum = DirectFunctionCall3(text_substr, PointerGetDatum(
cstring_to_text(inputString)),
Int32GetDatum(
commentStartCharsLength + 1),
Int32GetDatum(
commentEndCharsIndex -
commentStartCharsLength));
return TextDatumGetCString(substringTextDatum);
return Substring(inputString, commentStartCharsLength, commentEndCharsIndex);
}
else
{
@ -661,6 +655,31 @@ ExtractTopComment(const char *inputString)
}
/* Extracts a substring from the input string between the specified start and end indices.*/
static char *
Substring(const char *str, int start, int end)
{
int len = strlen(str);
/* Ensure start and end are within the bounds of the string */
if (start < 0 || end > len || start > end)
{
return NULL;
}
/* Allocate memory for the substring */
char *substr = (char *) palloc((end - start + 1) * sizeof(char));
/* Copy the substring to the new memory location */
strncpy_s(substr, end - start + 1, str + start, end - start);
/* Add null terminator to end the substring */
substr[end - start] = '\0';
return substr;
}
/* EscapeCommentChars adds a backslash before each occurrence of '*' or '/' in the input string */
static char *
EscapeCommentChars(const char *str)