Skip to content

Commit 99481e9

Browse files
use SqlType for type conv
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
1 parent 92c2da4 commit 99481e9

File tree

2 files changed

+41
-34
lines changed

2 files changed

+41
-34
lines changed

src/databricks/sql/backend/sea/utils/metadata_mappings.py

Lines changed: 40 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,78 @@
11
from databricks.sql.backend.sea.utils.result_column import ResultColumn
2+
from databricks.sql.backend.sea.utils.conversion import SqlType
23

34

45
class MetadataColumnMappings:
56
"""Column mappings for metadata queries following JDBC specification."""
67

78
# Common columns used across multiple metadata queries
8-
CATALOG_COLUMN = ResultColumn("TABLE_CAT", "catalogName", "string")
9-
CATALOG_COLUMN_FOR_GET_CATALOGS = ResultColumn("TABLE_CAT", "catalog", "string")
9+
CATALOG_COLUMN = ResultColumn("TABLE_CAT", "catalogName", SqlType.VARCHAR)
10+
CATALOG_COLUMN_FOR_GET_CATALOGS = ResultColumn(
11+
"TABLE_CAT", "catalog", SqlType.VARCHAR
12+
)
1013

11-
SCHEMA_COLUMN = ResultColumn("TABLE_SCHEM", "namespace", "string")
12-
SCHEMA_COLUMN_FOR_GET_SCHEMA = ResultColumn("TABLE_SCHEM", "databaseName", "string")
13-
TABLE_NAME_COLUMN = ResultColumn("TABLE_NAME", "tableName", "string")
14-
TABLE_TYPE_COLUMN = ResultColumn("TABLE_TYPE", "tableType", "string")
15-
REMARKS_COLUMN = ResultColumn("REMARKS", "remarks", "string")
14+
SCHEMA_COLUMN = ResultColumn("TABLE_SCHEM", "namespace", SqlType.VARCHAR)
15+
SCHEMA_COLUMN_FOR_GET_SCHEMA = ResultColumn(
16+
"TABLE_SCHEM", "databaseName", SqlType.VARCHAR
17+
)
18+
TABLE_NAME_COLUMN = ResultColumn("TABLE_NAME", "tableName", SqlType.VARCHAR)
19+
TABLE_TYPE_COLUMN = ResultColumn("TABLE_TYPE", "tableType", SqlType.VARCHAR)
20+
REMARKS_COLUMN = ResultColumn("REMARKS", "remarks", SqlType.VARCHAR)
1621

1722
# Columns specific to getColumns()
18-
COLUMN_NAME_COLUMN = ResultColumn("COLUMN_NAME", "col_name", "string")
19-
DATA_TYPE_COLUMN = ResultColumn("DATA_TYPE", None, "int")
20-
TYPE_NAME_COLUMN = ResultColumn("TYPE_NAME", "columnType", "string")
23+
COLUMN_NAME_COLUMN = ResultColumn("COLUMN_NAME", "col_name", SqlType.VARCHAR)
24+
DATA_TYPE_COLUMN = ResultColumn("DATA_TYPE", None, SqlType.INT)
25+
TYPE_NAME_COLUMN = ResultColumn("TYPE_NAME", "columnType", SqlType.VARCHAR)
2126

22-
COLUMN_SIZE_COLUMN = ResultColumn("COLUMN_SIZE", "columnSize", "int")
27+
COLUMN_SIZE_COLUMN = ResultColumn("COLUMN_SIZE", "columnSize", SqlType.INT)
2328
DECIMAL_DIGITS_COLUMN = ResultColumn(
2429
"DECIMAL_DIGITS",
2530
"decimalDigits",
26-
"int",
31+
SqlType.INT,
2732
)
28-
NUM_PREC_RADIX_COLUMN = ResultColumn("NUM_PREC_RADIX", "radix", "int")
33+
NUM_PREC_RADIX_COLUMN = ResultColumn("NUM_PREC_RADIX", "radix", SqlType.INT)
2934
ORDINAL_POSITION_COLUMN = ResultColumn(
3035
"ORDINAL_POSITION",
3136
"ordinalPosition",
32-
"int",
37+
SqlType.INT,
3338
)
3439

