sqlmesh 0.184.4.dev3__py3-none-any.whl → 0.184.4.dev4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
sqlmesh/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.184.4.dev3'
21
- __version_tuple__ = version_tuple = (0, 184, 4, 'dev3')
20
+ __version__ = version = '0.184.4.dev4'
21
+ __version_tuple__ = version_tuple = (0, 184, 4, 'dev4')
@@ -106,6 +106,7 @@ class EngineAdapter:
106
106
  SUPPORTS_REPLACE_TABLE = True
107
107
  DEFAULT_CATALOG_TYPE = DIALECT
108
108
  QUOTE_IDENTIFIERS_IN_VIEWS = True
109
+ MAX_IDENTIFIER_LENGTH: t.Optional[int] = None
109
110
 
110
111
  def __init__(
111
112
  self,
@@ -2138,14 +2139,12 @@ class EngineAdapter:
2138
2139
  )
2139
2140
  with self.transaction():
2140
2141
  for e in ensure_list(expressions):
2141
- sql = t.cast(
2142
- str,
2143
- (
2144
- self._to_sql(e, quote=quote_identifiers, **to_sql_kwargs)
2145
- if isinstance(e, exp.Expression)
2146
- else e
2147
- ),
2148
- )
2142
+ if isinstance(e, exp.Expression):
2143
+ self._check_identifier_length(e)
2144
+ sql = self._to_sql(e, quote=quote_identifiers, **to_sql_kwargs)
2145
+ else:
2146
+ sql = t.cast(str, e)
2147
+
2149
2148
  self._log_sql(
2150
2149
  sql,
2151
2150
  expression=e if isinstance(e, exp.Expression) else None,
@@ -2516,6 +2515,18 @@ class EngineAdapter:
2516
2515
  def _select_columns(cls, columns: t.Iterable[str]) -> exp.Select:
2517
2516
  return exp.select(*(exp.column(c, quoted=True) for c in columns))
2518
2517
 
2518
+ def _check_identifier_length(self, expression: exp.Expression) -> None:
2519
+ if self.MAX_IDENTIFIER_LENGTH is None or not isinstance(expression, exp.DDL):
2520
+ return
2521
+
2522
+ for identifier in expression.find_all(exp.Identifier):
2523
+ name = identifier.name
2524
+ name_length = len(name)
2525
+ if name_length > self.MAX_IDENTIFIER_LENGTH:
2526
+ raise SQLMeshError(
2527
+ f"Identifier name '{name}' (length {name_length}) exceeds {self.dialect.capitalize()}'s max identifier limit of {self.MAX_IDENTIFIER_LENGTH} characters"
2528
+ )
2529
+
2519
2530
 
2520
2531
  class EngineAdapterWithIndexSupport(EngineAdapter):
2521
2532
  SUPPORTS_INDEXES = True
@@ -39,6 +39,7 @@ class MySQLEngineAdapter(
39
39
  MAX_TABLE_COMMENT_LENGTH = 2048
40
40
  MAX_COLUMN_COMMENT_LENGTH = 1024
41
41
  SUPPORTS_REPLACE_TABLE = False
42
+ MAX_IDENTIFIER_LENGTH = 64
42
43
  SCHEMA_DIFFER = SchemaDiffer(
43
44
  parameterized_type_defaults={
44
45
  exp.DataType.build("BIT", dialect=DIALECT).this: [(1,)],
@@ -34,6 +34,7 @@ class PostgresEngineAdapter(
34
34
  HAS_VIEW_BINDING = True
35
35
  CURRENT_CATALOG_EXPRESSION = exp.column("current_catalog")
36
36
  SUPPORTS_REPLACE_TABLE = False
37
+ MAX_IDENTIFIER_LENGTH = 63
37
38
  SCHEMA_DIFFER = SchemaDiffer(
38
39
  parameterized_type_defaults={
39
40
  # DECIMAL without precision is "up to 131072 digits before the decimal point; up to 16383 digits after the decimal point"
@@ -30,6 +30,7 @@ class RisingwaveEngineAdapter(PostgresEngineAdapter):
30
30
  COMMENT_CREATION_VIEW = CommentCreationView.UNSUPPORTED
31
31
  SUPPORTS_MATERIALIZED_VIEWS = True
32
32
  SUPPORTS_TRANSACTIONS = False
33
+ MAX_IDENTIFIER_LENGTH = None
33
34
 
34
35
  def _truncate_table(self, table_name: TableName) -> None:
35
36
  return self.execute(exp.Delete(this=exp.to_table(table_name)))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlmesh
3
- Version: 0.184.4.dev3
3
+ Version: 0.184.4.dev4
4
4
  Summary: Next-generation data transformation framework
5
5
  Author-email: "TobikoData Inc." <engineering@tobikodata.com>
6
6
  License: Apache License
@@ -1,5 +1,5 @@
1
1
  sqlmesh/__init__.py,sha256=DRovDXI-9D9xeYDP7t8Fq7mI31S2btlN-LHPOK3y7PA,7240
2
- sqlmesh/_version.py,sha256=eXbY2YUtRdeq6-VBN4NBULN-Fh-mL46WbtUnnB87WC0,528
2
+ sqlmesh/_version.py,sha256=ifVqs-FEUDrnjUcfvVbgyQx7o0Vun52nDVXWHD0E3wI,528
3
3
  sqlmesh/magics.py,sha256=aeOyTdeNnyGzGtJXECDAbqJ8OAplrV4UAYl0I2hhtig,39670
4
4
  sqlmesh/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  sqlmesh/cicd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -59,7 +59,7 @@ sqlmesh/core/config/ui.py,sha256=jsO-S6_d9NkLZGG5pT4mgKgxMF34KzkDociZAMvCX3U,278
59
59
  sqlmesh/core/engine_adapter/__init__.py,sha256=two_WTs4UnSNp-fscJh8vOunJq0Xi37EuDuMjKsKuNE,2281
60
60
  sqlmesh/core/engine_adapter/_typing.py,sha256=BAM_U7Vsi0k37XHu_nNnu3whXxuTVDey_uZe3aelKYY,1033
61
61
  sqlmesh/core/engine_adapter/athena.py,sha256=WBVAB_YzBJXdiqq51LTd2jmYoMtGrLmtsA8IrIFVnQ0,26199
62
- sqlmesh/core/engine_adapter/base.py,sha256=XQeJi4Rr5VllnQKFZBYXNs1G142T16ZOVU_l9UYvzoE,100539
62
+ sqlmesh/core/engine_adapter/base.py,sha256=WDyZhieFq9iBQSDsLdf-ae6aPu25d-FpwZ4Lt3FPf6o,101153
63
63
  sqlmesh/core/engine_adapter/base_postgres.py,sha256=DOsOdCJyQAVfA9S0GznuH0J1bonMqYVP_yJLDYcxFYM,6772
64
64
  sqlmesh/core/engine_adapter/bigquery.py,sha256=gnd2cFc7v95tT_E9XMHHgccS-QwSF2sJHsL8xfcSguk,49249
65
65
  sqlmesh/core/engine_adapter/clickhouse.py,sha256=4ACsYsZ8-gvyCozwoEMEayTTUdMjmNea4xUkxtXw6R4,34907
@@ -67,10 +67,10 @@ sqlmesh/core/engine_adapter/databricks.py,sha256=AbNbnt9nQdOd7lTov2zsKROZlzgV2fL
67
67
  sqlmesh/core/engine_adapter/duckdb.py,sha256=FfNmBzLySDDi--nTlsSavTwdperCzhpYzDoroCilPcA,4900
68
68
  sqlmesh/core/engine_adapter/mixins.py,sha256=HMB0Z9O3p5jaTZMolKiWKqpVDZokf5GoI99YXwEJ8bc,22470
69
69
  sqlmesh/core/engine_adapter/mssql.py,sha256=N21kjLrvloxLPMCGloQx5Jew5SIddrCVq3lTrnl8coc,11788
70
- sqlmesh/core/engine_adapter/mysql.py,sha256=HnMtNjxnCVz3X3-uK8Im-BNgLo_viX6QH3Uo8rMfPeY,6935
71
- sqlmesh/core/engine_adapter/postgres.py,sha256=XWnV7MDndkCRokb7ih2yxXodw4W8E61yHbuWtRTFE3k,4570
70
+ sqlmesh/core/engine_adapter/mysql.py,sha256=lVC-siXZK3iSfqCmBjZNw8uy09Z8la8v8_oUZ-E2OwI,6966
71
+ sqlmesh/core/engine_adapter/postgres.py,sha256=fdQrsBodfGlNf8lZYkS99U_gjoDyaYKEVKLgScduv3I,4601
72
72
  sqlmesh/core/engine_adapter/redshift.py,sha256=_rZWv4rchDAzB6m6idoV1NLHFBKK_gM4nlfeErqXEcE,16691
73
- sqlmesh/core/engine_adapter/risingwave.py,sha256=NXXuiPfbB5ZSp7igMqZpaX2c-5TYreOlIouPU7iCVJ8,936
73
+ sqlmesh/core/engine_adapter/risingwave.py,sha256=YYCQ0EJaSrR9_P1_2_LmElQ6zSxqkZzhvhdm-2WtWWg,969
74
74
  sqlmesh/core/engine_adapter/shared.py,sha256=NyF2osSJDWPp7KlJUBR4GZcS_cJFr4daUPvhGyp4XcQ,12909
75
75
  sqlmesh/core/engine_adapter/snowflake.py,sha256=gxZWDOY12itwVWF6anqyZI6bXnaK2wY3Uca0qnH5ffk,27142
76
76
  sqlmesh/core/engine_adapter/spark.py,sha256=nDJXH1su08wv3m9X0Mz-x98xhZblq1BvM3EtRYjZhrI,21012
@@ -268,7 +268,7 @@ sqlmesh/utils/pydantic.py,sha256=-u69PDY-4FLR7ODNKBoN7PsPNmZ0wdhsJcCAG2P6vyY,110
268
268
  sqlmesh/utils/rich.py,sha256=xNZyPCqEc4TAlJlsEthg-5eYUWpaizz0QjBzO7a1Yv4,1509
269
269
  sqlmesh/utils/windows.py,sha256=r7Yin4WEwbvH7sKA3hOJtRsclmscNuBeCklCfVPvtQs,611
270
270
  sqlmesh/utils/yaml.py,sha256=np-WVcwmwsKghCgAj1OBBMsK1SXSRn4wR-H37cGiFr8,2282
271
- sqlmesh-0.184.4.dev3.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
271
+ sqlmesh-0.184.4.dev4.dist-info/licenses/LICENSE,sha256=OlMefUjgWJdULtf84BLW0AZZcY8DwdgQqb_1j2862j8,11346
272
272
  web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
273
  web/client/dist/index.html,sha256=x9qfdHkVkXOwWRFRCZGaixiLj5e9tOQsCDRR92vW9QI,5472
274
274
  web/client/dist/assets/Audits-cGDtiiKB.js,sha256=jrS4x1nQ8Klx67744_LjNI2oBOI9XnnygDR-0wmlme8,1041
@@ -386,8 +386,8 @@ web/server/api/endpoints/models.py,sha256=ud-lRwriyI_OYg9tZchrBgeiXELiRTLNEodraf
386
386
  web/server/api/endpoints/modules.py,sha256=8hqqgonGay_mJmpCw0IdbjsPhWlQH2VLdKAqha-myac,468
387
387
  web/server/api/endpoints/plan.py,sha256=OYuQ_4dgbhG9ibTcX1a8mvYgH3ANxw9Fhbb4wg6QWqc,9222
388
388
  web/server/api/endpoints/table_diff.py,sha256=Wd5YxeKbZB7AkrDvqFgvV9ZQlnKYOF1n5W_w2EHE_Zw,2085
389
- sqlmesh-0.184.4.dev3.dist-info/METADATA,sha256=uy0Vfk_R0ocNUalJQgetjyse7DZ1860S0iu8pwNvmsI,25498
390
- sqlmesh-0.184.4.dev3.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
391
- sqlmesh-0.184.4.dev3.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
392
- sqlmesh-0.184.4.dev3.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
393
- sqlmesh-0.184.4.dev3.dist-info/RECORD,,
389
+ sqlmesh-0.184.4.dev4.dist-info/METADATA,sha256=XyejHBbOyFdij3c1e0wMllTRrHkSJVfCJGVXPYMEh9A,25498
390
+ sqlmesh-0.184.4.dev4.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
391
+ sqlmesh-0.184.4.dev4.dist-info/entry_points.txt,sha256=pIYKtg-u-uO7BK_Y0qrdmfyj0bYrcMc3Xiqr5WE3VFk,121
392
+ sqlmesh-0.184.4.dev4.dist-info/top_level.txt,sha256=bspjo5vjELQkuN0qKuTFIbsrUt3Zeo8D2mlKeHG1LdE,12
393
+ sqlmesh-0.184.4.dev4.dist-info/RECORD,,