Skip to content

Commit 62fbb6a

Browse files
wip
1 parent 7f9e0ab commit 62fbb6a

5 files changed

Lines changed: 10 additions & 337 deletions

File tree

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "photon-indexer"
77
publish = true
88
readme = "README.md"
99
repository = "https://github.com/helius-labs/photon"
10-
version = "0.51.1"
10+
version = "0.51.2"
1111

1212
[[bin]]
1313
name = "photon"

src/ingester/persist/mod.rs

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -344,22 +344,7 @@ async fn execute_account_update_query_and_update_balances(
344344
let prev_spent: Option<bool> = row.try_get("", "prev_spent")?;
345345
match (prev_spent, &modification_type) {
346346
(_, ModificationType::Append) | (Some(false), ModificationType::Spend) => {
347-
// SQLite: columns are TEXT after migration, read as String and parse
348-
// Postgres: columns are DECIMAL, read directly as Decimal
349-
let mut amount_of_interest = match db_backend {
350-
DatabaseBackend::Postgres => row.try_get("", balance_column)?,
351-
DatabaseBackend::Sqlite => {
352-
let amount_str: String = row.try_get("", balance_column)?;
353-
let amount_u64 = amount_str.parse::<u64>().map_err(|_| {
354-
IngesterError::DatabaseError(format!(
355-
"Invalid {} value in SQLite: {}",
356-
balance_column, amount_str
357-
))
358-
})?;
359-
Decimal::from(amount_u64)
360-
}
361-
_ => panic!("Unsupported database backend"),
362-
};
347+
let mut amount_of_interest: Decimal = row.try_get("", balance_column)?;
363348
amount_of_interest *= multiplier;
364349
let owner = bytes_to_sql_format(db_backend, row.try_get("", "owner")?);
365350
let key = match account_type {
@@ -381,40 +366,19 @@ async fn execute_account_update_query_and_update_balances(
381366
}
382367
}
383368

384-
// Format values for INSERT - SQLite uses TEXT columns, Postgres uses DECIMAL
385369
let values = balance_modifications
386370
.into_iter()
387371
.filter(|(_, value)| *value != Decimal::from(0))
388-
.map(|(key, value)| {
389-
match db_backend {
390-
DatabaseBackend::Sqlite => {
391-
// Store as quoted string for TEXT column
392-
format!("({}, '{}')", key, value)
393-
}
394-
_ => {
395-
// Postgres: numeric value
396-
format!("({}, {})", key, value)
397-
}
398-
}
399-
})
372+
.map(|(key, value)| format!("({}, {})", key, value))
400373
.collect::<Vec<String>>();
401374

402375
if !values.is_empty() {
403376
let values_string = values.join(", ");
404-
// SQLite: TEXT columns require CAST for arithmetic operations
405-
// Postgres: DECIMAL columns support direct arithmetic
406-
let raw_sql = match db_backend {
407-
DatabaseBackend::Sqlite => format!(
408-
"INSERT INTO {owner_table_name} (owner {additional_columns}, {balance_column})
409-
VALUES {values_string} ON CONFLICT (owner{additional_columns})
410-
DO UPDATE SET {balance_column} = CAST(CAST({owner_table_name}.{balance_column} AS INTEGER) + CAST(excluded.{balance_column} AS INTEGER) AS TEXT)",
411-
),
412-
_ => format!(
413-
"INSERT INTO {owner_table_name} (owner {additional_columns}, {balance_column})
414-
VALUES {values_string} ON CONFLICT (owner{additional_columns})
415-
DO UPDATE SET {balance_column} = {owner_table_name}.{balance_column} + excluded.{balance_column}",
416-
),
417-
};
377+
let raw_sql = format!(
378+
"INSERT INTO {owner_table_name} (owner {additional_columns}, {balance_column})
379+
VALUES {values_string} ON CONFLICT (owner{additional_columns})
380+
DO UPDATE SET {balance_column} = {owner_table_name}.{balance_column} + excluded.{balance_column}",
381+
);
418382
txn.execute(Statement::from_string(db_backend, raw_sql))
419383
.await?;
420384
}

src/migration/migrations/standard/m20251127_000001_sqlite_precision_fix.rs

Lines changed: 0 additions & 290 deletions
This file was deleted.

src/migration/migrations/standard/mod.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ pub mod m20250909_000001_add_queue_hash_chains;
1414
pub mod m20250910_000002_add_v2_queue_indexes;
1515
pub mod m20250923_000001_add_tree_metadata;
1616
pub mod m20251021_000001_optimize_nullifier_queue_index;
17-
pub mod m20251127_000001_sqlite_precision_fix;
1817

1918
pub fn get_standard_migrations() -> Vec<Box<dyn MigrationTrait>> {
2019
vec![
@@ -32,6 +31,6 @@ pub fn get_standard_migrations() -> Vec<Box<dyn MigrationTrait>> {
3231
Box::new(m20250910_000002_add_v2_queue_indexes::Migration),
3332
Box::new(m20250923_000001_add_tree_metadata::Migration),
3433
Box::new(m20251021_000001_optimize_nullifier_queue_index::Migration),
35-
Box::new(m20251127_000001_sqlite_precision_fix::Migration),
34+
// m20251127_000001_sqlite_precision_fix disabled - SeaORM Decimal maps to REAL in SQLite
3635
]
3736
}

0 commit comments

Comments
 (0)