Lines Matching defs:output
1736 ** output buffer xFullPathname. The exact size of the output buffer
1737 ** is also passed as a parameter to both methods. If the output buffer
2619 ** <dd> By default, the output of EXPLAIN QUERY PLAN commands does not
2620 ** include output for any operations performed by trigger programs. This
2623 ** positive to enable output for trigger programs, or zero to disable it,
2626 ** 0 or 1 to indicate whether output-for-triggers has been disabled - 0 if
3556 ** the length of [bound parameter] expansion in the output of sqlite3_trace().
5710 ** the same output when the input parameters are the same.
6722 ** ^The filename returned by this function is the output of the
7195 ** [INTEGER PRIMARY KEY] column has been explicitly declared, then the output
7492 ** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in
7555 int orderByConsumed; /* True if output is already ordered */
8187 ** output variable when querying the system for the current mutex
9375 ** those changes are not reflected in the output of sqlite3_backup_pagecount()
9600 ** used with [sqlite3_snprintf()] to generate the final output string.
9781 ** values written to output parameters *pnLog and *pnCkpt are undefined. ^If
10016 ** planner wants the output to be ordered. As long as the virtual table
10055 ** ^For the purposes of comparing virtual table output values to see if the
10283 ** query planner's estimate for the average number of rows output from each
10303 ** The select-id is the same value as is output in the first column
11589 ** SQLite error code is returned. The values of the output variables may not
11622 ** entry, SQLITE_MISUSE is returned and the output variables zeroed. Otherwise,
11623 ** SQLITE_OK is returned and the output variables populated as described
11629 int *pnCol /* OUT: Number of entries in output array */
11731 ** it sets the output variable to the total number of known foreign key
11838 int *pnOut, /* OUT: Number of bytes in output changeset */
11839 void **ppOut /* OUT: Buffer containing output changeset */
11857 ** object may combine changesets or patchsets, but not both. The output is
11880 ** Any number of calls to add() and output() may be made between the calls to
11973 ** were themselves changesets, the output is a changeset. Or, if the
11974 ** inputs were patchsets, the output is also a patchset.
11976 ** As with the output of the sqlite3session_changeset() and
11978 ** table are grouped together in the output of this function. Tables appear
11982 ** appended onto the end of the output changeset, again in the order in
11985 ** If an error occurs, an SQLite error code is returned and the output
11987 ** is returned and the output variables are set to the size of and a
11988 ** pointer to the output buffer, respectively. In this case it is the
11994 int *pnData, /* OUT: Size of output buffer in bytes */
11995 void **ppData /* OUT: Pointer to output buffer */
12145 ** If the output parameters (ppRebase) and (pnRebase) are non-NULL and
12549 ** points to a buffer nData bytes in size containing the chunk of output
12664 ** and output data in approximately 1 KiB chunks. This operand may be used
12668 ** chunk size for both input and output. Before returning, the (int) value
12754 ** If parameter iCol is less than zero, set output variable *pnToken
12769 ** If parameter iCol is less than zero, set output variable *pnToken
12811 ** output by xInstCount().
12813 ** Usually, output parameter *piPhrase is set to the phrase number, *piCol
13020 ** The final argument is an output variable. If successful, (*ppOut)
13280 ** Include the configuration header output by 'configure' if we're using the
16095 #define OP_ResultRow 84 /* synopsis: output=r[P1@P2] */
16207 #define OPFLG_OUT2 0x10 /* out2: P2 is an output */
16208 #define OPFLG_OUT3 0x20 /* out3: P3 is an output */
17369 #define SQLITE_FUNC_CONSTANT 0x0800 /* Constant inputs give a constant output */
18211 int nAccumulator; /* Number of columns that show through to the output.
18685 #define WHERE_WANT_DISTINCT 0x0100 /* All output needs to be distinct */
18873 #define SF_IncludeHidden 0x0020000 /* Include hidden columns in output */
18905 ** SRT_Output Generate a row of output (using the OP_ResultRow
19276 #define OPFLAG_EPHEM 0x01 /* OP_Column: Ephemeral output is ok */
21216 ** Include the configuration header output by 'configure' if we're using the
22805 LogEst nEst; /* Estimated output rows per loop */
22951 sqlite3_value *pOut; /* Register to hold each decoded output value */
26242 fprintf(stderr, "** Unable to output memory debug output log: %s **\n",
26889 fprintf(stderr, "** Unable to output memory debug output log: %s **\n",
27518 fprintf(stderr, "** Unable to output memory debug output log: %s **\n",
30065 ** output: *val = 1.4159 function return = '3'
30114 ** of the output buffer in pAccum, then cause an SQLITE_TOOBIG error.
30140 #define etBUFSIZE SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */
30761 ** of output characters may be larger than the precision.
30846 ** the output. Both length and width are in bytes, not characters,
31345 ** These routines print a parse tree to standard output for debugging and
31385 ** Generate a single line of output for the tree, with a prefix that contains
31983 ** up in the treeview output as "SOFT-COLLATE". Explicit COLLATE
31985 ** EP_Collate bit set and appear in treeview output as just "COLLATE" */
33244 sqlite3_int64 len; /* Maximum length of output string in bytes */
33291 /* Set len to the maximum number of bytes required in the output buffer. */
33295 ** A single byte is required for the output string
33303 ** character. Two bytes are required in the output buffer for the
33312 ** Variable zOut is set to point at the output buffer, space obtained
33503 ** The translation is done in-place and aborted if the output
35686 /* 84 */ "ResultRow" OpHelp("output=r[P1@P2]"),
36119 ** The output text is stored in aOut[], which must be at least
37467 ** standard input, output, and error.
43376 /* SQLite assumes that xFullPathname() nul-terminates the output buffer
43432 int nOut, /* Size of output buffer in bytes */
47069 ** returns the number of TCHARs written to the output
47134 /* copy a maximum of nBuf chars to output buffer */
50014 ** Check that the output buffer is large enough for the temporary file
50657 int nFull, /* Size of output buffer in bytes */
50836 int nFull, /* Size of output buffer in bytes */
51093 ** in the output buffer.
52672 ** is displayed for many operations, resulting in a lot of output.
55124 struct RowSetEntry **ppFirst, /* Write head of the output list here */
55125 struct RowSetEntry **ppLast /* Write tail of the output list here */
59387 ** opened on a file less than N bytes in size, the output buffer is
59394 ** output buffer undefined.
60277 /* Set the output variable to NULL in case an error occurs. */
63616 ** Trace output macros
64094 u32 *aOut /* OUT: Final checksum value output */
64266 ** Names of locks. This routine is used to provide debugging output and is not
64358 ** Set output variable pLoc->aHash to point to the start of the hash table
65014 int iOut = 0; /* Current index in output buffer */
65869 ** been successfully opened. In this case output variable (*pChanged)
67312 /* If no error occurred, set the output variables. */
73715 ** 6) at least 4 bytes have already been read into the output buffer
73718 ** output buffer, bypassing the page-cache altogether. This speeds
77945 u8 *aOut = pBt->pTmpSpace; /* Pointer to next output buffer */
77972 u32 nOut; /* Size of output buffer aOut[] */
81992 ** error occurs, output parameter (*ppVal) is set to point to a value
82349 ** this function returns, output parameter *pnExtract is set to the
83648 LogEst nEst, /* Estimated number of output rows */
84206 ** that can be displayed in the P4 column of EXPLAIN output.
84623 ** QUERY PLAN output.
84644 /* When the number of output rows reaches nRow, that means the
89188 ** 0 The column name as it should be displayed for output
90089 ** (aka "wildcards") into the SQL text output by sqlite3_trace().
90158 StrAccum out; /* Accumulate the output here */
90211 int nOut; /* Number of bytes of the string text to include in output */
90244 int nOut; /* Number of bytes of the blob to include in output */
91246 ** to the current line should be indented for EXPLAIN output.
91330 ** and also less than the current address, then the "EXPLAIN" output
91912 ** Synopsis: output=r[P1@P2]
92004 i64 nByte; /* Total size of the output string or blob */
92789 ** a NULL output.
92799 ** give a NULL output.
93677 /* Identify the output register */
93852 /* Make sure the output register has a buffer large enough to store
93853 ** the new record. The output register (pOp->p3) is not allowed to
93858 /* The output register is already large enough to hold the record.
93862 /* Need to make sure that the output is not too big and then enlarge
93863 ** the output register to hold the full result */
94827 ** row output from the sorter so that the row can be decomposed into
96230 ** into the database page. That means that the content of the output
98394 ** with cache register P3 and output register P3+1. This ValueList object
98924 ** Write P4 on the statement trace output if statement tracing is
99911 ** thread to merge the output of each of the others to a single PMA for
100064 ** block provoke debugging output.
101674 /* Check if the output file is full or if the input has been exhausted.
101679 /* Write the next key to the output. */
102580 int iRowid; /* The rowid of the output table */
102696 ** Advance a bytecodevtab_cursor to its next row of output.
102727 ** row of output.
102844 ** rowid is the same as the output value.
104236 ** The ability to use an output result-set column in the WHERE, GROUP BY,
105478 /* Add the output column list to the name-context before parsing the
106386 ** Before returning, output parameter (*ppExpr) is set to point to the
114355 /* Handle output case B */
119525 ** Measure the number of characters needed to output the given
119541 ** The first parameter is a pointer to an output buffer. The second
119543 ** which to write into the output buffer. This function copies the
119550 ** then it is copied to the output buffer exactly as it is. Otherwise,
125976 unsigned char *zOut; /* The output */
126032 /* Grow the size of the output buffer only on substitutions
127274 ** KEY column, then output variable *ppIdx is set to NULL. Otherwise, *ppIdx
127278 ** is not a composite foreign key), output variable *paiCol is set to NULL.
127319 /* The caller is responsible for zeroing output parameters. */
127329 ** space for the aiCol array (returned via output parameter *paiCol).
129536 ** FALSE if each output row of the SELECT can be written directly into
131261 /* This routine is a no-op for virtual tables. Leave the output
134539 ** Create zero or more entries in the output for the SQL functions
134591 ** Generate code to output a single-column result row with a value of the
138263 int regReturn; /* Register holding block-output return address */
138264 int labelBkOut; /* Start label for the block-output subroutine */
138615 ** the output, which is incorrect.
138923 ** (2) All output columns are included in the sort record. In that
138925 ** (3) Some output columns are omitted from the sort record due to
139225 ** output variable (*ppExtra) is set to an expression list containing
139535 ** in the index, do not write it to the output. If not, add the
139537 ** output table as well. */
139569 ** aggregates do. Don't record that empty row in the output table. */
139713 ** the output for us.
139829 ** is a no-op. Otherwise, it adds a single row of output to the EQP result,
139860 ** we need to run the sorter and output the results. The following
139873 int addr; /* Top of output loop. Jump for Next. */
140781 ** one. Each row extracted from Queue is output to pDest. Then the single
140783 ** recursive-table for a recursive-query run. The output of the recursive-query
140797 ** have been output to pDest. A LIMIT of zero means to output no rows and a
140798 ** negative LIMIT means to output all rows. If there is also an OFFSET clause
140912 /* Find the next row in the Queue and output that row */
141419 ** Code an output subroutine for a coroutine implementation of a
141422 ** The data to be output is contained in pIn->iSdst. There are
141423 ** pIn->nSdst columns to be output. pDest is where the output should
141430 ** records the previous output. mem[regPrev] is a flag that is false
141431 ** if there has been no previous output. If regPrev>0 then code is
141571 ** into the output. In addition to the two coroutines (called selectA and
141574 ** outA: Move the output of the selectA coroutine into the output
141577 ** outB: Move the output of the selectB coroutine into the output
141579 ** UNION ALL. EXCEPT and INSERTSECT never output a row that
141614 ** within the output subroutine. The regPrev register set holds the previously
141615 ** output value. A comparison is made against this value and the output
141624 ** outA: output one row of A
141625 ** outB: output one row of B (UNION and UNION ALL only)
141662 int regOutA; /* Address register for the output-A subroutine */
141663 int regOutB; /* Address register for the output-B subroutine */
141664 int addrOutA; /* Address of the output-A subroutine */
141665 int addrOutB = 0; /* Address of the output-B subroutine */
141674 int regPrev; /* A range of registers to hold previous output */
141851 ** select as the next output row of the compound select.
141859 ** select as the next output row of the compound select.
145117 ** are output, rather than every row of the table.
145443 /* If the output is destined for a temporary table, open that table.
145714 int regOutputRow; /* Return address register for output subroutine */
145791 ** then loop over the sorting index in order to get the output
145882 ** over to a0,a1,a2. It then calls the output subroutine
145888 VdbeComment((v, "output one row"));
145917 VdbeComment((v, "output final row"));
146057 ** of output.
146189 char **azResult; /* Accumulated output */
149673 const char *zOut; /* Name of output file */
149674 u32 pgflags = PAGER_SYNCHRONOUS_OFF; /* sync flags for output db */
149742 sqlite3SetString(pzErrMsg, db, "output file already exists");
151444 LogEst nOut; /* Estimated number of output rows */
151791 LogEst nRowOut; /* Estimated number of output rows */
152042 ** is added to the output to describe the table scan strategy in pLevel.
152064 char *zMsg; /* Text to add to EQP output */
152065 StrAccum str; /* EQP output string */
152066 char zBuf[100]; /* Initial space for EQP output string */
152106 #if 0 /* Better output, but breaks many tests */
152171 char *zMsg; /* Text to add to EQP output */
152174 StrAccum str; /* EQP output string */
152175 char zBuf[100]; /* Initial space for EQP output string */
152394 ** IN expression must also be run on each output row for correctness.
153625 ** to force the output order to conform to an ORDER BY.
156597 ** Return the estimated number of output rows from a WHERE clause
156613 ** WHERE clause. A return of 0 means that the output must be
156661 ** additional looping is required. If the output order is such that
158892 ** Try to adjust the cost and number of output rows of WhereLoop pTemplate
159150 ** of output rows by the probability specified.
159164 ** final output row estimate is no greater than 1/4 of the total number
159168 ** on the "x" column and so in that case only cap the output row estimate
160261 /* Initialize the output fields of the sqlite3_index_info structure */
160333 ** is not necessarily related to the order of output terms and
160345 ** OFFSET term handled as well, the plan is unusable. Set output
160940 ** row of output. A WhereLoop is one-row if all of the following are true:
161301 /* Multiple by log(M) where M is the number of output rows.
161303 ** a DISTINCT operator, M will be the number of distinct output
161310 ** reduces the number of output rows by a factor of 2 */
161322 ** Assume that the total number of output rows that will need to be sorted
162695 ** the output order. So omit any ORDER BY/GROUP BY elimination
162982 /* Do RIGHT JOIN processing. Generate code that will output the
163871 ** this function appends to the output expression-list and updates
163978 ** Append the node to output expression-list (*ppSub). And replace it
164555 ** regApp+2: output of MakeRecord
167705 ** <li> A FILE* to which trace output should be written.
167708 ** line of trace output. If NULL, then tracing is
171822 ** The output of the mkkeywordhash.c program is written into a file
173749 /* This section of code's only "output" is via assert() statements. */
175866 /* Initialize the output variables to -1 in case an error occurs. */
177336 /* Whether the function call succeeded or failed, set the output parameters
177338 ** this has the effect of zeroing all output parameters.
180055 ** Similar to sqlite3Fts3GetVarint(), except that the output is truncated to
180111 int iOut = 0; /* Index of next byte to write to output */
180451 ** Append the output of a printf() style formatting to an existing string.
180632 ** the output value undefined. Otherwise SQLITE_OK is returned.
180667 ** of the caller to call sqlite3_free() on the output array to free it.
180720 ** a table of that name. If found, the output variables are populated
180734 ** If the table cannot be found, an error code is returned and the output
180736 ** returned (and the output variables are undefined).
180793 /* Set the output variables. */
181860 ** Compute the union of two position lists. The output written
181864 ** that there is enough space in *pp to hold the complete output.
181908 ** written to the output.
181958 ** If isSaveLeft is 0, an entry is added to the output position list for
181967 char **pp, /* IN/OUT: Preallocated output buffer */
182086 ** The output position list - written to *pp - is a copy of *pp2 with those
182130 char *aaOutput[16]; /* Malloc'd output buffers */
182131 int anOutput[16]; /* Size each output buffer in bytes */
182217 ** This function does an "OR" merge of two doclists (output contains all
182224 ** containing the output doclist and SQLITE_OK is returned. In this case
182225 ** *pnOut is set to the number of bytes in the output doclist.
182227 ** If an error occurs, an SQLite error code is returned. The output values
182251 /* Allocate space for the output. Both the input and output doclists
182258 ** The first docid written to the output is therefore encoded using the
182262 ** the difference between it and the previous value in the output must
182266 ** that will be copied and merged from the input to the output.
182268 ** However, if the first docid copied to the output is a negative number,
182270 ** be larger in the output than it was in the input (since the delta value
182273 ** The space required to store the output is therefore the sum of the
182322 ** the output contains a copy of each position from the right-hand input
182336 char **paRight, int *pnRight /* IN/OUT: Right/output doclist */
182399 ** to the output buffer pOut, followed by a position list consisting only
182407 char *pOut /* Write output here */
182516 /* If this is the first term selected, copy the doclist to the output
183321 ** output variable *ppCsr and SQLITE_OK is returned. Otherwise, an error
184271 ** database and populate output variable *p with the details of the new
185520 ** * If a phrase consists entirely of deferred tokens, then all output
186705 ** The output variable *ppExpr is populated with an allocated Fts3Expr
188289 ** inappropriate. The input word is copied into the output with
188320 ** Stem the input word zIn[0..nIn-1]. Store the output in zOut.
188322 ** size of the output word (exclusive of the '\0' terminator) into *pnOut.
188336 ** copies the input into the input into the output with US-ASCII
189528 ** If successful, output parameter *pazDequote is set to point at the
191413 /* If required, populate the output variables with a pointer to and the
192045 ** set output variables *paRoot and *pnRoot to contain the root node.
192047 ** If successful, SQLITE_OK is returned and output variable *piLast is
192117 ** and return it via the input/output variable *ppWriter in this case.
192505 ** the end of the output list is zeroed before returning.
193602 int iIdx; /* Index of *output* segment in iAbsLevel+1 */
193659 ** NULL to indicate EOF. Otherwise, populate the NodeReader structure output
193944 /* Advance to the next output block */
193993 /* Set iRoot to the index in pWriter->aNodeWriter[] of the output segment
194006 /* Empty output segment. This is a no-op. */
194009 /* The entire output segment fits on a single node. Normally, this means
194132 ** output segment.
194137 int iIdx, /* Index of candidate output segment */
194291 sqlite3_stmt *pOutputIdx = 0; /* SQL used to find output index */
194305 ** Allocate an appendable output segment on absolute level iAbsLevel+1
194333 int iIdx, /* Index of new output segment */
194355 /* Calculate the first block to use in the output segment */
194510 /* Allocate required output space */
194634 ** its data was copied to the output segment by the incrmerge operation)
194636 ** have been duplicated in the output segment.
196164 /* Set the output variables before returning. */
196266 /* Set the *pmSeen output variable. */
196431 StrBuffer *pOut /* Write output here */
196485 ** of the previous token and the end of the document to the output.
196711 size_t nVal; /* Number of integers output by cArg */
196923 ** is guaranteed to be large enough for the output.
196925 ** If bGlobal is true, then populate all fields of the matchinfo() output.
197804 /* Grow the output buffer if required. */
197813 /* Write the folded case of the last character read to the output */
197827 /* Set the output variables and return. */
198346 #define JNODE_REMOVE 0x04 /* Do not output */
198487 /* Append a comma separator to the output buffer, if the previous
206550 ** Enable or disable debugging output
207712 UChar *zOutput = 0; /* Pointer to output buffer */
207714 int nOut; /* Size of output buffer in bytes */
208744 ** If this API is called during stage 2 of the update, output variable
208750 ** If this API is called during stage 1 of the update, output variable
208764 ** API is called during stage 1, the *pnOne output variable is set to the
208768 ** output variable during stage 1 is undefined.
209360 ** The output buffer should be big enough to hold the whole output
209365 ** may contain embedded NUL characters (if the input and output are
209369 ** This function returns the size of the output file in bytes (excluding
209382 char *zOut /* Write the output into this preallocated buffer */
209410 /* ERROR: copy exceeds output file size */
209425 /* ERROR: insert command gives an output larger than predicted */
209506 /* Figure out the size of the output */
209534 ** an SQLite error code. Additionally, set output variable *pzErrmsg to
209918 ** output variable (*pRc) is set to SQLITE_NOMEM before returning. Otherwise,
209957 ** peType is of type (int*), a pointer to an output parameter of type
209958 ** (int). This call sets the output parameter as follows, depending
209968 ** Argument *piPk is also of type (int*), and also points to an output
210486 ** returned via output parameters. As follows:
211386 ** Set output variable *ppStmt to point to an UPDATE statement that may
212087 ** If RBU_UPDATE is returned, then output variable *pzMask is set to
213262 ** * if the *-wal file does not exist, set the output parameter to
215771 ** A rebase blob may be output by sqlite3changeset_apply_v2() and its
216028 ** and the output variables are set as described above.
216203 ** output record.
216286 u8 **paOut, /* IN/OUT: Pointer to output buffer */
216497 ** Then the four output variables are populated as follows:
216610 /* If successful, populate the output variables. Otherwise, zero them and
217356 /* Zero the output value in case an error occurs. */
218051 ** stored in output variables *pnChangeset and *ppChangeset. Or, if an error
218052 ** occurs, an SQLite error code is returned and both output variables set
218071 /* Zero the output variables in case an error occurs. If this session
218318 ** Return the maximum size of sqlite3session_changeset() output.
218341 /* Zero the output variable in case an error occurs. */
218357 /* Populate the output variable and return success. */
218941 int *pnCol /* OUT: Number of entries in output array */
219041 ** it sets the output variable to the total number of known foreign key
219083 int *pnInverted, /* OUT: Number of bytes in output changeset */
219093 /* Initialize the output buffer */
219096 /* Zero the output variables in case an error occurs. */
219241 int *pnInverted, /* OUT: Number of bytes in output changeset */
220716 ** tables within the output of sqlite3changegroup_output() are in
220776 ** buffer containing the output changeset before this function returns. In
220777 ** this case (*pnOut) is set to the size of the output buffer in bytes. It
220778 ** is the responsibility of the caller to free the output buffer using
220797 /* Create the serialized output changeset based on the contents of the
220925 int *pnOut, /* OUT: Number of bytes in output changeset */
221030 ** to the output buffer.
221102 ** pnOut are not NULL, then the two output parameters are set to 0 before
221110 int *pnOut, /* OUT: Number of bytes in output changeset */
221136 /* Append a table header to the output for this new table */
221415 ** If parameter iCol is less than zero, set output variable *pnToken
221430 ** If parameter iCol is less than zero, set output variable *pnToken
221472 ** output by xInstCount().
221474 ** Usually, output parameter *piPhrase is set to the phrase number, *piCol
221681 ** The final argument is an output variable. If successful, (*ppOut)
223174 ** <li> A FILE* to which trace output should be written.
223177 ** line of trace output. If NULL, then tracing is
224408 ** Append text to the HighlightContext output string - p->zOut. Argument
224410 ** negative, everything up until the first '\0' is appended to the output.
225568 ** to the output buffer. */
226976 /* Append position iPos to the output */
227112 /* Add an entry to each output position list */
227465 ** Advance the first term iterator in the first phrase of pNear. Set output
228456 int iOut = 0; /* Next output slot in pColset */
230512 Fts5IndexIter base; /* Base class containing output vars */
230518 /* Invoked to set output variables. */
233297 /* All data is stored on the current page. Populate the output
233302 ** Fts5Iter.poslist buffer and then set the output pointer to point
233390 /* All data is stored on the current page. Populate the output
233398 ** Fts5Iter.poslist buffer and then set the output pointer to point
233523 ** object and set the output variable to NULL. */
234068 ** Append a rowid and position-list size field to the writers output.
234202 /* Bind the current output segment id to the index-writer. This is an
234223 /* All keys from this input segment have been transfered to the output.
234296 int *pnRem /* Write up to this many output leaves */
234307 int bOldest; /* True if the output segment is the oldest */
234310 int bTermWritten = 0; /* True if current term already output */
234329 /* Extend the Fts5Structure object as required to ensure the output
234342 /* Add the new segment to the output level */
234377 /* This is a new term. Append a term to the output segment. */
234382 /* Append the rowid to the output */
234394 /* Append the position-list data to the output */
234401 /* Flush the last leaf page to disk. Set the output segment b-tree height
234504 int nLeaf /* Number of output leaves just written */
235093 /* The maximum size of the output is equal to the sum of the
235100 ** Or, if the input position-lists are corrupt, then the output might
235103 ** it to the output. This can happen at most once for each input
235138 ** corrupt input position lists might cause the output to consume
235189 /* Copy poslist from pHead to output */
237688 ** If the new rowid is not equal to the old, set output parameter *pbSkip
241411 /* Run through the tokenchars. Fold them into the output buffer along
241415 /* Grow the output buffer so that there is sufficient space to fit the
241432 /* An non-ascii-range character. Fold it into the output buffer if
243564 ** FTS5_VOCAB_XXX constant. If successful, set *peType to the output
244417 ** Advance a stmt_cursor to its next row of output.
244448 ** rowid is the same as the output value.
244458 ** row of output.
244467 ** to the first row of output. This method is always called at least
244797 CODEC_STATIC int opensslCipher(void *iCtx, Buffer *input, unsigned char *output){
244801 EVP_CipherUpdate(ctx, output, &cipherLength, input->buffer, input->bufferSize);
244803 output += cipherLength;
244804 EVP_CipherFinal_ex(ctx, output, &cipherLength);
244816 CODEC_STATIC int opensslHmac(Buffer *key, Buffer *input1, Buffer *input2, Buffer *output, int hmacAlgo){
244830 HMAC_Final(ctx, output->buffer, (unsigned int *)(&output->bufferSize));
244983 // You should clear key derive result of output before you call this function
244984 CODEC_STATIC int sqlite3CodecCopyDeriveKey(KeyContext *input, KeyContext *output){
244987 output->key = (unsigned char *)sqlite3Malloc(output->codecConst.keySize);
244988 if(output->key == NULL){
244989 sqlite3CodecFreeKeyContext(output);
244992 rc = memcpy_s(output->key, output->codecConst.keySize, input->key, input->codecConst.keySize);
244994 sqlite3CodecFreeKeyContext(output);
244999 output->hmacKey = (unsigned char *)sqlite3Malloc(output->codecConst.keySize);
245000 if(output->hmacKey == NULL){
245001 sqlite3CodecFreeKeyContext(output);
245004 rc = memcpy_s(output->hmacKey, output->codecConst.keySize, input->hmacKey, input->codecConst.keySize);
245006 sqlite3CodecFreeKeyContext(output);
245011 output->keyInfo = (unsigned char *)sqlite3Malloc(output->codecConst.keyInfoSize);
245012 if(output->keyInfo == NULL){
245013 sqlite3CodecFreeKeyContext(output);
245016 rc = memcpy_s(output->keyInfo, output->codecConst.keyInfoSize, input->keyInfo, input->codecConst.keyInfoSize);
245018 sqlite3CodecFreeKeyContext(output);
245318 // You should clear output before you call this function
245319 CODEC_STATIC int sqlite3CodecCopyKeyContext(KeyContext *input, KeyContext *output){
245320 errno_t rc = memcpy_s(output, sizeof(KeyContext), input, KEY_CONTEXT_HEAD_SIZE);
245325 output->password = (unsigned char *)sqlite3Malloc(output->passwordSize);
245326 if(output->password == NULL){
245327 sqlite3CodecFreeKeyContext(output);
245330 rc = memcpy_s(output->password, output->passwordSize, input->password, input->passwordSize);
245332 sqlite3CodecFreeKeyContext(output);
245336 return sqlite3CodecCopyDeriveKey(input, output);
245477 CODEC_STATIC void sqlite3CodecTransPgno(Pgno input, unsigned char *output){
245479 sqlite3Put4byte(output, input);
245481 output[0] = (u8)input;
245482 output[1] = (u8)(input>>8);
245483 output[2] = (u8)(input>>16);
245484 output[3] = (u8)(input>>24);
245488 CODEC_STATIC int sqlite3CodecHmac(KeyContext *ctx, Pgno pgno, int bufferSize, unsigned char *input, unsigned char *output){
245501 outputBuffer.buffer = output;
245523 unsigned char *output = (unsigned char *)malloc(ctx->codecConst.hmacSize);
245524 if (output == NULL) {
245527 rc = sqlite3CodecHmac(ctx, pgno, bufferSize, input, output);
245529 free(output);
245532 rc = memcmp(output, expectResult, ctx->codecConst.hmacSize);
245533 free(output);
245538 CODEC_STATIC int sqlite3CodecEncryptData(CodecContext *ctx, OperateContext whichKey, Pgno pgno, int bufferSize, unsigned char *input, unsigned char *output){
245564 initVector.buffer = output + inputBuffer.bufferSize;
245574 rc = opensslCipher(cipherCtx, &inputBuffer, output);
245579 rc = sqlite3CodecHmac(keyCtx, pgno, inputBuffer.bufferSize + keyCtx->codecConst.initVectorSize, output, output + inputBuffer.bufferSize + keyCtx->codecConst.initVectorSize);
245586 CODEC_STATIC int sqlite3CodecDecryptData(CodecContext *ctx, OperateContext whichKey, Pgno pgno, int bufferSize, unsigned char *input, unsigned char *output){
245609 errno_t memsetRc = memset_s(output, bufferSize, 0, bufferSize);
245628 rc = opensslCipher(cipherCtx, &inputBuffer, output);