35-
NULLABLE_COLUMN = ResultColumn("NULLABLE", None, "int")
36-
COLUMN_DEF_COLUMN = ResultColumn("COLUMN_DEF", "columnType", "string")
37-
SQL_DATA_TYPE_COLUMN = ResultColumn("SQL_DATA_TYPE", None, "int")
38-
SQL_DATETIME_SUB_COLUMN = ResultColumn("SQL_DATETIME_SUB", None, "int")
39-
CHAR_OCTET_LENGTH_COLUMN = ResultColumn("CHAR_OCTET_LENGTH", None, "int")
40-
IS_NULLABLE_COLUMN = ResultColumn("IS_NULLABLE", "isNullable", "string")
40+
NULLABLE_COLUMN = ResultColumn("NULLABLE", None, SqlType.INT)
41+
COLUMN_DEF_COLUMN = ResultColumn("COLUMN_DEF", "columnType", SqlType.VARCHAR)
42+
SQL_DATA_TYPE_COLUMN = ResultColumn("SQL_DATA_TYPE", None, SqlType.INT)
43+
SQL_DATETIME_SUB_COLUMN = ResultColumn("SQL_DATETIME_SUB", None, SqlType.INT)
44+
CHAR_OCTET_LENGTH_COLUMN = ResultColumn("CHAR_OCTET_LENGTH", None, SqlType.INT)
45+
IS_NULLABLE_COLUMN = ResultColumn("IS_NULLABLE", "isNullable", SqlType.VARCHAR)
4146

4247
# Columns for getTables() that don't exist in SEA
43-
TYPE_CAT_COLUMN = ResultColumn("TYPE_CAT", None, "string")
44-
TYPE_SCHEM_COLUMN = ResultColumn("TYPE_SCHEM", None, "string")
45-
TYPE_NAME_COLUMN = ResultColumn("TYPE_NAME", None, "string")
48+
TYPE_CAT_COLUMN = ResultColumn("TYPE_CAT", None, SqlType.VARCHAR)
49+
TYPE_SCHEM_COLUMN = ResultColumn("TYPE_SCHEM", None, SqlType.VARCHAR)
50+
TYPE_NAME_COLUMN = ResultColumn("TYPE_NAME", None, SqlType.VARCHAR)
4651
SELF_REFERENCING_COL_NAME_COLUMN = ResultColumn(
47-
"SELF_REFERENCING_COL_NAME", None, "string"
52+
"SELF_REFERENCING_COL_NAME", None, SqlType.VARCHAR
4853
)
49-
REF_GENERATION_COLUMN = ResultColumn("REF_GENERATION", None, "string")
54+
REF_GENERATION_COLUMN = ResultColumn("REF_GENERATION", None, SqlType.VARCHAR)
5055

51-
SCOPE_CATALOG_COLUMN = ResultColumn("SCOPE_CATALOG", None, "string")
52-
SCOPE_SCHEMA_COLUMN = ResultColumn("SCOPE_SCHEMA", None, "string")
53-
SCOPE_TABLE_COLUMN = ResultColumn("SCOPE_TABLE", None, "string")
54-
SOURCE_DATA_TYPE_COLUMN = ResultColumn("SOURCE_DATA_TYPE", None, "smallint")
56+
SCOPE_CATALOG_COLUMN = ResultColumn("SCOPE_CATALOG", None, SqlType.VARCHAR)
57+
SCOPE_SCHEMA_COLUMN = ResultColumn("SCOPE_SCHEMA", None, SqlType.VARCHAR)
58+
SCOPE_TABLE_COLUMN = ResultColumn("SCOPE_TABLE", None, SqlType.VARCHAR)
59+
SOURCE_DATA_TYPE_COLUMN = ResultColumn("SOURCE_DATA_TYPE", None, SqlType.INT)
5560

5661
IS_AUTO_INCREMENT_COLUMN = ResultColumn(
57-
"IS_AUTOINCREMENT", "isAutoIncrement", "string"
62+
"IS_AUTOINCREMENT", "isAutoIncrement", SqlType.VARCHAR
63+
)
64+
IS_GENERATED_COLUMN = ResultColumn(
65+
"IS_GENERATEDCOLUMN", "isGenerated", SqlType.VARCHAR
5866
)
59-
IS_GENERATED_COLUMN = ResultColumn("IS_GENERATEDCOLUMN", "isGenerated", "string")
6067

61-
BUFFER_LENGTH_COLUMN = ResultColumn("BUFFER_LENGTH", None, "int")
68+
BUFFER_LENGTH_COLUMN = ResultColumn("BUFFER_LENGTH", None, SqlType.INT)
6269

6370
# Column lists for each metadata operation
6471
CATALOG_COLUMNS = [CATALOG_COLUMN_FOR_GET_CATALOGS] # Use specific catalog column
6572

6673
SCHEMA_COLUMNS = [
6774
SCHEMA_COLUMN_FOR_GET_SCHEMA,
68-
ResultColumn("TABLE_CATALOG", None, "string"),
75+
ResultColumn("TABLE_CATALOG", "catalogName", SqlType.VARCHAR),
6976
]
7077

7178
TABLE_COLUMNS = [

src/databricks/sql/backend/sea/utils/result_column.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass
2-
from typing import Optional, Callable, Any
2+
from typing import Optional
33

44

55
@dataclass(frozen=True)

0 commit comments

Comments
 (0)