FreeTDS API

Loading...
Searching...
No Matches
Classes | Macros | Functions
token.c File Reference

Contains all routines to get replies from server. More...

`#include <config.h>`
`#include <assert.h>`
`#include <freetds/tds.h>`
`#include <freetds/utils/string.h>`
`#include <freetds/convert.h>`
`#include <freetds/iconv.h>`
`#include <freetds/checks.h>`
`#include <freetds/bytes.h>`
`#include <freetds/alloca.h>`
`#include <freetds/encodings.h>`
`#include <freetds/enum_cap.h>`
`#include <freetds/replacements.h>`
Include dependency graph for token.c:

## Classes
struct | namelist
| Holds list of names. More...

## Macros
#define | GET_STRING(dest, len_type)

## Functions
static void | adjust_character_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
| Adjust column size according to client's encoding.
static int | determine_adjusted_size (const TDSICONV *char_conv, int size)
| Allow for maximum possible size of converted data, while being careful about integer division truncation.
static TDSRET | tds5_process_dyn_result2 (TDSSOCKET *tds)
| Process new TDS 5.0 token for describing output parameters.
static TDSRET | tds5_process_optioncmd (TDSSOCKET *tds)
| Process option cmd results.
static TDSRET | tds5_process_result (TDSSOCKET *tds)
| tds5_process_result() is the TDS 5.0 result set processing routine.
static TDSRET | tds5_process_result2 (TDSSOCKET *tds)
| tds5_process_result2() is the new TDS 5.0 result set processing routine.
static int | tds71_read_table_names (TDSSOCKET *tds, int remainder, struct namelist **p_head)
| Reads table names for TDS 7.1+.
static TDSRET | tds7_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol)
| Reads data information from wire.
static TDSRET | tds7_process_compute_result (TDSSOCKET *tds)
| tds7_process_compute_result() processes compute result sets for TDS 7/8.
static TDSRET | tds7_process_result (TDSSOCKET *tds)
| tds7_process_result() is the TDS 7.0 result set processing routine.
static int | tds_alloc_get_string (TDSSOCKET *tds, char **string, size_t len)
| Reads a string from wire in a new allocated buffer.
static void | tds_free_namelist (struct namelist *head)
| Frees list of names.
static TDSRET | tds_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
| Reads data metadata from wire.
TDSDYNAMIC * | tds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
| Finds a dynamic given string id.
static const char * | tds_pr_op (int op)
| Returns string representation for a given operation.
static TDSRET | tds_process_auth (TDSSOCKET *tds)
| Process authentication token.
TDSRET | tds_process_cancel (TDSSOCKET *tds)
static TDSRET | tds_process_col_fmt (TDSSOCKET *tds)
| tds_process_col_fmt() is the other half of result set processing under TDS 4.2.
static TDSRET | tds_process_col_name (TDSSOCKET *tds)
| tds_process_col_name() is one half of the result set under TDS 4.2 it contains all the column names, a TDS_COLFMT_TOKEN should immediately follow this token with the datatype/size information This is a 4.2 only function
static TDSRET | tds_process_colinfo (TDSSOCKET *tds, char **names, int num_names)
| Reads column information.
static TDSRET | tds_process_compute (TDSSOCKET *tds)
| tds_process_compute() processes compute rows and places them in the row buffer.
static TDSRET | tds_process_compute_names (TDSSOCKET *tds)
| tds_process_compute_names() processes compute result sets.
static TDSRET | tds_process_compute_result (TDSSOCKET *tds)
| tds_process_compute_result() processes compute result sets.
static TDSRET | tds_process_cursor_tokens (TDSSOCKET *tds)
| Reads cursor command results.
static TDSRET | tds_process_default_tokens (TDSSOCKET *tds, int marker)
| tds_process_default_tokens() is a catch all function that is called to process tokens not known to other tds_process_* routines
static TDSRET | tds_process_dyn_result (TDSSOCKET *tds)
| Process results from dynamic.
static TDSDYNAMIC * | tds_process_dynamic (TDSSOCKET *tds)
| tds_process_dynamic() finds the element of the dyns array for the id
static TDSRET | tds_process_end (TDSSOCKET *tds, int marker TDS_UNUSED, int *flags_parm)
| tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens.
static TDSRET | tds_process_env_chg (TDSSOCKET *tds)
| tds_process_env_chg() when ever certain things change on the server, such as database, character set, language, or block size.
static TDSRET | tds_process_env_routing (TDSSOCKET *tds)
static TDSRET | tds_process_featureextack (TDSSOCKET *tds)
static TDSRET | tds_process_info (TDSSOCKET *tds, int marker)
| tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's message handling routine
TDSRET | tds_process_login_tokens (TDSSOCKET *tds)
| tds_process_login_tokens() is called after sending the login packet to the server.
static TDSRET | tds_process_loginack (TDSSOCKET *tds, TDSRET *login_succeeded)
static TDSRET | tds_process_nbcrow (TDSSOCKET *tds)
| tds_process_nbcrow() processes rows and places them in the row buffer.
static TDSRET | tds_process_param_result (TDSSOCKET *tds, TDSPARAMINFO **pinfo)
| process output parameters of a stored procedure.
static TDSRET | tds_process_param_result_tokens (TDSSOCKET *tds)
| Process parameters from networks.
static TDSRET | tds_process_params_result_token (TDSSOCKET *tds)
| tds_process_params_result_token() processes params on TDS5.
static void | tds_process_pending_closes (TDSSOCKET *tds)
| Attempt to close all deferred closes (dynamics and cursors).
static TDSRET | tds_process_row (TDSSOCKET *tds)
| tds_process_row() processes rows and places them in the row buffer.
TDSRET | tds_process_simple_query (TDSSOCKET *tds)
| Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results, beware they are discarded.
static TDSRET | tds_process_tabname (TDSSOCKET *tds)
| Process list of table from network.
TDSRET | tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
| process all streams.
const char * | tds_prtype (int type)
| Returns string representation of the given type.
static int | tds_read_namelist (TDSSOCKET *tds, int remainder, struct namelist **p_head, int large)
| Reads list of names (usually table names)
static const char * | tds_token_name (unsigned char marker)
| Returns string representation for a given token type.

## Detailed Description

Contains all routines to get replies from server.

## Macro Definition Documentation

## ◆ GET_STRING

#define GET_STRING | ( |  | dest,
|  |  | len_type
| ) |  |

Value:
do { \
unsigned int to_read_size = tds_get_ ## len_type(tds); \
char_len += to_read_size; \
rc += tds_alloc_get_string(tds, dest, to_read_size); \
} while(0)
tds_alloc_get_string
static int tds_alloc_get_string(TDSSOCKET *tds, char **string, size_t len)
Reads a string from wire in a new allocated buffer.
Definition token.c:2532