PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
stringinfo.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  StringInfoData
 

Macros

#define appendStringInfoCharMacro(str, ch)
 

Typedefs

typedef struct StringInfoData StringInfoData
 
typedef StringInfoDataStringInfo
 

Functions

StringInfo makeStringInfo (void)
 
void initStringInfo (StringInfo str)
 
static void initReadOnlyStringInfo (StringInfo str, char *data, int len)
 
static void initStringInfoFromString (StringInfo str, char *data, int len)
 
void resetStringInfo (StringInfo str)
 
void appendStringInfo (StringInfo str, const char *fmt,...) pg_attribute_printf(2
 
void int appendStringInfoVA (StringInfo str, const char *fmt, va_list args) pg_attribute_printf(2
 
void int void appendStringInfoString (StringInfo str, const char *s)
 
void appendStringInfoChar (StringInfo str, char ch)
 
void appendStringInfoSpaces (StringInfo str, int count)
 
void appendBinaryStringInfo (StringInfo str, const void *data, int datalen)
 
void appendBinaryStringInfoNT (StringInfo str, const void *data, int datalen)
 
void enlargeStringInfo (StringInfo str, int needed)
 
void destroyStringInfo (StringInfo str)
 

Macro Definition Documentation

◆ appendStringInfoCharMacro

#define appendStringInfoCharMacro (   str,
  ch 
)
Value:
(((str)->len + 1 >= (str)->maxlen) ? \
(void)((str)->data[(str)->len] = (ch), (str)->data[++(str)->len] = '\0'))
const char * str
const void size_t len
const void * data
void appendStringInfoChar(StringInfo str, char ch)
Definition: stringinfo.c:191

Definition at line 204 of file stringinfo.h.

Typedef Documentation

◆ StringInfo

Definition at line 54 of file stringinfo.h.

◆ StringInfoData

Function Documentation

◆ appendBinaryStringInfo()

void appendBinaryStringInfo ( StringInfo  str,
const void *  data,
int  datalen 
)

Definition at line 230 of file stringinfo.c.

231{
232 Assert(str != NULL);
233
234 /* Make more room if needed */
235 enlargeStringInfo(str, datalen);
236
237 /* OK, append the data */
238 memcpy(str->data + str->len, data, datalen);
239 str->len += datalen;
240
241 /*
242 * Keep a trailing null in place, even though it's probably useless for
243 * binary data. (Some callers are dealing with text but call this because
244 * their input isn't null-terminated.)
245 */
246 str->data[str->len] = '\0';
247}
#define Assert(condition)
Definition: c.h:812
void enlargeStringInfo(StringInfo str, int needed)
Definition: stringinfo.c:286

References Assert, data, enlargeStringInfo(), and str.

Referenced by addlit(), AppendIncrementalManifestData(), appendStringInfoRegexpSubstr(), appendStringInfoString(), appendStringInfoText(), astreamer_buffer_bytes(), buf_add_txid(), buf_init(), bytea_string_agg_transfn(), composite_to_json(), config_enum_get_options(), CopySendData(), CopySendString(), database_to_xml_internal(), datum_to_json_internal(), DeadLockReport(), deparseFromExprForRel(), escape_json_with_len(), ExecBuildSlotPartitionKeyDescription(), ExecBuildSlotValueDescription(), flattenJsonPathParseItem(), get_from_clause(), get_target_list(), HandleParallelApplyMessages(), HandleParallelMessages(), hstore_to_json_loose(), hstore_to_jsonb_loose(), jsonb_put_escaped_value(), JsonbToCStringWorker(), log_status_format(), main(), map_sql_identifier_to_xml_name(), map_xml_name_to_sql_identifier(), multirange_recv(), parse_fcall_arguments(), pg_decode_message(), pg_decode_stream_message(), pg_get_functiondef(), plpgsql_append_source_text(), pq_sendbytes(), pq_sendtext(), print_function_rettype(), process_pipe_input(), range_recv(), rebuildInsertSql(), replace_text(), replace_text_regexp(), reserveSpaceForItemPointer(), RI_FKey_cascade_upd(), schema_to_xml_internal(), string_agg_combine(), string_agg_deserialize(), testcustomrmgrs_desc(), unaccent_lexize(), write_csvlog(), write_jsonlog(), XLogInsertRecord(), and xmlconcat().

◆ appendBinaryStringInfoNT()

void appendBinaryStringInfoNT ( StringInfo  str,
const void *  data,
int  datalen 
)

Definition at line 256 of file stringinfo.c.

257{
258 Assert(str != NULL);
259
260 /* Make more room if needed */
261 enlargeStringInfo(str, datalen);
262
263 /* OK, append the data */
264 memcpy(str->data + str->len, data, datalen);
265 str->len += datalen;
266}

References Assert, data, enlargeStringInfo(), and str.

Referenced by appendStringInfoStringQuoted(), pq_sendcountedtext(), and pq_sendstring().

◆ appendStringInfo()

void appendStringInfo ( StringInfo  str,
const char *  fmt,
  ... 
)

◆ appendStringInfoChar()

void appendStringInfoChar ( StringInfo  str,
char  ch 
)

Definition at line 191 of file stringinfo.c.

192{
193 /* Make more room if needed */
194 if (str->len + 1 >= str->maxlen)
196
197 /* OK, append the character */
198 str->data[str->len] = ch;
199 str->len++;
200 str->data[str->len] = '\0';
201}

References enlargeStringInfo(), and str.

Referenced by _outList(), _outString(), add_file_to_manifest(), AddFileToBackupManifest(), addlitchar(), appendConditions(), appendContextKeyword(), appendJSONKeyValue(), appendStringInfoRegexpSubstr(), appendTypeNameToBuffer(), array_desc(), array_dim_to_json(), brin_bloom_summary_out(), brin_minmax_multi_summary_out(), brin_page_items(), build_tuple_value_details(), BuildIndexValueDescription(), check_publications(), CheckSASLAuth(), circle_out(), composite_to_json(), copy_table(), cube_out(), cursor_to_xml(), database_to_xml_internal(), datum_to_json_internal(), DeadLockReport(), delvacuum_desc(), deparseAggref(), deparseArrayExpr(), deparseBoolExpr(), deparseCaseExpr(), deparseColumnRef(), deparseDistinctExpr(), deparseFromExprForRel(), deparseFuncExpr(), deparseInsertSql(), deparseNullTest(), deparseOpExpr(), deparseRangeTblRef(), deparseScalarArrayOpExpr(), deparseSortGroupClause(), deparseStringLiteral(), deparseSubscriptingRef(), do_pg_backup_start(), escape_param_str(), exec_stmt_raise(), ExecBuildSlotPartitionKeyDescription(), ExecBuildSlotValueDescription(), ExplainBeginOutput(), ExplainCloseGroup(), ExplainJSONLineEnding(), ExplainNode(), ExplainOpenGroup(), ExplainProperty(), ExplainPropertyList(), ExplainPropertyListNested(), ExplainSeparatePlans(), ExplainXMLTag(), ExplainYAMLLineStarting(), flattenJsonPathParseItem(), format_procedure_extended(), FreePageManagerDumpBtree(), FreePageManagerDumpSpans(), funcname_signature_string(), generate_operator_name(), get_agg_expr_helper(), get_basic_select_query(), get_coercion_expr(), get_column_alias_list(), get_delete_query_def(), get_from_clause_coldeflist(), get_from_clause_item(), get_func_expr(), get_func_sql_syntax(), get_insert_query_def(), get_json_constructor(), get_json_table(), get_json_table_columns(), get_json_table_nested_columns(), get_merge_query_def(), get_oper_expr(), get_parameter(), get_range_partbound_string(), get_rule_expr(), get_rule_expr_paren(), get_rule_groupingset(), get_rule_sortgroupclause(), get_rule_windowspec(), get_setop_query(), get_special_variable(), get_sql_insert(), get_sublink_expr(), get_tablesample_def(), get_update_query_def(), get_update_query_targetlist_def(), get_values_def(), get_variable(), get_windowfunc_expr_helper(), get_with_clause(), get_xmltable(), GetPublicationsStr(), gist_page_items(), hstore_to_json(), hstore_to_json_loose(), incompatible_module_error(), infobits_desc(), InteractiveBackend(), json_agg_transfn_worker(), json_build_array_worker(), json_build_object_worker(), json_object(), json_object_two_arg(), libpqrcv_create_slot(), libpqrcv_startstreaming(), log_status_format(), make_ruledef(), make_viewdef(), multirange_out(), mxid_to_string(), NameListToQuotedString(), NameListToString(), next_token(), outBitmapset(), outDatum(), outNode(), outToken(), path_encode(), pg_decode_change(), pg_dependencies_out(), pg_get_constraintdef_worker(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_get_statisticsobj_worker(), pg_get_triggerdef_worker(), pg_ndistinct_out(), pg_snapshot_out(), pg_split_opts(), pgp_armor_encode(), postgresExplainForeignScan(), postgresImportForeignSchema(), pq_send_ascii_string(), print_function_arguments(), print_function_rettype(), print_function_sqlbody(), print_function_trftypes(), print_literal(), printJsonPathItem(), printSubscripts(), process_pgfdw_appname(), process_queued_fetch_requests(), psql_add_command(), query_to_xml_internal(), range_bound_escape(), range_deparse(), range_parse_bound(), ReadArrayToken(), rebuildInsertSql(), record_in(), record_out(), replace_percent_placeholders(), reportDependentObjects(), RI_Initial_Check(), RI_PartitionRemove_Check(), schema_to_xml_internal(), scram_get_mechanisms(), send_message_to_frontend(), send_message_to_server_log(), sepgsql_proc_post_create(), serialize_deflist(), show_buffer_usage(), show_hashagg_info(), show_incremental_sort_info(), show_memory_counters(), show_modifytable_info(), show_tablesample(), show_tidbitmap_info(), show_wal_usage(), simple_quote_literal(), SPI_sql_row_to_xmlelement(), storeObjectDescription(), stringlist_to_identifierstr(), test_status_failed(), tokenize_auth_file(), truncate_flags_desc(), tuple_to_stringinfo(), TypeNameListToString(), unistr(), verify_cb(), write_csvlog(), write_jsonlog(), writeNodeArray(), xlog_outdesc(), XLogRecGetBlockRefInfo(), and xmlpi().

◆ appendStringInfoSpaces()

void appendStringInfoSpaces ( StringInfo  str,
int  count 
)

Definition at line 209 of file stringinfo.c.

210{
211 if (count > 0)
212 {
213 /* Make more room if needed */
214 enlargeStringInfo(str, count);
215
216 /* OK, append the spaces */
217 memset(&str->data[str->len], ' ', count);
218 str->len += count;
219 str->data[str->len] = '\0';
220 }
221}

References enlargeStringInfo(), and str.

Referenced by add_indent(), appendContextKeyword(), ExplainCloseGroup(), ExplainDummyGroup(), ExplainIndentText(), ExplainOpenGroup(), ExplainProperty(), ExplainPropertyList(), ExplainPropertyListNested(), ExplainXMLTag(), ExplainYAMLLineStarting(), flattenJsonPathParseItem(), jsonPathFromCstring(), log_status_format(), show_hashagg_info(), show_incremental_sort_group_info(), and text_format_append_string().

◆ appendStringInfoString()

void int void appendStringInfoString ( StringInfo  str,
const char *  s 
)

Definition at line 179 of file stringinfo.c.

180{
181 appendBinaryStringInfo(str, s, strlen(s));
182}
void appendBinaryStringInfo(StringInfo str, const void *data, int datalen)
Definition: stringinfo.c:230

References appendBinaryStringInfo(), and str.

Referenced by _outA_Const(), _outA_Expr(), _outBoolean(), _outBoolExpr(), _outConst(), _outFloat(), _outForeignKeyOptInfo(), add_file_to_manifest(), AddFileToBackupManifest(), append_num_word(), appendAggOrderBy(), appendConditions(), appendContextKeyword(), appendFunctionName(), appendGroupByClause(), appendJSONKeyValue(), appendLimitClause(), appendOrderByClause(), appendOrderBySuffix(), appendTypeNameToBuffer(), appendWhereClause(), array_desc(), array_dim_to_json(), array_to_json_internal(), array_to_text_internal(), BackendInitialize(), brin_page_items(), build_backup_content(), build_tuple_value_details(), build_tuplestore_recursively(), BuildIndexValueDescription(), BuildParamLogString(), cash_words(), check_publications(), check_publications_origin(), concat_internal(), config_enum_get_options(), copy_table(), CreateSchemaCommand(), cube_out(), database_to_xmlschema_internal(), datum_to_json_internal(), dbase_desc(), decompile_column_index_array(), delvacuum_desc(), deparseAggref(), deparseAnalyzeInfoSql(), deparseAnalyzeSizeSql(), deparseAnalyzeSql(), deparseArrayExpr(), deparseBoolExpr(), deparseCaseExpr(), deparseColumnRef(), deparseConst(), deparseDeleteSql(), deparseDirectDeleteSql(), deparseDirectUpdateSql(), deparseDistinctExpr(), deparseExplicitTargetList(), deparseFromExpr(), deparseFromExprForRel(), deparseFuncExpr(), deparseInsertSql(), deparseLockingClause(), deparseNullTest(), deparseOperatorName(), deparseRangeTblRef(), deparseSelectSql(), deparseSelectStmtForRel(), deparseSubqueryTargetList(), deparseTargetList(), deparseTruncateSql(), deparseUpdateSql(), ecpg_start_test(), escape_json(), escape_json_char(), escape_xml(), estimate_path_cost_size(), exec_stmt_raise(), ExecBuildSlotPartitionKeyDescription(), ExecBuildSlotValueDescription(), execute_extension_script(), ExplainBeginOutput(), ExplainDummyGroup(), ExplainEndOutput(), ExplainFlushWorkersState(), ExplainIndexScanDetails(), ExplainNode(), ExplainOnePlan(), ExplainOneUtility(), ExplainOpenGroup(), ExplainPrintJIT(), ExplainPrintSettings(), ExplainProperty(), ExplainPropertyList(), ExplainPropertyListNested(), ExplainQuery(), ExplainTargetRel(), ExplainXMLTag(), ExportSnapshot(), fetch_table_list(), finalize_manifest(), flatten_set_variable_args(), format_expr_params(), format_operator_extended(), format_preparedparamsdata(), format_procedure_extended(), FreePageManagerDump(), funcname_signature_string(), generate_operator_clause(), generate_operator_name(), get_agg_expr_helper(), get_basic_select_query(), get_column_alias_list(), get_const_expr(), get_from_clause(), get_from_clause_coldeflist(), get_from_clause_item(), get_func_expr(), get_func_sql_syntax(), get_insert_query_def(), get_json_behavior(), get_json_constructor(), get_json_constructor_options(), get_json_expr_options(), get_json_format(), get_json_table(), get_json_table_columns(), get_merge_query_def(), get_parameter(), get_query_def(), get_range_partbound_string(), get_reloptions(), get_rule_expr(), get_rule_expr_funccall(), get_rule_groupingset(), get_rule_list_toplevel(), get_rule_orderby(), get_rule_windowclause(), get_rule_windowspec(), get_select_query_def(), get_setop_query(), get_sql_delete(), get_sql_insert(), get_sql_update(), get_sublink_expr(), get_tablesample_def(), get_target_list(), get_tuple_of_interest(), get_update_query_def(), get_update_query_targetlist_def(), get_utility_query_def(), get_values_def(), get_variable(), get_windowfunc_expr_helper(), get_with_clause(), get_xmltable(), getConstraintTypeDescription(), getObjectIdentityParts(), getObjectTypeDescription(), getProcedureTypeDescription(), GetPublicationsStr(), getRelationIdentity(), getRelationTypeDescription(), gin_desc(), gist_page_items(), heap2_desc(), heap_desc(), heap_vacuum_rel(), hstore_to_json(), hstore_to_json_loose(), incompatible_module_error(), infobits_desc(), json_agg_transfn_worker(), json_build_array_worker(), json_build_object_worker(), json_lex_string(), json_object(), json_object_agg_transfn_worker(), json_object_two_arg(), jsonb_put_escaped_value(), jsonPathToCstring(), libpqrcv_alter_slot(), libpqrcv_create_slot(), libpqrcv_startstreaming(), log_status_format(), main(), make_ruledef(), make_temptable_name_n(), map_multipart_sql_identifier_to_xml_name(), map_sql_catalog_to_xmlschema_types(), map_sql_identifier_to_xml_name(), map_sql_schema_to_xmlschema_types(), map_sql_table_to_xmlschema(), map_sql_type_to_xml_name(), map_sql_type_to_xmlschema_type(), map_sql_value_to_xml_value(), map_xml_name_to_sql_identifier(), multirange_out(), NameListToQuotedString(), NameListToString(), op_signature_string(), out_member(), outChar(), outDatum(), outDouble(), outNode(), outToken(), PerformWalRecovery(), pg_decode_change(), pg_decode_commit_txn(), pg_decode_stream_abort(), pg_decode_stream_change(), pg_decode_stream_commit(), pg_decode_stream_stop(), pg_decode_stream_truncate(), pg_decode_truncate(), pg_dependencies_out(), pg_extension_update_paths(), pg_get_constraintdef_worker(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_partkeydef_worker(), pg_get_statisticsobj_worker(), pg_get_triggerdef_worker(), pg_ndistinct_out(), pg_output_begin(), pg_output_stream_start(), pg_sync_replication_slots(), pgp_armor_encode(), plan_elem_desc(), PLy_traceback(), postgresExplainForeignScan(), postgresImportForeignSchema(), PostmasterMain(), print_function_arguments(), print_function_rettype(), print_function_sqlbody(), print_function_trftypes(), print_literal(), printJsonPathItem(), process_pgfdw_appname(), psql_add_command(), quote_object_name(), quote_qualified_identifier(), range_deparse(), rebuildInsertSql(), refresh_by_match_merge(), regression_main(), replace_percent_placeholders(), ReplSlotSyncWorkerMain(), report_triggers(), ReportSlotInvalidation(), ri_Check_Pk_Match(), RI_FKey_check(), RI_Initial_Check(), RI_PartitionRemove_Check(), ri_ReportViolation(), ri_restrict(), schema_to_xmlschema_internal(), scram_get_mechanisms(), send_message_to_frontend(), send_message_to_server_log(), sepgsql_audit_log(), sepgsql_database_post_create(), sepgsql_proc_post_create(), sepgsql_schema_post_create(), serialize_deflist(), set_backtrace(), show_buffer_usage(), show_incremental_sort_group_info(), show_memoize_info(), show_modifytable_info(), show_sort_group_keys(), show_sortorder_options(), show_tablesample(), show_tidbitmap_info(), show_wal_usage(), ShowUsage(), single_encode(), smgr_desc(), sn_scalar(), spg_desc(), SPI_sql_row_to_xmlelement(), standby_desc_invalidations(), standby_desc_running_xacts(), stringlist_to_identifierstr(), text_format_append_string(), tokenize_auth_file(), transform_string_values_scalar(), transformJsonTableColumn(), truncate_flags_desc(), tuple_to_stringinfo(), unistr(), write_auto_conf_file(), write_csvlog(), writeNodeArray(), xact_desc_abort(), xact_desc_assignment(), xact_desc_commit(), xact_desc_prepare(), xact_desc_subxacts(), xlog_block_info(), xlog_desc(), xlog_outdesc(), XLogInsertRecord(), XLogRecGetBlockRefInfo(), xml_out_internal(), xmlcomment(), xmlconcat(), xmldata_root_element_start(), xmlpi(), xmlroot(), xsd_schema_element_end(), and xsd_schema_element_start().

◆ appendStringInfoVA()

void int appendStringInfoVA ( StringInfo  str,
const char *  fmt,
va_list  args 
)

◆ destroyStringInfo()

void destroyStringInfo ( StringInfo  str)

Definition at line 358 of file stringinfo.c.

359{
360 /* don't allow destroys of read-only StringInfos */
361 Assert(str->maxlen != 0);
362
363 pfree(str->data);
364 pfree(str);
365}
void pfree(void *pointer)
Definition: mcxt.c:1521

References Assert, pfree(), and str.

Referenced by check_backup_label_files(), check_publications(), fetch_remote_table_info(), fetch_table_list(), jsonb_send(), perform_base_backup(), and psql_end_command().

◆ enlargeStringInfo()

void enlargeStringInfo ( StringInfo  str,
int  needed 
)

Definition at line 286 of file stringinfo.c.

287{
288 int newlen;
289
290 /* validate this is not a read-only StringInfo */
291 Assert(str->maxlen != 0);
292
293 /*
294 * Guard against out-of-range "needed" values. Without this, we can get
295 * an overflow or infinite loop in the following.
296 */
297 if (needed < 0) /* should not happen */
298 {
299#ifndef FRONTEND
300 elog(ERROR, "invalid string enlargement request size: %d", needed);
301#else
302 fprintf(stderr, "invalid string enlargement request size: %d\n", needed);
304#endif
305 }
306 if (((Size) needed) >= (MaxAllocSize - (Size) str->len))
307 {
308#ifndef FRONTEND
310 (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
311 errmsg("string buffer exceeds maximum allowed length (%zu bytes)", MaxAllocSize),
312 errdetail("Cannot enlarge string buffer containing %d bytes by %d more bytes.",
313 str->len, needed)));
314#else
315 fprintf(stderr,
316 _("string buffer exceeds maximum allowed length (%zu bytes)\n\nCannot enlarge string buffer containing %d bytes by %d more bytes.\n"),
317 MaxAllocSize, str->len, needed);
319#endif
320 }
321
322 needed += str->len + 1; /* total space required now */
323
324 /* Because of the above test, we now have needed <= MaxAllocSize */
325
326 if (needed <= str->maxlen)
327 return; /* got enough space already */
328
329 /*
330 * We don't want to allocate just a little more space with each append;
331 * for efficiency, double the buffer size each time it overflows.
332 * Actually, we might need to more than double it if 'needed' is big...
333 */
334 newlen = 2 * str->maxlen;
335 while (needed > newlen)
336 newlen = 2 * newlen;
337
338 /*
339 * Clamp to MaxAllocSize in case we went past it. Note we are assuming
340 * here that MaxAllocSize <= INT_MAX/2, else the above loop could
341 * overflow. We will still have newlen >= needed.
342 */
343 if (newlen > (int) MaxAllocSize)
344 newlen = (int) MaxAllocSize;
345
346 str->data = (char *) repalloc(str->data, newlen);
347
348 str->maxlen = newlen;
349}
size_t Size
Definition: c.h:559
#define fprintf(file, fmt, msg)
Definition: cubescan.l:21
int errdetail(const char *fmt,...)
Definition: elog.c:1203
int errcode(int sqlerrcode)
Definition: elog.c:853
int errmsg(const char *fmt,...)
Definition: elog.c:1070
#define _(x)
Definition: elog.c:90
#define ERROR
Definition: elog.h:39
#define elog(elevel,...)
Definition: elog.h:225
#define ereport(elevel,...)
Definition: elog.h:149
#define MaxAllocSize
Definition: fe_memutils.h:22
exit(1)
void * repalloc(void *pointer, Size size)
Definition: mcxt.c:1541
#define EXIT_FAILURE
Definition: settings.h:178

References _, Assert, elog, ereport, errcode(), errdetail(), errmsg(), ERROR, exit(), EXIT_FAILURE, fprintf, MaxAllocSize, repalloc(), and str.

Referenced by add_file_to_manifest(), AddFileToBackupManifest(), appendBinaryStringInfo(), appendBinaryStringInfoNT(), appendStringInfo(), appendStringInfoChar(), appendStringInfoSpaces(), astreamer_zstd_compressor_new(), astreamer_zstd_decompressor_new(), CopyReadAttributesCSV(), CopyReadAttributesText(), CopyReadBinaryAttribute(), escape_json_with_len(), finalize_manifest(), JsonbToCStringWorker(), jsonPathFromCstring(), jsonPathToCstring(), manifest_report_error(), pg_get_line_append(), pgp_armor_decode(), pgp_armor_encode(), PLy_elog_impl(), pq_getmessage(), pq_sendint16(), pq_sendint32(), pq_sendint64(), pq_sendint8(), psql_add_command(), read_binary_file(), ReportWalSummaryError(), reserveFromBuffer(), SendRowDescriptionMessage(), slurp_file(), and XLogSendPhysical().

◆ initReadOnlyStringInfo()

static void initReadOnlyStringInfo ( StringInfo  str,
char *  data,
int  len 
)
inlinestatic

◆ initStringInfo()

void initStringInfo ( StringInfo  str)

Definition at line 56 of file stringinfo.c.

57{
58 int size = 1024; /* initial default buffer size */
59
60 str->data = (char *) palloc(size);
61 str->maxlen = size;
63}
void * palloc(Size size)
Definition: mcxt.c:1317
static pg_noinline void Size size
Definition: slab.c:607
void resetStringInfo(StringInfo str)
Definition: stringinfo.c:75

References palloc(), resetStringInfo(), size, and str.

Referenced by AddFileToBackupManifest(), array_to_text_internal(), astreamer_gzip_decompressor_new(), astreamer_lz4_compressor_new(), astreamer_lz4_decompressor_new(), astreamer_tar_parser_new(), astreamer_zstd_compressor_new(), astreamer_zstd_decompressor_new(), BackendInitialize(), BeginCopyFrom(), bind_param_error_callback(), bmsToString(), bqarr_in(), brin_bloom_summary_out(), brin_minmax_multi_summary_out(), brin_page_items(), build_tuple_value_details(), build_tuplestore_recursively(), BuildIndexValueDescription(), BuildParamLogString(), cash_words(), check_publications_origin(), CheckAlterSubOption(), CheckSASLAuth(), checkSharedDependencies(), circle_out(), concat_internal(), config_enum_get_options(), convertToJsonb(), copy_table(), create_cursor(), create_manifest_writer(), CreateIncrementalBackupInfo(), CreateSchemaCommand(), cube_out(), cursor_to_xml(), dblink_close(), dblink_fetch(), dblink_open(), DeadLockReport(), deparse_expression_pretty(), deparseAnalyzeInfoSql(), deparseAnalyzeSizeSql(), deparseFromExprForRel(), do_analyze_rel(), do_pg_backup_start(), ecpg_filter_source(), ecpg_filter_stderr(), ecpg_start_test(), errdetail_apply_conflict(), escape_param_str(), escape_xml(), estimate_path_cost_size(), exec_replication_command(), exec_stmt_raise(), ExecBuildSlotPartitionKeyDescription(), ExecBuildSlotValueDescription(), ExecEvalXmlExpr(), execute_extension_script(), execute_foreign_modify(), ExplainOpenWorker(), ExplainPrintSettings(), ExportSnapshot(), fetch_remote_table_info(), fetch_table_list(), filter_init(), flatten_reloptions(), flatten_set_variable_args(), format_expr_params(), format_node_dump(), format_operator_extended(), format_preparedparamsdata(), format_procedure_extended(), FreePageManagerDump(), fsm_page_contents(), funcname_signature_string(), generate_opclass_name(), generate_operator_name(), get_connect_string(), get_from_clause(), get_json_agg_constructor(), get_sql_delete(), get_sql_insert(), get_sql_update(), get_target_list(), get_tuple_of_interest(), getObjectDescription(), getObjectIdentityParts(), getObjectTypeDescription(), GetWALBlockInfo(), GetWALRecordInfo(), gist_page_items(), HandleParallelApplyMessages(), HandleParallelMessages(), heap_vacuum_rel(), hstore_to_json(), hstore_to_json_loose(), hstore_to_jsonb_loose(), incompatible_module_error(), init_libpq_source(), initialize_worker_spi(), isolation_start_test(), json_object(), json_object_two_arg(), json_unique_builder_get_throwawaybuf(), JsonbValueAsText(), jsonpath_send(), jsonPathFromCstring(), jsonPathToCstring(), KnownAssignedXidsDisplay(), libpqrcv_alter_slot(), libpqrcv_create_slot(), libpqrcv_startstreaming(), logicalrep_get_attrs_str(), LogRecoveryConflict(), main(), make_temptable_name_n(), makeStringInfo(), manifest_report_error(), map_multipart_sql_identifier_to_xml_name(), map_sql_catalog_to_xmlschema_types(), map_sql_identifier_to_xml_name(), map_sql_schema_to_xmlschema_types(), map_sql_table_to_xmlschema(), map_sql_type_to_xml_name(), map_sql_type_to_xmlschema_type(), map_sql_typecoll_to_xmlschema_types(), map_sql_value_to_xml_value(), map_xml_name_to_sql_identifier(), multirange_out(), multirange_recv(), mxid_to_string(), NameListToQuotedString(), NameListToString(), next_field_expand(), nodeToStringInternal(), op_signature_string(), parse_fcall_arguments(), path_encode(), PerformAuthentication(), PerformWalRecovery(), pg_armor(), pg_dearmor(), pg_dependencies_out(), pg_extension_update_paths(), pg_get_constraintdef_worker(), pg_get_function_arguments(), pg_get_function_identity_arguments(), pg_get_function_result(), pg_get_function_sqlbody(), pg_get_functiondef(), pg_get_indexdef_worker(), pg_get_line(), pg_get_partkeydef_worker(), pg_get_querydef(), pg_get_ruledef_worker(), pg_get_statisticsobj_worker(), pg_get_triggerdef_worker(), pg_get_viewdef_worker(), pg_get_wait_events(), pg_ndistinct_out(), pg_snapshot_out(), pg_split_opts(), pg_sync_replication_slots(), pgstat_progress_parallel_incr_param(), PLy_elog_impl(), PLy_traceback(), populate_array_report_expected_array(), populate_scalar(), postgresAcquireSampleRowsFunc(), postgresAnalyzeForeignTable(), postgresBeginForeignInsert(), postgresExecForeignTruncate(), postgresGetAnalyzeInfoForForeignTable(), postgresGetForeignPlan(), postgresImportForeignSchema(), PostgresMain(), postgresPlanDirectModify(), postgresPlanForeignModify(), PostmasterMain(), pq_beginmessage(), pq_begintypsend(), pretty_format_node_dump(), print_function_rettype(), printtup_startup(), process_pgfdw_appname(), process_pipe_input(), ProcSleep(), psql_add_command(), psql_start_test(), quote_object_name(), quote_qualified_identifier(), range_bound_escape(), range_deparse(), range_parse_bound(), range_recv(), read_binary_file(), read_pg_version_file(), ReadArrayStr(), readfile(), record_in(), record_out(), recv_password_packet(), refresh_by_match_merge(), regression_main(), replace_percent_placeholders(), replace_text(), replace_text_regexp(), ReplicationSlotDropAtPubNode(), ReplSlotSyncWorkerMain(), reportDependentObjects(), ReportSlotInvalidation(), ReportWalSummaryError(), ri_Check_Pk_Match(), RI_FKey_cascade_del(), RI_FKey_cascade_upd(), RI_FKey_check(), RI_Initial_Check(), RI_PartitionRemove_Check(), ri_ReportViolation(), ri_restrict(), ri_set(), rm_redo_error_callback(), schema_get_xml_visible_tables(), send_message_to_frontend(), send_message_to_server_log(), sepgsql_attribute_post_create(), sepgsql_audit_log(), sepgsql_database_post_create(), sepgsql_proc_post_create(), sepgsql_relation_post_create(), sepgsql_schema_post_create(), serialize_deflist(), serializeAnalyzeStartup(), set_backtrace(), show_incremental_sort_group_info(), show_memoize_info(), show_sort_group_keys(), ShowTransactionStateRec(), ShowUsage(), SortTocFromFile(), startlit(), stringlist_to_identifierstr(), table_to_xml_internal(), text_format(), tokenize_auth_file(), transformJsonTableColumn(), tsearch_readline_begin(), TypeNameListToString(), TypeNameToString(), unaccent_lexize(), unistr(), validate_remote_info(), verify_cb(), WalReceiverMain(), worker_spi_main(), write_auto_conf_file(), write_csvlog(), write_jsonlog(), write_reconstructed_file(), XLogDumpDisplayRecord(), XLogInsertRecord(), xml_out_internal(), xmlcomment(), xmlconcat(), xmlpi(), xmlroot(), XmlTableGetValue(), and xpath_table().

◆ initStringInfoFromString()

static void initStringInfoFromString ( StringInfo  str,
char *  data,
int  len 
)
inlinestatic

Definition at line 148 of file stringinfo.h.

149{
150 Assert(data[len] == '\0');
151
152 str->data = data;
153 str->len = len;
154 str->maxlen = len + 1;
155 str->cursor = 0;
156}

References Assert, data, len, and str.

Referenced by logicalrep_read_tuple().

◆ makeStringInfo()

◆ resetStringInfo()