1050 {
1052 uint32_t len = 0;
1053 char *_table = NULL;
1054 char *_column = NULL;
1055
1056 assert(table != NULL);
1057 assert(column != NULL);
1058
1061
1062
1063 len = strlen("CREATE INDEX \"__gist\" ON USING gist (st_convexhull());") + 1;
1064 if (schema != NULL)
1065 len += strlen(schema);
1066 len += strlen(_table);
1067 len += strlen(_column);
1068 len += strlen(table);
1069 len += strlen(column);
1070 if (tablespace != NULL)
1071 len += strlen(" TABLESPACE ") + strlen(tablespace);
1072
1074 if (sql == NULL) {
1075 rterror(
_(
"create_index: Could not allocate memory for CREATE INDEX statement"));
1078 return 0;
1079 }
1080 sprintf(sql, "CREATE INDEX ON %s%s USING gist (st_convexhull(%s))%s%s;",
1081 (schema != NULL ? schema : ""),
1082 table,
1083 column,
1084 (tablespace != NULL ? " TABLESPACE " : ""),
1085 (tablespace != NULL ? tablespace : "")
1086 );
1089
1091
1092 return 1;
1093}
void rterror(const char *fmt,...)
Wrappers used for reporting errors and info.
void * rtalloc(size_t size)
Wrappers used for managing memory.
void rtdealloc(void *mem)
Datum buffer(PG_FUNCTION_ARGS)
static int append_sql_to_buffer(STRINGBUFFER *buffer, const char *str)
static char * chartrim(const char *input, char *remove)