|
1 | 1 | from databricks.sql.backend.sea.utils.result_column import ResultColumn |
| 2 | +from databricks.sql.backend.sea.utils.conversion import SqlType |
2 | 3 |
|
3 | 4 |
|
4 | 5 | class MetadataColumnMappings: |
5 | 6 | """Column mappings for metadata queries following JDBC specification.""" |
6 | 7 |
|
7 | 8 | # 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 | + ) |
10 | 13 |
|
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) |
16 | 21 |
|
17 | 22 | # 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) |
21 | 26 |
|
22 | | - COLUMN_SIZE_COLUMN = ResultColumn("COLUMN_SIZE", "columnSize", "int") |
| 27 | + COLUMN_SIZE_COLUMN = ResultColumn("COLUMN_SIZE", "columnSize", SqlType.INT) |
23 | 28 | DECIMAL_DIGITS_COLUMN = ResultColumn( |
24 | 29 | "DECIMAL_DIGITS", |
25 | 30 | "decimalDigits", |
26 | | - "int", |
| 31 | + SqlType.INT, |
27 | 32 | ) |
28 | | - NUM_PREC_RADIX_COLUMN = ResultColumn("NUM_PREC_RADIX", "radix", "int") |
| 33 | + NUM_PREC_RADIX_COLUMN = ResultColumn("NUM_PREC_RADIX", "radix", SqlType.INT) |
29 | 34 | ORDINAL_POSITION_COLUMN = ResultColumn( |
30 | 35 | "ORDINAL_POSITION", |
31 | 36 | "ordinalPosition", |
32 | | - "int", |
| 37 | + SqlType.INT, |
33 | 38 | ) |
34 | 39 |
|
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) |
41 | 46 |
|
42 | 47 | # 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) |
46 | 51 | SELF_REFERENCING_COL_NAME_COLUMN = ResultColumn( |
47 | | - "SELF_REFERENCING_COL_NAME", None, "string" |
| 52 | + "SELF_REFERENCING_COL_NAME", None, SqlType.VARCHAR |
48 | 53 | ) |
49 | | - REF_GENERATION_COLUMN = ResultColumn("REF_GENERATION", None, "string") |
| 54 | + REF_GENERATION_COLUMN = ResultColumn("REF_GENERATION", None, SqlType.VARCHAR) |
50 | 55 |
|
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) |
55 | 60 |
|
56 | 61 | 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 |
58 | 66 | ) |
59 | | - IS_GENERATED_COLUMN = ResultColumn("IS_GENERATEDCOLUMN", "isGenerated", "string") |
60 | 67 |
|
61 | | - BUFFER_LENGTH_COLUMN = ResultColumn("BUFFER_LENGTH", None, "int") |
| 68 | + BUFFER_LENGTH_COLUMN = ResultColumn("BUFFER_LENGTH", None, SqlType.INT) |
62 | 69 |
|
63 | 70 | # Column lists for each metadata operation |
64 | 71 | CATALOG_COLUMNS = [CATALOG_COLUMN_FOR_GET_CATALOGS] # Use specific catalog column |
65 | 72 |
|
66 | 73 | SCHEMA_COLUMNS = [ |
67 | 74 | SCHEMA_COLUMN_FOR_GET_SCHEMA, |
68 | | - ResultColumn("TABLE_CATALOG", None, "string"), |
| 75 | + ResultColumn("TABLE_CATALOG", "catalogName", SqlType.VARCHAR), |
69 | 76 | ] |
70 | 77 |
|
71 | 78 | TABLE_COLUMNS = [ |
|
0 commit comments