PostgreSQL Source Code git master
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 STRINGINFO_DEFAULT_SIZE   1024 /* default initial allocation size */
 
#define appendStringInfoCharMacro(str, ch)
 

Typedefs

typedef struct StringInfoData StringInfoData
 
typedef StringInfoDataStringInfo
 

Functions

StringInfo makeStringInfo (void)
 
StringInfo makeStringInfoExt (int initsize)
 
void initStringInfo (StringInfo str)
 
void initStringInfoExt (StringInfo str, int initsize)
 
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:242

Definition at line 231 of file stringinfo.h.

◆ STRINGINFO_DEFAULT_SIZE

#define STRINGINFO_DEFAULT_SIZE   1024 /* default initial allocation size */

Definition at line 112 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 281 of file stringinfo.c.

282{
283 Assert(str != NULL);
284
285 /* Make more room if needed */
286 enlargeStringInfo(str, datalen);
287
288 /* OK, append the data */
289 memcpy(str->data + str->len, data, datalen);
290 str->len += datalen;
291
292 /*
293 * Keep a trailing null in place, even though it's probably useless for
294 * binary data. (Some callers are dealing with text but call this because
295 * their input isn't null-terminated.)
296 */
297 str->data[str->len] = '\0';
298}
#define Assert(condition)
Definition: c.h:815
void enlargeStringInfo(StringInfo str, int needed)
Definition: stringinfo.c:337

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 307 of file stringinfo.c.

308{
309 Assert(str != NULL);
310
311 /* Make more room if needed */
312 enlargeStringInfo(str, datalen);
313
314 /* OK, append the data */
315 memcpy(str->data + str->len, data, datalen);
316 str->len += datalen;
317}

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 242 of file stringinfo.c.

243{
244 /* Make more room if needed */
245 if (str->len + 1 >= str->maxlen)
247
248 /* OK, append the character */
249 str->data[str->len] = ch;
250 str->len++;
251 str->data[str->len] = '\0';
252}

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_returning_clause(), 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 260 of file stringinfo.c.

261{
262 if (count > 0)
263 {
264 /* Make more room if needed */
265 enlargeStringInfo(str, count);
266
267 /* OK, append the spaces */
268 memset(&str->data[str->len], ' ', count);
269 str->len += count;
270 str->data[str->len] = '\0';
271 }
272}

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 230 of file stringinfo.c.

231{
232 appendBinaryStringInfo(str, s, strlen(s));
233}
void appendBinaryStringInfo(StringInfo str, const void *data, int datalen)
Definition: stringinfo.c:281

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 409 of file stringinfo.c.

410{
411 /* don't allow destroys of read-only StringInfos */
412 Assert(str->maxlen != 0);
413
414 pfree(str->data);
415 pfree(str);
416}
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 337 of file stringinfo.c.

338{
339 int newlen;
340
341 /* validate this is not a read-only StringInfo */
342 Assert(str->maxlen != 0);
343
344 /*
345 * Guard against out-of-range "needed" values. Without this, we can get
346 * an overflow or infinite loop in the following.
347 */
348 if (needed < 0) /* should not happen */
349 {
350#ifndef FRONTEND
351 elog(ERROR, "invalid string enlargement request size: %d", needed);
352#else
353 fprintf(stderr, "invalid string enlargement request size: %d\n", needed);
355#endif
356 }
357 if (((Size) needed) >= (MaxAllocSize - (Size) str->len))
358 {
359#ifndef FRONTEND
361 (errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
362 errmsg("string buffer exceeds maximum allowed length (%zu bytes)", MaxAllocSize),
363 errdetail("Cannot enlarge string buffer containing %d bytes by %d more bytes.",
364 str->len, needed)));
365#else
366 fprintf(stderr,
367 _("string buffer exceeds maximum allowed length (%zu bytes)\n\nCannot enlarge string buffer containing %d bytes by %d more bytes.\n"),
368 MaxAllocSize, str->len, needed);
370#endif
371 }
372
373 needed += str->len + 1; /* total space required now */
374
375 /* Because of the above test, we now have needed <= MaxAllocSize */
376
377 if (needed <= str->maxlen)
378 return; /* got enough space already */
379
380 /*
381 * We don't want to allocate just a little more space with each append;
382 * for efficiency, double the buffer size each time it overflows.
383 * Actually, we might need to more than double it if 'needed' is big...
384 */
385 newlen = 2 * str->maxlen;
386 while (needed > newlen)
387 newlen = 2 * newlen;
388
389 /*
390 * Clamp to MaxAllocSize in case we went past it. Note we are assuming
391 * here that MaxAllocSize <= INT_MAX/2, else the above loop could
392 * overflow. We will still have newlen >= needed.
393 */
394 if (newlen > (int) MaxAllocSize)
395 newlen = (int) MaxAllocSize;
396
397 str->data = (char *) repalloc(str->data, newlen);
398
399 str->maxlen = newlen;
400}
size_t Size
Definition: c.h:562
#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 97 of file stringinfo.c.

98{
100}
static void initStringInfoInternal(StringInfo str, int initsize)
Definition: stringinfo.c:41
#define STRINGINFO_DEFAULT_SIZE
Definition: stringinfo.h:112

References initStringInfoInternal(), str, and STRINGINFO_DEFAULT_SIZE.

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(), 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().

◆ initStringInfoExt()

void initStringInfoExt ( StringInfo  str,
int  initsize 
)

Definition at line 111 of file stringinfo.c.

112{
113 initStringInfoInternal(str, initsize);
114}

References initStringInfoInternal(), and str.

◆ initStringInfoFromString()

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

Definition at line 175 of file stringinfo.h.

176{
177 Assert(data[len] == '\0');
178
179 str->data = data;
180 str->len = len;
181 str->maxlen = len + 1;
182 str->cursor = 0;
183}

References Assert, data, len, and str.

Referenced by logicalrep_read_tuple().

◆ makeStringInfo()

◆ makeStringInfoExt()

StringInfo makeStringInfoExt ( int  initsize)

Definition at line 85 of file stringinfo.c.

86{
87 return makeStringInfoInternal(initsize);
88}

References makeStringInfoInternal().

◆ resetStringInfo()