mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-09-21 03:57:55 +08:00
precision and scale were used other way around. Flipped their usage
in all places
This commit is contained in:
@@ -769,7 +769,7 @@ generate_table_schema(FILE *outfile, MdbCatalogEntry *entry, char *dbnamespace,
|
|||||||
if (col->col_size == 0)
|
if (col->col_size == 0)
|
||||||
fputs(" (255)", outfile);
|
fputs(" (255)", outfile);
|
||||||
else if (col->col_scale != 0)
|
else if (col->col_scale != 0)
|
||||||
fprintf(outfile, " (%d, %d)", col->col_prec, col->col_scale);
|
fprintf(outfile, " (%d, %d)", col->col_scale, col->col_prec);
|
||||||
else
|
else
|
||||||
fprintf(outfile, " (%d)", col->col_size);
|
fprintf(outfile, " (%d)", col->col_size);
|
||||||
}
|
}
|
||||||
|
@@ -247,7 +247,7 @@ int ret;
|
|||||||
//fprintf(stdout,"len %d size %d\n",len, col->col_size);
|
//fprintf(stdout,"len %d size %d\n",len, col->col_size);
|
||||||
char *str;
|
char *str;
|
||||||
if (col->col_type == MDB_NUMERIC) {
|
if (col->col_type == MDB_NUMERIC) {
|
||||||
str = mdb_numeric_to_string(mdb, start, col->col_prec, col->col_scale);
|
str = mdb_numeric_to_string(mdb, start, col->col_scale, col->col_prec);
|
||||||
} else {
|
} else {
|
||||||
str = mdb_col_to_string(mdb, mdb->pg_buf, start, col->col_type, len);
|
str = mdb_col_to_string(mdb, mdb->pg_buf, start, col->col_type, len);
|
||||||
}
|
}
|
||||||
|
@@ -79,7 +79,7 @@ char *mdb_money_to_string(MdbHandle *mdb, int start)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char *mdb_numeric_to_string(MdbHandle *mdb, int start, int prec, int scale) {
|
char *mdb_numeric_to_string(MdbHandle *mdb, int start, int scale, int prec) {
|
||||||
const int num_bytes = 16;
|
const int num_bytes = 16;
|
||||||
int i;
|
int i;
|
||||||
int neg=0;
|
int neg=0;
|
||||||
@@ -103,7 +103,7 @@ char *mdb_numeric_to_string(MdbHandle *mdb, int start, int prec, int scale) {
|
|||||||
memset(multiplier, 0, MAX_NUMERIC_PRECISION);
|
memset(multiplier, 0, MAX_NUMERIC_PRECISION);
|
||||||
multiply_byte(multiplier, 256, temp);
|
multiply_byte(multiplier, 256, temp);
|
||||||
}
|
}
|
||||||
return array_to_string(product, scale, neg);
|
return array_to_string(product, prec, neg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int multiply_byte(unsigned char *product, int num, unsigned char *multiplier)
|
static int multiply_byte(unsigned char *product, int num, unsigned char *multiplier)
|
||||||
|
@@ -266,8 +266,8 @@ GPtrArray *mdb_read_columns(MdbTableDef *table)
|
|||||||
|
|
||||||
/* FIXME: can this be right in Jet3 and Jet4? */
|
/* FIXME: can this be right in Jet3 and Jet4? */
|
||||||
if (pcol->col_type == MDB_NUMERIC) {
|
if (pcol->col_type == MDB_NUMERIC) {
|
||||||
pcol->col_prec = col[11];
|
pcol->col_scale = col[11];
|
||||||
pcol->col_scale = col[12];
|
pcol->col_prec = col[12];
|
||||||
}
|
}
|
||||||
|
|
||||||
// col_flags_offset == 13 or 15
|
// col_flags_offset == 13 or 15
|
||||||
|
Reference in New Issue
Block a user