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.
 
TDSDYNAMICtds_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 TDSDYNAMICtds_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, 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)
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:2527