(; num_parts; --num_parts) {
528 size_tallocated = 0;
544allocated = (size_t)
len;
590 if(info_len > colsize)
621 if(colsize >
sizeof(num->
array))
663 if(varint != info_len || varint > 2)
694 #ifdef WORDS_BIGENDIAN 752memcmp(blob->
textptr,
"dummy textptr\0\0",16) == 0)
813 if(colsize > allocated) {
866 if(colsize < curcol->column_size)
867memset(dest + colsize, fillchar, curcol->
column_size- colsize);
874 #ifdef WORDS_BIGENDIAN 939 size_tcolsize,
size;
980src = (
unsigned char*) blob->
textvalue;
991 if(curcol->
char_conv->client_charset.min_bytes_per_char == curcol->
char_conv->client_charset.max_bytes_per_char
992&& curcol->
char_conv->server_charset.min_bytes_per_char == curcol->
char_conv->server_charset.max_bytes_per_char) {
993converted_size = colsize * curcol->
char_conv->server_charset.min_bytes_per_char / curcol->
char_conv->client_charset.min_bytes_per_char;
1001colsize = (
TDS_INT)output_size;
1025 if(blob ==
NULL) {
1032colsize =
MAX(
MIN(colsize, 0x7fffffff), 1);
1037colsize =
MIN(colsize,
size);
1040 static const unsigned chartextptr[] = {
10410xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
10420xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1051colsize =
MIN(colsize,
size);
1055colsize =
MIN(colsize,
size);
1074 #ifdef WORDS_BIGENDIAN 1075 unsigned char buf[64];
1077 if(!converted && colsize < 64) {
1080memcpy(
buf, s, colsize);
1096colsize =
MAX(
MIN(colsize, 0x7fffffff), 1);
1104colsize =
MIN(colsize, 0x7fffffff);
1108colsize =
MIN(colsize, 8000);
1122colsize =
MIN(colsize, 255);
1142 #ifdef WORDS_BIGENDIAN 1143 unsigned char buf[64];
1145 if(!converted && colsize < 64) {
1148memcpy(
buf, s, colsize);
1212 if(colsize >
sizeof(num->
array))
1249 unsigned charcolsize;
1309memset(dt, 0,
sizeof(*dt));
1325 if(size < 3 || size > 5)
1329 #ifdef WORDS_BIGENDIAN 1336}
else if(
size!= 0)
1345 #ifdef WORDS_BIGENDIAN 1349dt->
date= ui - 693595;
1376 unsigned char buf[12], *p;
1387p[4] = (
unsignedchar) (dta->
time>> 32);
1399 buf[0] = (
unsignedchar) (p -
buf- 1);
1533 unsigned intwritten;
1568params =
table->metadata;
1569 for(
i= 0;
i< num_cols;
i++) {
1570tds_col = params->columns[
i];
1578ret = tds_col->funcs->put_info(
tds, tds_col);
1594params =
row->params;
1595 for(
i= 0;
i< num_cols;
i++) {
1596tds_col = params->columns[
i];
1597ret = tds_col->funcs->put_data(
tds, tds_col, 0);
1639 #if ENABLE_EXTRA_CHECKS 1726 #define TDS_DECLARE_FUNCS(name) \ 1727 extern const TDSCOLUMNFUNCS tds_ ## name ## _funcs 1729 #include <freetds/pushvis.h> 1738 #include <freetds/popvis.h> 1768 #ifdef WORDS_BIGENDIAN 1770tds_swap_datatype(
intcoltype,
void*
b)
1772 unsigned char*
buf= (
unsigned char*)
b;
1816num->
array[0] = (num->
array[0] == 0) ? 1 : 0;
static CS_CONNECTION * conn
#define TDS_PUT_UA2LE(ptr, val)
#define TDS_PUT_UA4LE(ptr, val)
#define CHECK_COLUMN_EXTRA(column)
#define CHECK_TDS_EXTRA(tds)
#define TDS_ENCODING_MEMCPY
struct tdsunique TDS_UNIQUE
struct tdsnumeric TDS_NUMERIC
#define is_numeric_type(x)
#define TDS_OFFSET(str, field)
tds_sysdep_int32_type TDS_INT
#define is_variable_type(x)
#define TDS_PUT_BYTE(tds, v)
struct tds_blob TDSBLOB
Information about blobs (e.g.
#define tds_get_smallint(tds)
tds_sysdep_int64_type TDS_INT8
#define is_unicode_type(x)
unsigned char TDS_TINYINT
#define tds_convert_string_free(original, converted)
#define tds_new0(type, n)
#define is_nullable_type(x)
tds_sysdep_uint64_type TDS_UINT8
tds_sysdep_uint16_type TDS_USMALLINT
#define is_collate_type(x)
#define TDS_PUT_INT(tds, v)
tds_sysdep_uint32_type TDS_UINT
#define tds_get_int8(tds)
#define TDS_PUT_SMALLINT(tds, v)
#define SYBMSDATETIMEOFFSET
TDSRET tds_generic_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_variant_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
const TDSCOLUMNFUNCS tds_clrudt_funcs
TDSRET tds_invalid_put(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
const TDSCOLUMNFUNCS tds_numeric_funcs
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
TDSRET tds_sybbigtime_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_invalid_get(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_numeric_put(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
TDS_INT tds_clrudt_row_len(TDSCOLUMN *col)
TDSRET tds_invalid_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
const TDSCOLUMNFUNCS tds_sybbigtime_funcs
TDS_INT tds_sybbigtime_row_len(TDSCOLUMN *col)
const TDSCOLUMNFUNCS tds_generic_funcs
TDSRET tds_msdatetime_get(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_sybbigtime_put(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
TDSRET tds_numeric_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
struct tds_varmax_stream TDSVARMAXSTREAM
TDSRET tds_msdatetime_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
const TDSCOLUMNFUNCS tds_variant_funcs
TDS_INT tds_invalid_row_len(TDSCOLUMN *col)
TDSRET tds_numeric_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_msdatetime_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_generic_put(TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7)
Write data to wire.
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
TDS_SERVER_TYPE tds_get_cardinal_type(TDS_SERVER_TYPE datatype, int usertype)
TDS_INT tds_generic_row_len(TDSCOLUMN *col)
TDSRET tds_numeric_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
TDSRET tds_generic_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
Put data information to wire.
TDS_INT tds_numeric_row_len(TDSCOLUMN *col)
TDS_COMPILE_CHECK(variant_size, sizeof(TDSBLOB) >=sizeof(TDSVARIANT))
TDSRET tds_variant_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_sybbigtime_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_generic_get(TDSSOCKET *tds, TDSCOLUMN *curcol)
Read a data from wire.
TDSRET tds_clrudt_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_clrudt_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDS_INT tds_msdatetime_row_len(TDSCOLUMN *col)
TDSRET tds_invalid_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_msdatetime_put(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
TDSRET tds_sybbigtime_get(TDSSOCKET *tds, TDSCOLUMN *col)
const TDSCOLUMNFUNCS tds_msdatetime_funcs
TDSRET tds_variant_put(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
#define tds_get_char_data
#define tds_convert_stream
#define tds_invalid_check
#define tds_fix_column_size
#define tds_get_size_by_type
#define tds_generic_check
#define tds_iconv_from_collate
#define tds_dynamic_stream_init
#define tds_convert_string
#define tds_msdatetime_check
#define tds_datain_stream_init
#define tds_get_usmallint
#define tds_numeric_bytes_per_prec
#define tds_sybbigtime_check
#define tds_get_conversion_type
#define tds_numeric_check
#define tds_get_varint_size
#define tds_variant_check
tds_func_check tds_mstabletype_check
#define is_variant_inner_type(x)
static const TDSCOLUMNFUNCS * tds_get_column_funcs(TDSCONNECTION *conn, int type)
static int tds_varmax_stream_read(TDSINSTREAM *stream, void *ptr, size_t len)
static TDSRET tds_get_char_dynamic(TDSSOCKET *tds, TDSCOLUMN *curcol, void **pp, size_t allocated, TDSINSTREAM *r_stream)
#define TDS_DECLARE_FUNCS(name)
TDSRET tds_mstabletype_put(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7)
static TDSRET tds72_get_varmax(TDSSOCKET *tds, TDSCOLUMN *curcol)
TDS_INT tds_mstabletype_row_len(TDSCOLUMN *col)
TDSRET tds_mstabletype_get_info(TDSSOCKET *tds, TDSCOLUMN *col)
TDSRET tds_mstabletype_get(TDSSOCKET *tds, TDSCOLUMN *col)
const TDSCOLUMNFUNCS tds_mstabletype_funcs
static void tds_swap_numeric(TDS_NUMERIC *num)
Converts numeric from Microsoft representation to internal one (Sybase).
TDSRET tds_mstabletype_put_info(TDSSOCKET *tds, TDSCOLUMN *col)
#define tds_freeze_written
#define tds_freeze_close_len
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
if(yy_accept[yy_current_state])
const struct ncbi::grid::netcache::search::fields::SIZE size
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
static SLJIT_INLINE sljit_ins l(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
#define row(bind, expected)
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
TDS_INT date
date, 0 = 1900-01-01
TDS_SMALLINT offset
time offset
TDS_UINT8 time
time, 7 digit precision
Information about blobs (e.g.
Metadata about columns in regular and compute rows.
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
TDS_INT column_size
maximun size of data.
TDS_UCHAR column_collation[5]
const TDSCOLUMNFUNCS * funcs
TDS_TINYINT column_prec
precision for decimal/numeric
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
TDSICONV * char_conv
refers to previously allocated iconv information
TDS_TINYINT column_scale
scale for decimal/numeric
unsigned char * column_data
unsigned int column_output
struct tds_column::@124 on_server
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
input stream to read data from tds protocol
output stream to write data to a dynamic buffer
size_t size
size of data inside buffer
define a stream of data used for input
Hold information for any results.
Information for a server connection.
unsigned char * in_buf
Input buffer.
unsigned in_pos
current position in in_buf
Store variant informations.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4