@ -55,11 +55,15 @@ typedef StringInfoData *StringInfo;
/*------------------------
/*------------------------
* There are four ways to create a StringInfo object initially :
* There are six ways to create a StringInfo object initially :
*
*
* StringInfo stringptr = makeStringInfo ( ) ;
* StringInfo stringptr = makeStringInfo ( ) ;
* Both the StringInfoData and the data buffer are palloc ' d .
* Both the StringInfoData and the data buffer are palloc ' d .
*
*
* StringInfo stringptr = makeStringInfoExt ( initsize ) ;
* Same as makeStringInfo except the data buffer is allocated
* with size ' initsize ' .
*
* StringInfoData string ;
* StringInfoData string ;
* initStringInfo ( & string ) ;
* initStringInfo ( & string ) ;
* The data buffer is palloc ' d but the StringInfoData is just local .
* The data buffer is palloc ' d but the StringInfoData is just local .
@ -67,6 +71,11 @@ typedef StringInfoData *StringInfo;
* only live as long as the current routine .
* only live as long as the current routine .
*
*
* StringInfoData string ;
* StringInfoData string ;
* initStringInfoExt ( & string , initsize ) ;
* Same as initStringInfo except the data buffer is allocated
* with size ' initsize ' .
*
* StringInfoData string ;
* initReadOnlyStringInfo ( & string , existingbuf , len ) ;
* initReadOnlyStringInfo ( & string , existingbuf , len ) ;
* The StringInfoData ' s data field is set to point directly to the
* The StringInfoData ' s data field is set to point directly to the
* existing buffer and the StringInfoData ' s len is set to the given len .
* existing buffer and the StringInfoData ' s len is set to the given len .
@ -100,12 +109,22 @@ typedef StringInfoData *StringInfo;
* - - - - - - - - - - - - - - - - - - - - - - - - -
* - - - - - - - - - - - - - - - - - - - - - - - - -
*/
*/
# define STRINGINFO_DEFAULT_SIZE 1024 /* default initial allocation size */
/*------------------------
/*------------------------
* makeStringInfo
* makeStringInfo
* Create an empty ' StringInfoData ' & return a pointer to it .
* Create an empty ' StringInfoData ' & return a pointer to it .
*/
*/
extern StringInfo makeStringInfo ( void ) ;
extern StringInfo makeStringInfo ( void ) ;
/*------------------------
* makeStringInfoExt
* Create an empty ' StringInfoData ' & return a pointer to it .
* The data buffer is allocated with size ' initsize ' .
* The valid range for ' initsize ' is 1 to MaxAllocSize .
*/
extern StringInfo makeStringInfoExt ( int initsize ) ;
/*------------------------
/*------------------------
* initStringInfo
* initStringInfo
* Initialize a StringInfoData struct ( with previously undefined contents )
* Initialize a StringInfoData struct ( with previously undefined contents )
@ -113,6 +132,14 @@ extern StringInfo makeStringInfo(void);
*/
*/
extern void initStringInfo ( StringInfo str ) ;
extern void initStringInfo ( StringInfo str ) ;
/*------------------------
* initStringInfoExt
* Initialize a StringInfoData struct ( with previously undefined contents ) to
* describe an empty string . The data buffer is allocated with size
* ' initsize ' . The valid range for ' initsize ' is 1 to MaxAllocSize .
*/
extern void initStringInfoExt ( StringInfo str , int initsize ) ;
/*------------------------
/*------------------------
* initReadOnlyStringInfo
* initReadOnlyStringInfo
* Initialize a StringInfoData struct from an existing string without copying
* Initialize a StringInfoData struct from an existing string without copying